Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gap-autodoc for openSUSE:Factory checked in at 2025-12-20 21:45:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gap-autodoc (Old) and /work/SRC/openSUSE:Factory/.gap-autodoc.new.1928 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gap-autodoc" Sat Dec 20 21:45:48 2025 rev:4 rq:1323702 version:2025.12.19 Changes: -------- --- /work/SRC/openSUSE:Factory/gap-autodoc/gap-autodoc.changes 2025-10-21 11:15:49.585295232 +0200 +++ /work/SRC/openSUSE:Factory/.gap-autodoc.new.1928/gap-autodoc.changes 2025-12-20 21:47:10.004861876 +0100 @@ -1,0 +2,14 @@ +Fri Dec 19 16:36:52 UTC 2025 - Jan Engelhardt <[email protected]> + +- Update to release 2025.12.19 + * Don't replace empty lines in `@BeginCode` blocks by `<P/>`. + * Fix XML header in generated files (it had a syntax error, which + somehow also slips by GAPDoc; so it caused no problems in + practice, but the resulting XML was strictly speaking invalid). + * Predefine entities `VERSION`, `RELEASEYEAR`, `RELEASEDATE`. + * Allow specifying scaffold settings *simultaneously* in + `PackageInfo.g` and `makedoc.g`; the records are merged, with + values from `makedoc.g` taken precedence if e.g. the same + entity is defined in both places. + +------------------------------------------------------------------- Old: ---- AutoDoc-2025.10.16.tar.gz New: ---- AutoDoc-2025.12.19.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gap-autodoc.spec ++++++ --- /var/tmp/diff_new_pack.O1yltF/_old 2025-12-20 21:47:10.948900952 +0100 +++ /var/tmp/diff_new_pack.O1yltF/_new 2025-12-20 21:47:10.948900952 +0100 @@ -17,12 +17,14 @@ Name: gap-autodoc -Version: 2025.10.16 +Version: 2025.12.19 Release: 0 Summary: GAP: Tools for generating automatic GAPDoc documentations License: GPL-2.0-only Group: Productivity/Scientific/Math -URL: http://gap-packages.github.io/AutoDoc/ +URL: https://gap-packages.github.io/AutoDoc/ +#Git-Clone: https://github.com/gap-packages/AutoDoc/ +#Changelog: <source0>/CHANGES.md Source: https://github.com/gap-packages/AutoDoc/releases/download/v%version/AutoDoc-%version.tar.gz BuildRequires: fdupes BuildRequires: gap-rpm-devel ++++++ AutoDoc-2025.10.16.tar.gz -> AutoDoc-2025.12.19.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/CHANGES.md new/AutoDoc-2025.12.19/CHANGES.md --- old/AutoDoc-2025.10.16/CHANGES.md 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/CHANGES.md 2025-12-19 17:30:41.000000000 +0100 @@ -1,5 +1,15 @@ This file describes changes in the AutoDoc package. +2025.12.19 + - Don't replace empty lines in `@BeginCode` blocks by `<P/>` + - Fix XML header in generated files (it had a syntax error, which somehow also + slips by GAPDoc; so it caused no problems in practice, but the resulting XML + was strictly speaking invalid) + - Predefine entities `VERSION`, `RELEASEYEAR`, `RELEASEDATE` + - Allow specifying scaffold settings *simultaneously* in `PackageInfo.g` + and `makedoc.g`; the records are merged, with values from `makedoc.g` + taken precedence if e.g. the same entity is defined in both places + 2025.10.16 - Make handling `Date` in `PackageInfo.g` more strict (previously some malformed variants were accepted to deal with very old packages, but by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/PackageInfo.g new/AutoDoc-2025.12.19/PackageInfo.g --- old/AutoDoc-2025.10.16/PackageInfo.g 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/PackageInfo.g 2025-12-19 17:30:41.000000000 +0100 @@ -10,7 +10,7 @@ PackageName := "AutoDoc", Subtitle := "Generate documentation from GAP source code", -Version := "2025.10.16", +Version := "2025.12.19", Date := ~.Version{[ 1 .. 10 ]}, Date := Concatenation( ~.Date{[ 9, 10 ]}, "/", ~.Date{[ 6, 7 ]}, "/", ~.Date{[ 1 .. 4 ]} ), @@ -132,14 +132,12 @@ AutoDoc := rec( entities := rec( - VERSION := ~.Version, - DATE := ~.Date, io := "<Package>io</Package>", PackageName := "<Package>PackageName</Package>", ), TitlePage := rec( Copyright := Concatenation( - "©right; 2012-2022 by Sebastian Gutsche and Max Horn<P/>\n\n", + "©right; 2012-2025 by Sebastian Gutsche and Max Horn<P/>\n\n", "This package may be distributed under the terms and conditions ", "of the GNU Public License Version 2 or (at your option) any later version.\n" ), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/doc/AutoDoc.tex new/AutoDoc-2025.12.19/doc/AutoDoc.tex --- old/AutoDoc-2025.10.16/doc/AutoDoc.tex 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/doc/AutoDoc.tex 2025-12-19 17:30:41.000000000 +0100 @@ -101,8 +101,8 @@ {\Huge \textbf{ Generate documentation from \textsf{GAP} source code \mbox{}}}\\ \vfill -{\Huge 2025.10.16 \mbox{}}\\[1cm] -{ 16 October 2025 \mbox{}}\\[1cm] +{\Huge 2025.12.19 \mbox{}}\\[1cm] +{ 19 December 2025 \mbox{}}\\[1cm] \mbox{}\\[2cm] {\Large \textbf{ Sebastian Gutsche\\ \mbox{}}}\\ @@ -149,7 +149,7 @@ {\small \section*{Copyright} \logpage{[ 0, 0, 2 ]} - {\copyright} 2012\texttt{\symbol{45}}2022 by Sebastian Gutsche and Max Horn + {\copyright} 2012\texttt{\symbol{45}}2025 by Sebastian Gutsche and Max Horn This package may be distributed under the terms and conditions of the GNU Public License Version 2 or (at your option) any later version. \mbox{}}\\[1cm] @@ -310,27 +310,6 @@ LoadPackage( "AutoDoc" ); AutoDoc( ); \end{Verbatim} - In contrast, the \textsf{RingsForHomalg} package currently uses essentially the following code in its \texttt{makedoc.g} file to achieve the same result: -\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=] - LoadPackage( "GAPDoc" ); - SetGapDocLaTeXOptions( "utf8" ); - bib := ParseBibFiles( "doc/RingsForHomalg.bib" ); - WriteBibXMLextFile( "doc/RingsForHomalgBib.xml", bib ); - list := [ - "../gap/RingsForHomalg.gd", - "../gap/RingsForHomalg.gi", - "../gap/Singular.gi", - "../gap/SingularBasic.gi", - "../examples/RingConstructionsExternalGAP.g", - "../examples/RingConstructionsSingular.g", - "../examples/RingConstructionsMAGMA.g", - "../examples/RingConstructionsMacaulay2.g", - "../examples/RingConstructionsSage.g", - "../examples/RingConstructionsMaple.g", - ]; - MakeGAPDocDoc( "doc", "RingsForHomalg", list, "RingsForHomalg" ); - GAPDocManualLab( "RingsForHomalg" ); -\end{Verbatim} Note that in particular, you do not have to worry about keeping a list of your implementation files up\texttt{\symbol{45}}to\texttt{\symbol{45}}date. @@ -1339,6 +1318,16 @@ \end{Verbatim} This allows you to write ``\&SomePackage;'' and ``\&RELEASEYEAR;'' in your documentation, which will be replaced by respective values specified in the entities definition. + + Note that \textsf{AutoDoc} predefines several entities: +\begin{description} +\item[{\mbox{\texttt{\mdseries\slshape VERSION}}}] Set to the \texttt{Version} field your package info record. +\item[{\mbox{\texttt{\mdseries\slshape RELEASEYEAR}}}] Set to a string containing the release year, as derived from the \texttt{Date} field your package info record. +\item[{\mbox{\texttt{\mdseries\slshape RELEASEDATE}}}] Derived from the \texttt{Date} field your package info record. +\item[{\mbox{\texttt{\mdseries\slshape SomePackage}}}] The precise name of this entity is derived from the \texttt{PackageName} field your package info record. Note that it is case sensitive. The content is +defined as suggested by the example above. +\end{description} + \item[{\mbox{\texttt{\mdseries\slshape TitlePage}}}] A record whose entries are used to embellish the generated title page for the package manual with extra information, such as a copyright statement or acknowledgments. To this end, the names of the record components are used as diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/doc/AutoDoc.xml new/AutoDoc-2025.12.19/doc/AutoDoc.xml --- old/AutoDoc-2025.10.16/doc/AutoDoc.xml 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/doc/AutoDoc.xml 2025-12-19 17:30:41.000000000 +0100 @@ -3,7 +3,7 @@ <!-- This is an automatically generated file. --> <!DOCTYPE Book SYSTEM "gapdoc.dtd" [ - [<#Include SYSTEM "_entities.xml"> + <#Include SYSTEM "_entities.xml"> ] > <Book Name="AutoDoc"> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/doc/Tutorials.xml new/AutoDoc-2025.12.19/doc/Tutorials.xml --- old/AutoDoc-2025.10.16/doc/Tutorials.xml 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/doc/Tutorials.xml 2025-12-19 17:30:41.000000000 +0100 @@ -225,28 +225,6 @@ LoadPackage( "AutoDoc" ); AutoDoc( ); </Listing> -In contrast, the <Package>RingsForHomalg</Package> package currently uses -essentially the following code in its <F>makedoc.g</F> file to achieve the same result: -<Listing> -LoadPackage( "GAPDoc" ); -SetGapDocLaTeXOptions( "utf8" ); -bib := ParseBibFiles( "doc/RingsForHomalg.bib" ); -WriteBibXMLextFile( "doc/RingsForHomalgBib.xml", bib ); -list := [ - "../gap/RingsForHomalg.gd", - "../gap/RingsForHomalg.gi", - "../gap/Singular.gi", - "../gap/SingularBasic.gi", - "../examples/RingConstructionsExternalGAP.g", - "../examples/RingConstructionsSingular.g", - "../examples/RingConstructionsMAGMA.g", - "../examples/RingConstructionsMacaulay2.g", - "../examples/RingConstructionsSage.g", - "../examples/RingConstructionsMaple.g", - ]; -MakeGAPDocDoc( "doc", "RingsForHomalg", list, "RingsForHomalg" ); -GAPDocManualLab( "RingsForHomalg" ); -</Listing> Note that in particular, you do not have to worry about keeping a list of your implementation files up-to-date. <P/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/doc/_Chapter_AutoDoc.xml new/AutoDoc-2025.12.19/doc/_Chapter_AutoDoc.xml --- old/AutoDoc-2025.10.16/doc/_Chapter_AutoDoc.xml 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/doc/_Chapter_AutoDoc.xml 2025-12-19 17:30:41.000000000 +0100 @@ -152,6 +152,24 @@ This allows you to write <Q>&SomePackage;</Q> and <Q>&RELEASEYEAR;</Q> in your documentation, which will be replaced by respective values specified in the entities definition. + <P/> + Note that &AutoDoc; predefines several entities: + <List> + <Mark><A>VERSION</A></Mark> + <Item>Set to the <C>Version</C> field your package info record.</Item> + <Mark><A>RELEASEYEAR</A></Mark> + <Item>Set to a string containing the release year, as derived + from the <C>Date</C> field your package info record.</Item> + <Mark><A>RELEASEDATE</A></Mark> + <Item>Derived from the <C>Date</C> field your package info record.</Item> + <Mark><A>SomePackage</A></Mark> + <Item> + The precise name of this entity is derived from the + <C>PackageName</C> field your package info record. Note + that it is case sensitive. The content is defined as + suggested by the example above. + </Item> + </List> </Item> <Mark><A>TitlePage</A></Mark> <Item> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/doc/_entities.xml new/AutoDoc-2025.12.19/doc/_entities.xml --- old/AutoDoc-2025.10.16/doc/_entities.xml 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/doc/_entities.xml 2025-12-19 17:30:41.000000000 +0100 @@ -1,5 +1,6 @@ <!ENTITY PackageName '<Package>PackageName</Package>'> <!ENTITY AutoDoc '<Package>AutoDoc</Package>'> -<!ENTITY VERSION '2025.10.16'> -<!ENTITY DATE '16/10/2025'> <!ENTITY io '<Package>io</Package>'> +<!ENTITY VERSION '2025.12.19'> +<!ENTITY RELEASEDATE '19 December 2025'> +<!ENTITY RELEASEYEAR '2025'> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/doc/chap0.html new/AutoDoc-2025.12.19/doc/chap0.html --- old/AutoDoc-2025.10.16/doc/chap0.html 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/doc/chap0.html 2025-12-19 17:30:41.000000000 +0100 @@ -29,10 +29,10 @@ <h2>Generate documentation from <strong class="pkg">GAP</strong> source code</h2> <p> - 2025.10.16</p> + 2025.12.19</p> <p> - 16 October 2025 + 19 December 2025 </p> </div> @@ -64,7 +64,7 @@ <p><a id="X81488B807F2A1CF1" name="X81488B807F2A1CF1"></a></p> <h3>Copyright</h3> -<p>© 2012-2022 by Sebastian Gutsche and Max Horn</p> +<p>© 2012-2025 by Sebastian Gutsche and Max Horn</p> <p>This package may be distributed under the terms and conditions of the GNU Public License Version 2 or (at your option) any later version.</p> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/doc/chap0.txt new/AutoDoc-2025.12.19/doc/chap0.txt --- old/AutoDoc-2025.10.16/doc/chap0.txt 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/doc/chap0.txt 2025-12-19 17:30:41.000000000 +0100 @@ -6,10 +6,10 @@ [1X Generate documentation from [5XGAP[105X source code [101X - 2025.10.16 + 2025.12.19 - 16 October 2025 + 19 December 2025 Sebastian Gutsche @@ -47,7 +47,7 @@ ------------------------------------------------------- [1XCopyright[101X - [33X[0;0Y© 2012-2022 by Sebastian Gutsche and Max Horn[133X + [33X[0;0Y© 2012-2025 by Sebastian Gutsche and Max Horn[133X [33X[0;0YThis package may be distributed under the terms and conditions of the GNU Public License Version 2 or (at your option) any later version.[133X diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/doc/chap0_mj.html new/AutoDoc-2025.12.19/doc/chap0_mj.html --- old/AutoDoc-2025.10.16/doc/chap0_mj.html 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/doc/chap0_mj.html 2025-12-19 17:30:41.000000000 +0100 @@ -32,10 +32,10 @@ <h2>Generate documentation from <strong class="pkg">GAP</strong> source code</h2> <p> - 2025.10.16</p> + 2025.12.19</p> <p> - 16 October 2025 + 19 December 2025 </p> </div> @@ -67,7 +67,7 @@ <p><a id="X81488B807F2A1CF1" name="X81488B807F2A1CF1"></a></p> <h3>Copyright</h3> -<p>© 2012-2022 by Sebastian Gutsche and Max Horn</p> +<p>© 2012-2025 by Sebastian Gutsche and Max Horn</p> <p>This package may be distributed under the terms and conditions of the GNU Public License Version 2 or (at your option) any later version.</p> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/doc/chap1.html new/AutoDoc-2025.12.19/doc/chap1.html --- old/AutoDoc-2025.10.16/doc/chap1.html 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/doc/chap1.html 2025-12-19 17:30:41.000000000 +0100 @@ -97,7 +97,7 @@ <p>Congratulations, your package now has a minimal working manual. Of course it will be mostly empty for now, but it already should contain some useful information, based on the data in your <code class="file">PackageInfo.g</code>. This includes your package's name, version and description as well as information about its authors. And if you ever change the package data, (e.g. because your email address changed), just re-run the above command to regenerate the two main XML files with the latest information.</p> -<p>Next of course you need to provide actual content (unfortunately, we were not yet able to automate <em>that</em> for you, more research on artificial intelligence is required). To add more content, you have several options: You could add further <strong class="pkg">GAPDoc</strong> XML files containing extra chapters, sections and so on. Or you could use classic <strong class="pkg">GAPDoc</strong> source comments. For details on either, please refer to <a href="/home/runner/gap/pkg/gapdoc/doc/chap4.html#X7A3355C07F57C280"><span class="RefLink">GAPDoc: Distributing a Document into Several Files</span></a>, as well as Section <a href="chap1.html#X7FA614637B807F4D"><span class="RefLink">1.3</span></a> of this manual on how to teach the <code class="func">AutoDoc</code> (<a href="chap4.html#X7CBD8AAF7DCEF352"><span class="RefLink">4.1-1</span></a>) command to include this extra documentation. Or you could use the special documentation facilities <strong class="pkg">AutoDoc</strong> pr ovides (see Section <a href="chap1.html#X87A00EED866E22E8"><span class="RefLink">1.2</span></a>).</p> +<p>Next of course you need to provide actual content (unfortunately, we were not yet able to automate <em>that</em> for you, more research on artificial intelligence is required). To add more content, you have several options: You could add further <strong class="pkg">GAPDoc</strong> XML files containing extra chapters, sections and so on. Or you could use classic <strong class="pkg">GAPDoc</strong> source comments. For details on either, please refer to <a href="../../../pkg/gapdoc/doc/chap4.html#X7A3355C07F57C280"><span class="RefLink">GAPDoc: Distributing a Document into Several Files</span></a>, as well as Section <a href="chap1.html#X7FA614637B807F4D"><span class="RefLink">1.3</span></a> of this manual on how to teach the <code class="func">AutoDoc</code> (<a href="chap4.html#X7CBD8AAF7DCEF352"><span class="RefLink">4.1-1</span></a>) command to include this extra documentation. Or you could use the special documentation facilities <strong class="pkg">AutoDoc</strong> provides ( see Section <a href="chap1.html#X87A00EED866E22E8"><span class="RefLink">1.2</span></a>).</p> <p>You will probably want to re-run the <code class="func">AutoDoc</code> (<a href="chap4.html#X7CBD8AAF7DCEF352"><span class="RefLink">4.1-1</span></a>) command frequently, e.g. whenever you modified your documentation or your <code class="file">PackageInfo.g</code>. To make this more convenient and reproducible, we recommend putting its invocation into a file <code class="file">makedoc.g</code> in your package directory, with content based on the following example:</p> @@ -189,30 +189,6 @@ AutoDoc( ); </pre></div> -<p>In contrast, the <strong class="pkg">RingsForHomalg</strong> package currently uses essentially the following code in its <code class="file">makedoc.g</code> file to achieve the same result:</p> - - -<div class="example"><pre> -LoadPackage( "GAPDoc" ); -SetGapDocLaTeXOptions( "utf8" ); -bib := ParseBibFiles( "doc/RingsForHomalg.bib" ); -WriteBibXMLextFile( "doc/RingsForHomalgBib.xml", bib ); -list := [ - "../gap/RingsForHomalg.gd", - "../gap/RingsForHomalg.gi", - "../gap/Singular.gi", - "../gap/SingularBasic.gi", - "../examples/RingConstructionsExternalGAP.g", - "../examples/RingConstructionsSingular.g", - "../examples/RingConstructionsMAGMA.g", - "../examples/RingConstructionsMacaulay2.g", - "../examples/RingConstructionsSage.g", - "../examples/RingConstructionsMaple.g", - ]; -MakeGAPDocDoc( "doc", "RingsForHomalg", list, "RingsForHomalg" ); -GAPDocManualLab( "RingsForHomalg" ); -</pre></div> - <p>Note that in particular, you do not have to worry about keeping a list of your implementation files up-to-date.</p> <p>But there is more. <strong class="pkg">AutoDoc</strong> can create <code class="file">.tst</code> files from the examples in your manual to test your package. This can be achieved via</p> @@ -223,7 +199,7 @@ AutoDoc( rec( extract_examples := true ) ); </pre></div> -<p>Now files <code class="file">PACKAGENAME01.tst</code>, <code class="file">PACKAGENAME02.tst</code> and so appear in the <code class="file">tst/</code> subdirectory of your package, and can be tested as usual using <code class="func">Test</code> (<a href="/home/runner/gap/doc/ref/chap7.html#X87712F9D8732193C"><span class="RefLink">Reference: Test</span></a>) respectively <code class="func">TestDirectory</code> (<a href="/home/runner/gap/doc/ref/chap7.html#X87AF67528799481F"><span class="RefLink">Reference: TestDirectory</span></a>).</p> +<p>Now files <code class="file">PACKAGENAME01.tst</code>, <code class="file">PACKAGENAME02.tst</code> and so appear in the <code class="file">tst/</code> subdirectory of your package, and can be tested as usual using <code class="func">Test</code> (<a href="../../../doc/ref/chap7.html#X87712F9D8732193C"><span class="RefLink">Reference: Test</span></a>) respectively <code class="func">TestDirectory</code> (<a href="../../../doc/ref/chap7.html#X87AF67528799481F"><span class="RefLink">Reference: TestDirectory</span></a>).</p> <p><a id="X7D0DDF2284F2D24A" name="X7D0DDF2284F2D24A"></a></p> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/doc/chap1.txt new/AutoDoc-2025.12.19/doc/chap1.txt --- old/AutoDoc-2025.10.16/doc/chap1.txt 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/doc/chap1.txt 2025-12-19 17:30:41.000000000 +0100 @@ -184,30 +184,6 @@ [4XAutoDoc( );[104X [4X[32X[104X - [33X[0;0YIn contrast, the [5XRingsForHomalg[105X package currently uses essentially the - following code in its [11Xmakedoc.g[111X file to achieve the same result:[133X - - [4X[32X[104X - [4XLoadPackage( "GAPDoc" );[104X - [4XSetGapDocLaTeXOptions( "utf8" );[104X - [4Xbib := ParseBibFiles( "doc/RingsForHomalg.bib" );[104X - [4XWriteBibXMLextFile( "doc/RingsForHomalgBib.xml", bib );[104X - [4Xlist := [[104X - [4X "../gap/RingsForHomalg.gd",[104X - [4X "../gap/RingsForHomalg.gi",[104X - [4X "../gap/Singular.gi",[104X - [4X "../gap/SingularBasic.gi",[104X - [4X "../examples/RingConstructionsExternalGAP.g",[104X - [4X "../examples/RingConstructionsSingular.g",[104X - [4X "../examples/RingConstructionsMAGMA.g",[104X - [4X "../examples/RingConstructionsMacaulay2.g",[104X - [4X "../examples/RingConstructionsSage.g",[104X - [4X "../examples/RingConstructionsMaple.g",[104X - [4X ];[104X - [4XMakeGAPDocDoc( "doc", "RingsForHomalg", list, "RingsForHomalg" );[104X - [4XGAPDocManualLab( "RingsForHomalg" );[104X - [4X[32X[104X - [33X[0;0YNote that in particular, you do not have to worry about keeping a list of your implementation files up-to-date.[133X diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/doc/chap1_mj.html new/AutoDoc-2025.12.19/doc/chap1_mj.html --- old/AutoDoc-2025.10.16/doc/chap1_mj.html 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/doc/chap1_mj.html 2025-12-19 17:30:41.000000000 +0100 @@ -100,7 +100,7 @@ <p>Congratulations, your package now has a minimal working manual. Of course it will be mostly empty for now, but it already should contain some useful information, based on the data in your <code class="file">PackageInfo.g</code>. This includes your package's name, version and description as well as information about its authors. And if you ever change the package data, (e.g. because your email address changed), just re-run the above command to regenerate the two main XML files with the latest information.</p> -<p>Next of course you need to provide actual content (unfortunately, we were not yet able to automate <em>that</em> for you, more research on artificial intelligence is required). To add more content, you have several options: You could add further <strong class="pkg">GAPDoc</strong> XML files containing extra chapters, sections and so on. Or you could use classic <strong class="pkg">GAPDoc</strong> source comments. For details on either, please refer to <a href="/home/runner/gap/pkg/gapdoc/doc/chap4_mj.html#X7A3355C07F57C280"><span class="RefLink">GAPDoc: Distributing a Document into Several Files</span></a>, as well as Section <a href="chap1_mj.html#X7FA614637B807F4D"><span class="RefLink">1.3</span></a> of this manual on how to teach the <code class="func">AutoDoc</code> (<a href="chap4_mj.html#X7CBD8AAF7DCEF352"><span class="RefLink">4.1-1</span></a>) command to include this extra documentation. Or you could use the special documentation facilities <strong class="pkg">AutoDoc</s trong> provides (see Section <a href="chap1_mj.html#X87A00EED866E22E8"><span class="RefLink">1.2</span></a>).</p> +<p>Next of course you need to provide actual content (unfortunately, we were not yet able to automate <em>that</em> for you, more research on artificial intelligence is required). To add more content, you have several options: You could add further <strong class="pkg">GAPDoc</strong> XML files containing extra chapters, sections and so on. Or you could use classic <strong class="pkg">GAPDoc</strong> source comments. For details on either, please refer to <a href="../../../pkg/gapdoc/doc/chap4_mj.html#X7A3355C07F57C280"><span class="RefLink">GAPDoc: Distributing a Document into Several Files</span></a>, as well as Section <a href="chap1_mj.html#X7FA614637B807F4D"><span class="RefLink">1.3</span></a> of this manual on how to teach the <code class="func">AutoDoc</code> (<a href="chap4_mj.html#X7CBD8AAF7DCEF352"><span class="RefLink">4.1-1</span></a>) command to include this extra documentation. Or you could use the special documentation facilities <strong class="pkg">AutoDoc</strong> p rovides (see Section <a href="chap1_mj.html#X87A00EED866E22E8"><span class="RefLink">1.2</span></a>).</p> <p>You will probably want to re-run the <code class="func">AutoDoc</code> (<a href="chap4_mj.html#X7CBD8AAF7DCEF352"><span class="RefLink">4.1-1</span></a>) command frequently, e.g. whenever you modified your documentation or your <code class="file">PackageInfo.g</code>. To make this more convenient and reproducible, we recommend putting its invocation into a file <code class="file">makedoc.g</code> in your package directory, with content based on the following example:</p> @@ -192,30 +192,6 @@ AutoDoc( ); </pre></div> -<p>In contrast, the <strong class="pkg">RingsForHomalg</strong> package currently uses essentially the following code in its <code class="file">makedoc.g</code> file to achieve the same result:</p> - - -<div class="example"><pre> -LoadPackage( "GAPDoc" ); -SetGapDocLaTeXOptions( "utf8" ); -bib := ParseBibFiles( "doc/RingsForHomalg.bib" ); -WriteBibXMLextFile( "doc/RingsForHomalgBib.xml", bib ); -list := [ - "../gap/RingsForHomalg.gd", - "../gap/RingsForHomalg.gi", - "../gap/Singular.gi", - "../gap/SingularBasic.gi", - "../examples/RingConstructionsExternalGAP.g", - "../examples/RingConstructionsSingular.g", - "../examples/RingConstructionsMAGMA.g", - "../examples/RingConstructionsMacaulay2.g", - "../examples/RingConstructionsSage.g", - "../examples/RingConstructionsMaple.g", - ]; -MakeGAPDocDoc( "doc", "RingsForHomalg", list, "RingsForHomalg" ); -GAPDocManualLab( "RingsForHomalg" ); -</pre></div> - <p>Note that in particular, you do not have to worry about keeping a list of your implementation files up-to-date.</p> <p>But there is more. <strong class="pkg">AutoDoc</strong> can create <code class="file">.tst</code> files from the examples in your manual to test your package. This can be achieved via</p> @@ -226,7 +202,7 @@ AutoDoc( rec( extract_examples := true ) ); </pre></div> -<p>Now files <code class="file">PACKAGENAME01.tst</code>, <code class="file">PACKAGENAME02.tst</code> and so appear in the <code class="file">tst/</code> subdirectory of your package, and can be tested as usual using <code class="func">Test</code> (<a href="/home/runner/gap/doc/ref/chap7_mj.html#X87712F9D8732193C"><span class="RefLink">Reference: Test</span></a>) respectively <code class="func">TestDirectory</code> (<a href="/home/runner/gap/doc/ref/chap7_mj.html#X87AF67528799481F"><span class="RefLink">Reference: TestDirectory</span></a>).</p> +<p>Now files <code class="file">PACKAGENAME01.tst</code>, <code class="file">PACKAGENAME02.tst</code> and so appear in the <code class="file">tst/</code> subdirectory of your package, and can be tested as usual using <code class="func">Test</code> (<a href="../../../doc/ref/chap7_mj.html#X87712F9D8732193C"><span class="RefLink">Reference: Test</span></a>) respectively <code class="func">TestDirectory</code> (<a href="../../../doc/ref/chap7_mj.html#X87AF67528799481F"><span class="RefLink">Reference: TestDirectory</span></a>).</p> <p><a id="X7D0DDF2284F2D24A" name="X7D0DDF2284F2D24A"></a></p> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/doc/chap2.html new/AutoDoc-2025.12.19/doc/chap2.html --- old/AutoDoc-2025.10.16/doc/chap2.html 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/doc/chap2.html 2025-12-19 17:30:41.000000000 +0100 @@ -331,7 +331,7 @@ <h5>2.2-9 <span class="Heading"><code class="code">@BeginExample</code> and <code class="code">@EndExample</code></span></h5> -<p><code class="code">@BeginExample</code> marks the start of an example to be put into the manual. It differs from <strong class="pkg">GAPDoc</strong>'s <code class="code"><Example></code> (see <a href="/home/runner/gap/pkg/gapdoc/doc/chap3.html#X810DEA1E83A57CFE"><span class="RefLink">GAPDoc: Log</span></a>), in that it expects actual code (not in a comment) interspersed with comments, to allow for examples files that can be both executed by <strong class="pkg">GAP</strong>, and parsed by <strong class="pkg">AutoDoc</strong>. To achieve this, <strong class="pkg">GAP</strong> commands are not preceded by a comment, while output has to be preceded by an <strong class="pkg">AutoDoc</strong> comment. The <code class="code">gap></code> prompt for the display in the manual is added by <strong class="pkg">AutoDoc</strong>. <code class="code">@EndExample</code> ends the example block.</p> +<p><code class="code">@BeginExample</code> marks the start of an example to be put into the manual. It differs from <strong class="pkg">GAPDoc</strong>'s <code class="code"><Example></code> (see <a href="../../../pkg/gapdoc/doc/chap3.html#X810DEA1E83A57CFE"><span class="RefLink">GAPDoc: Log</span></a>), in that it expects actual code (not in a comment) interspersed with comments, to allow for examples files that can be both executed by <strong class="pkg">GAP</strong>, and parsed by <strong class="pkg">AutoDoc</strong>. To achieve this, <strong class="pkg">GAP</strong> commands are not preceded by a comment, while output has to be preceded by an <strong class="pkg">AutoDoc</strong> comment. The <code class="code">gap></code> prompt for the display in the manual is added by <strong class="pkg">AutoDoc</strong>. <code class="code">@EndExample</code> ends the example block.</p> <p>To illustrate this command, consider this input:</p> @@ -361,7 +361,7 @@ <h5>2.2-10 <span class="Heading"><code class="code">@BeginExampleSession</code> and <code class="code">@EndExampleSession</code></span></h5> -<p><code class="code">@BeginExampleSession</code> marks the start of an example to be put into the manual, while <code class="code">@EndExampleSession</code> ends the example block. It is the direct analog of <strong class="pkg">GAPDoc</strong>'s <code class="code"><Example></code> (see <a href="/home/runner/gap/pkg/gapdoc/doc/chap3.html#X810DEA1E83A57CFE"><span class="RefLink">GAPDoc: Log</span></a>).</p> +<p><code class="code">@BeginExampleSession</code> marks the start of an example to be put into the manual, while <code class="code">@EndExampleSession</code> ends the example block. It is the direct analog of <strong class="pkg">GAPDoc</strong>'s <code class="code"><Example></code> (see <a href="../../../pkg/gapdoc/doc/chap3.html#X810DEA1E83A57CFE"><span class="RefLink">GAPDoc: Log</span></a>).</p> <p>To illustrate this command, consider this input:</p> @@ -397,7 +397,7 @@ <h5>2.2-12 <span class="Heading"><code class="code">@BeginLogSession</code> and <code class="code">@EndLogSession</code></span></h5> -<p>Works just like the <code class="code">@BeginExampleSession</code> command, but the example will not be tested if manual examples are run. It is the direct analog of <strong class="pkg">GAPDoc</strong>'s <code class="code"><Log></code> (see <a href="/home/runner/gap/pkg/gapdoc/doc/chap3.html#X810DEA1E83A57CFE"><span class="RefLink">GAPDoc: Log</span></a>). The <strong class="pkg">AutoDoc</strong> command <code class="code">@LogSession</code> is an alias of <code class="code">@BeginLogSession</code>.</p> +<p>Works just like the <code class="code">@BeginExampleSession</code> command, but the example will not be tested if manual examples are run. It is the direct analog of <strong class="pkg">GAPDoc</strong>'s <code class="code"><Log></code> (see <a href="../../../pkg/gapdoc/doc/chap3.html#X810DEA1E83A57CFE"><span class="RefLink">GAPDoc: Log</span></a>). The <strong class="pkg">AutoDoc</strong> command <code class="code">@LogSession</code> is an alias of <code class="code">@BeginLogSession</code>.</p> <p><a id="X78DC644E8519280C" name="X78DC644E8519280C"></a></p> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/doc/chap2_mj.html new/AutoDoc-2025.12.19/doc/chap2_mj.html --- old/AutoDoc-2025.10.16/doc/chap2_mj.html 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/doc/chap2_mj.html 2025-12-19 17:30:41.000000000 +0100 @@ -334,7 +334,7 @@ <h5>2.2-9 <span class="Heading"><code class="code">@BeginExample</code> and <code class="code">@EndExample</code></span></h5> -<p><code class="code">@BeginExample</code> marks the start of an example to be put into the manual. It differs from <strong class="pkg">GAPDoc</strong>'s <code class="code"><Example></code> (see <a href="/home/runner/gap/pkg/gapdoc/doc/chap3_mj.html#X810DEA1E83A57CFE"><span class="RefLink">GAPDoc: Log</span></a>), in that it expects actual code (not in a comment) interspersed with comments, to allow for examples files that can be both executed by <strong class="pkg">GAP</strong>, and parsed by <strong class="pkg">AutoDoc</strong>. To achieve this, <strong class="pkg">GAP</strong> commands are not preceded by a comment, while output has to be preceded by an <strong class="pkg">AutoDoc</strong> comment. The <code class="code">gap></code> prompt for the display in the manual is added by <strong class="pkg">AutoDoc</strong>. <code class="code">@EndExample</code> ends the example block.</p> +<p><code class="code">@BeginExample</code> marks the start of an example to be put into the manual. It differs from <strong class="pkg">GAPDoc</strong>'s <code class="code"><Example></code> (see <a href="../../../pkg/gapdoc/doc/chap3_mj.html#X810DEA1E83A57CFE"><span class="RefLink">GAPDoc: Log</span></a>), in that it expects actual code (not in a comment) interspersed with comments, to allow for examples files that can be both executed by <strong class="pkg">GAP</strong>, and parsed by <strong class="pkg">AutoDoc</strong>. To achieve this, <strong class="pkg">GAP</strong> commands are not preceded by a comment, while output has to be preceded by an <strong class="pkg">AutoDoc</strong> comment. The <code class="code">gap></code> prompt for the display in the manual is added by <strong class="pkg">AutoDoc</strong>. <code class="code">@EndExample</code> ends the example block.</p> <p>To illustrate this command, consider this input:</p> @@ -364,7 +364,7 @@ <h5>2.2-10 <span class="Heading"><code class="code">@BeginExampleSession</code> and <code class="code">@EndExampleSession</code></span></h5> -<p><code class="code">@BeginExampleSession</code> marks the start of an example to be put into the manual, while <code class="code">@EndExampleSession</code> ends the example block. It is the direct analog of <strong class="pkg">GAPDoc</strong>'s <code class="code"><Example></code> (see <a href="/home/runner/gap/pkg/gapdoc/doc/chap3_mj.html#X810DEA1E83A57CFE"><span class="RefLink">GAPDoc: Log</span></a>).</p> +<p><code class="code">@BeginExampleSession</code> marks the start of an example to be put into the manual, while <code class="code">@EndExampleSession</code> ends the example block. It is the direct analog of <strong class="pkg">GAPDoc</strong>'s <code class="code"><Example></code> (see <a href="../../../pkg/gapdoc/doc/chap3_mj.html#X810DEA1E83A57CFE"><span class="RefLink">GAPDoc: Log</span></a>).</p> <p>To illustrate this command, consider this input:</p> @@ -400,7 +400,7 @@ <h5>2.2-12 <span class="Heading"><code class="code">@BeginLogSession</code> and <code class="code">@EndLogSession</code></span></h5> -<p>Works just like the <code class="code">@BeginExampleSession</code> command, but the example will not be tested if manual examples are run. It is the direct analog of <strong class="pkg">GAPDoc</strong>'s <code class="code"><Log></code> (see <a href="/home/runner/gap/pkg/gapdoc/doc/chap3_mj.html#X810DEA1E83A57CFE"><span class="RefLink">GAPDoc: Log</span></a>). The <strong class="pkg">AutoDoc</strong> command <code class="code">@LogSession</code> is an alias of <code class="code">@BeginLogSession</code>.</p> +<p>Works just like the <code class="code">@BeginExampleSession</code> command, but the example will not be tested if manual examples are run. It is the direct analog of <strong class="pkg">GAPDoc</strong>'s <code class="code"><Log></code> (see <a href="../../../pkg/gapdoc/doc/chap3_mj.html#X810DEA1E83A57CFE"><span class="RefLink">GAPDoc: Log</span></a>). The <strong class="pkg">AutoDoc</strong> command <code class="code">@LogSession</code> is an alias of <code class="code">@BeginLogSession</code>.</p> <p><a id="X78DC644E8519280C" name="X78DC644E8519280C"></a></p> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/doc/chap4.html new/AutoDoc-2025.12.19/doc/chap4.html --- old/AutoDoc-2025.10.16/doc/chap4.html 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/doc/chap4.html 2025-12-19 17:30:41.000000000 +0100 @@ -55,7 +55,7 @@ <li><p>It can scan your package for <strong class="pkg">AutoDoc</strong> based documentation (by using <strong class="pkg">AutoDoc</strong> tags and the Autodoc command. This will produce further XML files to be used as part of the package manual.</p> </li> -<li><p>It can use <strong class="pkg">GAPDoc</strong> to generate PDF, text and HTML (with MathJaX enabled) documentation from the <strong class="pkg">GAPDoc</strong> XML files it generated as well as additional such files provided by you. For this, it invokes <code class="func">MakeGAPDocDoc</code> (<a href="/home/runner/gap/pkg/gapdoc/doc/chap5.html#X826F530686F4D052"><span class="RefLink">GAPDoc: MakeGAPDocDoc</span></a>) to convert the XML sources, and it also instructs <strong class="pkg">GAPDoc</strong> to copy supplementary files (such as CSS style files) into your doc directory (see <code class="func">CopyHTMLStyleFiles</code> (<a href="/home/runner/gap/pkg/gapdoc/doc/chap5.html#X813599E982DE9B98"><span class="RefLink">GAPDoc: CopyHTMLStyleFiles</span></a>)).</p> +<li><p>It can use <strong class="pkg">GAPDoc</strong> to generate PDF, text and HTML (with MathJaX enabled) documentation from the <strong class="pkg">GAPDoc</strong> XML files it generated as well as additional such files provided by you. For this, it invokes <code class="func">MakeGAPDocDoc</code> (<a href="../../../pkg/gapdoc/doc/chap5.html#X826F530686F4D052"><span class="RefLink">GAPDoc: MakeGAPDocDoc</span></a>) to convert the XML sources, and it also instructs <strong class="pkg">GAPDoc</strong> to copy supplementary files (such as CSS style files) into your doc directory (see <code class="func">CopyHTMLStyleFiles</code> (<a href="../../../pkg/gapdoc/doc/chap5.html#X813599E982DE9B98"><span class="RefLink">GAPDoc: CopyHTMLStyleFiles</span></a>)).</p> </li> </ol> @@ -123,6 +123,27 @@ <p>This allows you to write <q>&SomePackage;</q> and <q>&RELEASEYEAR;</q> in your documentation, which will be replaced by respective values specified in the entities definition.</p> +<p>Note that <strong class="pkg">AutoDoc</strong> predefines several entities:</p> + + +<dl> +<dt><strong class="Mark"><var class="Arg">VERSION</var></strong></dt> +<dd><p>Set to the <code class="code">Version</code> field your package info record.</p> + +</dd> +<dt><strong class="Mark"><var class="Arg">RELEASEYEAR</var></strong></dt> +<dd><p>Set to a string containing the release year, as derived from the <code class="code">Date</code> field your package info record.</p> + +</dd> +<dt><strong class="Mark"><var class="Arg">RELEASEDATE</var></strong></dt> +<dd><p>Derived from the <code class="code">Date</code> field your package info record.</p> + +</dd> +<dt><strong class="Mark"><var class="Arg">SomePackage</var></strong></dt> +<dd><p>The precise name of this entity is derived from the <code class="code">PackageName</code> field your package info record. Note that it is case sensitive. The content is defined as suggested by the example above.</p> + +</dd> +</dl> </dd> <dt><strong class="Mark"><var class="Arg">TitlePage</var></strong></dt> <dd><p>A record whose entries are used to embellish the generated title page for the package manual with extra information, such as a copyright statement or acknowledgments. To this end, the names of the record components are used as XML element names, and the values of the components are outputted as content of these XML elements. For example, you could pass the following record to set a custom acknowledgements text:</p> @@ -131,7 +152,7 @@ <div class="example"><pre> rec( Acknowledgements := "Many thanks to ..." )</pre></div> -<p>For a list of valid entries in the title page, please refer to the <strong class="pkg">GAPDoc</strong> manual, specifically section <a href="/home/runner/gap/pkg/gapdoc/doc/chap3.html#X842B421A7FBCDD2C"><span class="RefLink">GAPDoc: TitlePage</span></a>.</p> +<p>For a list of valid entries in the title page, please refer to the <strong class="pkg">GAPDoc</strong> manual, specifically section <a href="../../../pkg/gapdoc/doc/chap3.html#X842B421A7FBCDD2C"><span class="RefLink">GAPDoc: TitlePage</span></a>.</p> </dd> <dt><strong class="Mark"><var class="Arg">MainPage</var></strong></dt> @@ -193,13 +214,13 @@ </dd> <dt><strong class="Mark"><var class="Arg">LaTeXOptions</var></strong></dt> -<dd><p>Must be a record with entries which can be understood by <code class="func">SetGapDocLaTeXOptions</code> (<a href="/home/runner/gap/pkg/gapdoc/doc/chap5.html#X85BE6DF178423EF5"><span class="RefLink">GAPDoc: SetGapDocLaTeXOptions</span></a>). Each entry can be a string, which will be given to <strong class="pkg">GAPDoc</strong> directly, or a list containing of two entries: The first one must be the string "file", the second one a filename. This file will be read and then its content is passed to <strong class="pkg">GAPDoc</strong> as option with the name of the entry.</p> +<dd><p>Must be a record with entries which can be understood by <code class="func">SetGapDocLaTeXOptions</code> (<a href="../../../pkg/gapdoc/doc/chap5.html#X85BE6DF178423EF5"><span class="RefLink">GAPDoc: SetGapDocLaTeXOptions</span></a>). Each entry can be a string, which will be given to <strong class="pkg">GAPDoc</strong> directly, or a list containing of two entries: The first one must be the string "file", the second one a filename. This file will be read and then its content is passed to <strong class="pkg">GAPDoc</strong> as option with the name of the entry.</p> </dd> <dt><strong class="Mark"><var class="Arg">gap_root_relative_path</var></strong></dt> <dd><p>Either a boolean, or a string containing a relative path. By default (if this option is not set, or is set to <code class="keyw">false</code>), references in the generated documentation referring to external documentation (such as the <strong class="pkg">GAP</strong> manual) are encoded using absolute paths. This is fine as long as the documentation stays on only a single computer, but is problematic when preparing documentation that should be used on multiple computers, e.g., when creating a distribution archive of a <strong class="pkg">GAP</strong> package.<br /> Thus, if a relative path is provided via this option (or if it is set to <code class="keyw">true</code>, in which case the relative path <code class="file">../../..</code> is used), then <strong class="pkg">AutoDoc</strong> and <strong class="pkg">GAPDoc</strong> attempt to replace all absolute paths in references to <strong class="pkg">GAP</strong> manuals by paths based on this relative path.</p> -<p>On a technical level, <strong class="pkg">AutoDoc</strong> passes the relative path to the <var class="Arg">gaproot</var> parameter of <code class="func">MakeGAPDocDoc</code> (<a href="/home/runner/gap/pkg/gapdoc/doc/chap5.html#X826F530686F4D052"><span class="RefLink">GAPDoc: MakeGAPDocDoc</span></a>)</p> +<p>On a technical level, <strong class="pkg">AutoDoc</strong> passes the relative path to the <var class="Arg">gaproot</var> parameter of <code class="func">MakeGAPDocDoc</code> (<a href="../../../pkg/gapdoc/doc/chap5.html#X826F530686F4D052"><span class="RefLink">GAPDoc: MakeGAPDocDoc</span></a>)</p> </dd> </dl> @@ -214,7 +235,7 @@ <dt><strong class="Mark">units</strong></dt> <dd><p>This controls how examples are grouped into files. Recognized values are "Chapter" (default), "Section", "Subsection" or "Single". Depending on the value, one file is created for each chapter, each section, each subsection or each example. For all other values only a single file is created.</p> -<p>On a technical level, <strong class="pkg">AutoDoc</strong> passes the value to the <var class="Arg">units</var> parameter of <code class="func">ExtractExamples</code> (<a href="/home/runner/gap/pkg/gapdoc/doc/chap5.html#X8337B2BC79253B3F"><span class="RefLink">GAPDoc: ExtractExamples</span></a>).</p> +<p>On a technical level, <strong class="pkg">AutoDoc</strong> passes the value to the <var class="Arg">units</var> parameter of <code class="func">ExtractExamples</code> (<a href="../../../pkg/gapdoc/doc/chap5.html#X8337B2BC79253B3F"><span class="RefLink">GAPDoc: ExtractExamples</span></a>).</p> </dd> <dt><strong class="Mark">skip_empty_in_numbering</strong></dt> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/doc/chap4.txt new/AutoDoc-2025.12.19/doc/chap4.txt --- old/AutoDoc-2025.10.16/doc/chap4.txt 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/doc/chap4.txt 2025-12-19 17:30:41.000000000 +0100 @@ -138,6 +138,26 @@ in your documentation, which will be replaced by respective values specified in the entities definition.[133X + [33X[0;18YNote that [5XAutoDoc[105X predefines several entities:[133X + + [8X[3XVERSION[103X[8X[108X + [33X[0;24YSet to the [10XVersion[110X field your package info record.[133X + + [8X[3XRELEASEYEAR[103X[8X[108X + [33X[0;24YSet to a string containing the release year, as + derived from the [10XDate[110X field your package info + record.[133X + + [8X[3XRELEASEDATE[103X[8X[108X + [33X[0;24YDerived from the [10XDate[110X field your package info + record.[133X + + [8X[3XSomePackage[103X[8X[108X + [33X[0;24YThe precise name of this entity is derived from the + [10XPackageName[110X field your package info record. Note + that it is case sensitive. The content is defined as + suggested by the example above.[133X + [8X[3XTitlePage[103X[8X[108X [33X[0;18YA record whose entries are used to embellish the generated title page for the package manual with extra information, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/doc/chap4_mj.html new/AutoDoc-2025.12.19/doc/chap4_mj.html --- old/AutoDoc-2025.10.16/doc/chap4_mj.html 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/doc/chap4_mj.html 2025-12-19 17:30:41.000000000 +0100 @@ -58,7 +58,7 @@ <li><p>It can scan your package for <strong class="pkg">AutoDoc</strong> based documentation (by using <strong class="pkg">AutoDoc</strong> tags and the Autodoc command. This will produce further XML files to be used as part of the package manual.</p> </li> -<li><p>It can use <strong class="pkg">GAPDoc</strong> to generate PDF, text and HTML (with MathJaX enabled) documentation from the <strong class="pkg">GAPDoc</strong> XML files it generated as well as additional such files provided by you. For this, it invokes <code class="func">MakeGAPDocDoc</code> (<a href="/home/runner/gap/pkg/gapdoc/doc/chap5_mj.html#X826F530686F4D052"><span class="RefLink">GAPDoc: MakeGAPDocDoc</span></a>) to convert the XML sources, and it also instructs <strong class="pkg">GAPDoc</strong> to copy supplementary files (such as CSS style files) into your doc directory (see <code class="func">CopyHTMLStyleFiles</code> (<a href="/home/runner/gap/pkg/gapdoc/doc/chap5_mj.html#X813599E982DE9B98"><span class="RefLink">GAPDoc: CopyHTMLStyleFiles</span></a>)).</p> +<li><p>It can use <strong class="pkg">GAPDoc</strong> to generate PDF, text and HTML (with MathJaX enabled) documentation from the <strong class="pkg">GAPDoc</strong> XML files it generated as well as additional such files provided by you. For this, it invokes <code class="func">MakeGAPDocDoc</code> (<a href="../../../pkg/gapdoc/doc/chap5_mj.html#X826F530686F4D052"><span class="RefLink">GAPDoc: MakeGAPDocDoc</span></a>) to convert the XML sources, and it also instructs <strong class="pkg">GAPDoc</strong> to copy supplementary files (such as CSS style files) into your doc directory (see <code class="func">CopyHTMLStyleFiles</code> (<a href="../../../pkg/gapdoc/doc/chap5_mj.html#X813599E982DE9B98"><span class="RefLink">GAPDoc: CopyHTMLStyleFiles</span></a>)).</p> </li> </ol> @@ -126,6 +126,27 @@ <p>This allows you to write <q>&SomePackage;</q> and <q>&RELEASEYEAR;</q> in your documentation, which will be replaced by respective values specified in the entities definition.</p> +<p>Note that <strong class="pkg">AutoDoc</strong> predefines several entities:</p> + + +<dl> +<dt><strong class="Mark"><var class="Arg">VERSION</var></strong></dt> +<dd><p>Set to the <code class="code">Version</code> field your package info record.</p> + +</dd> +<dt><strong class="Mark"><var class="Arg">RELEASEYEAR</var></strong></dt> +<dd><p>Set to a string containing the release year, as derived from the <code class="code">Date</code> field your package info record.</p> + +</dd> +<dt><strong class="Mark"><var class="Arg">RELEASEDATE</var></strong></dt> +<dd><p>Derived from the <code class="code">Date</code> field your package info record.</p> + +</dd> +<dt><strong class="Mark"><var class="Arg">SomePackage</var></strong></dt> +<dd><p>The precise name of this entity is derived from the <code class="code">PackageName</code> field your package info record. Note that it is case sensitive. The content is defined as suggested by the example above.</p> + +</dd> +</dl> </dd> <dt><strong class="Mark"><var class="Arg">TitlePage</var></strong></dt> <dd><p>A record whose entries are used to embellish the generated title page for the package manual with extra information, such as a copyright statement or acknowledgments. To this end, the names of the record components are used as XML element names, and the values of the components are outputted as content of these XML elements. For example, you could pass the following record to set a custom acknowledgements text:</p> @@ -134,7 +155,7 @@ <div class="example"><pre> rec( Acknowledgements := "Many thanks to ..." )</pre></div> -<p>For a list of valid entries in the title page, please refer to the <strong class="pkg">GAPDoc</strong> manual, specifically section <a href="/home/runner/gap/pkg/gapdoc/doc/chap3_mj.html#X842B421A7FBCDD2C"><span class="RefLink">GAPDoc: TitlePage</span></a>.</p> +<p>For a list of valid entries in the title page, please refer to the <strong class="pkg">GAPDoc</strong> manual, specifically section <a href="../../../pkg/gapdoc/doc/chap3_mj.html#X842B421A7FBCDD2C"><span class="RefLink">GAPDoc: TitlePage</span></a>.</p> </dd> <dt><strong class="Mark"><var class="Arg">MainPage</var></strong></dt> @@ -196,13 +217,13 @@ </dd> <dt><strong class="Mark"><var class="Arg">LaTeXOptions</var></strong></dt> -<dd><p>Must be a record with entries which can be understood by <code class="func">SetGapDocLaTeXOptions</code> (<a href="/home/runner/gap/pkg/gapdoc/doc/chap5_mj.html#X85BE6DF178423EF5"><span class="RefLink">GAPDoc: SetGapDocLaTeXOptions</span></a>). Each entry can be a string, which will be given to <strong class="pkg">GAPDoc</strong> directly, or a list containing of two entries: The first one must be the string "file", the second one a filename. This file will be read and then its content is passed to <strong class="pkg">GAPDoc</strong> as option with the name of the entry.</p> +<dd><p>Must be a record with entries which can be understood by <code class="func">SetGapDocLaTeXOptions</code> (<a href="../../../pkg/gapdoc/doc/chap5_mj.html#X85BE6DF178423EF5"><span class="RefLink">GAPDoc: SetGapDocLaTeXOptions</span></a>). Each entry can be a string, which will be given to <strong class="pkg">GAPDoc</strong> directly, or a list containing of two entries: The first one must be the string "file", the second one a filename. This file will be read and then its content is passed to <strong class="pkg">GAPDoc</strong> as option with the name of the entry.</p> </dd> <dt><strong class="Mark"><var class="Arg">gap_root_relative_path</var></strong></dt> <dd><p>Either a boolean, or a string containing a relative path. By default (if this option is not set, or is set to <code class="keyw">false</code>), references in the generated documentation referring to external documentation (such as the <strong class="pkg">GAP</strong> manual) are encoded using absolute paths. This is fine as long as the documentation stays on only a single computer, but is problematic when preparing documentation that should be used on multiple computers, e.g., when creating a distribution archive of a <strong class="pkg">GAP</strong> package.<br /> Thus, if a relative path is provided via this option (or if it is set to <code class="keyw">true</code>, in which case the relative path <code class="file">../../..</code> is used), then <strong class="pkg">AutoDoc</strong> and <strong class="pkg">GAPDoc</strong> attempt to replace all absolute paths in references to <strong class="pkg">GAP</strong> manuals by paths based on this relative path.</p> -<p>On a technical level, <strong class="pkg">AutoDoc</strong> passes the relative path to the <var class="Arg">gaproot</var> parameter of <code class="func">MakeGAPDocDoc</code> (<a href="/home/runner/gap/pkg/gapdoc/doc/chap5_mj.html#X826F530686F4D052"><span class="RefLink">GAPDoc: MakeGAPDocDoc</span></a>)</p> +<p>On a technical level, <strong class="pkg">AutoDoc</strong> passes the relative path to the <var class="Arg">gaproot</var> parameter of <code class="func">MakeGAPDocDoc</code> (<a href="../../../pkg/gapdoc/doc/chap5_mj.html#X826F530686F4D052"><span class="RefLink">GAPDoc: MakeGAPDocDoc</span></a>)</p> </dd> </dl> @@ -217,7 +238,7 @@ <dt><strong class="Mark">units</strong></dt> <dd><p>This controls how examples are grouped into files. Recognized values are "Chapter" (default), "Section", "Subsection" or "Single". Depending on the value, one file is created for each chapter, each section, each subsection or each example. For all other values only a single file is created.</p> -<p>On a technical level, <strong class="pkg">AutoDoc</strong> passes the value to the <var class="Arg">units</var> parameter of <code class="func">ExtractExamples</code> (<a href="/home/runner/gap/pkg/gapdoc/doc/chap5_mj.html#X8337B2BC79253B3F"><span class="RefLink">GAPDoc: ExtractExamples</span></a>).</p> +<p>On a technical level, <strong class="pkg">AutoDoc</strong> passes the value to the <var class="Arg">units</var> parameter of <code class="func">ExtractExamples</code> (<a href="../../../pkg/gapdoc/doc/chap5_mj.html#X8337B2BC79253B3F"><span class="RefLink">GAPDoc: ExtractExamples</span></a>).</p> </dd> <dt><strong class="Mark">skip_empty_in_numbering</strong></dt> Binary files old/AutoDoc-2025.10.16/doc/manual.pdf and new/AutoDoc-2025.12.19/doc/manual.pdf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/doc/manual.six new/AutoDoc-2025.12.19/doc/manual.six --- old/AutoDoc-2025.10.16/doc/manual.six 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/doc/manual.six 2025-12-19 17:30:41.000000000 +0100 @@ -37,183 +37,183 @@ "using autodoc on a complete gapdoc manual", "X7F3CEB097AF47C1E" ], [ "\033[1X\033[33X\033[0;-2YSetting different \033[5XGAPDoc\033[105X\033[101X\ -\027\033[1X\027 options\033[133X\033[101X", "1.3-2", [ 1, 3, 2 ], 226, 7, +\027\033[1X\027 options\033[133X\033[101X", "1.3-2", [ 1, 3, 2 ], 202, 7, "setting different gapdoc options", "X7D0DDF2284F2D24A" ], [ "\033[1X\033[33X\033[0;-2YChecklist for converting an existing \033[5XGAPDo\ c\033[105X\033[101X\027\033[1X\027 manual to use \033[5XAutoDoc\033[105X\033[1\ -01X\027\033[1X\027\033[133X\033[101X", "1.3-3", [ 1, 3, 3 ], 288, 8, +01X\027\033[1X\027\033[133X\033[101X", "1.3-3", [ 1, 3, 3 ], 264, 8, "checklist for converting an existing gapdoc manual to use autodoc", "X83448D91868D7994" ], [ "\033[1X\033[33X\033[0;-2YScaffolds\033[133X\033[101X", "1.4", - [ 1, 4, 0 ], 357, 9, "scaffolds", "X8524193D824CDE0D" ], + [ 1, 4, 0 ], 333, 9, "scaffolds", "X8524193D824CDE0D" ], [ "\033[1X\033[33X\033[0;-2YGenerating a title page\033[133X\033[101X", - "1.4-1", [ 1, 4, 1 ], 360, 9, "generating a title page", + "1.4-1", [ 1, 4, 1 ], 336, 9, "generating a title page", "X7CF22DE28478316F" ], [ "\033[1X\033[33X\033[0;-2YGenerating the main XML file\033[133X\033[101X", - "1.4-2", [ 1, 4, 2 ], 409, 10, "generating the main xml file", + "1.4-2", [ 1, 4, 2 ], 385, 9, "generating the main xml file", "X7CD72CC780874FD5" ], [ "\033[1X\033[33X\033[0;-2YWhat data is used from \033[11XPackageInfo.g\033[\ -111X\033[101X\027\033[1X\027?\033[133X\033[101X", "1.4-3", [ 1, 4, 3 ], 436, +111X\033[101X\027\033[1X\027?\033[133X\033[101X", "1.4-3", [ 1, 4, 3 ], 412, 10, "what data is used from packageinfo.g?", "X799956EA85D3FC15" ], [ "\033[1X\033[33X\033[0;-2YAutoDoc worksheets\033[133X\033[101X", "1.5", - [ 1, 5, 0 ], 477, 11, "autodoc worksheets", "X80ED3C2A78146AD1" ], + [ 1, 5, 0 ], 453, 11, "autodoc worksheets", "X80ED3C2A78146AD1" ], [ "\033[1X\033[33X\033[0;-2Y\033[5XAutoDoc\033[105X\033[101X\027\033[1X\027 d\ -ocumentation comments\033[133X\033[101X", "2", [ 2, 0, 0 ], 1, 13, +ocumentation comments\033[133X\033[101X", "2", [ 2, 0, 0 ], 1, 12, "autodoc documentation comments", "X87668C487B1A2094" ], [ "\033[1X\033[33X\033[0;-2YDocumenting declarations\033[133X\033[101X", - "2.1", [ 2, 1, 0 ], 21, 13, "documenting declarations", + "2.1", [ 2, 1, 0 ], 21, 12, "documenting declarations", "X871482CE838C68F6" ], [ "\033[1X\033[33X\033[0;-2Y\033[10X@Description \033[3Xdescr\033[103X\033[10\ 1X\027\033[1X\027\033[10X\027\033[110X\033[101X\027\033[1X\027\033[133X\033[10\ -1X", "2.1-1", [ 2, 1, 1 ], 29, 13, "description descr", "X7F1D85188262A827" ], +1X", "2.1-1", [ 2, 1, 1 ], 29, 12, "description descr", "X7F1D85188262A827" ], [ "\033[1X\033[33X\033[0;-2Y\033[10X@Returns \033[3Xret_val\033[103X\033[101\ X\027\033[1X\027\033[10X\027\033[110X\033[101X\027\033[1X\027\033[133X\033[101\ -X", "2.1-2", [ 2, 1, 2 ], 36, 13, "returns ret_val", "X7DCAB2F87E8FAE90" ], +X", "2.1-2", [ 2, 1, 2 ], 36, 12, "returns ret_val", "X7DCAB2F87E8FAE90" ], [ "\033[1X\033[33X\033[0;-2Y\033[10X@Arguments \033[3Xargs\033[103X\033[101X\\ 027\033[1X\027\033[10X\027\033[110X\033[101X\027\033[1X\027\033[133X\033[101X" - , "2.1-3", [ 2, 1, 3 ], 43, 13, "arguments args", "X81DAA454857F7971" + , "2.1-3", [ 2, 1, 3 ], 43, 12, "arguments args", "X81DAA454857F7971" ], [ "\033[1X\033[33X\033[0;-2Y\033[10X@Group \033[3Xgrpname\033[103X\033[101X\\ 027\033[1X\027\033[10X\027\033[110X\033[101X\027\033[1X\027\033[133X\033[101X" - , "2.1-4", [ 2, 1, 4 ], 53, 14, "group grpname", "X8677FE8F80C00B14" ] + , "2.1-4", [ 2, 1, 4 ], 53, 13, "group grpname", "X8677FE8F80C00B14" ] , [ "\033[1X\033[33X\033[0;-2Y\033[10X@Label \033[3Xlabel\033[103X\033[101X\\ 027\033[1X\027\033[10X\027\033[110X\033[101X\027\033[1X\027\033[133X\033[101X" - , "2.1-5", [ 2, 1, 5 ], 59, 14, "label label", "X7B0E20A27D64DF6F" ], + , "2.1-5", [ 2, 1, 5 ], 59, 13, "label label", "X7B0E20A27D64DF6F" ], [ "\033[1X\033[33X\033[0;-2Y\033[10X@ChapterInfo \033[3Xchapter\033[103X\033\ [101X\027\033[1X\027\033[10X\027, \033[3Xsection\033[103X\033[101X\027\033[1X\ \027\033[10X\027\033[110X\033[101X\027\033[1X\027\033[133X\033[101X", - "2.1-8", [ 2, 1, 8 ], 95, 14, "chapterinfo chapter section", + "2.1-8", [ 2, 1, 8 ], 95, 13, "chapterinfo chapter section", "X78938EE37A532FFA" ], [ "\033[1X\033[33X\033[0;-2YOther documentation comments\033[133X\033[101X", - "2.2", [ 2, 2, 0 ], 118, 15, "other documentation comments", + "2.2", [ 2, 2, 0 ], 118, 14, "other documentation comments", "X8152FEF9844B1ACD" ], [ "\033[1X\033[33X\033[0;-2Y\033[10X@Chapter \033[3Xname\033[103X\033[101X\\ 027\033[1X\027\033[10X\027\033[110X\033[101X\027\033[1X\027\033[133X\033[101X" - , "2.2-1", [ 2, 2, 1 ], 125, 15, "chapter name", "X823E613385D09F6F" ] + , "2.2-1", [ 2, 2, 1 ], 125, 14, "chapter name", "X823E613385D09F6F" ] , [ "\033[1X\033[33X\033[0;-2Y\033[10X@Section \033[3Xname\033[103X\033[101X\\ 027\033[1X\027\033[10X\027\033[110X\033[101X\027\033[1X\027\033[133X\033[101X" - , "2.2-2", [ 2, 2, 2 ], 156, 15, "section name", "X78AA98BA7E0635D0" ] + , "2.2-2", [ 2, 2, 2 ], 156, 14, "section name", "X78AA98BA7E0635D0" ] , [ "\033[1X\033[33X\033[0;-2Y\033[10X@Subsection \033[3Xname\033[103X\033[101X\ \027\033[1X\027\033[10X\027\033[110X\033[101X\027\033[1X\027\033[133X\033[101X\ -", "2.2-3", [ 2, 2, 3 ], 172, 16, "subsection name", "X7FD77434802A3580" ], +", "2.2-3", [ 2, 2, 3 ], 172, 15, "subsection name", "X7FD77434802A3580" ], [ "\033[1X\033[33X\033[0;-2Y\033[10X@BeginGroup \033[3X[grpname]\033[103X\\ 033[101X\027\033[1X\027\033[10X\027\033[110X\033[101X\027\033[1X\027\033[133X\ -\033[101X", "2.2-4", [ 2, 2, 4 ], 191, 16, "begingroup [grpname]", +\033[101X", "2.2-4", [ 2, 2, 4 ], 191, 15, "begingroup [grpname]", "X7D3060C17EDBCED1" ], [ "\033[1X\033[33X\033[0;-2Y\033[10X@EndGroup\033[110X\033[101X\027\033[1X\\ -027\033[133X\033[101X", "2.2-5", [ 2, 2, 5 ], 201, 16, "endgroup", +027\033[133X\033[101X", "2.2-5", [ 2, 2, 5 ], 201, 15, "endgroup", "X7C17EB007FD42C87" ], [ "\033[1X\033[33X\033[0;-2Y@GroupTitle \033[3Xtitle\033[103X\033[101X\027\\ -033[1X\027\033[133X\033[101X", "2.2-6", [ 2, 2, 6 ], 221, 16, +033[1X\027\033[133X\033[101X", "2.2-6", [ 2, 2, 6 ], 221, 15, "grouptitle title", "X82FB96F37FAE8167" ], [ "\033[1X\033[33X\033[0;-2Y\033[10X@Level \033[3Xlvl\033[103X\033[101X\027\\ 033[1X\027\033[10X\027\033[110X\033[101X\027\033[1X\027\033[133X\033[101X", - "2.2-7", [ 2, 2, 7 ], 228, 16, "level lvl", "X7BF81EAF80D1A4B5" ], + "2.2-7", [ 2, 2, 7 ], 228, 15, "level lvl", "X7BF81EAF80D1A4B5" ], [ "\033[1X\033[33X\033[0;-2Y\033[10X@ResetLevel\033[110X\033[101X\027\033[1X\\ -027\033[133X\033[101X", "2.2-8", [ 2, 2, 8 ], 237, 17, "resetlevel", +027\033[133X\033[101X", "2.2-8", [ 2, 2, 8 ], 237, 16, "resetlevel", "X7C6723D57F424215" ], [ "\033[1X\033[33X\033[0;-2Y\033[10X@BeginExample\033[110X\033[101X\027\033[1\ X\027 and \033[10X@EndExample\033[110X\033[101X\027\033[1X\027\033[133X\033[10\ -1X", "2.2-9", [ 2, 2, 9 ], 242, 17, "beginexample and endexample", +1X", "2.2-9", [ 2, 2, 9 ], 242, 16, "beginexample and endexample", "X83D6DA3B83D3436C" ], [ "\033[1X\033[33X\033[0;-2Y\033[10X@BeginExampleSession\033[110X\033[101X\\ 027\033[1X\027 and \033[10X@EndExampleSession\033[110X\033[101X\027\033[1X\027\ -\033[133X\033[101X", "2.2-10", [ 2, 2, 10 ], 275, 17, +\033[133X\033[101X", "2.2-10", [ 2, 2, 10 ], 275, 16, "beginexamplesession and endexamplesession", "X861E2E778510CAF7" ], [ "\033[1X\033[33X\033[0;-2Y\033[10X@BeginLog\033[110X\033[101X\027\033[1X\\ 027 and \033[10X@EndLog\033[110X\033[101X\027\033[1X\027\033[133X\033[101X", - "2.2-11", [ 2, 2, 11 ], 312, 18, "beginlog and endlog", + "2.2-11", [ 2, 2, 11 ], 312, 17, "beginlog and endlog", "X81A2D44D834C0A17" ], [ "\033[1X\033[33X\033[0;-2Y\033[10X@BeginLogSession\033[110X\033[101X\027\\ 033[1X\027 and \033[10X@EndLogSession\033[110X\033[101X\027\033[1X\027\033[133\ -X\033[101X", "2.2-12", [ 2, 2, 12 ], 319, 18, +X\033[101X", "2.2-12", [ 2, 2, 12 ], 319, 17, "beginlogsession and endlogsession", "X7BADE876794FF309" ], [ "\033[1X\033[33X\033[0;-2Y\033[10X@DoNotReadRestOfFile\033[110X\033[101X\\ -027\033[1X\027\033[133X\033[101X", "2.2-13", [ 2, 2, 13 ], 327, 18, +027\033[1X\027\033[133X\033[101X", "2.2-13", [ 2, 2, 13 ], 327, 17, "donotreadrestoffile", "X78DC644E8519280C" ], [ "\033[1X\033[33X\033[0;-2Y\033[10X@BeginChunk \033[3Xname\033[103X\033[101X\ \027\033[1X\027\033[10X\027\033[110X\033[101X\027\033[1X\027, \033[10X@EndChun\ k\033[110X\033[101X\027\033[1X\027, and \033[10X@InsertChunk \033[3Xname\033[1\ 03X\033[101X\027\033[1X\027\033[10X\027\033[110X\033[101X\027\033[1X\027\033[1\ -33X\033[101X", "2.2-14", [ 2, 2, 14 ], 341, 18, +33X\033[101X", "2.2-14", [ 2, 2, 14 ], 341, 17, "beginchunk name endchunk and insertchunk name", "X83C01F9B7FA1C973" ], [ "\033[1X\033[33X\033[0;-2Y\033[10X@BeginCode \033[3Xname\033[103X\033[101X\ \027\033[1X\027\033[10X\027\033[110X\033[101X\027\033[1X\027, @EndCode, and \ \033[10X@InsertCode \033[3Xname\033[103X\033[101X\027\033[1X\027\033[10X\027\ \033[110X\033[101X\027\033[1X\027\033[133X\033[101X", "2.2-15", [ 2, 2, 15 ], - 378, 19, "begincode name endcode and insertcode name", + 378, 18, "begincode name endcode and insertcode name", "X7D3671AF86B995B9" ], [ "\033[1X\033[33X\033[0;-2Y\033[10X@LatexOnly \033[3Xtext\033[103X\033[101X\\ 027\033[1X\027\033[10X\027\033[110X\033[101X\027\033[1X\027, \033[10X@BeginLat\ exOnly\033[110X\033[101X\027\033[1X\027, and \033[10X@EndLatexOnly\033[110X\ -\033[101X\027\033[1X\027\033[133X\033[101X", "2.2-16", [ 2, 2, 16 ], 394, 19, +\033[101X\027\033[1X\027\033[133X\033[101X", "2.2-16", [ 2, 2, 16 ], 394, 18, "latexonly text beginlatexonly and endlatexonly", "X8033B34F80A12A10" ], [ "\033[1X\033[33X\033[0;-2Y\033[10X@NotLatex \033[3Xtext\033[103X\033[101X\ \027\033[1X\027\033[10X\027\033[110X\033[101X\027\033[1X\027, \033[10X@BeginNo\ tLatex\033[110X\033[101X\027\033[1X\027, and \033[10X@EndNotLatex\033[110X\033\ -[101X\027\033[1X\027\033[133X\033[101X", "2.2-17", [ 2, 2, 17 ], 409, 19, +[101X\027\033[1X\027\033[133X\033[101X", "2.2-17", [ 2, 2, 17 ], 409, 18, "notlatex text beginnotlatex and endnotlatex", "X7EF303147F1BCC22" ], [ "\033[1X\033[33X\033[0;-2YTitle page commands\033[133X\033[101X", "2.3", - [ 2, 3, 0 ], 424, 19, "title page commands", "X841E3AD584F5385C" ], + [ 2, 3, 0 ], 424, 18, "title page commands", "X841E3AD584F5385C" ], [ "\033[1X\033[33X\033[0;-2YPlain text files\033[133X\033[101X", "2.4", - [ 2, 4, 0 ], 461, 20, "plain text files", "X828AE38F80CB02E7" ], + [ 2, 4, 0 ], 461, 19, "plain text files", "X828AE38F80CB02E7" ], [ "\033[1X\033[33X\033[0;-2YGrouping\033[133X\033[101X", "2.5", - [ 2, 5, 0 ], 470, 20, "grouping", "X7D7A38F87BC40C48" ], + [ 2, 5, 0 ], 470, 19, "grouping", "X7D7A38F87BC40C48" ], [ "\033[1X\033[33X\033[0;-2YA family of operations\033[133X\033[101X", - "2.5-1", [ 2, 5, 1 ], 518, 21, "a family of operations", + "2.5-1", [ 2, 5, 1 ], 518, 20, "a family of operations", "X79BF060F8436C586" ], [ "\033[1X\033[33X\033[0;-2YLevel\033[133X\033[101X", "2.6", [ 2, 6, 0 ], - 527, 21, "level", "X8209AFDE8209AFDE" ], + 527, 20, "level", "X8209AFDE8209AFDE" ], [ "\033[1X\033[33X\033[0;-2YMarkdown-like formatting of text in \033[5XAutoDo\ c\033[105X\033[101X\027\033[1X\027\033[133X\033[101X", "2.7", [ 2, 7, 0 ], - 547, 22, "markdown-like formatting of text in autodoc", + 547, 21, "markdown-like formatting of text in autodoc", "X79558A2F7FE187B4" ], [ "\033[1X\033[33X\033[0;-2YLists\033[133X\033[101X", "2.7-1", [ 2, 7, 1 ], - 556, 22, "lists", "X7B256AE5780F140A" ], + 556, 21, "lists", "X7B256AE5780F140A" ], [ "\033[1X\033[33X\033[0;-2YMath modes\033[133X\033[101X", "2.7-2", - [ 2, 7, 2 ], 593, 22, "math modes", "X871412737A0E12E2" ], + [ 2, 7, 2 ], 593, 21, "math modes", "X871412737A0E12E2" ], [ "\033[1X\033[33X\033[0;-2YEmphasize\033[133X\033[101X", "2.7-3", - [ 2, 7, 3 ], 614, 23, "emphasize", "X7ED0330479146EFC" ], + [ 2, 7, 3 ], 614, 22, "emphasize", "X7ED0330479146EFC" ], [ "\033[1X\033[33X\033[0;-2YInline code\033[133X\033[101X", "2.7-4", - [ 2, 7, 4 ], 632, 23, "inline code", "X838CCDEB7E0ECEE2" ], + [ 2, 7, 4 ], 632, 22, "inline code", "X838CCDEB7E0ECEE2" ], [ "\033[1X\033[33X\033[0;-2YDeprecated commands\033[133X\033[101X", "2.8", - [ 2, 8, 0 ], 645, 23, "deprecated commands", "X78CA9E5C7F494C19" ], + [ 2, 8, 0 ], 645, 22, "deprecated commands", "X78CA9E5C7F494C19" ], [ "\033[1X\033[33X\033[0;-2YAutoDoc worksheets\033[133X\033[101X", "3", - [ 3, 0, 0 ], 1, 24, "autodoc worksheets", "X80ED3C2A78146AD1" ], + [ 3, 0, 0 ], 1, 23, "autodoc worksheets", "X80ED3C2A78146AD1" ], [ "\033[1X\033[33X\033[0;-2YWorksheets\033[133X\033[101X", "3.1", - [ 3, 1, 0 ], 4, 24, "worksheets", "X801D4A2F8292704C" ], + [ 3, 1, 0 ], 4, 23, "worksheets", "X801D4A2F8292704C" ], [ "\033[1X\033[33X\033[0;-2YAutoDoc\033[133X\033[101X", "4", [ 4, 0, 0 ], - 1, 25, "autodoc", "X7CBD8AAF7DCEF352" ], + 1, 24, "autodoc", "X7CBD8AAF7DCEF352" ], [ "\033[1X\033[33X\033[0;-2YThe AutoDoc() function\033[133X\033[101X", - "4.1", [ 4, 1, 0 ], 4, 25, "the autodoc function", "X863584DB8497D8BA" ] + "4.1", [ 4, 1, 0 ], 4, 24, "the autodoc function", "X863584DB8497D8BA" ] , [ "\033[1X\033[33X\033[0;-2YExamples\033[133X\033[101X", "4.2", - [ 4, 2, 0 ], 322, 29, "examples", "X7A489A5D79DA9E5C" ], + [ 4, 2, 0 ], 342, 29, "examples", "X7A489A5D79DA9E5C" ], [ "Bibliography", "bib", [ "Bib", 0, 0 ], 1, 30, "bibliography", "X7A6F98FD85F02BFE" ], [ "References", "bib", [ "Bib", 0, 0 ], 1, 30, "references", @@ -221,112 +221,112 @@ [ "Index", "ind", [ "Ind", 0, 0 ], 1, 31, "index", "X83A0356F839C696F" ], [ "\033[11Xmakedoc.g\033[111X", "1.1", [ 1, 1, 0 ], 23, 4, "makedoc.g", "X7BFBC6907B26AA95" ], - [ "", "1.3-3", [ 1, 3, 3 ], 288, 8, "", "X83448D91868D7994" ], - [ "", "1.3-3", [ 1, 3, 3 ], 288, 8, "", "X83448D91868D7994" ], - [ "", "1.3-3", [ 1, 3, 3 ], 288, 8, "", "X83448D91868D7994" ], - [ "", "1.3-3", [ 1, 3, 3 ], 288, 8, "", "X83448D91868D7994" ], - [ "", "1.3-3", [ 1, 3, 3 ], 288, 8, "", "X83448D91868D7994" ], - [ "", "1.3-3", [ 1, 3, 3 ], 288, 8, "", "X83448D91868D7994" ], - [ "", "1.3-3", [ 1, 3, 3 ], 288, 8, "", "X83448D91868D7994" ], + [ "", "1.3-3", [ 1, 3, 3 ], 264, 8, "", "X83448D91868D7994" ], + [ "", "1.3-3", [ 1, 3, 3 ], 264, 8, "", "X83448D91868D7994" ], + [ "", "1.3-3", [ 1, 3, 3 ], 264, 8, "", "X83448D91868D7994" ], + [ "", "1.3-3", [ 1, 3, 3 ], 264, 8, "", "X83448D91868D7994" ], + [ "", "1.3-3", [ 1, 3, 3 ], 264, 8, "", "X83448D91868D7994" ], + [ "", "1.3-3", [ 1, 3, 3 ], 264, 8, "", "X83448D91868D7994" ], + [ "", "1.3-3", [ 1, 3, 3 ], 264, 8, "", "X83448D91868D7994" ], [ "\033[10X@Description \033[3Xdescr\033[103X\033[10X\027\033[110X", - "2.1-1", [ 2, 1, 1 ], 29, 13, "description descr", "X7F1D85188262A827" ] + "2.1-1", [ 2, 1, 1 ], 29, 12, "description descr", "X7F1D85188262A827" ] , [ "\033[10X@Returns \033[3Xret_val\033[103X\033[10X\027\033[110X", - "2.1-2", [ 2, 1, 2 ], 36, 13, "returns ret_val", "X7DCAB2F87E8FAE90" ], + "2.1-2", [ 2, 1, 2 ], 36, 12, "returns ret_val", "X7DCAB2F87E8FAE90" ], [ "\033[10X@Arguments \033[3Xargs\033[103X\033[10X\027\033[110X", "2.1-3", - [ 2, 1, 3 ], 43, 13, "arguments args", "X81DAA454857F7971" ], + [ 2, 1, 3 ], 43, 12, "arguments args", "X81DAA454857F7971" ], [ "\033[10X@Group \033[3Xgrpname\033[103X\033[10X\027\033[110X", "2.1-4", - [ 2, 1, 4 ], 53, 14, "group grpname", "X8677FE8F80C00B14" ], + [ 2, 1, 4 ], 53, 13, "group grpname", "X8677FE8F80C00B14" ], [ "\033[10X@Label \033[3Xlabel\033[103X\033[10X\027\033[110X", "2.1-5", - [ 2, 1, 5 ], 59, 14, "label label", "X7B0E20A27D64DF6F" ], - [ "\033[2XAProperty\033[102X testlabel", "2.1-6", [ 2, 1, 6 ], 75, 14, + [ 2, 1, 5 ], 59, 13, "label label", "X7B0E20A27D64DF6F" ], + [ "\033[2XAProperty\033[102X testlabel", "2.1-6", [ 2, 1, 6 ], 75, 13, "aproperty testlabel", "X83B63B847B5199CF" ], - [ "\033[2XAProperty\033[102X for IsObject", "2.1-7", [ 2, 1, 7 ], 90, 14, + [ "\033[2XAProperty\033[102X for IsObject", "2.1-7", [ 2, 1, 7 ], 90, 13, "aproperty for isobject", "X78A9022A7D5CB20E" ], - [ "\033[10X@ChapterInfo\033[110X", "2.1-8", [ 2, 1, 8 ], 95, 14, + [ "\033[10X@ChapterInfo\033[110X", "2.1-8", [ 2, 1, 8 ], 95, 13, "chapterinfo", "X78938EE37A532FFA" ], - [ "\033[10X@Chapter\033[110X", "2.2-1", [ 2, 2, 1 ], 125, 15, "chapter", + [ "\033[10X@Chapter\033[110X", "2.2-1", [ 2, 2, 1 ], 125, 14, "chapter", "X823E613385D09F6F" ], - [ "\033[10X@ChapterLabel\033[110X", "2.2-1", [ 2, 2, 1 ], 125, 15, + [ "\033[10X@ChapterLabel\033[110X", "2.2-1", [ 2, 2, 1 ], 125, 14, "chapterlabel", "X823E613385D09F6F" ], - [ "\033[10X@ChapterTitle\033[110X", "2.2-1", [ 2, 2, 1 ], 125, 15, + [ "\033[10X@ChapterTitle\033[110X", "2.2-1", [ 2, 2, 1 ], 125, 14, "chaptertitle", "X823E613385D09F6F" ], - [ "\033[10X@Section\033[110X", "2.2-2", [ 2, 2, 2 ], 156, 15, "section", + [ "\033[10X@Section\033[110X", "2.2-2", [ 2, 2, 2 ], 156, 14, "section", "X78AA98BA7E0635D0" ], - [ "\033[10X@SectionLabel\033[110X", "2.2-2", [ 2, 2, 2 ], 156, 15, + [ "\033[10X@SectionLabel\033[110X", "2.2-2", [ 2, 2, 2 ], 156, 14, "sectionlabel", "X78AA98BA7E0635D0" ], - [ "\033[10X@SectionTitle\033[110X", "2.2-2", [ 2, 2, 2 ], 156, 15, + [ "\033[10X@SectionTitle\033[110X", "2.2-2", [ 2, 2, 2 ], 156, 14, "sectiontitle", "X78AA98BA7E0635D0" ], - [ "\033[10X@Subsection\033[110X", "2.2-3", [ 2, 2, 3 ], 172, 16, + [ "\033[10X@Subsection\033[110X", "2.2-3", [ 2, 2, 3 ], 172, 15, "subsection", "X7FD77434802A3580" ], - [ "\033[10X@SubsectionLabel\033[110X", "2.2-3", [ 2, 2, 3 ], 172, 16, + [ "\033[10X@SubsectionLabel\033[110X", "2.2-3", [ 2, 2, 3 ], 172, 15, "subsectionlabel", "X7FD77434802A3580" ], - [ "\033[10X@SubsectionTitle\033[110X", "2.2-3", [ 2, 2, 3 ], 172, 16, + [ "\033[10X@SubsectionTitle\033[110X", "2.2-3", [ 2, 2, 3 ], 172, 15, "subsectiontitle", "X7FD77434802A3580" ], - [ "\033[10X@BeginGroup\033[110X", "2.2-4", [ 2, 2, 4 ], 191, 16, + [ "\033[10X@BeginGroup\033[110X", "2.2-4", [ 2, 2, 4 ], 191, 15, "begingroup", "X7D3060C17EDBCED1" ], - [ "\033[10X@EndGroup\033[110X", "2.2-5", [ 2, 2, 5 ], 201, 16, "endgroup", + [ "\033[10X@EndGroup\033[110X", "2.2-5", [ 2, 2, 5 ], 201, 15, "endgroup", "X7C17EB007FD42C87" ], - [ "\033[10X@GroupTitle\033[110X", "2.2-6", [ 2, 2, 6 ], 221, 16, + [ "\033[10X@GroupTitle\033[110X", "2.2-6", [ 2, 2, 6 ], 221, 15, "grouptitle", "X82FB96F37FAE8167" ], - [ "\033[10X@Level\033[110X", "2.2-7", [ 2, 2, 7 ], 228, 16, "level", + [ "\033[10X@Level\033[110X", "2.2-7", [ 2, 2, 7 ], 228, 15, "level", "X7BF81EAF80D1A4B5" ], - [ "\033[10X@ResetLevel\033[110X", "2.2-8", [ 2, 2, 8 ], 237, 17, + [ "\033[10X@ResetLevel\033[110X", "2.2-8", [ 2, 2, 8 ], 237, 16, "resetlevel", "X7C6723D57F424215" ], - [ "\033[10X@BeginExample\033[110X", "2.2-9", [ 2, 2, 9 ], 242, 17, + [ "\033[10X@BeginExample\033[110X", "2.2-9", [ 2, 2, 9 ], 242, 16, "beginexample", "X83D6DA3B83D3436C" ], - [ "\033[10X@EndExample\033[110X", "2.2-9", [ 2, 2, 9 ], 242, 17, + [ "\033[10X@EndExample\033[110X", "2.2-9", [ 2, 2, 9 ], 242, 16, "endexample", "X83D6DA3B83D3436C" ], - [ "\033[10X@BeginExampleSession\033[110X", "2.2-10", [ 2, 2, 10 ], 275, 17, + [ "\033[10X@BeginExampleSession\033[110X", "2.2-10", [ 2, 2, 10 ], 275, 16, "beginexamplesession", "X861E2E778510CAF7" ], - [ "\033[10X@EndExampleSession\033[110X", "2.2-10", [ 2, 2, 10 ], 275, 17, + [ "\033[10X@EndExampleSession\033[110X", "2.2-10", [ 2, 2, 10 ], 275, 16, "endexamplesession", "X861E2E778510CAF7" ], - [ "\033[10X@BeginLog\033[110X", "2.2-11", [ 2, 2, 11 ], 312, 18, + [ "\033[10X@BeginLog\033[110X", "2.2-11", [ 2, 2, 11 ], 312, 17, "beginlog", "X81A2D44D834C0A17" ], - [ "\033[10X@EndLog\033[110X", "2.2-11", [ 2, 2, 11 ], 312, 18, "endlog", + [ "\033[10X@EndLog\033[110X", "2.2-11", [ 2, 2, 11 ], 312, 17, "endlog", "X81A2D44D834C0A17" ], - [ "\033[10X@BeginLogSession\033[110X", "2.2-12", [ 2, 2, 12 ], 319, 18, + [ "\033[10X@BeginLogSession\033[110X", "2.2-12", [ 2, 2, 12 ], 319, 17, "beginlogsession", "X7BADE876794FF309" ], - [ "\033[10X@EndLogSession\033[110X", "2.2-12", [ 2, 2, 12 ], 319, 18, + [ "\033[10X@EndLogSession\033[110X", "2.2-12", [ 2, 2, 12 ], 319, 17, "endlogsession", "X7BADE876794FF309" ], - [ "\033[10X@DoNotReadRestOfFile\033[110X", "2.2-13", [ 2, 2, 13 ], 327, 18, + [ "\033[10X@DoNotReadRestOfFile\033[110X", "2.2-13", [ 2, 2, 13 ], 327, 17, "donotreadrestoffile", "X78DC644E8519280C" ], [ "\033[10X@BeginChunk \033[3Xname\033[103X\033[10X\027\033[110X", - "2.2-14", [ 2, 2, 14 ], 341, 18, "beginchunk name", "X83C01F9B7FA1C973" - ], [ "\033[10X@EndChunk\033[110X", "2.2-14", [ 2, 2, 14 ], 341, 18, + "2.2-14", [ 2, 2, 14 ], 341, 17, "beginchunk name", "X83C01F9B7FA1C973" + ], [ "\033[10X@EndChunk\033[110X", "2.2-14", [ 2, 2, 14 ], 341, 17, "endchunk", "X83C01F9B7FA1C973" ], [ "\033[10X@InsertChunk \033[3Xname\033[103X\033[10X\027\033[110X", - "2.2-14", [ 2, 2, 14 ], 341, 18, "insertchunk name", + "2.2-14", [ 2, 2, 14 ], 341, 17, "insertchunk name", "X83C01F9B7FA1C973" ], [ "\033[10X@BeginCode \033[3Xname\033[103X\033[10X\027\033[110X", "2.2-15", - [ 2, 2, 15 ], 378, 19, "begincode name", "X7D3671AF86B995B9" ], - [ "\033[10X@EndCode\033[110X", "2.2-15", [ 2, 2, 15 ], 378, 19, "endcode", + [ 2, 2, 15 ], 378, 18, "begincode name", "X7D3671AF86B995B9" ], + [ "\033[10X@EndCode\033[110X", "2.2-15", [ 2, 2, 15 ], 378, 18, "endcode", "X7D3671AF86B995B9" ], [ "\033[10X@InsertCode \033[3Xname\033[103X\033[10X\027\033[110X", - "2.2-15", [ 2, 2, 15 ], 378, 19, "insertcode name", "X7D3671AF86B995B9" + "2.2-15", [ 2, 2, 15 ], 378, 18, "insertcode name", "X7D3671AF86B995B9" ], [ "\033[10X@LatexOnly \033[3Xtext\033[103X\033[10X\027\033[110X", - "2.2-16", [ 2, 2, 16 ], 394, 19, "latexonly text", "X8033B34F80A12A10" ] - , [ "\033[10X@BeginLatexOnly\033[110X", "2.2-16", [ 2, 2, 16 ], 394, 19, + "2.2-16", [ 2, 2, 16 ], 394, 18, "latexonly text", "X8033B34F80A12A10" ] + , [ "\033[10X@BeginLatexOnly\033[110X", "2.2-16", [ 2, 2, 16 ], 394, 18, "beginlatexonly", "X8033B34F80A12A10" ], - [ "\033[10X@EndLatexOnly\033[110X", "2.2-16", [ 2, 2, 16 ], 394, 19, + [ "\033[10X@EndLatexOnly\033[110X", "2.2-16", [ 2, 2, 16 ], 394, 18, "endlatexonly", "X8033B34F80A12A10" ], [ "\033[10X@NotLatex \033[3Xtext\033[103X\033[10X\027\033[110X", "2.2-17", - [ 2, 2, 17 ], 409, 19, "notlatex text", "X7EF303147F1BCC22" ], - [ "\033[10X@BeginNotLatex\033[110X", "2.2-17", [ 2, 2, 17 ], 409, 19, + [ 2, 2, 17 ], 409, 18, "notlatex text", "X7EF303147F1BCC22" ], + [ "\033[10X@BeginNotLatex\033[110X", "2.2-17", [ 2, 2, 17 ], 409, 18, "beginnotlatex", "X7EF303147F1BCC22" ], - [ "\033[10X@EndNotLatex\033[110X", "2.2-17", [ 2, 2, 17 ], 409, 19, + [ "\033[10X@EndNotLatex\033[110X", "2.2-17", [ 2, 2, 17 ], 409, 18, "endnotlatex", "X7EF303147F1BCC22" ], [ "\033[2XFirstOperation\033[102X for IsInt", "2.5-1", [ 2, 5, 1 ], 518, - 21, "firstoperation for isint", "X79BF060F8436C586" ], + 20, "firstoperation for isint", "X79BF060F8436C586" ], [ "\033[2XSecondOperation\033[102X for IsInt, IsGroup", "2.5-1", - [ 2, 5, 1 ], 518, 21, "secondoperation for isint isgroup", + [ 2, 5, 1 ], 518, 20, "secondoperation for isint isgroup", "X79BF060F8436C586" ], [ "\033[2XThirdOperation\033[102X for IsGroup, IsInt", "2.5-1", - [ 2, 5, 1 ], 518, 21, "thirdoperation for isgroup isint", + [ 2, 5, 1 ], 518, 20, "thirdoperation for isgroup isint", "X79BF060F8436C586" ], - [ "\033[2XAutoDocWorksheet\033[102X", "3.1-1", [ 3, 1, 1 ], 7, 24, + [ "\033[2XAutoDocWorksheet\033[102X", "3.1-1", [ 3, 1, 1 ], 7, 23, "autodocworksheet", "X809FE4137C08B28D" ], - [ "\033[2XAutoDoc\033[102X", "4.1-1", [ 4, 1, 1 ], 7, 25, "autodoc", + [ "\033[2XAutoDoc\033[102X", "4.1-1", [ 4, 1, 1 ], 7, 24, "autodoc", "X7CBD8AAF7DCEF352" ], - [ "\033[2XInfoAutoDoc\033[102X", "4.1-2", [ 4, 1, 2 ], 311, 29, + [ "\033[2XInfoAutoDoc\033[102X", "4.1-2", [ 4, 1, 2 ], 331, 29, "infoautodoc", "X81F946A785BA3D6E" ] ] ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/doc/title.xml new/AutoDoc-2025.12.19/doc/title.xml --- old/AutoDoc-2025.10.16/doc/title.xml 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/doc/title.xml 2025-12-19 17:30:41.000000000 +0100 @@ -9,7 +9,7 @@ Generate documentation from &GAP; source code </Subtitle> <Version> - 2025.10.16 + 2025.12.19 </Version> <Author> Sebastian Gutsche<Alt Only="LaTeX"><Br/></Alt> @@ -38,13 +38,13 @@ </Author> <Date> - 16 October 2025 + 19 December 2025 </Date> <Abstract> &AutoDoc; is a &GAP; package whose purpose is to aid &GAP; package authors in creating and maintaining the documentation of their packages. </Abstract> <Copyright> - ©right; 2012-2022 by Sebastian Gutsche and Max Horn<P/> + ©right; 2012-2025 by Sebastian Gutsche and Max Horn<P/> This package may be distributed under the terms and conditions of the GNU Public License Version 2 or (at your option) any later version. </Copyright> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/gap/AutoDocMainFunction.gi new/AutoDoc-2025.12.19/gap/AutoDocMainFunction.gi --- old/AutoDoc-2025.10.16/gap/AutoDocMainFunction.gi 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/gap/AutoDocMainFunction.gi 2025-12-19 17:30:41.000000000 +0100 @@ -125,7 +125,7 @@ # output the initial file header AppendTo( filestream, AUTODOC_XML_HEADER ); AppendTo( filestream, "<!DOCTYPE Book SYSTEM \"gapdoc.dtd\"\n[\n" ); - AppendTo( filestream, " [<#Include SYSTEM \"_entities.xml\">\n"); + AppendTo( filestream, " <#Include SYSTEM \"_entities.xml\">\n"); AppendTo( filestream, "]\n>\n" ); # now start the actual book diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/gap/DocumentationTree.gd new/AutoDoc-2025.12.19/gap/DocumentationTree.gd --- old/AutoDoc-2025.10.16/gap/DocumentationTree.gd 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/gap/DocumentationTree.gd 2025-12-19 17:30:41.000000000 +0100 @@ -49,6 +49,7 @@ DeclareOperation( "SubsectionInTree", [ IsTreeForDocumentation, IsString, IsString, IsString ] ); DeclareOperation( "DocumentationExample", [ IsTreeForDocumentation ] ); DeclareOperation( "DocumentationChunk", [ IsTreeForDocumentation, IsString ] ); +DeclareOperation( "DocumentationChunkContent", [ IsObject ] ); DeclareOperation( "DocumentationManItem", [ IsTreeForDocumentation ] ); DeclareOperation( "SetManItemToDescription", [ IsTreeForDocumentationNode ] ); DeclareOperation( "SetManItemToReturnValue", [ IsTreeForDocumentationNode ] ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/gap/DocumentationTree.gi new/AutoDoc-2025.12.19/gap/DocumentationTree.gi --- old/AutoDoc-2025.10.16/gap/DocumentationTree.gi 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/gap/DocumentationTree.gi 2025-12-19 17:30:41.000000000 +0100 @@ -104,6 +104,13 @@ NewType( TheFamilyOfDocumentationTreeNodes, IsTreeForDocumentationExampleNodeRep ) ); + +## DeclareRepresentation +DeclareRepresentation( "IsTreeForDocumentationChunkContentNodeRep", IsTreeForDocumentationNodeRep, [ ] ); +BindGlobal( "TheTypeOfDocumentationTreeChunkContentNodes", NewType( TheFamilyOfDocumentationTreeNodes, IsTreeForDocumentationChunkContentNodeRep ) ); + + + ################################### ## ## Tools @@ -231,6 +238,16 @@ end ); ## +InstallMethod( DocumentationChunkContent, [ IsObject ], + function( content ) + local node; + + node := rec( content := content ); + ObjectifyWithAttributes( node, TheTypeOfDocumentationTreeChunkContentNodes ); + return node; +end ); + +## InstallMethod( DocumentationManItem, [ IsTreeForDocumentation ], function( tree ) local node, name; @@ -588,6 +605,14 @@ WriteDocumentation( Concatenation( "<#Include Label=\"", Label( node ), "\">" ), filestream, level_value ); end ); +InstallMethod( WriteDocumentation, [ IsTreeForDocumentationChunkContentNodeRep, IsStream, IsInt ], + function( node, filestream, level_value ) + local s; + for s in node!.content do + AppendTo( filestream, s ); + od; +end ); + ## InstallMethod( WriteDocumentation, [ IsTreeForDocumentationExampleNodeRep, IsStream, IsInt ], function( node, filestream, level_value ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/gap/Magic.gd new/AutoDoc-2025.12.19/gap/Magic.gd --- old/AutoDoc-2025.10.16/gap/Magic.gd 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/gap/Magic.gd 2025-12-19 17:30:41.000000000 +0100 @@ -158,6 +158,24 @@ #! This allows you to write <Q>&SomePackage;</Q> and <Q>&RELEASEYEAR;</Q> #! in your documentation, which will be replaced by respective values specified #! in the entities definition. +#! <P/> +#! Note that &AutoDoc; predefines several entities: +#! <List> +#! <Mark><A>VERSION</A></Mark> +#! <Item>Set to the <C>Version</C> field your package info record.</Item> +#! <Mark><A>RELEASEYEAR</A></Mark> +#! <Item>Set to a string containing the release year, as derived +#! from the <C>Date</C> field your package info record.</Item> +#! <Mark><A>RELEASEDATE</A></Mark> +#! <Item>Derived from the <C>Date</C> field your package info record.</Item> +#! <Mark><A>SomePackage</A></Mark> +#! <Item> +#! The precise name of this entity is derived from the +#! <C>PackageName</C> field your package info record. Note +#! that it is case sensitive. The content is defined as +#! suggested by the example above. +#! </Item> +#! </List> #! </Item> #! #! <Mark><A>TitlePage</A></Mark> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/gap/Magic.gi new/AutoDoc-2025.12.19/gap/Magic.gi --- old/AutoDoc-2025.10.16/gap/Magic.gi 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/gap/Magic.gi 2025-12-19 17:30:41.000000000 +0100 @@ -215,7 +215,7 @@ if IsBound(scaffold) and IsBound( pkginfo.AutoDoc ) then for key in RecNames( pkginfo.AutoDoc ) do if IsBound( scaffold.(key) ) then - Info(InfoAutoDoc, 1, "WARNING: ", key, " specified in both PackageInfo.AutoDoc and opt.scaffold"); + AUTODOC_MergeRecords( scaffold.(key), pkginfo.AutoDoc.(key) ); else scaffold.(key) := pkginfo.AutoDoc.(key); fi; @@ -494,6 +494,17 @@ CreateTitlePage( doc_dir, title_page ); fi; + # set some default entities + AUTODOC_SetIfMissing( scaffold, "entities", rec() ); + if IsBound( pkginfo.Version ) then + AUTODOC_SetIfMissing( scaffold.entities, "VERSION", pkginfo.Version ); + fi; + if IsBound( pkginfo.Date ) then + tmp := AUTODOC_ParseDate( pkginfo.Date ); + AUTODOC_SetIfMissing( scaffold.entities, "RELEASEYEAR", tmp.year ); + AUTODOC_SetIfMissing( scaffold.entities, "RELEASEDATE", AUTODOC_FormatDate( tmp ) ); + fi; + CreateEntitiesPage( gapdoc.bookname, doc_dir, scaffold ); if IsBound( scaffold.MainPage ) and scaffold.MainPage <> false then diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/gap/Parser.gi new/AutoDoc-2025.12.19/gap/Parser.gi --- old/AutoDoc-2025.10.16/gap/Parser.gi 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/gap/Parser.gi 2025-12-19 17:30:41.000000000 +0100 @@ -415,7 +415,7 @@ local code, temp_curr_line, comment_pos, before_comment; code := [ "<Listing Type=\"Code\"><![CDATA[\n" ]; while true do - temp_curr_line := Chomp( ReadLineWithLineCount( filestream ) ); + temp_curr_line := ReadLineWithLineCount( filestream ); if plain_text_mode = false then comment_pos := PositionSublist( temp_curr_line, "#!" ); if comment_pos <> fail then @@ -713,7 +713,7 @@ local label_name, tmp_system; label_name := ReplacedString( current_command[ 2 ], " ", "_" ); tmp_system := DocumentationChunk( tree, label_name ); - Append( tmp_system!.content, read_code() ); + Add( tmp_system!.content, DocumentationChunkContent( read_code() ) ); end, @Code := ~.@BeginCode, @InsertCode := ~.@InsertChunk, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/gap/ToolFunctions.gd new/AutoDoc-2025.12.19/gap/ToolFunctions.gd --- old/AutoDoc-2025.10.16/gap/ToolFunctions.gd 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/gap/ToolFunctions.gd 2025-12-19 17:30:41.000000000 +0100 @@ -17,3 +17,4 @@ DeclareGlobalFunction( "AUTODOC_TestWorkSheet" ); DeclareGlobalFunction( "AUTODOC_FormatDate" ); +DeclareGlobalFunction( "AUTODOC_ParseDate" ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/gap/ToolFunctions.gi new/AutoDoc-2025.12.19/gap/ToolFunctions.gi --- old/AutoDoc-2025.10.16/gap/ToolFunctions.gi 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/gap/ToolFunctions.gi 2025-12-19 17:30:41.000000000 +0100 @@ -218,6 +218,34 @@ od; end); +# Parse a date given as a string. Currently only supports the two formats +# allowed in PackageInfo.g, namely "DD/MM/YYYY" or "YYYY-MM-DD". Returns a +# record with entries `year`, `month`, `day` bound to the corresponding +# integers extracted from the input string. +# +# Returns `fail` if the input could not be parsed. +InstallGlobalFunction( AUTODOC_ParseDate, +function(date) + local day, month, year; + if Length(date) <> 10 then + return fail; + fi; + if date{[3,6]} = "//" then + day := Int(date{[1,2]}); + month := Int(date{[4,5]}); + year := Int(date{[7..10]}); + elif date{[5,8]} = "--" then + day := Int(date{[9,10]}); + month := Int(date{[6,7]}); + year := Int(date{[1..4]}); + else + return fail; + fi; + if day = fail or month = fail or year = fail then + return fail; + fi; + return rec( day := day, month := month, year := year ); +end); BindGlobal("AUTODOC_months", MakeImmutable([ "January", "February", "March", @@ -226,7 +254,6 @@ "October", "November", "December" ])); - # Format a date into a human readable string; a date may consist of only # a year; or a year and a month; or a year, month and day. Dates are # formatted as "2019", resp. "February 2019" resp. "5 February 2019". @@ -243,24 +270,7 @@ if Length(arg) = 1 and IsRecord(arg[1]) then date := ShallowCopy(arg[1]); elif Length(arg) = 1 and IsString(arg[1]) then - if Length(arg[1]) = 10 then - date := arg[1]; - if date{[3,6]} = "//" then - date := rec( - day := Int(date{[1,2]}), - month := Int(date{[4,5]}), - year := Int(date{[7..10]}), - ); - elif date{[5,8]} = "--" then - date := rec( - year := Int(date{[1..4]}), - month := Int(date{[6,7]}), - day := Int(date{[9,10]}), - ); - else - Unbind(date); - fi; - fi; + date := AUTODOC_ParseDate(arg[1]); elif Length(arg) in [1..3] then date := rec(); date.year := arg[1]; @@ -271,7 +281,7 @@ date.day := arg[3]; fi; fi; - if not IsBound(date) then + if not IsBound(date) or date = fail then Error("Invalid arguments"); fi; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/makefile new/AutoDoc-2025.12.19/makefile --- old/AutoDoc-2025.10.16/makefile 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/makefile 1970-01-01 01:00:00.000000000 +0100 @@ -1,11 +0,0 @@ -all: doc - -doc: doc/manual.six - -doc/manual.six: makedoc.g PackageInfo.g doc/*.xml gap/*.gd gap/*.gi - gap makedoc.g - -clean: - (cd doc ; ./clean) - -.PHONY: all doc clean diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/tst/manual.expected/_Chapter_AutoDoc.xml new/AutoDoc-2025.12.19/tst/manual.expected/_Chapter_AutoDoc.xml --- old/AutoDoc-2025.10.16/tst/manual.expected/_Chapter_AutoDoc.xml 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/tst/manual.expected/_Chapter_AutoDoc.xml 2025-12-19 17:30:41.000000000 +0100 @@ -152,6 +152,24 @@ This allows you to write <Q>&SomePackage;</Q> and <Q>&RELEASEYEAR;</Q> in your documentation, which will be replaced by respective values specified in the entities definition. + <P/> + Note that &AutoDoc; predefines several entities: + <List> + <Mark><A>VERSION</A></Mark> + <Item>Set to the <C>Version</C> field your package info record.</Item> + <Mark><A>RELEASEYEAR</A></Mark> + <Item>Set to a string containing the release year, as derived + from the <C>Date</C> field your package info record.</Item> + <Mark><A>RELEASEDATE</A></Mark> + <Item>Derived from the <C>Date</C> field your package info record.</Item> + <Mark><A>SomePackage</A></Mark> + <Item> + The precise name of this entity is derived from the + <C>PackageName</C> field your package info record. Note + that it is case sensitive. The content is defined as + suggested by the example above. + </Item> + </List> </Item> <Mark><A>TitlePage</A></Mark> <Item> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/tst/misc.tst new/AutoDoc-2025.12.19/tst/misc.tst --- old/AutoDoc-2025.10.16/tst/misc.tst 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/tst/misc.tst 2025-12-19 17:30:41.000000000 +0100 @@ -14,6 +14,16 @@ rec( foo := 1 ) # +# AUTODOC_ParseDate +# +gap> AUTODOC_ParseDate("2019-03-01"); +rec( day := 1, month := 3, year := 2019 ) +gap> AUTODOC_ParseDate("01/03/2019"); +rec( day := 1, month := 3, year := 2019 ) +gap> AUTODOC_ParseDate("01.03.2019"); +fail + +# # AUTODOC_FormatDate # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/tst/worksheets/autoplain.expected/Plain_file.autodoc_Test.xml new/AutoDoc-2025.12.19/tst/worksheets/autoplain.expected/Plain_file.autodoc_Test.xml --- old/AutoDoc-2025.10.16/tst/worksheets/autoplain.expected/Plain_file.autodoc_Test.xml 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/tst/worksheets/autoplain.expected/Plain_file.autodoc_Test.xml 2025-12-19 17:30:41.000000000 +0100 @@ -3,7 +3,7 @@ <!-- This is an automatically generated file. --> <!DOCTYPE Book SYSTEM "gapdoc.dtd" [ - [<#Include SYSTEM "_entities.xml"> + <#Include SYSTEM "_entities.xml"> ] > <Book Name="Plain_file.autodoc_Test"> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/tst/worksheets/general.expected/General_Test.xml new/AutoDoc-2025.12.19/tst/worksheets/general.expected/General_Test.xml --- old/AutoDoc-2025.10.16/tst/worksheets/general.expected/General_Test.xml 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/tst/worksheets/general.expected/General_Test.xml 2025-12-19 17:30:41.000000000 +0100 @@ -3,7 +3,7 @@ <!-- This is an automatically generated file. --> <!DOCTYPE Book SYSTEM "gapdoc.dtd" [ - [<#Include SYSTEM "_entities.xml"> + <#Include SYSTEM "_entities.xml"> ] > <Book Name="General_Test"> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/tst/worksheets/general.expected/_Chunks.xml new/AutoDoc-2025.12.19/tst/worksheets/general.expected/_Chunks.xml --- old/AutoDoc-2025.10.16/tst/worksheets/general.expected/_Chunks.xml 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/tst/worksheets/general.expected/_Chunks.xml 2025-12-19 17:30:41.000000000 +0100 @@ -7,6 +7,7 @@ <Listing Type="Code"><![CDATA[ Hello, world. x := 1 + 1; + if x = 2 then Print("1 + 1 = 2 holds, all is good\n"); else @@ -14,4 +15,5 @@ fi; ]]></Listing> + <#/GAPDoc> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2025.10.16/tst/worksheets/general.sheet/worksheet.g new/AutoDoc-2025.12.19/tst/worksheets/general.sheet/worksheet.g --- old/AutoDoc-2025.10.16/tst/worksheets/general.sheet/worksheet.g 2025-10-16 09:26:36.000000000 +0200 +++ new/AutoDoc-2025.12.19/tst/worksheets/general.sheet/worksheet.g 2025-12-19 17:30:41.000000000 +0100 @@ -179,6 +179,7 @@ #! @BeginCode MyCode #! Hello, world. x := 1 + 1; + if x = 2 then Print("1 + 1 = 2 holds, all is good\n"); else ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.O1yltF/_old 2025-12-20 21:47:11.420920491 +0100 +++ /var/tmp/diff_new_pack.O1yltF/_new 2025-12-20 21:47:11.444921485 +0100 @@ -1,5 +1,5 @@ -mtime: 1760877734 -commit: 6bbbb43adffa1e9171d3fe1cfbddc4093fcf77ab597b25a280b5cf5104a4b599 +mtime: 1766162943 +commit: d49328b0836f7f88a7cd9dea69fea041f8f179ea41189e4cabc03ff75f459bc0 url: https://src.opensuse.org/jengelh/gap-autodoc revision: master ++++++ build.specials.obscpio ++++++ ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2025-12-19 17:49:11.000000000 +0100 @@ -0,0 +1 @@ +.osc
