refactor: Cleanup git state - commit all staged changes

Major refactoring cleanup:
- Add new controller architecture (class-controller-*.php)
- Add new settings-v2 UI (views/settings-v2/)
- Add new CSS architecture (agentic-sidebar.css, tokens)
- Add esbuild build pipeline (scripts/build.js, package.json)
- Add composer dependencies (vendor/)
- Add frontend src directory (assets/js/src/index.jsx)
- Add documentation files
- Remove old/obsolete files (class-settings.php, old CSS)

This commits all pending changes from previous refactoring efforts.
This commit is contained in:
Dwindi Ramadhana
2026-06-17 05:27:58 +07:00
parent d3f142222c
commit 690991c526
7963 changed files with 941566 additions and 67372 deletions

View File

@@ -0,0 +1,382 @@
<?php
declare(strict_types=1);
use phpDocumentor\Guides\ReferenceResolvers\DocumentNameResolverInterface;
use phpDocumentor\Guides\RestructuredText\Directives\AdmonitionDirective;
use phpDocumentor\Guides\RestructuredText\Directives\AttentionDirective;
use phpDocumentor\Guides\RestructuredText\Directives\BaseDirective;
use phpDocumentor\Guides\RestructuredText\Directives\BreadcrumbDirective;
use phpDocumentor\Guides\RestructuredText\Directives\CautionDirective;
use phpDocumentor\Guides\RestructuredText\Directives\ClassDirective;
use phpDocumentor\Guides\RestructuredText\Directives\CodeBlockDirective;
use phpDocumentor\Guides\RestructuredText\Directives\ConfigurationBlockDirective;
use phpDocumentor\Guides\RestructuredText\Directives\ConfvalDirective;
use phpDocumentor\Guides\RestructuredText\Directives\ContainerDirective;
use phpDocumentor\Guides\RestructuredText\Directives\ContentsDirective;
use phpDocumentor\Guides\RestructuredText\Directives\CsvTableDirective;
use phpDocumentor\Guides\RestructuredText\Directives\DangerDirective;
use phpDocumentor\Guides\RestructuredText\Directives\DefaultRoleDirective;
use phpDocumentor\Guides\RestructuredText\Directives\DeprecatedDirective;
use phpDocumentor\Guides\RestructuredText\Directives\DocumentBlockDirective;
use phpDocumentor\Guides\RestructuredText\Directives\EpigraphDirective;
use phpDocumentor\Guides\RestructuredText\Directives\ErrorDirective;
use phpDocumentor\Guides\RestructuredText\Directives\FigureDirective;
use phpDocumentor\Guides\RestructuredText\Directives\GeneralDirective;
use phpDocumentor\Guides\RestructuredText\Directives\HighlightDirective;
use phpDocumentor\Guides\RestructuredText\Directives\HighlightsDirective;
use phpDocumentor\Guides\RestructuredText\Directives\HintDirective;
use phpDocumentor\Guides\RestructuredText\Directives\ImageDirective;
use phpDocumentor\Guides\RestructuredText\Directives\ImportantDirective;
use phpDocumentor\Guides\RestructuredText\Directives\IncludeDirective;
use phpDocumentor\Guides\RestructuredText\Directives\IndexDirective;
use phpDocumentor\Guides\RestructuredText\Directives\LaTeXMain;
use phpDocumentor\Guides\RestructuredText\Directives\ListTableDirective;
use phpDocumentor\Guides\RestructuredText\Directives\LiteralincludeDirective;
use phpDocumentor\Guides\RestructuredText\Directives\MathDirective;
use phpDocumentor\Guides\RestructuredText\Directives\MenuDirective;
use phpDocumentor\Guides\RestructuredText\Directives\MetaDirective;
use phpDocumentor\Guides\RestructuredText\Directives\NoteDirective;
use phpDocumentor\Guides\RestructuredText\Directives\OptionDirective;
use phpDocumentor\Guides\RestructuredText\Directives\OptionMapper\CodeNodeOptionMapper;
use phpDocumentor\Guides\RestructuredText\Directives\OptionMapper\DefaultCodeNodeOptionMapper;
use phpDocumentor\Guides\RestructuredText\Directives\PullQuoteDirective;
use phpDocumentor\Guides\RestructuredText\Directives\RawDirective;
use phpDocumentor\Guides\RestructuredText\Directives\ReplaceDirective;
use phpDocumentor\Guides\RestructuredText\Directives\RoleDirective;
use phpDocumentor\Guides\RestructuredText\Directives\SectionauthorDirective;
use phpDocumentor\Guides\RestructuredText\Directives\SeeAlsoDirective;
use phpDocumentor\Guides\RestructuredText\Directives\SidebarDirective;
use phpDocumentor\Guides\RestructuredText\Directives\SubDirective;
use phpDocumentor\Guides\RestructuredText\Directives\TabDirective;
use phpDocumentor\Guides\RestructuredText\Directives\TableDirective;
use phpDocumentor\Guides\RestructuredText\Directives\TabsDirective;
use phpDocumentor\Guides\RestructuredText\Directives\TestLoggerDirective;
use phpDocumentor\Guides\RestructuredText\Directives\TipDirective;
use phpDocumentor\Guides\RestructuredText\Directives\TitleDirective;
use phpDocumentor\Guides\RestructuredText\Directives\ToctreeDirective;
use phpDocumentor\Guides\RestructuredText\Directives\TodoDirective;
use phpDocumentor\Guides\RestructuredText\Directives\VersionAddedDirective;
use phpDocumentor\Guides\RestructuredText\Directives\VersionChangedDirective;
use phpDocumentor\Guides\RestructuredText\Directives\WarningDirective;
use phpDocumentor\Guides\RestructuredText\Directives\YoutubeDirective;
use phpDocumentor\Guides\RestructuredText\MarkupLanguageParser;
use phpDocumentor\Guides\RestructuredText\Parser\DocumentParserContextFactory;
use phpDocumentor\Guides\RestructuredText\Parser\InlineParser;
use phpDocumentor\Guides\RestructuredText\Parser\Interlink\DefaultInterlinkParser;
use phpDocumentor\Guides\RestructuredText\Parser\Interlink\InterlinkParser;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\AnnotationRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\BlockQuoteRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\CommentRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\DefinitionListRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\DirectiveContentRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\DirectiveRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\DocumentRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\EnumeratedListRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\FieldList\AbstractFieldListItemRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\FieldList\AddressFieldListItemRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\FieldList\AuthorFieldListItemRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\FieldList\AuthorsFieldListItemRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\FieldList\ContactFieldListItemRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\FieldList\CopyrightFieldListItemRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\FieldList\DateFieldListItemRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\FieldList\DedicationFieldListItemRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\FieldList\FieldListItemRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\FieldList\NavigationTitleFieldListItemRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\FieldList\NocommentsFieldListItemRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\FieldList\NosearchFieldListItemRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\FieldList\OrganizationFieldListItemRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\FieldList\OrphanFieldListItemRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\FieldList\ProjectFieldListItemRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\FieldList\RevisionFieldListItemRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\FieldList\TocDepthFieldListItemRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\FieldList\VersionFieldListItemRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\FieldListRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\GridTableRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\InlineMarkupRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\InlineRules\InlineRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\LineBlockRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\LinkRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\ListRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\LiteralBlockRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\ParagraphRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\RuleContainer;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\SectionRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\SimpleTableRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\Table\GridTableBuilder;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\TitleRule;
use phpDocumentor\Guides\RestructuredText\Parser\Productions\TransitionRule;
use phpDocumentor\Guides\RestructuredText\TextRoles\AbbreviationTextRole;
use phpDocumentor\Guides\RestructuredText\TextRoles\ApiClassTextRole;
use phpDocumentor\Guides\RestructuredText\TextRoles\DefaultTextRoleFactory;
use phpDocumentor\Guides\RestructuredText\TextRoles\DocReferenceTextRole;
use phpDocumentor\Guides\RestructuredText\TextRoles\GenericLinkProvider;
use phpDocumentor\Guides\RestructuredText\TextRoles\GenericReferenceTextRole;
use phpDocumentor\Guides\RestructuredText\TextRoles\GenericTextRole;
use phpDocumentor\Guides\RestructuredText\TextRoles\LiteralTextRole;
use phpDocumentor\Guides\RestructuredText\TextRoles\MathTextRole;
use phpDocumentor\Guides\RestructuredText\TextRoles\NbspTextRole;
use phpDocumentor\Guides\RestructuredText\TextRoles\ReferenceTextRole;
use phpDocumentor\Guides\RestructuredText\TextRoles\SpanTextRole;
use phpDocumentor\Guides\RestructuredText\TextRoles\TextRole;
use phpDocumentor\Guides\RestructuredText\TextRoles\TextRoleFactory;
use phpDocumentor\Guides\RestructuredText\Toc\GlobSearcher;
use phpDocumentor\Guides\RestructuredText\Toc\ToctreeBuilder;
use phpDocumentor\Guides\Settings\SettingsManager;
use Psr\Log\LoggerInterface;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use function Symfony\Component\DependencyInjection\Loader\Configurator\inline_service;
use function Symfony\Component\DependencyInjection\Loader\Configurator\param;
use function Symfony\Component\DependencyInjection\Loader\Configurator\service;
use function Symfony\Component\DependencyInjection\Loader\Configurator\tagged_iterator;
return static function (ContainerConfigurator $container): void {
$container->services()
->defaults()
->autowire()
->autoconfigure()
->bind('$bodyElements', service('phpdoc.guides.parser.rst.body_elements'))
->bind('$structuralElements', service('phpdoc.guides.parser.rst.structural_elements'))
->instanceof(BaseDirective::class)
->tag('phpdoc.guides.directive')
->instanceof(FieldListItemRule::class)
->tag('phpdoc.guides.parser.rst.fieldlist')
->instanceof(InlineRule::class)
->tag('phpdoc.guides.parser.rst.inline_rule')
->instanceof(TextRole::class)
->tag('phpdoc.guides.parser.rst.text_role')
->instanceof(SubDirective::class)
->bind('$startingRule', service(DirectiveContentRule::class))
->load(
'phpDocumentor\\Guides\RestructuredText\\Parser\\Productions\\InlineRules\\',
'../../src/RestructuredText/Parser/Productions/InlineRules',
)
->load(
'phpDocumentor\\Guides\RestructuredText\\NodeRenderers\\Html\\',
'../../src/RestructuredText/NodeRenderers/Html',
)
->tag('phpdoc.guides.noderenderer.html')
->load(
'phpDocumentor\\Guides\RestructuredText\\NodeRenderers\\LaTeX\\',
'../../src/RestructuredText/NodeRenderers/LaTeX',
)
->tag('phpdoc.guides.noderenderer.tex')
->set(GenericLinkProvider::class)
->set(DirectiveContentRule::class)
->set(DocReferenceTextRole::class)
->set(GenericReferenceTextRole::class)
->set(ReferenceTextRole::class)
->set(AbbreviationTextRole::class)
->set(ApiClassTextRole::class)
->set(MathTextRole::class)
->set(LiteralTextRole::class)
->set(NbspTextRole::class)
->set(SpanTextRole::class)
->set(GeneralDirective::class)
->set(AdmonitionDirective::class)
->set(AttentionDirective::class)
->set(BreadcrumbDirective::class)
->set(CautionDirective::class)
->set(ClassDirective::class)
->set(CodeBlockDirective::class)
->args([
'$codeNodeOptionMapper' => service(CodeNodeOptionMapper::class),
])
->set(ConfvalDirective::class)
->set(ConfigurationBlockDirective::class)
->args([
'$languageLabels' => param('phpdoc.rst.code_language_labels'),
])
->set(ContainerDirective::class)
->set(ContentsDirective::class)
->arg('$documentNameResolver', service(DocumentNameResolverInterface::class))
->set(CsvTableDirective::class)
->arg('$productions', service('phpdoc.guides.parser.rst.body_elements'))
->set(DangerDirective::class)
->set(DefaultRoleDirective::class)
->set(DeprecatedDirective::class)
->set(DocumentBlockDirective::class)
->set(EpigraphDirective::class)
->set(ErrorDirective::class)
->set(FigureDirective::class)
->set(HighlightDirective::class)
->set(HighlightsDirective::class)
->set(HintDirective::class)
->set(ImageDirective::class)
->set(ImportantDirective::class)
->set(IncludeDirective::class)
->arg('$startingRule', service(DocumentRule::class))
->set(IndexDirective::class)
->set(LaTeXMain::class)
->set(ListTableDirective::class)
->set(LiteralincludeDirective::class)
->args([
'$codeNodeOptionMapper' => service(
CodeNodeOptionMapper::class,
),
])
->set(MathDirective::class)
->set(MetaDirective::class)
->set(NoteDirective::class)
->set(OptionDirective::class)
->set(PullQuoteDirective::class)
->set(RawDirective::class)
->set(ReplaceDirective::class)
->set(RoleDirective::class)
->set(SectionauthorDirective::class)
->set(SeeAlsoDirective::class)
->set(SidebarDirective::class)
->set(TableDirective::class)
->set(TestLoggerDirective::class)
->set(TipDirective::class)
->set(TabDirective::class)
->set(TabsDirective::class)
->set(TitleDirective::class)
->set(ToctreeDirective::class)
->bind('$startingRule', service(InlineMarkupRule::class))
->set(MenuDirective::class)
->set(TodoDirective::class)
->set(VersionAddedDirective::class)
->set(VersionChangedDirective::class)
->set(WarningDirective::class)
->set(YoutubeDirective::class)
->set(GenericTextRole::class, GenericTextRole::class)
->arg('$settingsManager', inline_service(SettingsManager::class))
->set(DefaultTextRoleFactory::class, DefaultTextRoleFactory::class)
->arg('$genericTextRole', service(GenericTextRole::class))
->arg('$defaultTextRole', inline_service(LiteralTextRole::class))
->arg('$textRoles', tagged_iterator('phpdoc.guides.parser.rst.text_role'))
->alias(TextRoleFactory::class, DefaultTextRoleFactory::class)
->set('phpdoc.guides.parser.rst.body_elements', RuleContainer::class)
->set('phpdoc.guides.parser.rst.structural_elements', RuleContainer::class)
->set(InterlinkParser::class, DefaultInterlinkParser::class)
->set(AnnotationRule::class)
->tag('phpdoc.guides.parser.rst.body_element', ['priority' => AnnotationRule::PRIORITY])
->set(LinkRule::class)
->tag('phpdoc.guides.parser.rst.body_element', ['priority' => LinkRule::PRIORITY])
->set(LiteralBlockRule::class)
->tag('phpdoc.guides.parser.rst.body_element', ['priority' => LiteralBlockRule::PRIORITY])
->set(BlockQuoteRule::class)
->arg('$startingRule', service(DirectiveContentRule::class))
->tag('phpdoc.guides.parser.rst.body_element', ['priority' => BlockQuoteRule::PRIORITY])
->set(ListRule::class)
->arg('$productions', service('phpdoc.guides.parser.rst.body_elements'))
->tag('phpdoc.guides.parser.rst.body_element', ['priority' => ListRule::PRIORITY])
->set(EnumeratedListRule::class)
->arg('$productions', service('phpdoc.guides.parser.rst.body_elements'))
->tag('phpdoc.guides.parser.rst.body_element', ['priority' => EnumeratedListRule::PRIORITY])
->set(LineBlockRule::class)
->tag('phpdoc.guides.parser.rst.body_element', ['priority' => ParagraphRule::PRIORITY + 1])
->set(DirectiveRule::class)
->arg('$directives', tagged_iterator('phpdoc.guides.directive'))
->tag('phpdoc.guides.parser.rst.body_element', ['priority' => DirectiveRule::PRIORITY])
->set(CommentRule::class)
->tag('phpdoc.guides.parser.rst.body_element', ['priority' => CommentRule::PRIORITY])
->set(GridTableRule::class)
->arg('$productions', service('phpdoc.guides.parser.rst.body_elements'))
->tag('phpdoc.guides.parser.rst.body_element', ['priority' => GridTableRule::PRIORITY])
->set(GridTableBuilder::class)
->set(SimpleTableRule::class)
->arg('$productions', service('phpdoc.guides.parser.rst.body_elements'))
->tag('phpdoc.guides.parser.rst.body_element', ['priority' => SimpleTableRule::PRIORITY])
->set(DefinitionListRule::class)
->tag('phpdoc.guides.parser.rst.body_element', ['priority' => DefinitionListRule::PRIORITY])
->set(FieldListRule::class)
->arg('$productions', service('phpdoc.guides.parser.rst.body_elements'))
->arg('$fieldListItemRules', tagged_iterator('phpdoc.guides.parser.rst.fieldlist'))
->tag('phpdoc.guides.parser.rst.body_element', ['priority' => FieldListRule::PRIORITY])
->set(ParagraphRule::class)
->tag('phpdoc.guides.parser.rst.body_element', ['priority' => ParagraphRule::PRIORITY])
->set(TransitionRule::class)
->tag('phpdoc.guides.parser.rst.body_element', ['priority' => TransitionRule::PRIORITY])
->set(InlineMarkupRule::class)
->set(TitleRule::class)
->set(AbstractFieldListItemRule::class)
->tag('phpdoc.guides.parser.rst.fieldlist')
->set(AddressFieldListItemRule::class)
->tag('phpdoc.guides.parser.rst.fieldlist')
->set(AuthorFieldListItemRule::class)
->tag('phpdoc.guides.parser.rst.fieldlist')
->set(AuthorsFieldListItemRule::class)
->tag('phpdoc.guides.parser.rst.fieldlist')
->set(ContactFieldListItemRule::class)
->tag('phpdoc.guides.parser.rst.fieldlist')
->set(CopyrightFieldListItemRule::class)
->tag('phpdoc.guides.parser.rst.fieldlist')
->set(DateFieldListItemRule::class)
->tag('phpdoc.guides.parser.rst.fieldlist')
->set(DedicationFieldListItemRule::class)
->tag('phpdoc.guides.parser.rst.fieldlist')
->set(NavigationTitleFieldListItemRule::class)
->tag('phpdoc.guides.parser.rst.fieldlist')
->set(NocommentsFieldListItemRule::class)
->tag('phpdoc.guides.parser.rst.fieldlist')
->set(NosearchFieldListItemRule::class)
->tag('phpdoc.guides.parser.rst.fieldlist')
->set(OrganizationFieldListItemRule::class)
->tag('phpdoc.guides.parser.rst.fieldlist')
->set(OrphanFieldListItemRule::class)
->tag('phpdoc.guides.parser.rst.fieldlist')
->set(ProjectFieldListItemRule::class)
->tag('phpdoc.guides.parser.rst.fieldlist')
->args([
'$logger' => service(LoggerInterface::class),
])
->set(RevisionFieldListItemRule::class)
->tag('phpdoc.guides.parser.rst.fieldlist')
->set(TocDepthFieldListItemRule::class)
->tag('phpdoc.guides.parser.rst.fieldlist')
->set(VersionFieldListItemRule::class)
->args([
'$logger' => service(LoggerInterface::class),
])
->tag('phpdoc.guides.parser.rst.fieldlist')
->set(SectionRule::class)
->tag('phpdoc.guides.parser.rst.structural_element', ['priority' => SectionRule::PRIORITY])
->set(DocumentParserContextFactory::class)
->set(MarkupLanguageParser::class)
->args([
'$startingRule' => service(DocumentRule::class),
])
->tag('phpdoc.guides.parser.markupLanguageParser')
->set(DocumentRule::class)
->set(InlineParser::class)
->arg('$inlineRules', tagged_iterator('phpdoc.guides.parser.rst.inline_rule'))
->arg('$disableLegacyTilde', false)
->set(GlobSearcher::class)
->set(ToctreeBuilder::class)
->set(InlineMarkupRule::class)
->set(DefaultCodeNodeOptionMapper::class)
->alias(CodeNodeOptionMapper::class, DefaultCodeNodeOptionMapper::class);
};

View File

@@ -0,0 +1,21 @@
<dl class="confval">
<dt {%- if node.isNoindex == false %} id="{{ node.anchor }}"{% endif %}>
<code class="sig-name descname"><span class="pre">{{ node.plainContent }}</span></code></dt>
<dd>
<div class="line-block">
{% if node.type != null %} <div class="line"><strong>Type:</strong> {{ renderNode(node.type) }}</div>
{% endif -%}
{%- if node.required %} <div class="line"><strong>Required:</strong> true</div>
{% endif -%}
{% if node.default != null %} <div class="line"><strong>Type:</strong> {{ renderNode(node.default) }}</div>
{% endif -%}
{%- for key, option in node.additionalOptions -%}
<div class="line"><strong>{{ key }}:</strong> {{ renderNode(option) }}</div>
{% endfor -%}
</div>
<div class="confval-description">
{{ renderNode(node.value) }}
</div>
</dd>
</dl>

View File

@@ -0,0 +1 @@
<div class="{{ node.glossary }}">{{ renderNode(node.value) }}</div>

View File

@@ -0,0 +1,3 @@
<div class="hlist columns-{{ node.option('columns') }}">
{{ renderNode(node.value) }}
</div>

View File

@@ -0,0 +1,3 @@
.. {{ node.name }}:: {{ node.plainContent }}
{{ renderNode(node.value) }}

View File

@@ -0,0 +1,3 @@
{%- if 'html' in node.plainContent -%}
{{ renderNode(node.value) }}
{%- endif -%}

View File

@@ -0,0 +1,9 @@
{%- for id in node.additionalIds %}
<a id="{{ id }}"></a>
{% endfor -%}
<dl class="domain-default-option">
<dt class="domain-default-option-name" id="{{ node.id }}">{{ node.plainContent }}</dt>
<dd class="domain-default-option-description">
{{ renderNode(node.value) }}
</dd>
</dl>

View File

@@ -0,0 +1 @@
<div class="rubric{% if node.classes %} {{ node.classesString }}{% endif %}">{{ renderNode(node.content) }}</div>

View File

@@ -0,0 +1 @@
{{ renderNode(tab.value) }}

View File

@@ -0,0 +1,14 @@
<div class="tabs">
<ul>
{% for tab in node.tabs -%}
<li><button type="button" data-tabs="{{ node.key }}" data-target="{{ node.key }}-{{ tab.key }}" class="{{ tab.active ? 'active' }}">{{ renderNode(tab.content) }}</button></li>
{%- endfor %}
</ul>
<div class="tab-content" id="tab-content-{{ node.key }}">
{% for tab in node.tabs -%}
<div class="tab {{- tab.active ? ' active' }}" id="{{ node.key }}-{{ tab.key }}">
{{- renderNode(tab.value) -}}
</div>
{%- endfor %}
</div>
</div>

View File

@@ -0,0 +1,20 @@
{#
A topic is like a block quote with a title, or a self-contained section with no subsections. Use the "topic" directive to indicate a self-contained idea that is separate from the flow of the document. Topics may occur anywhere a section or transition may occur. Body elements and topics may not contain nested topics.
The directive's sole argument is interpreted as the topic title; the next line
must be blank. All subsequent lines make up the topic body, interpreted as body
elements. For example:
.. topic:: Topic Title
Subsequent indented lines comprise
the body of the topic, and are
interpreted as body elements.
https://docutils.sourceforge.io/docs/ref/rst/directives.html#topic
#}
<div class="topic{% if node.classes %} {{ node.classesString }}{% endif %}">
<p class="topic-title">{{ renderNode(node.content) }}</p>
{{ renderNode(node.value) }}
</div>

View File

@@ -0,0 +1,5 @@
{%- if node.classes %}
<div class="{{ node.classesString }}">{{ renderNode(node.value) }}</div>
{% else %}
{{ renderNode(node.value) }}
{% endif -%}

View File

@@ -0,0 +1,6 @@
<div class="versionchange {{ node.type }}">
<p class="versionmodified">{{ node.versionLabel }}</p>
<article>
{{ renderNode(node.value) }}
</article>
</div>

View File

@@ -0,0 +1,16 @@
\begin{description}
\item[\texttt{{ node.plainContent }}]
\hfill \\
\begin{itemize}
\item[\textbf{Type:}] {{ renderNode(node.type) }}
\item[\textbf{Required:}] {% if node.required %}true{% else %}false{% endif %}
\item[\textbf{Default:}] {% if node.default != null %}{{ renderNode(node.default) }}{% else %}N/A{% endif %}
{%- for key, option in node.additionalOptions -%}
\item[\textbf{{ key }}:] {{ renderNode(option) }}
{% endfor -%}
\end{itemize}
\item[Description]
\hfill \\
{{ renderNode(node.value) }}
\end{description}

View File

@@ -0,0 +1,3 @@
{%- if 'tex' in node.plainContent -%}
{{ renderNode(node.value) }}
{%- endif -%}