#!/bin/bash # # Handy script to rebuild the markdown version of the man pages. # This uses pandoc if it is installed. # # For rendering the md, we can use a different command: # # cd md; for x in *.md ; do pandoc -s $x --metadata pagetitle="${x%.md}" -o ${x%.md}.html --lua-filter=../md2html.lua ; done if [[ -z "$(which pandoc)" ]]; then echo "pandoc not found - skipping conversion" exit 0 fi outdir="$1" if [[ -z "${outdir}" ]]; then echo "usage $0 " exit 1 fi mkdir -p "${outdir}" if [[ $? -ne 0 ]]; then echo "failed to make output directory: ${outdir}" exit 1 fi index="${outdir}/index.md" function do_page () { m="$1" base="${m%.*}" sect="${m#*.}" output="${base}-${sect}.md" redir="$(grep '^.so man' "${m}")" if [[ $? -eq 0 ]]; then r="${redir#*/}" rbase="${r%.*}" rsect="${r#*.}" echo "* [${base}(${sect})](${rbase}-${rsect}.md)" >> "${index}" return fi pandoc -f man -t markdown < "${m}" | sed 's/\*\*\([^*]\+\)\*\*(\([138]\+\))/[\1(\2)](\1-\2.md)/g' > "${outdir}/${base}-${sect}.md" echo "* [${base}(${sect})](${base}-${sect}.md)" >> "${index}" } cat > "${index}" <> "${index}" <> "${index}" <