aboutsummaryrefslogtreecommitdiff
path: root/doc/manual/render-manpage.sh
diff options
context:
space:
mode:
Diffstat (limited to 'doc/manual/render-manpage.sh')
-rwxr-xr-xdoc/manual/render-manpage.sh27
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"