summaryrefslogtreecommitdiff
path: root/support/arara/doc/htmlquickstarttopdf.sh
diff options
context:
space:
mode:
Diffstat (limited to 'support/arara/doc/htmlquickstarttopdf.sh')
-rw-r--r--support/arara/doc/htmlquickstarttopdf.sh84
1 files changed, 84 insertions, 0 deletions
diff --git a/support/arara/doc/htmlquickstarttopdf.sh b/support/arara/doc/htmlquickstarttopdf.sh
new file mode 100644
index 0000000000..3a580c474f
--- /dev/null
+++ b/support/arara/doc/htmlquickstarttopdf.sh
@@ -0,0 +1,84 @@
+#!/usr/bin/env bash
+
+set -e
+
+# check the required tools; we make these available through the `nix develop`
+# shell so you may use that to build the manual
+required_tools=("pup" "sed" "weasyprint")
+for tool in "${required_tools[@]}"
+do
+ if ! [ -x "$(command -v "$tool")" ]; then
+ echo "Please make sure $tool is accessible." >&2
+ exit 1
+ fi
+done
+
+# this script fetches the manual content from the remote rendered version at
+# arara's website; caveat: chapters have to be manually adjusted
+currdir="$PWD"
+basedir="$(dirname "$currdir")/website/public/"
+baseurl="file://$basedir"
+
+if [ ! -d "$basedir" ]
+then
+ echo "Please run zola before converting to PDF." >&2
+ exit 1
+fi
+
+# create a temporary directory to build the manual in; this will be created
+# in /tmp, so users of operating systems without that directory must change
+# it here
+tempdir="/tmp/arara-quickstart"
+if [ -d "$tempdir" ]
+then
+ rm -r "$tempdir"
+fi
+mkdir -p "$tempdir"
+cp ./resources/* "$tempdir/"
+cd "$tempdir"
+
+# these files are created in the temporary directory; no need to change
+# anything at this point except that the name of the PDF file will be used
+# when copying back to the source directory
+htmlfile="quickstart.html"
+pdffile="arara-quickstart.pdf"
+
+cat <<EOF > $htmlfile
+<!DOCTYPE html>
+<html lang="en-US">
+<head>
+ <meta charset="UTF-8">
+ <title>arara</title>
+
+ <meta name="keywords" content="tex, latex, context, build tool, automation">
+ <meta name="name" content="The cool TeX automation tool">
+ <meta name="description" content="arara is a TeX automation tool based on directives and rules.">
+
+ <link href="file://$tempdir/manual.css" rel="stylesheet">
+</head>
+<body>
+<article>
+ <h1>A quickstart guide to arara</h1>
+EOF
+
+# assemble the manual content by fetching chapters from the webpage;
+# while doing so assemble the toc for that chapter as well
+cat <<EOF >> $htmlfile
+$(cat "$(echo "$baseurl" | cut -c8-)quickstart/index.html" | pup --pre ':parent-of([class="heading-text"])' \
+ | tail -n +5 | head -n -1 \
+ | sed -r 's/<(\/?)h5/<\1h6/g' | sed -r 's/<(\/?)h4/<\1h5/g' \
+ | sed -r 's/<(\/?)h3/<\1h4/g' | sed -r 's/<(\/?)h2/<\1h3/g' \
+ | sed -r 's/<(\/?)h1/<\1h2/g')
+EOF
+
+cat <<EOF >> $htmlfile
+</body>
+</html>
+EOF
+
+# convert the created HTML manual to PDF
+weasyprint -u "$baseurl" "$htmlfile" "$pdffile"
+
+# change back to the docs directory and copy output PDF there
+cd "$currdir"
+cp "$tempdir/$pdffile" ./