xslTNG icon indicating copy to clipboard operation
xslTNG copied to clipboard

Non-normalized URI leads to invalid persistent TOC

Open fsteimke opened this issue 11 months ago • 0 comments

This is my use-case: i have DocBook sources in a directory file:/mnt/shared/xnachweis/src. I want chunked output not below, but next to the sources in directory file:/mnt/shared/xnachweis/chunk.

From the command line, i would set

$chunk-output-base-uri =  file:/mnt/shared/xnachweis/chunk/

When i use xslTNG within Oxygen, it is convenient to use a so called Editor variable which references the directory of the current source file and navigate from there. Resolving this variable leads to

$chunk-output-base-uri =  file:/mnt/shared/xnachweis/src/../chunk/

which references the same directory as before. Chunk files will be in the correct Directory, but the persistent ToC will not work. The reason is, that in mode mp:copy-patch-toc in chunk-output.xsl the prefix of $vp:chunk-output-base-uri is compared with the prefix of another URI, and the unnecessary down-up fragment /src/.. causes comparison to fail.

$vp:chunk-output-base-uri is a normalized value of $chunk-output-base-uri, but it is not normalized enough. It should also be shortened, so that file:/mnt/shared/xnachweis/src/..chunk/ becomes file:/mnt/shared/xnachweis/chunk/. I will try to provide a PR.

Greetings, Frank Steimke

fsteimke avatar Jan 08 '25 05:01 fsteimke