From c1051e84012bfb2155c66a39b30d636478dbfdd8 Mon Sep 17 00:00:00 2001 From: haszi Date: Wed, 19 Nov 2025 12:51:43 +0100 Subject: [PATCH] Generate full index for partial rendering to avoid out of tree xref elements being swallowed by the renderer. --- render.php | 49 +++++++++++++++++++++++-------------------------- 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/render.php b/render.php index f7b3e3e3..dbd451fa 100644 --- a/render.php +++ b/render.php @@ -81,30 +81,6 @@ exit(0); } -function make_reader(Config $config, OutputHandler $outputHandler): Reader { - //Partial Rendering - $idlist = $config->renderIds + $config->skipIds; - if (!empty($idlist)) { - $outputHandler->v("Running partial build", VERBOSE_RENDER_STYLE); - - $parents = []; - if ($config->indexCache) { - $parents = $config->indexCache->getParents($config->renderIds); - } - - $reader = new Reader_Partial( - $outputHandler, - $config->renderIds, - $config->skipIds, - $parents, - ); - } else { - $outputHandler->v("Running full build", VERBOSE_RENDER_STYLE); - $reader = new Reader($outputHandler); - } - return $reader; -} - $render = new Render(); // Set reader LIBXML options @@ -135,7 +111,8 @@ function make_reader(Config $config, OutputHandler $outputHandler): Reader { $render->attach($format); - $reader = make_reader($config, $outputHandler); + $outputHandler->v("Running full build", VERBOSE_RENDER_STYLE); + $reader = new Reader($outputHandler); $reader->open($config->xmlFile, NULL, $readerOpts); $render->execute($reader); @@ -160,8 +137,28 @@ function make_reader(Config $config, OutputHandler $outputHandler): Reader { } } +//Partial Rendering +$idlist = $config->renderIds + $config->skipIds; +if (!empty($idlist)) { + $outputHandler->v("Running partial build", VERBOSE_RENDER_STYLE); + + $parents = []; + if ($config->indexCache) { + $parents = $config->indexCache->getParents($config->renderIds); + } + + $reader = new Reader_Partial( + $outputHandler, + $config->renderIds, + $config->skipIds, + $parents, + ); +} else { + $outputHandler->v("Running full build", VERBOSE_RENDER_STYLE); + $reader = new Reader($outputHandler); +} + // Render formats -$reader = make_reader($config, $outputHandler); $reader->open($config->xmlFile, NULL, $readerOpts); foreach($render as $format) { $format->notify(Render::VERBOSE, true);