diff options
author | Phil Jones <philj56@gmail.com> | 2023-05-11 22:22:44 +0100 |
---|---|---|
committer | Phil Jones <philj56@gmail.com> | 2023-05-12 00:11:35 +0100 |
commit | 542c51d25c05541d6ee35c862ec8f60ad01793cd (patch) | |
tree | cdc613e1f3b116f4ccb978ec28b14677f0a98355 /doc/scd2gfm.sh | |
parent | cda2fc734378c733f93249958975df55366e8543 (diff) |
Improve formatting of markdown manpage previews.
Diffstat (limited to 'doc/scd2gfm.sh')
-rwxr-xr-x | doc/scd2gfm.sh | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/doc/scd2gfm.sh b/doc/scd2gfm.sh new file mode 100755 index 0000000..c966832 --- /dev/null +++ b/doc/scd2gfm.sh @@ -0,0 +1,60 @@ +#!/bin/sh +# +# Convert an scdoc file to GitHub markdown, with some custom tweaks to work +# around pandoc's poor formatting. +# +# Usage: +# ./scd2gfm < file.scd > file.md + +set -eu + +html=$(scd2html -f) +no_sections=$(echo "$html" | sed -e "s|</\?section.*||" -e "s/[^;]<a.*//") +italics=$(echo "$no_sections" | sed "s|<u>\([^<]*\)</u>|<i>\1</i>|g") +no_header=$(echo "$italics" | awk ' +/<header>/ { + header = 1 +} + +/<\/header>/ { + header = 0 +} + +!/header/ { + if (header == 0) { + print + } +} +') + +combine_blockquotes=$(echo "$no_header" | awk ' +/\/blockquote/ { + if (endblock > 0) { + print buffer + } + endblock = NR + buffer = $0 +} + +/<blockquote/ { + if (endblock == NR - 2) { + print "<br/> <br/>" + gsub("<blockquote>", "") + buffer = "" + } else { + print buffer + print + buffer = "" + } +} + +!/blockquote/ { + if (endblock == NR - 2) { + print buffer + buffer = "" + } + print +} +') + +echo "$combine_blockquotes" | pandoc --from html --to gfm | sed "s/\s\+$//" |