Skip to content

Commit a413990

Browse files
authored
Merge pull request #654 from phpDocumentor/feature/latex-rendering
!!![FEATURE] enable basic latex rendering
2 parents 10da959 + 19a4e8b commit a413990

29 files changed

+370
-76
lines changed

packages/guides/resources/config/command_bus.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
use phpDocumentor\Guides\Handlers\RenderDocumentCommand;
2020
use phpDocumentor\Guides\Handlers\RenderDocumentHandler;
2121
use phpDocumentor\Guides\Handlers\RenderHandler;
22-
use phpDocumentor\Guides\NodeRenderers\DelegatingNodeRenderer;
2322
use Psr\EventDispatcher\EventDispatcherInterface;
2423
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
2524

@@ -46,7 +45,7 @@
4645

4746
->set(RenderDocumentHandler::class)
4847
->tag('phpdoc.guides.command', ['command' => RenderDocumentCommand::class])
49-
->arg('$renderer', service(DelegatingNodeRenderer::class))
48+
->arg('$renderer', service('phpdoc.guides.output_node_renderer'))
5049
->arg('$eventDispatcher', service(EventDispatcherInterface::class))
5150

5251
->set(CommandBus::class)

packages/guides/resources/config/guides.php

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,13 @@
1212
use phpDocumentor\Guides\Interlink\InventoryLoader;
1313
use phpDocumentor\Guides\Interlink\InventoryRepository;
1414
use phpDocumentor\Guides\Interlink\JsonLoader;
15-
use phpDocumentor\Guides\NodeRenderers\DefaultNodeRenderer;
16-
use phpDocumentor\Guides\NodeRenderers\DelegatingNodeRenderer;
1715
use phpDocumentor\Guides\NodeRenderers\Html\BreadCrumbNodeRenderer;
1816
use phpDocumentor\Guides\NodeRenderers\Html\DocumentNodeRenderer;
1917
use phpDocumentor\Guides\NodeRenderers\Html\MenuEntryRenderer;
2018
use phpDocumentor\Guides\NodeRenderers\Html\MenuNodeRenderer;
2119
use phpDocumentor\Guides\NodeRenderers\Html\TableNodeRenderer;
22-
use phpDocumentor\Guides\NodeRenderers\InMemoryNodeRendererFactory;
23-
use phpDocumentor\Guides\NodeRenderers\NodeRendererFactory;
2420
use phpDocumentor\Guides\NodeRenderers\NodeRendererFactoryAware;
25-
use phpDocumentor\Guides\NodeRenderers\PreRenderers\PreNodeRendererFactory;
21+
use phpDocumentor\Guides\NodeRenderers\OutputAwareDelegatingNodeRenderer;
2622
use phpDocumentor\Guides\Parser;
2723
use phpDocumentor\Guides\ReferenceResolvers\AnchorReducer;
2824
use phpDocumentor\Guides\ReferenceResolvers\AnchorReferenceResolver;
@@ -145,18 +141,30 @@
145141
->arg('$resolvers', tagged_iterator('phpdoc.guides.reference_resolver', defaultPriorityMethod: 'getPriority'))
146142

147143
->set(HtmlRenderer::class)
148-
->tag('phpdoc.renderer.typerenderer')
144+
->tag(
145+
'phpdoc.renderer.typerenderer',
146+
[
147+
'noderender_tag' => 'phpdoc.guides.noderenderer.html',
148+
'format' => 'html',
149+
],
150+
)
149151
->args(
150152
['$commandBus' => service(CommandBus::class)],
151153
)
152154
->set(LatexRenderer::class)
153-
->tag('phpdoc.renderer.typerenderer')
154-
->args(
155-
['$commandBus' => service(CommandBus::class)],
155+
->tag(
156+
'phpdoc.renderer.typerenderer',
157+
[
158+
'noderender_tag' => 'phpdoc.guides.noderenderer.tex',
159+
'format' => 'tex',
160+
],
156161
)
157162

158163
->set(InterlinkObjectsRenderer::class)
159-
->tag('phpdoc.renderer.typerenderer')
164+
->tag(
165+
'phpdoc.renderer.typerenderer',
166+
['format' => 'interlink'],
167+
)
160168

161169
->set(DocumentNodeRenderer::class)
162170
->tag('phpdoc.guides.noderenderer.html')
@@ -169,33 +177,21 @@
169177
->set(BreadCrumbNodeRenderer::class)
170178
->tag('phpdoc.guides.noderenderer.html')
171179

172-
->set(DefaultNodeRenderer::class)
173-
174-
->set(InMemoryNodeRendererFactory::class)
175-
->args([
176-
'$nodeRenderers' => tagged_iterator('phpdoc.guides.noderenderer.html'),
177-
'$defaultNodeRenderer' => new Reference(DefaultNodeRenderer::class),
178-
])
179-
->alias(NodeRendererFactory::class, InMemoryNodeRendererFactory::class)
180-
181-
->set(PreNodeRendererFactory::class)
182-
->decorate(NodeRendererFactory::class)
183-
->arg('$innerFactory', service('.inner'))
184-
->arg('$preRenderers', tagged_iterator('phpdoc.guides.prerenderer'))
185-
186180
->set(ReferenceResolverPreRender::class)
187181
->tag('phpdoc.guides.prerenderer')
188182

189183
->set(InMemoryRendererFactory::class)
190-
->arg('$renderSets', tagged_iterator('phpdoc.renderer.typerenderer'))
184+
->arg('$renderSets', tagged_iterator('phpdoc.renderer.typerenderer', 'format'))
191185
->alias(TypeRendererFactory::class, InMemoryRendererFactory::class)
192186

193187
->set(SluggerAnchorReducer::class)
194188
->alias(AnchorReducer::class, SluggerAnchorReducer::class)
195189

190+
->set('phpdoc.guides.output_node_renderer', OutputAwareDelegatingNodeRenderer::class)
191+
->arg('$nodeRenderers', tagged_iterator('phpdoc.guides.output_node_renderer', 'format'))
196192

197193
->set(AssetsExtension::class)
198-
->arg('$nodeRenderer', service(DelegatingNodeRenderer::class))
194+
->arg('$nodeRenderer', service('phpdoc.guides.output_node_renderer'))
199195
->tag('twig.extension')
200196
->autowire()
201197

0 commit comments

Comments
 (0)