Files
wp-agentic-writer/vendor/phpdocumentor/guides/resources/config/guides.php
Dwindi Ramadhana 690991c526 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.
2026-06-17 05:27:58 +07:00

264 lines
11 KiB
PHP

<?php
declare(strict_types=1);
use League\Tactician\CommandBus;
use phpDocumentor\Guides\Compiler\Compiler;
use phpDocumentor\Guides\Compiler\CompilerPass;
use phpDocumentor\Guides\Compiler\DocumentNodeTraverser;
use phpDocumentor\Guides\Compiler\NodeTransformer;
use phpDocumentor\Guides\Compiler\NodeTransformers\CustomNodeTransformerFactory;
use phpDocumentor\Guides\Compiler\NodeTransformers\MenuNodeTransformers\InternalMenuEntryNodeTransformer;
use phpDocumentor\Guides\Compiler\NodeTransformers\NodeTransformerFactory;
use phpDocumentor\Guides\Compiler\NodeTransformers\RawNodeEscapeTransformer;
use phpDocumentor\Guides\Event\PostProjectNodeCreated;
use phpDocumentor\Guides\EventListener\LoadSettingsFromComposer;
use phpDocumentor\Guides\NodeRenderers\Html\BreadCrumbNodeRenderer;
use phpDocumentor\Guides\NodeRenderers\Html\DocumentNodeRenderer;
use phpDocumentor\Guides\NodeRenderers\Html\MenuEntryRenderer;
use phpDocumentor\Guides\NodeRenderers\Html\MenuNodeRenderer;
use phpDocumentor\Guides\NodeRenderers\Html\TableNodeRenderer;
use phpDocumentor\Guides\NodeRenderers\OutputAwareDelegatingNodeRenderer;
use phpDocumentor\Guides\Parser;
use phpDocumentor\Guides\ReferenceResolvers\AnchorHyperlinkResolver;
use phpDocumentor\Guides\ReferenceResolvers\AnchorNormalizer;
use phpDocumentor\Guides\ReferenceResolvers\AnchorReferenceResolver;
use phpDocumentor\Guides\ReferenceResolvers\DelegatingReferenceResolver;
use phpDocumentor\Guides\ReferenceResolvers\DocReferenceResolver;
use phpDocumentor\Guides\ReferenceResolvers\DocumentNameResolver;
use phpDocumentor\Guides\ReferenceResolvers\DocumentNameResolverInterface;
use phpDocumentor\Guides\ReferenceResolvers\EmailReferenceResolver;
use phpDocumentor\Guides\ReferenceResolvers\ExternalReferenceResolver;
use phpDocumentor\Guides\ReferenceResolvers\ImageReferenceResolverPreRender;
use phpDocumentor\Guides\ReferenceResolvers\Interlink\ChainedInventoryLinkResolver;
use phpDocumentor\Guides\ReferenceResolvers\Interlink\DefaultInventoryLoader;
use phpDocumentor\Guides\ReferenceResolvers\Interlink\DefaultInventoryRepository;
use phpDocumentor\Guides\ReferenceResolvers\Interlink\InventoryLoader;
use phpDocumentor\Guides\ReferenceResolvers\Interlink\InventoryRepository;
use phpDocumentor\Guides\ReferenceResolvers\Interlink\JsonLoader;
use phpDocumentor\Guides\ReferenceResolvers\InterlinkReferenceResolver;
use phpDocumentor\Guides\ReferenceResolvers\InternalReferenceResolver;
use phpDocumentor\Guides\ReferenceResolvers\PageHyperlinkResolver;
use phpDocumentor\Guides\ReferenceResolvers\ReferenceResolver;
use phpDocumentor\Guides\ReferenceResolvers\ReferenceResolverPreRender;
use phpDocumentor\Guides\ReferenceResolvers\SluggerAnchorNormalizer;
use phpDocumentor\Guides\ReferenceResolvers\TitleReferenceResolver;
use phpDocumentor\Guides\Renderer\HtmlRenderer;
use phpDocumentor\Guides\Renderer\InMemoryRendererFactory;
use phpDocumentor\Guides\Renderer\InterlinkObjectsRenderer;
use phpDocumentor\Guides\Renderer\LatexRenderer;
use phpDocumentor\Guides\Renderer\TypeRendererFactory;
use phpDocumentor\Guides\Renderer\UrlGenerator\AbsoluteUrlGenerator;
use phpDocumentor\Guides\Renderer\UrlGenerator\AbstractUrlGenerator;
use phpDocumentor\Guides\Renderer\UrlGenerator\ConfigurableUrlGenerator;
use phpDocumentor\Guides\Renderer\UrlGenerator\RelativeUrlGenerator;
use phpDocumentor\Guides\Renderer\UrlGenerator\UrlGeneratorInterface;
use phpDocumentor\Guides\Settings\ComposerSettingsLoader;
use phpDocumentor\Guides\Settings\SettingsManager;
use phpDocumentor\Guides\TemplateRenderer;
use phpDocumentor\Guides\Twig\AssetsExtension;
use phpDocumentor\Guides\Twig\EnvironmentBuilder;
use phpDocumentor\Guides\Twig\GlobalMenuExtension;
use phpDocumentor\Guides\Twig\Theme\ThemeManager;
use phpDocumentor\Guides\Twig\TrimFilesystemLoader;
use phpDocumentor\Guides\Twig\TwigTemplateRenderer;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symfony\Component\DependencyInjection\Reference;
use Symfony\Component\HtmlSanitizer\HtmlSanitizerConfig;
use Symfony\Component\HttpClient\HttpClient;
use Symfony\Contracts\HttpClient\HttpClientInterface;
use Twig\Loader\FilesystemLoader;
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->parameters()
->set('phpdoc.guides.base_template_paths', [__DIR__ . '/../../../guides/resources/template/html'])
->set('phpdoc.guides.interlink.default_repository.enabled', true);
$container->services()
->defaults()
->autowire()
->autoconfigure()
->instanceof(CompilerPass::class)
->tag('phpdoc.guides.compiler.passes')
->instanceof(NodeTransformer::class)
->tag('phpdoc.guides.compiler.nodeTransformers')
->instanceof(ReferenceResolver::class)
->tag('phpdoc.guides.reference_resolver')
->load(
'phpDocumentor\\Guides\\Compiler\\NodeTransformers\\',
'../../src/Compiler/NodeTransformers/*Transformer.php',
)
->load(
'phpDocumentor\\Guides\\Compiler\\NodeTransformers\\MenuNodeTransformers\\',
'../../src/Compiler/NodeTransformers/MenuNodeTransformers/*Transformer.php',
)
->load(
'phpDocumentor\\Guides\\Compiler\\Passes\\',
'../../src/Compiler/Passes/*Pass.php',
)
->set(InternalMenuEntryNodeTransformer::class)
->tag('phpdoc.guides.compiler.nodeTransformers')
->set(RawNodeEscapeTransformer::class)
->arg('$escapeRawNodes', param('phpdoc.guides.raw_node.escape'))
->arg('$htmlSanitizerConfig', service('phpdoc.guides.raw_node.sanitizer.default'))
->set(AbsoluteUrlGenerator::class)
->set(RelativeUrlGenerator::class)
->set(UrlGeneratorInterface::class, ConfigurableUrlGenerator::class)
->set(DocumentNameResolverInterface::class, DocumentNameResolver::class)
->set(Parser::class)
->arg('$parserStrategies', tagged_iterator('phpdoc.guides.parser.markupLanguageParser'))
->set(Compiler::class)
->arg('$passes', tagged_iterator('phpdoc.guides.compiler.passes'))
->set(NodeTransformerFactory::class, CustomNodeTransformerFactory::class)
->arg('$transformers', tagged_iterator('phpdoc.guides.compiler.nodeTransformers'))
->set(SettingsManager::class)
->set(DocumentNodeTraverser::class)
->set(DefaultInventoryRepository::class)
->arg('$inventoryConfigs', param('phpdoc.guides.inventories'))
->arg('$enabled', param('phpdoc.guides.interlink.default_repository.enabled'))
->tag('phpdoc.guides.interlink_resolver')
->set(InventoryRepository::class, ChainedInventoryLinkResolver::class)
->arg('$repositories', tagged_iterator('phpdoc.guides.interlink_resolver'))
->set(InventoryLoader::class, DefaultInventoryLoader::class)
->set(JsonLoader::class)
->set(HttpClientInterface::class)
->factory([HttpClient::class, 'create'])
->set(AbstractUrlGenerator::class)
->set(ExternalReferenceResolver::class)
->set(EmailReferenceResolver::class)
->set(AnchorHyperlinkResolver::class)
->set(PageHyperlinkResolver::class)
->set(AnchorReferenceResolver::class)
->set(TitleReferenceResolver::class)
->set(InternalReferenceResolver::class)
->set(DocReferenceResolver::class)
->set(InterlinkReferenceResolver::class)
->set(DelegatingReferenceResolver::class)
->arg('$resolvers', tagged_iterator('phpdoc.guides.reference_resolver', defaultPriorityMethod: 'getPriority'))
->set(HtmlRenderer::class)
->tag(
'phpdoc.renderer.typerenderer',
[
'noderender_tag' => 'phpdoc.guides.noderenderer.html',
'format' => 'html',
],
)
->args(
['$commandBus' => service(CommandBus::class)],
)
->set(LatexRenderer::class)
->tag(
'phpdoc.renderer.typerenderer',
[
'noderender_tag' => 'phpdoc.guides.noderenderer.tex',
'format' => 'tex',
],
)
->set(InterlinkObjectsRenderer::class)
->tag(
'phpdoc.renderer.typerenderer',
['format' => 'interlink'],
)
->set(DocumentNodeRenderer::class)
->tag('phpdoc.guides.noderenderer.html')
->set(TableNodeRenderer::class)
->tag('phpdoc.guides.noderenderer.html')
->set(MenuNodeRenderer::class)
->tag('phpdoc.guides.noderenderer.html')
->set(MenuEntryRenderer::class)
->tag('phpdoc.guides.noderenderer.html')
->set(BreadCrumbNodeRenderer::class)
->tag('phpdoc.guides.noderenderer.html')
->set(ReferenceResolverPreRender::class)
->tag('phpdoc.guides.prerenderer')
->set(ImageReferenceResolverPreRender::class)
->tag('phpdoc.guides.prerenderer')
->set(InMemoryRendererFactory::class)
->arg('$renderSets', tagged_iterator('phpdoc.renderer.typerenderer', 'format'))
->alias(TypeRendererFactory::class, InMemoryRendererFactory::class)
->set(SluggerAnchorNormalizer::class)
->alias(AnchorNormalizer::class, SluggerAnchorNormalizer::class)
->set('phpdoc.guides.output_node_renderer', OutputAwareDelegatingNodeRenderer::class)
->arg('$nodeRenderers', tagged_iterator('phpdoc.guides.output_node_renderer', 'format'))
->set(AssetsExtension::class)
->arg('$nodeRenderer', service('phpdoc.guides.output_node_renderer'))
->tag('twig.extension')
->autowire()
->set(GlobalMenuExtension::class)
->arg('$nodeRenderer', service('phpdoc.guides.output_node_renderer'))
->tag('twig.extension')
->autowire()
->set(ThemeManager::class)
->arg('$filesystemLoader', service(FilesystemLoader::class))
->arg(
'$defaultPaths',
param('phpdoc.guides.base_template_paths'),
)
->set(TrimFilesystemLoader::class)
->arg(
'$paths',
param('phpdoc.guides.base_template_paths'),
)
->alias(FilesystemLoader::class, TrimFilesystemLoader::class)
->set(LoadSettingsFromComposer::class)
->tag('event_listener', ['event' => PostProjectNodeCreated::class])
->set(ComposerSettingsLoader::class)
->set(EnvironmentBuilder::class)
->arg('$extensions', tagged_iterator('twig.extension'))
->arg('$themeManager', service(ThemeManager::class))
->set(TemplateRenderer::class, TwigTemplateRenderer::class)
->arg('$environmentBuilder', new Reference(EnvironmentBuilder::class))
->set('phpdoc.guides.raw_node.sanitizer.default', HtmlSanitizerConfig::class)
->call('allowSafeElements', [], true);
};