Skip to content

Commit a8e6669

Browse files
committed
Changing tabs to use the configuration-block template
This re-adds the data-language and makes them work identically.
1 parent d597fc3 commit a8e6669

File tree

6 files changed

+19
-30
lines changed

6 files changed

+19
-30
lines changed

src/Directive/ConfigurationBlockDirective.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ public function processSub(Parser $parser, ?Node $document, string $variable, st
6666
'directives/configuration-block.html.twig',
6767
[
6868
'blocks' => $blocks,
69+
'title' => 'Configuration formats',
6970
]
7071
);
7172

src/Directive/TabsDirective.php

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public function processSub(Parser $parser, ?Node $document, string $variable, st
2828
throw new \RuntimeException(sprintf('The "tabs" directive requires a title: ".. tabs:: Title".'));
2929
}
3030

31-
$tabs = [];
31+
$blocks = [];
3232
foreach ($document->getNodes() as $groupTabNode) {
3333
if (!$groupTabNode instanceof GroupTabNode) {
3434
throw new \RuntimeException(sprintf('Only ".. group-tab::" content can appear within the "tab" directive.'));
@@ -39,18 +39,19 @@ public function processSub(Parser $parser, ?Node $document, string $variable, st
3939
$content .= $node->render();
4040
}
4141

42-
$tabs[] = [
42+
$blocks[] = [
4343
'hash' => hash('sha1', $groupTabNode->getTabName()),
44-
'tabName' => $groupTabNode->getTabName(),
45-
'content' => $content,
44+
'language_label' => $groupTabNode->getTabName(),
45+
'language' => $groupTabNode->getSluggedTabName(),
46+
'code' => $content,
4647
];
4748
}
4849

4950
$wrapperDiv = $parser->renderTemplate(
50-
'directives/tabs.html.twig',
51+
'directives/configuration-block.html.twig',
5152
[
53+
'blocks' => $blocks,
5254
'title' => $tabsTitle,
53-
'tabs' => $tabs,
5455
]
5556
);
5657

src/Node/GroupTabNode.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,9 @@ public function getTabName(): string
3333
{
3434
return $this->tabName;
3535
}
36+
37+
public function getSluggedTabName(): string
38+
{
39+
return strtolower(str_replace(' ', '-', $this->tabName));
40+
}
3641
}

src/Templates/default/html/directives/configuration-block.html.twig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<div class="configuration-block">
2-
<div role="tablist" aria-label="Configuration formats" class="configuration-tabs configuration-tabs-length-{{ blocks|length }}">
2+
<div role="tablist" aria-label="{{ title }}" class="configuration-tabs configuration-tabs-length-{{ blocks|length }}">
33
{% for block in blocks %}
44
<button role="tab" type="button" data-language="{{ block.language }}"
55
aria-controls="{{ 'configuration-block-tabpanel-' ~ block.hash }}" aria-selected="{{ loop.first ? 'true' : 'false' }}"

src/Templates/default/html/directives/tabs.html.twig

Lines changed: 0 additions & 17 deletions
This file was deleted.

tests/fixtures/expected/blocks/directives/tabs.html

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
<div class="configuration-block">
2-
<div role="tablist" aria-label="UX Installation"
3-
class="configuration-tabs configuration-tabs-length-2">
4-
<button role="tab" type="button" aria-controls="tab-tabpanel-97a055193fa707f2025ee25bb469c74aa29b2c6c" aria-selected="true" data-active="true">
2+
<div role="tablist" aria-label="UX Installation" class="configuration-tabs configuration-tabs-length-2">
3+
<button role="tab" type="button" data-language="webpack-encore" aria-controls="configuration-block-tabpanel-97a055193fa707f2025ee25bb469c74aa29b2c6c" aria-selected="true" data-active="true">
54
<span>Webpack Encore</span>
65
</button>
7-
<button role="tab" type="button" aria-controls="tab-tabpanel-1865de6b2b585de79e8700d7968050722e562c44" aria-selected="false" tabindex="-1">
6+
<button role="tab" type="button" data-language="assetmapper" aria-controls="configuration-block-tabpanel-1865de6b2b585de79e8700d7968050722e562c44" aria-selected="false" tabindex="-1">
87
<span>AssetMapper</span>
98
</button>
109
</div>
1110

12-
<div role="tabpanel" id="tab-tabpanel-97a055193fa707f2025ee25bb469c74aa29b2c6c" aria-label="Webpack Encore" class="configuration-codeblock" style="">
11+
<div role="tabpanel" id="configuration-block-tabpanel-97a055193fa707f2025ee25bb469c74aa29b2c6c" aria-label="Webpack Encore" class="configuration-codeblock" data-language="webpack-encore" style="">
1312
<p>Webpack Encore stuff!</p>
1413
<div translate="no" data-loc="1" class="notranslate codeblock codeblock-length-sm codeblock-yaml">
1514
<div class="codeblock-scroll">
@@ -18,7 +17,7 @@
1817
</div>
1918
</div>
2019
</div>
21-
<div role="tabpanel" id="tab-tabpanel-1865de6b2b585de79e8700d7968050722e562c44" aria-label="AssetMapper" class="configuration-codeblock" style="display: none">
20+
<div role="tabpanel" id="configuration-block-tabpanel-1865de6b2b585de79e8700d7968050722e562c44" aria-label="AssetMapper" class="configuration-codeblock" data-language="assetmapper" style="display: none">
2221
<p>AssetMapper stuff!</p>
2322
<p>And another paragraph.</p>
2423
</div>

0 commit comments

Comments
 (0)