Hi! A new Xinclude approach is now available for review. It can be found into the installation sections of the kernel pages, boot in bootable and reboot chapters.
I will wait comments and complaints before to propagate it to the rest of the book. That work as follow: .- Each text block that will be included into other file(s) must have an os="some_string" attribute. "some_string" can be any string. That will allow us to know that some block is included to other file(s) when it will need to be edited or removed. I chosse the "os" attribute because is the most short one, don't have an special use in the stylesheets, and can be defined as an acronym for "Outside Sourced." Example 1: ==chapter/common/package.xml== <sect1> <para os="abc">Block to be included into other file.</para> <para>Block not included anywhere.</para> <para os="123">Another block to be included into other file.</para> </sect1> ==== .- The "xpointer" attribute of the "xi:include" tag match the exact block that have the defined string value in the "os" attribute, regardless where is placed the requested block into the target file, making the Xinclude stuff possition-independant. Example 2: ==chapter/arch/package.xml== <sect1> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../common/package.xml" xpointer="xpointer(//[EMAIL PROTECTED]'abc'])"/> <para>Block not included from/to anywhere.</para> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../common/package.xml" xpointer="xpointer(//[EMAIL PROTECTED]'123'])"/> </sect1> ===== .- The "os" attribute is propagated also. That meant that we can point to text that was also imported on the target file. This will allow us to keep each arch book more self-contained. Example 3: ==other-chapter/arch/package.xml== <sect1> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../../chapter/arch/package.xml" xpointer="xpointer(//[EMAIL PROTECTED]'abc'])"/> <para>Block not included from/to anywhere.</para> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../../chapter/arch/package.xml" xpointer="xpointer(//[EMAIL PROTECTED]'123'])"/> </sect1> ===== .- To make edition changes isn't hard. To add a new block or to remove a non-exported one in a file don't have impact on other files. If the removal (full block deletion) or no more inclusion (removing only the "os" attribute) of a previously exported block is required, "make validate" will say what other files must be fixed also (or you can to grep the files for the "os" string value). Lastly, if for example a change in the "arch" stuff implies that the "123" block can't be included anymore from "common" to "arch", will be enought fixing "chapter/arch/package.xml" (Example 2) and, if suitable, removing the "os" attribute from "chapter/common/package.xml" (Example 1), remaining "other-chapter/arch/package.xml" (Example 3) untouched. -- Manuel Canales Esparcia Usuario de LFS nÂș2886: http://www.linuxfromscratch.org LFS en castellano: http://www.escomposlinux.org/lfs-es http://www.lfs-es.com TLDP-ES: http://es.tldp.org -- http://linuxfromscratch.org/mailman/listinfo/lfs-dev FAQ: http://www.linuxfromscratch.org/faq/ Unsubscribe: See the above information page