|
1 |
| -#! /bin/bash |
| 1 | +#!/usr/bin/env bash |
2 | 2 |
|
3 | 3 | set -eo pipefail
|
4 | 4 |
|
5 |
| -pnpm api-extractor run |
| 5 | +pnpm api-extractor run |
6 | 6 | pnpm api-documenter markdown -i temp
|
7 | 7 |
|
8 |
| -rm -r html || true |
9 |
| -mkdir html || true |
| 8 | +html_dir="./html" |
| 9 | +if [[ -d "$html_dir" ]]; then |
| 10 | + echo "Deleting old output from ${html_dir}" |
| 11 | + rm -r "$html_dir" || true |
| 12 | +fi |
| 13 | +mkdir "$html_dir" || true |
10 | 14 |
|
11 |
| -echo Rendering HTML... |
12 |
| -# Check if parallel is available |
13 |
| -if ! command -v parallel &> /dev/null; then |
14 |
| - echo "parallel not found, falling back to sequential processing" |
15 |
| - for file in ./markdown/*.md |
16 |
| - do |
17 |
| - BASE=$(basename $file .md) |
18 |
| - pandoc $file -o html/$BASE.html |
19 |
| - perl -pi -e 's/"\K([^"]+)\.md(?=")/\1.html/g' html/$BASE.html |
| 15 | +harperjs_docs_dir="../web/static/docs/harperjs" |
| 16 | +if [[ -d "$harperjs_docs_dir" ]]; then |
| 17 | + echo "Deleting old output from ${harperjs_docs_dir}" |
| 18 | + rm -r "$harperjs_docs_dir" || true |
| 19 | +fi |
| 20 | +mkdir -p "$harperjs_docs_dir" || true |
20 | 21 |
|
21 |
| - echo '<link rel="stylesheet" href="https://unpkg.com/mvp.css">' >> html/$BASE.html |
22 |
| - done |
23 |
| -else |
24 |
| - parallel ' |
25 |
| - BASE=$(basename {} .md) |
26 |
| - pandoc {} -o html/$BASE.html |
27 |
| - perl -pi -e `s/\"\\K([^\\"]+)\\.md(?=\")/\\1.html/g` html/$BASE.html |
28 |
| - echo "<link rel=\"stylesheet\" href=\"https://unpkg.com/mvp.css\">" >> "html/$BASE.html" |
| 22 | +cat <<- PANDOC_FILTER > "./temp/md_to_html.lua" |
| 23 | + function Link(elem) |
| 24 | + elem.target = string.gsub(elem.target, "%.md$", ".html") |
| 25 | + return elem |
| 26 | + end |
| 27 | +PANDOC_FILTER |
| 28 | + |
| 29 | +echo "Rendering HTML..." |
| 30 | +if command -v parallel &> /dev/null; then |
| 31 | + parallel ' |
| 32 | + base=$(basename {} .md) |
| 33 | + pandoc -s \ |
| 34 | + -V pagetitle="${base#"harper.js."} - Harper" \ |
| 35 | + -V description-meta="API reference documentation for harper.js" \ |
| 36 | + -V document-css="true" \ |
| 37 | + -L "./temp/md_to_html.lua" \ |
| 38 | + -o "html/${base}.html" {} |
29 | 39 | ' ::: ./markdown/*.md
|
| 40 | +else |
| 41 | + echo "parallel not found, falling back to sequential processing" |
| 42 | + for file in ./markdown/*.md; do |
| 43 | + base=$(basename "$file" .md) |
| 44 | + pandoc -s \ |
| 45 | + -V pagetitle="${base#"harper.js."} - Harper" \ |
| 46 | + -V description-meta="API reference documentation for harper.js" \ |
| 47 | + -V document-css="true" \ |
| 48 | + -L "./temp/md_to_html.lua" \ |
| 49 | + -o "html/${base}.html" "$file" |
| 50 | + done |
30 | 51 | fi
|
31 |
| - |
32 |
| -rm -r ../web/static/docs/harperjs || true |
33 |
| -mkdir -p ../web/static/docs/harperjs || true |
34 |
| -mv -f html ../web/static/docs/harperjs/ref |
| 52 | +mv -f "$html_dir" "${harperjs_docs_dir}/ref" |
0 commit comments