1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 08:34:57 +00:00

man.serenityos.org: Use pandoc for listings and landing page

This makes all pages look and feel the same, because they all use the
default CSS generated by pandoc. Also, it inserts the banner everywhere
at the top, not only into the top-level index.html.

Credit to @xSlendiX for suggesting that `-B` works here.
This commit is contained in:
Ben Wiederhake 2021-10-20 21:52:34 +02:00 committed by Idan Horowitz
parent 2e613db999
commit dad47a3dd1
5 changed files with 66 additions and 31 deletions

View file

@ -32,24 +32,60 @@ for md_file in "${MAN_DIR}"*/*.md; do
section_number="${section#man}"
filename="${relative_path#*/}"
name="${filename%.md}"
pandoc -f gfm -t html5 -s --lua-filter=Meta/convert-markdown-links.lua --metadata title="${name}(${section_number}) - SerenityOS man pages" -o "output/${section}/${name}.html" "${md_file}"
pandoc -f gfm -t html5 -s \
-B Meta/Websites/man.serenityos.org/banner-preamble.inc \
--lua-filter=Meta/convert-markdown-links.lua \
--metadata title="${name}(${section_number}) - SerenityOS man pages" \
-o "output/${section}/${name}.html" \
"${md_file}"
done
# Generate man page listings
# Generate man page listings through pandoc
for d in output/*/; do
section=$(basename "$d")
section_number="${section#man}"
echo "<!DOCTYPE html><html><head><title>Section ${section_number} - SerenityOS man pages</title></head><body>" > "${d}/index.html"
for f in "$d"/*; do
filename=$(basename "$f")
name="${filename%.html}"
if [[ "$filename" == "index.html" ]]; then
continue
fi
echo "<a href=\"${filename}\"><p>${name}(${section_number})</p></a>" >> "${d}/index.html"
done
echo "</body></html>" >> "$d/index.html"
pandoc -f gfm -t html5 -s \
-B Meta/Websites/man.serenityos.org/banner-preamble.inc \
--metadata title="Section ${section_number} - SerenityOS man pages" \
-o "output/${section}/index.html" \
<(
for f in "$d"/*; do
filename=$(basename "$f")
name="${filename%.html}"
if [[ "$filename" == "index.html" ]]; then
continue
fi
echo "- [${name}](${filename})"
done
)
done
# Generate man page listings through pandoc
for d in output/*/; do
section=$(basename "$d")
section_number="${section#man}"
pandoc -f gfm -t html5 -s \
-B Meta/Websites/man.serenityos.org/banner-preamble.inc \
--metadata title="Section ${section_number} - SerenityOS man pages" \
-o "output/${section}/index.html" \
<(
for f in "$d"/*; do
filename=$(basename "$f")
name="${filename%.html}"
if [[ "$filename" == "index.html" ]]; then
continue
fi
echo "- [${name}](${filename})"
done
)
done
# Generate main landing page listings through pandoc
pandoc -f gfm -t html5 -s \
-B Meta/Websites/man.serenityos.org/banner-preamble.inc \
--metadata title="SerenityOS man pages" \
-o output/index.html \
Meta/Websites/man.serenityos.org/index.md
# Copy pre-made files
cp -R Meta/Websites/man.serenityos.org/* output/
cp Meta/Websites/man.serenityos.org/banner.png output/