From f027f3e6a7cfa79b6e8921577ee0efeeec5ba1d4 Mon Sep 17 00:00:00 2001 From: WouterRademaker Date: Thu, 27 Feb 2025 20:58:24 +0100 Subject: [PATCH 01/12] Styling with a additional Styles --- README.md | 7 +++++++ src/IconRenderers/JavascriptRenderer.php | 8 ++++++-- src/IconRenderers/WebfontRenderer.php | 9 ++++++--- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d6a26c3..57ddfb5 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,13 @@ This extension defines three parser functions: For valid icon names see https://fontawesome.com/v6/search. +* `{{#far:...|...}}` to insert an icon from the FontAwesome Regular font with additional style +* `{{#fas:...|...}}` to insert an icon from the FontAwesome Solid font with additional style +* `{{#fab:...|...}}` to insert an icon from the FontAwesome Brands font with additional style + +**Example:** +`{{#fab:wikipedia-w|color:red; background-color: green; }}` will insert a red Wikipedia-W on a green background + ## Professional Support The FontAwesome extension is maintained by [Professional Wiki](https://professional.wiki). diff --git a/src/IconRenderers/JavascriptRenderer.php b/src/IconRenderers/JavascriptRenderer.php index 9d1d7cd..c87ec75 100644 --- a/src/IconRenderers/JavascriptRenderer.php +++ b/src/IconRenderers/JavascriptRenderer.php @@ -64,7 +64,11 @@ public function render( Parser $parser, PPFrame $frame, array $args ): string { $this->registerRlModule( $parser ); - return Html::element( 'i', [ 'class' => [ $this->fontClass, 'fa-' . trim( $frame->expand( $args[ 0 ] ) ) ] ] ); + switch (sizeof($args)) { + case "1": return Html::element( 'i', [ 'class' => [ $this->fontClass, 'fa-' . trim( $frame->expand( $args[ 0 ] ) ) ] ] ); + default : return Html::element( 'i', [ 'class' => [ $this->fontClass, 'fa-' . trim( $frame->expand( $args[ 0 ] ) ) ] , + 'style' => trim( $frame->expand( $args[ 1 ] ) ) ] ); + } } /** @@ -87,4 +91,4 @@ private function getFontModules(): array { return [ 'ext.fontawesome.' . $this->fontClass ]; } -} \ No newline at end of file +} diff --git a/src/IconRenderers/WebfontRenderer.php b/src/IconRenderers/WebfontRenderer.php index ba4c362..807a79d 100644 --- a/src/IconRenderers/WebfontRenderer.php +++ b/src/IconRenderers/WebfontRenderer.php @@ -62,8 +62,11 @@ public function __construct( string $fontClass ) { public function render( Parser $parser, PPFrame $frame, array $args ): string { $this->registerRlModule( $parser ); - - return Html::element( 'i', [ 'class' => [ $this->fontClass, 'fa-' . trim( $frame->expand( $args[ 0 ] ) ) ] ] ); + switch (sizeof($args)) { + case "1": return Html::element( 'i', [ 'class' => [ $this->fontClass, 'fa-' . trim( $frame->expand( $args[ 0 ] ) ) ] ] ); + default : return Html::element( 'i', [ 'class' => [ $this->fontClass, 'fa-' . trim( $frame->expand( $args[ 0 ] ) ) ] , + 'style' => trim( $frame->expand( $args[ 1 ] ) ) ] ); + } } /** @@ -87,4 +90,4 @@ private function getFontModules(): array { return [ 'ext.fontawesome' => 'ext.fontawesome', 'ext.fontawesome.' . $this->fontClass ]; } -} \ No newline at end of file +} From 30a52eae90ea2a306a03b6f8d2fc7a6269ee83ef Mon Sep 17 00:00:00 2001 From: Wouter Rademaker Date: Tue, 1 Apr 2025 19:51:05 +0200 Subject: [PATCH 02/12] Update WebfontRenderer.php fix style errors --- src/IconRenderers/WebfontRenderer.php | 42 +++++++++++++++------------ 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/src/IconRenderers/WebfontRenderer.php b/src/IconRenderers/WebfontRenderer.php index 1564bc6..3db4072 100644 --- a/src/IconRenderers/WebfontRenderer.php +++ b/src/IconRenderers/WebfontRenderer.php @@ -1,18 +1,18 @@ magicWord = $magicWord; + /** + * IconRenderer constructor. + * + * @param string $fontClass + * @param string $fontModule + */ + public function __construct( string $fontClass ) { $this->fontClass = $fontClass; } @@ -60,11 +60,14 @@ public function __construct( * @return string */ public function render( Parser $parser, PPFrame $frame, array $args ): string { + $this->registerRlModule( $parser ); - switch (sizeof($args)) { - case "1": return Html::element( 'i', [ 'class' => [ $this->fontClass, 'fa-' . trim( $frame->expand( $args[ 0 ] ) ) ] ] ); - default : return Html::element( 'i', [ 'class' => [ $this->fontClass, 'fa-' . trim( $frame->expand( $args[ 0 ] ) ) ] , - 'style' => trim( $frame->expand( $args[ 1 ] ) ) ] ); + switch (count($args)) { + case "1": + return Html::element( 'i', ['class' => [ $this->fontClass, 'fa-' . trim( $frame->expand( $args[ 0 ] ) ) ] ] ); + default: + return Html::element( 'i', ['class' => [ $this->fontClass, 'fa-' . trim( $frame->expand( $args[ 0 ] ) ) ], + 'style' => trim( $frame->expand( $args[ 1 ] ) ) ] ); } } @@ -72,6 +75,7 @@ public function render( Parser $parser, PPFrame $frame, array $args ): string { * @param Parser $parser */ private function registerRlModule( Parser $parser ) { + if ( $this->isModuleRegistered ) { return; } @@ -85,7 +89,7 @@ private function registerRlModule( Parser $parser ) { * @return string[] */ private function getFontModules(): array { - return [ 'ext.fontawesome' => 'ext.fontawesome', 'ext.fontawesome.' . $this->magicWord ]; + return [ 'ext.fontawesome' => 'ext.fontawesome', 'ext.fontawesome.' . $this->fontClass ]; } } From 142a7f1f4804f43a934b3ac2f5b3c1a2213f30f6 Mon Sep 17 00:00:00 2001 From: Wouter Rademaker Date: Tue, 1 Apr 2025 20:25:00 +0200 Subject: [PATCH 03/12] Update WebfontRenderer.php the right fix --- src/IconRenderers/WebfontRenderer.php | 31 +++++++++++++-------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/src/IconRenderers/WebfontRenderer.php b/src/IconRenderers/WebfontRenderer.php index 3db4072..031bfab 100644 --- a/src/IconRenderers/WebfontRenderer.php +++ b/src/IconRenderers/WebfontRenderer.php @@ -1,18 +1,18 @@ magicWord = $magicWord; $this->fontClass = $fontClass; } @@ -75,7 +75,6 @@ public function render( Parser $parser, PPFrame $frame, array $args ): string { * @param Parser $parser */ private function registerRlModule( Parser $parser ) { - if ( $this->isModuleRegistered ) { return; } @@ -89,7 +88,7 @@ private function registerRlModule( Parser $parser ) { * @return string[] */ private function getFontModules(): array { - return [ 'ext.fontawesome' => 'ext.fontawesome', 'ext.fontawesome.' . $this->fontClass ]; + return [ 'ext.fontawesome' => 'ext.fontawesome', 'ext.fontawesome.' . $this->magicWord ]; } } From cfa208c16e2d4e2904dec400007bb8e70cdc47bf Mon Sep 17 00:00:00 2001 From: Wouter Rademaker Date: Tue, 1 Apr 2025 20:26:17 +0200 Subject: [PATCH 04/12] Update WebfontRenderer.php --- src/IconRenderers/WebfontRenderer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/IconRenderers/WebfontRenderer.php b/src/IconRenderers/WebfontRenderer.php index 031bfab..5224cab 100644 --- a/src/IconRenderers/WebfontRenderer.php +++ b/src/IconRenderers/WebfontRenderer.php @@ -67,7 +67,7 @@ public function render( Parser $parser, PPFrame $frame, array $args ): string { return Html::element( 'i', ['class' => [ $this->fontClass, 'fa-' . trim( $frame->expand( $args[ 0 ] ) ) ] ] ); default: return Html::element( 'i', ['class' => [ $this->fontClass, 'fa-' . trim( $frame->expand( $args[ 0 ] ) ) ], - 'style' => trim( $frame->expand( $args[ 1 ] ) ) ] ); + 'style' => trim( $frame->expand( $args[ 1 ] ) ) ] ); } } From d41b7659406ccfbb06e917cf4925501517e7779c Mon Sep 17 00:00:00 2001 From: Wouter Rademaker Date: Tue, 1 Apr 2025 20:32:35 +0200 Subject: [PATCH 05/12] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1ac4f7d..911725f 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ For a discussion of the advantages and drawbacks of the render modes see on fontawesome.com. ## Usage - +### Styling This extension defines three parser functions: * `{{#far:...}}` to insert an icon from the FontAwesome Regular font * `{{#fas:...}}` to insert an icon from the FontAwesome Solid font From 369e76de94f18a9d9e8a20f3b6eca8482233f65a Mon Sep 17 00:00:00 2001 From: Wouter Rademaker Date: Tue, 1 Apr 2025 20:33:54 +0200 Subject: [PATCH 06/12] Update JavascriptRenderer.php --- src/IconRenderers/JavascriptRenderer.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/IconRenderers/JavascriptRenderer.php b/src/IconRenderers/JavascriptRenderer.php index 9877a2f..7b3b262 100644 --- a/src/IconRenderers/JavascriptRenderer.php +++ b/src/IconRenderers/JavascriptRenderer.php @@ -63,9 +63,11 @@ public function render( Parser $parser, PPFrame $frame, array $args ): string { $this->registerRlModule( $parser ); switch (sizeof($args)) { - case "1": return Html::element( 'i', [ 'class' => [ $this->fontClass, 'fa-' . trim( $frame->expand( $args[ 0 ] ) ) ] ] ); - default : return Html::element( 'i', [ 'class' => [ $this->fontClass, 'fa-' . trim( $frame->expand( $args[ 0 ] ) ) ] , - 'style' => trim( $frame->expand( $args[ 1 ] ) ) ] ); + case "1": + return Html::element( 'i', [ 'class' => [ $this->fontClass, 'fa-' . trim( $frame->expand( $args[ 0 ] ) ) ] ] ); + default: + return Html::element( 'i', [ 'class' => [ $this->fontClass, 'fa-' . trim( $frame->expand( $args[ 0 ] ) ) ], + 'style' => trim( $frame->expand( $args[ 1 ] ) ) ] ); } } From dd0a7b191af06389344b86ae6db0e7a4cd1a07a3 Mon Sep 17 00:00:00 2001 From: Wouter Rademaker Date: Tue, 1 Apr 2025 20:35:57 +0200 Subject: [PATCH 07/12] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 911725f..79917ee 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ For a discussion of the advantages and drawbacks of the render modes see on fontawesome.com. ## Usage -### Styling + This extension defines three parser functions: * `{{#far:...}}` to insert an icon from the FontAwesome Regular font * `{{#fas:...}}` to insert an icon from the FontAwesome Solid font @@ -69,6 +69,8 @@ This extension defines three parser functions: For valid icon names see https://fontawesome.com/v6/search. +### Styling + * `{{#far:... ...}}` to insert an icon from the FontAwesome Regular font with additional classes * `{{#fas:... ...}}` to insert an icon from the FontAwesome Solid font with additional classes * `{{#fab:... ...}}` to insert an icon from the FontAwesome Brands font with additional classes From a9896cf4a486a155cc79b88f854619a202aa1e30 Mon Sep 17 00:00:00 2001 From: Wouter Rademaker Date: Tue, 1 Apr 2025 20:37:29 +0200 Subject: [PATCH 08/12] Update JavascriptRenderer.php --- src/IconRenderers/JavascriptRenderer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/IconRenderers/JavascriptRenderer.php b/src/IconRenderers/JavascriptRenderer.php index 7b3b262..fd4f4a2 100644 --- a/src/IconRenderers/JavascriptRenderer.php +++ b/src/IconRenderers/JavascriptRenderer.php @@ -62,7 +62,7 @@ public function __construct( public function render( Parser $parser, PPFrame $frame, array $args ): string { $this->registerRlModule( $parser ); - switch (sizeof($args)) { + switch (count($args)) { case "1": return Html::element( 'i', [ 'class' => [ $this->fontClass, 'fa-' . trim( $frame->expand( $args[ 0 ] ) ) ] ] ); default: From 81425f14a8aed7c59415604c613f33aa8b85dc61 Mon Sep 17 00:00:00 2001 From: Wouter Rademaker Date: Tue, 1 Apr 2025 20:59:46 +0200 Subject: [PATCH 09/12] Update JavascriptRenderer.php --- src/IconRenderers/JavascriptRenderer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/IconRenderers/JavascriptRenderer.php b/src/IconRenderers/JavascriptRenderer.php index fd4f4a2..9f6542f 100644 --- a/src/IconRenderers/JavascriptRenderer.php +++ b/src/IconRenderers/JavascriptRenderer.php @@ -63,7 +63,7 @@ public function render( Parser $parser, PPFrame $frame, array $args ): string { $this->registerRlModule( $parser ); switch (count($args)) { - case "1": + case "1": return Html::element( 'i', [ 'class' => [ $this->fontClass, 'fa-' . trim( $frame->expand( $args[ 0 ] ) ) ] ] ); default: return Html::element( 'i', [ 'class' => [ $this->fontClass, 'fa-' . trim( $frame->expand( $args[ 0 ] ) ) ], From 4d26e1442176388aa11908126916873f7f1766ff Mon Sep 17 00:00:00 2001 From: Wouter Rademaker Date: Tue, 1 Apr 2025 21:01:23 +0200 Subject: [PATCH 10/12] Update WebfontRenderer.php --- src/IconRenderers/WebfontRenderer.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/IconRenderers/WebfontRenderer.php b/src/IconRenderers/WebfontRenderer.php index 5224cab..b0b18f0 100644 --- a/src/IconRenderers/WebfontRenderer.php +++ b/src/IconRenderers/WebfontRenderer.php @@ -60,7 +60,6 @@ public function __construct( * @return string */ public function render( Parser $parser, PPFrame $frame, array $args ): string { - $this->registerRlModule( $parser ); switch (count($args)) { case "1": From 4510d67ef06c546dd3955eef94a79699952a4f0d Mon Sep 17 00:00:00 2001 From: Wouter Rademaker Date: Tue, 1 Apr 2025 21:03:49 +0200 Subject: [PATCH 11/12] Update WebfontRenderer.php --- src/IconRenderers/WebfontRenderer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/IconRenderers/WebfontRenderer.php b/src/IconRenderers/WebfontRenderer.php index b0b18f0..b53cb2e 100644 --- a/src/IconRenderers/WebfontRenderer.php +++ b/src/IconRenderers/WebfontRenderer.php @@ -66,7 +66,7 @@ public function render( Parser $parser, PPFrame $frame, array $args ): string { return Html::element( 'i', ['class' => [ $this->fontClass, 'fa-' . trim( $frame->expand( $args[ 0 ] ) ) ] ] ); default: return Html::element( 'i', ['class' => [ $this->fontClass, 'fa-' . trim( $frame->expand( $args[ 0 ] ) ) ], - 'style' => trim( $frame->expand( $args[ 1 ] ) ) ] ); + 'style' => trim( $frame->expand( $args[ 1 ] ) ) ] ); } } From 28ca65461bd4eedfa00c446c96b62a9c2dd0faa5 Mon Sep 17 00:00:00 2001 From: Wouter Rademaker Date: Tue, 1 Apr 2025 21:05:59 +0200 Subject: [PATCH 12/12] Update WebfontRenderer.php