ref: 74c31f7c0f54cffbd681e04d87fec45cb07090bf
parent: 7e94ecbfe6aaede61b2c5aff4e5a636fc2b16e26
author: ISSOtm <[email protected]>
date: Tue May 17 14:36:31 EDT 2022
Update docs CI workflows to sync with new rgbds-www repo
--- a/.github/actions/doc_postproc.awk
+++ /dev/null
@@ -1,56 +1,0 @@
-#!/usr/bin/awk -f
-
-/^\s+<td><b class="Sy">.+<\/b><\/td>$/ {
- # Assuming that all cells whose contents are bold are heading cells,
- # use the HTML tag for those
- sub(/td><b class="Sy"/, "th");
- sub(/b><\/td/, "th");
-}
-
-# The whole page is being generated, so it's not meant to contain any Liquid
-BEGIN {
- print "{% raw %}"
-}
-END {
- print "{% endraw %}"
-}
-
-BEGIN {
- in_synopsis = 0
-}
-/<table class="Nm">/ {
- in_synopsis = 1
-}
-/<\/table>/ {
- # Resets synopsis state even when already reset, but whatever
- in_synopsis = 0
-}
-/<code class="Fl">-[a-zA-Z]/ {
- # Add links to arg descr in synopsis section
- if (in_synopsis) {
- while (match($0, /<code class="Fl">-[a-zA-Z]+/)) {
- # 123456789012345678 -> 18 chars
- optchars = substr($0, RSTART + 18, RLENGTH - 18)
- i = length(optchars)
- while (i) {
- end = RSTART + 18 + i
- i -= 1
- len = i ? 1 : 2
- $0 = sprintf("%s<a href=\"#%s\">%s</a>%s",
- substr($0, 0, end - len - 1),
- substr($0, end - 1, 1),
- substr($0, end - len, len),
- substr($0, end))
- }
- }
- }
-}
-
-{
- # Make long opts (defined using `Fl Fl`) into a single tag
- gsub(/<code class="Fl">-<\/code>\s*<code class="Fl">/, "<code class=\"Fl\">-")
-}
-
-{
-}
--- a/.github/actions/get-pages.sh
+++ /dev/null
@@ -1,106 +1,0 @@
-#!/bin/bash
-
-usage() {
- cat <<EOF
-Usage: $0 [-h] [-r] <rgbds-www> <version>
-Copy renders from RGBDS repository to rgbds-www documentation
-Execute from the \`man/\` folder in the RGBDS repo, checked out at the desired tag
-<rgbds-www> : Path to the rgbds-www repository
-<version> : Version to be copied, such as 'v0.4.1' or 'master'
-
- -h Display this help message
- -r Update "latest stable" redirection pages and add a new entry to the index
- (use for releases, not master)
-EOF
-}
-
-is_release=0
-bad_usage=0
-while getopts ":hr" opt; do
- case $opt in
- r)
- is_release=1
- ;;
- h)
- usage
- exit 0
- ;;
- \?)
- echo "Unknown option '$OPTARG'"
- bad_usage=1
- ;;
- esac
-done
-if [ $bad_usage -ne 0 ]; then
- usage
- exit 1
-fi
-shift $((OPTIND - 1))
-
-
-declare -a PAGES
-PAGES=(
- rgbasm.1
- rgbasm.5
- rgblink.1
- rgblink.5
- rgbfix.1
- rgbgfx.1
- rgbds.5
- rgbds.7
- gbz80.7
-)
-WWWPATH="/docs"
-OUTDIR="$1/_documentation/$2"
-mkdir -p "$OUTDIR"
-
-# `mandoc` uses a different format for referring to man pages present in the **current** directory.
-# We want that format for RGBDS man pages, and the other one for the rest;
-# this script must thus be run from the directory all man pages are in.
-
-for page in "${PAGES[@]}"; do
-manpage="${page%.?}(${page#*.})" # "rgbasm(5)"
-descr="$(awk -v 'FS=.Nd ' '/.Nd/ { print $2; }' "$page")" # "language documentation"
-
- cat >"$OUTDIR/$page.html" <<EOF
----
-layout: doc
-title: $manpage [$2]
-description: RGBDS $2 — $descr
----
-EOF
- options=fragment,man='%N.%S;https://linux.die.net/man/%S/%N'
- if [[ $page = rgbasm.5 ]]; then
- options+=,toc
- fi
- mandoc -W warning -Thtml -I os=Linux -O$options "$page" | ../.github/actions/doc_postproc.awk >> "$OUTDIR/$page.html"
- groff -Tpdf -mdoc -wall "$page" >"$OUTDIR/$page.pdf"
- if [[ $is_release -ne 0 ]]; then
- cat - >"$1/_documentation/$page.html" <<EOF
----
-redirect_to: $WWWPATH/$2/$page
-permalink: $WWWPATH/$page/
-title: $manpage [latest stable]
-description: RGBDS latest stable — $descr
----
-EOF
- fi
-done
-
-cat - >"$OUTDIR/index.html" <<EOF
----
-layout: doc_index
-permalink: /docs/$2/
-title: RGBDS online manual [$2]
-description: RGBDS $2 - Online manual
----
-EOF
-
-
-# If making a release, add a new entry right after `master`
-if [[ $is_release -ne 0 ]]; then
- awk '{ print }
-/"name": "master"/ { print "\t\t{\"name\": \"'"$2"'\", \"text\": \"'"$2"'\" }," }
-' "$1/_data/doc.json" >"$1/_data/doc.json.tmp"
- mv "$1/_data/doc.json"{.tmp,}
-fi
--- a/.github/workflows/create-release-docs.yml
+++ b/.github/workflows/create-release-docs.yml
@@ -23,16 +23,16 @@
run: |
sudo apt-get -qq update
sudo apt-get install -yq groff zlib1g-dev
- wget 'http://mandoc.bsd.lv/snapshots/mandoc-1.14.5.tar.gz'
- tar xf mandoc-1.14.5.tar.gz
- cd mandoc-1.14.5
+ wget 'http://mandoc.bsd.lv/snapshots/mandoc-1.14.6.tar.gz'
+ tar xf mandoc-1.14.6.tar.gz
+ cd mandoc-1.14.6
./configure
make
sudo make install
- name: Update pages
- working-directory: rgbds
+ working-directory: rgbds/man
run: | # The ref appears to be in the format "refs/tags/<version>", so strip that
- ./.github/actions/get-pages.sh -r ../rgbds-www ${GITHUB_REF##*/}
+ ../../rgbds-www/.github/actions/get-pages.sh ${GITHUB_REF##*/} *
- name: Push new pages
working-directory: rgbds-www
run: |
--- a/.github/workflows/update-master-docs.yml
+++ b/.github/workflows/update-master-docs.yml
@@ -4,7 +4,6 @@
branches:
- master
paths:
- - .github/actions/get-pages.sh
- man/gbz80.7
- man/rgbds.5
- man/rgbds.7
@@ -36,9 +35,9 @@
run: |
sudo apt-get -qq update
sudo apt-get install -yq groff zlib1g-dev
- wget 'http://mandoc.bsd.lv/snapshots/mandoc-1.14.5.tar.gz'
- tar xf mandoc-1.14.5.tar.gz
- cd mandoc-1.14.5
+ wget 'http://mandoc.bsd.lv/snapshots/mandoc-1.14.6.tar.gz'
+ tar xf mandoc-1.14.6.tar.gz
+ cd mandoc-1.14.6
./configure
make
sudo make install
@@ -45,7 +44,7 @@
- name: Update pages
working-directory: rgbds/man
run: |
- ../.github/actions/get-pages.sh ../../rgbds-www master
+ ../../rgbds-www/maintainer/man_to_html.sh master *
- name: Push new pages
working-directory: rgbds-www
run: |
@@ -56,7 +55,7 @@
ssh-add ~/.ssh/id_ed25519
git config --global user.name "GitHub Action"
git config --global user.email "[email protected]"
- git add .
+ git add -A
git commit -m "Update RGBDS master documentation"
if git remote | grep -q origin; then
git remote set-url origin [email protected]:gbdev/rgbds-www.git