When the stylesheets create anchors on elements that don't have an id attribute, they use some internal mechanism to make one up. With the DSSSL stylesheets, those are the things like AEN112787. With the new XSL stylesheets, you similarly get things like idm21497, but unlike the DSSSL way, those are not consistent across builds, because they are made from some internal memory locations. That makes it hard to diff build results without resorting to a bunch of tricks that we have had to use recently to manage the toolchain transition. And such links cannot be shared, because they change on the next build.
I found that the setting <xsl:param name="generate.consistent.ids" select="1"/> also enables the XSL stylesheets to produce anchors that are consistent across builds. I would have expected that to increase the build time, but in my testing the penalty is barely noticeable. So I would like to make this change in PG11 and also PG10. Patch attached. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
From c03b0f5657d64b457e844a7a6dc49c7a6a7681ae Mon Sep 17 00:00:00 2001 From: Peter Eisentraut <pete...@gmx.net> Date: Fri, 1 Dec 2017 13:30:21 -0500 Subject: [PATCH] doc: Turn on generate.consistent.ids parameter --- doc/src/sgml/stylesheet-common.xsl | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/src/sgml/stylesheet-common.xsl b/doc/src/sgml/stylesheet-common.xsl index 658a5ac5e1..6d26e7e5c9 100644 --- a/doc/src/sgml/stylesheet-common.xsl +++ b/doc/src/sgml/stylesheet-common.xsl @@ -36,6 +36,7 @@ <xsl:param name="refentry.generate.title" select="1"></xsl:param> <xsl:param name="refentry.xref.manvolnum" select="0"/> <xsl:param name="formal.procedures" select="0"></xsl:param> +<xsl:param name="generate.consistent.ids" select="1"/> <xsl:param name="punct.honorific" select="''"></xsl:param> <xsl:param name="variablelist.term.break.after">1</xsl:param> <xsl:param name="variablelist.term.separator"></xsl:param> -- 2.15.0