mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-07-25 10:16:53 +02:00
doc: support html post processing in all cases
Previously the html-local make rule only worked for `make html`. Instead add support for `make doc/coreutils.html` or `make web-manual` through the use of a makeinfo wrapper. * doc/local.mk: Move post processing from here to ... * build-aux/makeinfo-wrapper.sh: ... here. * cfg.mk: Ensure our wrapper is called with MAKEINFO. Also pass --no-node-files so redirection html files are not created for each anchor.
This commit is contained in:
Executable
+41
@@ -0,0 +1,41 @@
|
||||
#!/bin/sh
|
||||
# makeinfo wrapper that post-processes HTML output to replace _002d with -,
|
||||
# only on lines containing "option", corresponding to our @optAnchor macro.
|
||||
# Note texi uses "-" in anchors for spaces, hence why it escapes - with _002d.
|
||||
|
||||
makeinfo "$@" || exit
|
||||
|
||||
process_html()
|
||||
{
|
||||
sed_anchor_cleanup=\
|
||||
'/id=.*_002doption/{ s/id="\([^"]*\)_002doption/id="\1/g; s/_002d/-/g; }'
|
||||
|
||||
sed -e "$sed_anchor_cleanup" "$1" > "$1.t" &&
|
||||
mv "$1.t" "$1"
|
||||
}
|
||||
|
||||
case " $* " in
|
||||
*" --html"*)
|
||||
# Find the output file/directory
|
||||
output=""
|
||||
next_is_output=false
|
||||
for arg in "$@"; do
|
||||
if [ "$next_is_output" = true ]; then
|
||||
output="$arg"
|
||||
break
|
||||
fi
|
||||
case "$arg" in
|
||||
-o) next_is_output=true ;;
|
||||
--output=*) output="${arg#--output=}" ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Process the output file/directory
|
||||
if test -n "$output"; then
|
||||
test -f "$output" && NAMES='*' || NAMES='*.html'
|
||||
find "$output" -name "$NAMES" -type f |
|
||||
# dash doesn't support read -d '' yet.
|
||||
while IFS= read -r htmlfile; do process_html "$htmlfile"; done
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
@@ -17,6 +17,11 @@
|
||||
# Used in maint.mk's web-manual rule
|
||||
manual_title = Core GNU utilities
|
||||
|
||||
# html post processing
|
||||
export MAKEINFO = $(abs_top_srcdir)/build-aux/makeinfo-wrapper.sh
|
||||
# Don't create node redirection files for each anchor
|
||||
gendocs_options_ = --common --no-node-files
|
||||
|
||||
# Use the direct link. This is guaranteed to work immediately, while
|
||||
# it can take a while for the faster mirror links to become usable.
|
||||
url_dir_list = https://ftp.gnu.org/gnu/$(PACKAGE)
|
||||
|
||||
@@ -132,12 +132,4 @@ sc-lower-case-var:
|
||||
|
||||
check-local: check-texinfo
|
||||
|
||||
# Post-process generated HTML to clean up anchor IDs
|
||||
_sed_anchor_cleanup = \
|
||||
-e '/id=.*_002doption/ { s/id="\([^"]*\)_002doption/id="\1/g; s/_002d/-/g; }'
|
||||
html-local: $(HTMLS)
|
||||
$(AM_V_GEN)for htmlfile in $(HTMLS); do \
|
||||
sed $(_sed_anchor_cleanup) $$htmlfile > $$htmlfile-t \
|
||||
&& mv $$htmlfile-t $$htmlfile; done
|
||||
|
||||
.PHONY: html-local
|
||||
|
||||
Reference in New Issue
Block a user