diff options
Diffstat (limited to 'doc/manual/render-manpage.sh')
-rwxr-xr-x | doc/manual/render-manpage.sh | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/doc/manual/render-manpage.sh b/doc/manual/render-manpage.sh new file mode 100755 index 000000000..d89c29482 --- /dev/null +++ b/doc/manual/render-manpage.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +set -euo pipefail + +unescape_dashes= + +if [ "$1" = --unescape-dashes ]; then + unescape_dashes=yes + shift +fi + +title="$1" +section="$2" +infile="$3" +tmpfile="$4" +outfile="$5" + +printf "Title: %s\n\n" "$title" > "$tmpfile" +cat "$infile" >> "$tmpfile" +"$(dirname "$0")"/process-includes.sh "$infile" "$tmpfile" +lowdown -sT man --nroff-nolinks -M section="$section" "$tmpfile" -o "$outfile" +if [ -n "$unescape_dashes" ]; then + # fix up `lowdown`'s automatic escaping of `--` + # https://github.com/kristapsdz/lowdown/blob/edca6ce6d5336efb147321a43c47a698de41bb7c/entity.c#L202 + sed -i 's/\e\[u2013\]/--/' "$outfile" +fi +rm "$tmpfile" |