Open paravoid opened 9 months ago
major extension to "generate.sh" by https://github.com/pbiering/ipv6calc/commit/384a2d1028a9e0ecf97f4e7815cfbc2f53c15cf6 Some notes:
@paravoid : please test
That's great, thanks!
generate.sh
seems to have gained a Bashism (i.e. it fails when /bin/sh is set to e.g. dash). This fixes it:
--- a/doc/generate.sh
+++ b/doc/generate.sh
@@ -40,7 +40,7 @@ while getopts "h?L:" opt; do
esac
done
-shift $[ $OPTIND - 1 ] +shift $((OPTIND - 1))
if [ -z "$1" ]; then file_sgml="ipv6calc.sgml"
2. The `if [ ! -f $file_sgml ]` block should be moved inside, or right before the `validate_sgml` call. Basically, I tried `rm ipv6calc.{sgml,xml,html}; ./generate.sh -L ipv6calc.lyx`, for good measure, which failed due to the SGML existence check, even though it's not actually required.
More minor issues:
a. `validate_sgml` and `create_html_singlepage` use `set -x`, but `export_sgml` does not. Is that intended?
b. There is a default of the SGML location (`file_sgml="ipv6calc.sgml"`), but not for the Lyx file, which needs to be passed in full. Is that intended?
c. At least in Debian sid, the generated HTML shows a tiny diff compared to the precompiled one:
```diff
--- a/doc/ipv6calc.html
+++ b/doc/ipv6calc.html
@@ -1,4 +1,4 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
thank you for the comments, reworked now by https://github.com/pbiering/ipv6calc/commit/4a2785b7d0e57694486fdd60f3e0e17619cebc75 and https://github.com/pbiering/ipv6calc/commit/141841a53529ccb1cdec6c480630d1fd9bde34f3
The content of the HTML file is related to ldp.dsl, can you point me to the one used in Debian package?
The content of the HTML file is related to ldp.dsl, can you point me to the one used in Debian package?
https://packages.debian.org/sid/ldp-docbook-dsssl -> https://packages.debian.org/sid/all/ldp-docbook-dsssl/download -> http://ftp.de.debian.org/debian/pool/main/l/ldp-docbook-stylesheets/ldp-docbook-dsssl_0.0.20040321-3.1_all.deb
...and extract using dpkg -x ldp-docbook-dsssl_0.0.20040321-3.1_all.deb extract-dir
, or, if you don't have dpkg, mkdir extract-dir && cd extract-dir && ar x ../ldp-docbook-dsssl_0.0.20040321-3.1_all.deb && tar -xzf data.tar.gz
.
Thank you for the ldp.dsl file source, the diff also explains why 4.0 instead of 4.01 was mentioned...regenerated now also:
https://github.com/pbiering/ipv6calc/commit/3d973b02aebcc446d9fd6d5d7dee3415ba4b3969
It took me a while to figure out how to regenerate the
ipv6calc.html
file from the sourceipv6calc.lyx
file. I'm filing this to document this for others, and perhaps as a feature enhancement request fordoc/generate.sh
:This is a two step process: first, the Lyx file is generated to an SGML. Second, the SGML to the HTML. (Note: I have not figured out what the purpose of the XML file in the source tree is.).
Only the second step is actually in
generate.sh
.Step 1: Lyx to SGML
apt install lyx docbook-utils
cd doc && lyx --export docbook ipv6calc.lyx
Step 2: SGML to HTML
The build system seems to be using "jade", but this is an old piece of software that has been forked in the meantime. Replacing "jade" with "openjade" seems to work just fine.
apt install opensp openjade docbook docbook-dsssl
cd doc && onsgmls -s ipv6calc.sgml
(This is optional and just validates the SGML../generate.sh
does this)cd doc && openjade -t sgml -i html -V nochunks -d "ldp.dsl#html" ipv6calc.sgml > ipv6calc.html
(./generate.sh
does this)As an alternative:
apt install ldp-docbook-dsssl
cd doc && openjade -t sgml -i html -V nochunks -d "docbook/stylesheet/dsssl/ldp/ldp.dsl#html" ipv6calc.sgml > ipv6calc.html
(in this case,doc/ldp.dsl
is not necessary and can be removed)ldp here stands for "Linux Documentation Project", and the ldp.dsl file is almost a pristine copy compared to the system copy as shipped in the ldp-docbook-dsssl package.
Versions used
This was under a Debian sid with Lyx v2.3.7, Docbook 4.5, Docbook-utils 0.6.14, Docbook-DSSSL 1.79, OpenJade 1.4devel1, opensp 1.5.2