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); };