Skip to content

Commit 5533c1a

Browse files
committed
Remove tracked PNG cover fallback
1 parent 701c2e6 commit 5533c1a

File tree

3 files changed

+67
-10
lines changed

3 files changed

+67
-10
lines changed

.github/workflows/developer-guide-docs.yml

Lines changed: 63 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ name: Build Developer Guide Docs
22

33
on:
44
pull_request:
5+
types: [opened, synchronize, reopened, ready_for_review]
56
paths:
67
- 'docs/developer-guide/**'
78
- '.github/workflows/developer-guide-docs.yml'
@@ -21,23 +22,49 @@ jobs:
2122
- name: Check out repository
2223
uses: actions/checkout@v4
2324

24-
- name: Update publication metadata for release
25-
if: ${{ github.event_name == 'release' && github.event.action == 'published' }}
26-
env:
27-
RELEASE_TAG: ${{ github.event.release.tag_name }}
25+
- name: Determine publication metadata
2826
run: |
2927
set -euo pipefail
3028
REV_DATE="$(date -u +%Y-%m-%d)"
31-
VERSION="${RELEASE_TAG:-}"
29+
VERSION="${GITHUB_HEAD_REF:-}"
3230
if [ -z "$VERSION" ] && [ -n "${GITHUB_REF_NAME:-}" ]; then
3331
VERSION="$GITHUB_REF_NAME"
3432
fi
33+
if [ -z "$VERSION" ] && [ -n "${GITHUB_SHA:-}" ]; then
34+
VERSION="${GITHUB_SHA:0:7}"
35+
fi
3536
VERSION="${VERSION#v}"
3637
if [ -z "$VERSION" ]; then
3738
VERSION="UNKNOWN"
3839
fi
39-
sed -i -E "s/^:revdate: .*/:revdate: ${REV_DATE}/" docs/developer-guide/developer-guide.asciidoc
40-
sed -i -E "s/^:revnumber: .*/:revnumber: ${VERSION}/" docs/developer-guide/developer-guide.asciidoc
40+
if date -u -d "$REV_DATE" '+%B %-d, %Y' >/tmp/rev_human 2>/dev/null; then
41+
REV_HUMAN_DATE="$(cat /tmp/rev_human)"
42+
else
43+
REV_HUMAN_DATE="$(date -u '+%B %-d, %Y')"
44+
fi
45+
{
46+
echo "REV_DATE=$REV_DATE"
47+
echo "REV_NUMBER=$VERSION"
48+
echo "REV_HUMAN_DATE=$REV_HUMAN_DATE"
49+
} >> "$GITHUB_ENV"
50+
51+
- name: Render publication cover artwork
52+
run: |
53+
set -euo pipefail
54+
sudo apt-get update
55+
sudo apt-get install -y --no-install-recommends librsvg2-bin
56+
SOURCE="docs/developer-guide/book-cover.svg"
57+
GENERATED_SVG="docs/developer-guide/book-cover.generated.svg"
58+
GENERATED_PNG="docs/developer-guide/book-cover.generated.png"
59+
cp "$SOURCE" "$GENERATED_SVG"
60+
export GENERATED_SVG
61+
python3 -c "import os, re, pathlib; target = pathlib.Path(os.environ['GENERATED_SVG']); text = target.read_text(encoding='utf-8'); rev = os.environ.get('REV_NUMBER', 'UNKNOWN'); date = os.environ.get('REV_HUMAN_DATE') or os.environ.get('REV_DATE', ''); replacement = f\"Version {rev}\" + (f\" - {date}\" if date else ''); new_text, count = re.subn(r'Version\\s+[^<]+', replacement.strip(), text, count=1); assert count == 1, 'Could not find version text placeholder in cover artwork'; target.write_text(new_text, encoding='utf-8')"
62+
rsvg-convert -w 2551 -h 3579 "$GENERATED_SVG" -o "$GENERATED_PNG"
63+
{
64+
echo "COVER_IMAGE_ATTR=$(basename "$GENERATED_PNG")"
65+
echo "GENERATED_COVER_IMAGE=$GENERATED_PNG"
66+
echo "GENERATED_COVER_SVG=$GENERATED_SVG"
67+
} >> "$GITHUB_ENV"
4168
4269
- name: Set up Ruby
4370
uses: ruby/setup-ruby@v1
@@ -55,19 +82,46 @@ jobs:
5582
HTML_BUILD_DIR="${OUTPUT_ROOT}/html"
5683
PDF_BUILD_DIR="${OUTPUT_ROOT}/pdf"
5784
PACKAGE_DIR="${OUTPUT_ROOT}/html-package"
85+
COVER_IMAGE_ATTR_VALUE="${COVER_IMAGE_ATTR:-book-cover.svg}"
86+
GENERATED_COVER_IMAGE="${GENERATED_COVER_IMAGE:-}"
87+
GENERATED_COVER_SVG="${GENERATED_COVER_SVG:-}"
5888
mkdir -p "$HTML_BUILD_DIR" "$PDF_BUILD_DIR"
59-
asciidoctor -D "$HTML_BUILD_DIR" -o developer-guide.html docs/developer-guide/developer-guide.asciidoc
60-
asciidoctor-pdf -D "$PDF_BUILD_DIR" -o developer-guide.pdf docs/developer-guide/developer-guide.asciidoc
89+
asciidoctor \
90+
-a revdate="$REV_DATE" \
91+
-a revnumber="$REV_NUMBER" \
92+
-a cover-image="$COVER_IMAGE_ATTR_VALUE" \
93+
-D "$HTML_BUILD_DIR" \
94+
-o developer-guide.html \
95+
docs/developer-guide/developer-guide.asciidoc
96+
asciidoctor-pdf \
97+
-a revdate="$REV_DATE" \
98+
-a revnumber="$REV_NUMBER" \
99+
-a cover-image="$COVER_IMAGE_ATTR_VALUE" \
100+
-D "$PDF_BUILD_DIR" \
101+
-o developer-guide.pdf \
102+
docs/developer-guide/developer-guide.asciidoc
61103
rm -rf "$PACKAGE_DIR"
62104
mkdir -p "$PACKAGE_DIR"
105+
if [ -n "$GENERATED_COVER_IMAGE" ] && [ -f "$GENERATED_COVER_IMAGE" ]; then
106+
cp "$GENERATED_COVER_IMAGE" "$HTML_BUILD_DIR/$(basename "$GENERATED_COVER_IMAGE")"
107+
fi
63108
cp "$HTML_BUILD_DIR/developer-guide.html" "$PACKAGE_DIR/"
64109
for asset_dir in docs/developer-guide/*; do
65110
base_name="$(basename "$asset_dir")"
66111
if [ -d "$asset_dir" ] && [ "$base_name" != "sketch" ]; then
67112
cp -R "$asset_dir" "$PACKAGE_DIR/"
68113
fi
69114
done
115+
if [ -n "$GENERATED_COVER_IMAGE" ] && [ -f "$GENERATED_COVER_IMAGE" ]; then
116+
cp "$GENERATED_COVER_IMAGE" "$PACKAGE_DIR/$(basename "$GENERATED_COVER_IMAGE")"
117+
fi
70118
(cd "$PACKAGE_DIR" && zip -r "../developer-guide-html.zip" .)
119+
if [ -n "$GENERATED_COVER_IMAGE" ] && [ -f "$GENERATED_COVER_IMAGE" ]; then
120+
rm -f "$GENERATED_COVER_IMAGE"
121+
fi
122+
if [ -n "$GENERATED_COVER_SVG" ] && [ -f "$GENERATED_COVER_SVG" ]; then
123+
rm -f "$GENERATED_COVER_SVG"
124+
fi
71125
72126
- name: Upload HTML artifact
73127
uses: actions/upload-artifact@v4

docs/developer-guide/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
book-cover.generated.svg
2+
book-cover.generated.png

docs/developer-guide/developer-guide.asciidoc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616
:autofit-option:
1717
//:hide-uri-scheme:
1818
:uuid: 92CA37B2-EB2B-4B8F-AC7C-1ED13683F7FB
19-
:front-cover-image: image:img/cover.png[Front Cover,1000,1600]
19+
:cover-image: book-cover.svg
20+
:front-cover-image: image:{cover-image}[Front Cover]
2021
:lang: en-US
2122
:revdate: 2025-10-20
2223
:revnumber: DEV-SNAPSHOT

0 commit comments

Comments
 (0)