Skip to content

Commit 56366ef

Browse files
authored
[FEATURE] Add text roles for css and scss (#964)
Resolves #555
1 parent 701af64 commit 56366ef

File tree

5 files changed

+70
-1
lines changed

5 files changed

+70
-1
lines changed

Documentation-rendertest/Inline-code-and-textroles/Index.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ Examples for direct use
5959
* :code:`code`
6060
* :samp:`samp`
6161
* :fluid:`fluid`
62+
* :css:`css`
63+
* :scss:`scss`
6264
* :html:`html`
6365
* :input:`input`
6466
* :js:`js`

packages/typo3-docs-theme/resources/config/typo3-docs-theme.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
use T3Docs\Typo3DocsTheme\Renderer\NodeRenderer\MainMenuJsonDocumentRenderer;
5858
use T3Docs\Typo3DocsTheme\TextRoles\ApiClassTextRole;
5959
use T3Docs\Typo3DocsTheme\TextRoles\ComposerTextRole;
60+
use T3Docs\Typo3DocsTheme\TextRoles\CssTextRole;
6061
use T3Docs\Typo3DocsTheme\TextRoles\FileTextRole;
6162
use T3Docs\Typo3DocsTheme\TextRoles\FluidTextTextRole;
6263
use T3Docs\Typo3DocsTheme\TextRoles\HtmlTextTextRole;
@@ -66,6 +67,7 @@
6667
use T3Docs\Typo3DocsTheme\TextRoles\OutputTextTextRole;
6768
use T3Docs\Typo3DocsTheme\TextRoles\PhpTextRole;
6869
use T3Docs\Typo3DocsTheme\TextRoles\RestructuredTextTextRole;
70+
use T3Docs\Typo3DocsTheme\TextRoles\ScssTextRole;
6971
use T3Docs\Typo3DocsTheme\TextRoles\ShellTextTextRole;
7072
use T3Docs\Typo3DocsTheme\TextRoles\SqlTextRole;
7173
use T3Docs\Typo3DocsTheme\TextRoles\T3extTextRole;
@@ -133,6 +135,8 @@
133135
->tag('phpdoc.guides.parser.rst.text_role')
134136
->set(ComposerTextRole::class)
135137
->tag('phpdoc.guides.parser.rst.text_role')
138+
->set(CssTextRole::class)
139+
->tag('phpdoc.guides.parser.rst.text_role')
136140
->set(FileTextRole::class)
137141
->tag('phpdoc.guides.parser.rst.text_role')
138142
->set(FluidTextTextRole::class)
@@ -149,6 +153,8 @@
149153
->tag('phpdoc.guides.parser.rst.text_role')
150154
->set(RestructuredTextTextRole::class)
151155
->tag('phpdoc.guides.parser.rst.text_role')
156+
->set(ScssTextRole::class)
157+
->tag('phpdoc.guides.parser.rst.text_role')
152158
->set(ShellTextTextRole::class)
153159
->tag('phpdoc.guides.parser.rst.text_role')
154160
->set(SqlTextRole::class)
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
namespace T3Docs\Typo3DocsTheme\TextRoles;
4+
5+
use phpDocumentor\Guides\Nodes\Inline\InlineNode;
6+
use phpDocumentor\Guides\RestructuredText\Parser\DocumentParserContext;
7+
use phpDocumentor\Guides\RestructuredText\TextRoles\TextRole;
8+
use T3Docs\Typo3DocsTheme\Nodes\Inline\CodeInlineNode;
9+
10+
final class CssTextRole implements TextRole
11+
{
12+
public function getName(): string
13+
{
14+
return 'css';
15+
}
16+
17+
public function getAliases(): array
18+
{
19+
return [];
20+
}
21+
22+
public function processNode(DocumentParserContext $documentParserContext, string $role, string $content, string $rawContent): InlineNode
23+
{
24+
return new CodeInlineNode($rawContent, 'Code written in CSS', 'CSS (Cascading Style Sheets) is used to style the appearance of HTML elements on a web page.');
25+
}
26+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
namespace T3Docs\Typo3DocsTheme\TextRoles;
4+
5+
use phpDocumentor\Guides\Nodes\Inline\InlineNode;
6+
use phpDocumentor\Guides\RestructuredText\Parser\DocumentParserContext;
7+
use phpDocumentor\Guides\RestructuredText\TextRoles\TextRole;
8+
use T3Docs\Typo3DocsTheme\Nodes\Inline\CodeInlineNode;
9+
10+
final class ScssTextRole implements TextRole
11+
{
12+
public function getName(): string
13+
{
14+
return 'scss';
15+
}
16+
17+
public function getAliases(): array
18+
{
19+
return ['sass'];
20+
}
21+
22+
public function processNode(DocumentParserContext $documentParserContext, string $role, string $content, string $rawContent): InlineNode
23+
{
24+
return new CodeInlineNode($rawContent, 'Code written in SCSS', 'SCSS is a syntax of Sass, a CSS preprocessor that adds variables, nesting, and functions to make writing styles more powerful and maintainable.');
25+
}
26+
}

tests/Integration/tests/code-inline/expected/index.html

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,16 @@ <h1>Inline code<a class="headerlink" href="#inline-code" data-bs-toggle="modal"
1414
echo &#039;Hello&#039;</code></p>
1515

1616

17-
<p><code class="code-inline">body <wbr>{ background: red; }</code></p>
17+
<p><code class="code-inline code-inline-long"
18+
translate="no"
19+
data-bs-toggle="modal"
20+
data-bs-target="#generalModal"
21+
data-code="body { background: red; }"
22+
data-shortdescription="Code written in CSS"
23+
data-details="CSS (Cascading Style Sheets) is used to style the appearance of HTML elements on a web page."
24+
data-morelink="" data-bs-html="true"
25+
>
26+
body <wbr>{ background: red; }</code></p>
1827

1928

2029
<p><code class="code-inline"

0 commit comments

Comments
 (0)