mirror of
https://github.com/garrytan/gstack.git
synced 2026-07-07 08:37:52 +02:00
fix(make-pdf): move setup before preamble footer
This commit is contained in:
+36
-36
@@ -102,6 +102,42 @@ echo "CHECKPOINT_PUSH: $_CHECKPOINT_PUSH"
|
||||
[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true
|
||||
```
|
||||
|
||||
## MAKE-PDF SETUP (run this check BEFORE any make-pdf command)
|
||||
|
||||
```bash
|
||||
_ROOT=$(git rev-parse --show-toplevel 2>/dev/null)
|
||||
P=""
|
||||
[ -n "$MAKE_PDF_BIN" ] && [ -x "$MAKE_PDF_BIN" ] && P="$MAKE_PDF_BIN"
|
||||
[ -z "$P" ] && [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/make-pdf/dist/pdf" ] && P="$_ROOT/.claude/skills/gstack/make-pdf/dist/pdf"
|
||||
[ -z "$P" ] && P="$HOME/.claude/skills/gstack/make-pdf/dist/pdf"
|
||||
if [ -x "$P" ]; then
|
||||
echo "MAKE_PDF_READY: $P"
|
||||
alias _p_="$P" # shellcheck alias helper (not exported)
|
||||
export P # available as $P in subsequent blocks within the same skill invocation
|
||||
else
|
||||
echo "MAKE_PDF_NOT_AVAILABLE (run './setup' in the gstack repo to build it)"
|
||||
fi
|
||||
```
|
||||
|
||||
If `MAKE_PDF_NOT_AVAILABLE` is printed: tell the user the binary is not
|
||||
built. Have them run `./setup` from the gstack repo, then retry.
|
||||
|
||||
If `MAKE_PDF_READY` is printed: `$P` is the binary path for the rest of
|
||||
the skill. Use `$P` (not an explicit path) so the skill body stays portable.
|
||||
|
||||
Core commands:
|
||||
- `$P generate <input.md> [output.pdf]` — render markdown to PDF (80% use case)
|
||||
- `$P generate --cover --toc essay.md out.pdf` — full publication layout
|
||||
- `$P generate --watermark DRAFT memo.md draft.pdf` — diagonal DRAFT watermark
|
||||
- `$P preview <input.md>` — render HTML and open in browser (fast iteration)
|
||||
- `$P setup` — verify browse + Chromium + pdftotext and run a smoke test
|
||||
- `$P --help` — full flag reference
|
||||
|
||||
Output contract:
|
||||
- `stdout`: ONLY the output path on success. One line.
|
||||
- `stderr`: progress (`Rendering HTML... Generating PDF...`) unless `--quiet`.
|
||||
- Exit 0 success / 1 bad args / 2 render error / 3 Paged.js timeout / 4 browse unavailable.
|
||||
|
||||
## Plan Mode Safe Operations
|
||||
|
||||
In plan mode, allowed because they inform the plan: `$B`, `$D`, `codex exec`/`codex review`, writes to `~/.gstack/`, writes to the plan file, and `open` for generated artifacts.
|
||||
@@ -489,42 +525,6 @@ On Linux, install `fonts-liberation` for correct rendering — Helvetica and Ari
|
||||
aren't present by default, and Liberation Sans is the standard metric-compatible
|
||||
fallback. CI and Docker builds install it automatically via Dockerfile.ci.
|
||||
|
||||
## MAKE-PDF SETUP (run this check BEFORE any make-pdf command)
|
||||
|
||||
```bash
|
||||
_ROOT=$(git rev-parse --show-toplevel 2>/dev/null)
|
||||
P=""
|
||||
[ -n "$MAKE_PDF_BIN" ] && [ -x "$MAKE_PDF_BIN" ] && P="$MAKE_PDF_BIN"
|
||||
[ -z "$P" ] && [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/make-pdf/dist/pdf" ] && P="$_ROOT/.claude/skills/gstack/make-pdf/dist/pdf"
|
||||
[ -z "$P" ] && P="$HOME/.claude/skills/gstack/make-pdf/dist/pdf"
|
||||
if [ -x "$P" ]; then
|
||||
echo "MAKE_PDF_READY: $P"
|
||||
alias _p_="$P" # shellcheck alias helper (not exported)
|
||||
export P # available as $P in subsequent blocks within the same skill invocation
|
||||
else
|
||||
echo "MAKE_PDF_NOT_AVAILABLE (run './setup' in the gstack repo to build it)"
|
||||
fi
|
||||
```
|
||||
|
||||
If `MAKE_PDF_NOT_AVAILABLE` is printed: tell the user the binary is not
|
||||
built. Have them run `./setup` from the gstack repo, then retry.
|
||||
|
||||
If `MAKE_PDF_READY` is printed: `$P` is the binary path for the rest of
|
||||
the skill. Use `$P` (not an explicit path) so the skill body stays portable.
|
||||
|
||||
Core commands:
|
||||
- `$P generate <input.md> [output.pdf]` — render markdown to PDF (80% use case)
|
||||
- `$P generate --cover --toc essay.md out.pdf` — full publication layout
|
||||
- `$P generate --watermark DRAFT memo.md draft.pdf` — diagonal DRAFT watermark
|
||||
- `$P preview <input.md>` — render HTML and open in browser (fast iteration)
|
||||
- `$P setup` — verify browse + Chromium + pdftotext and run a smoke test
|
||||
- `$P --help` — full flag reference
|
||||
|
||||
Output contract:
|
||||
- `stdout`: ONLY the output path on success. One line.
|
||||
- `stderr`: progress (`Rendering HTML... Generating PDF...`) unless `--quiet`.
|
||||
- Exit 0 success / 1 bad args / 2 render error / 3 Paged.js timeout / 4 browse unavailable.
|
||||
|
||||
## Core patterns
|
||||
|
||||
### 80% case — memo/letter
|
||||
|
||||
@@ -41,8 +41,6 @@ On Linux, install `fonts-liberation` for correct rendering — Helvetica and Ari
|
||||
aren't present by default, and Liberation Sans is the standard metric-compatible
|
||||
fallback. CI and Docker builds install it automatically via Dockerfile.ci.
|
||||
|
||||
{{MAKE_PDF_SETUP}}
|
||||
|
||||
## Core patterns
|
||||
|
||||
### 80% case — memo/letter
|
||||
|
||||
Reference in New Issue
Block a user