Gsd-skill-creator publish-pipeline

Markdown to HTML/PDF build + FTP sync to configured remote host. Pandoc + xelatex templates, branded output, automated deployment. Proven on 29-document HEL series.

install
source · Clone the upstream repo
git clone https://github.com/Tibsfox/gsd-skill-creator
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/Tibsfox/gsd-skill-creator "$T" && mkdir -p ~/.claude/skills && cp -r "$T/examples/skills/media/publish-pipeline" ~/.claude/skills/tibsfox-gsd-skill-creator-publish-pipeline && rm -rf "$T"
manifest: examples/skills/media/publish-pipeline/SKILL.md
source content

Publish Pipeline

Activates when research documents need to be converted to publication formats and deployed to the live site.

Build Chain

Markdown (.md) → pandoc → Standalone HTML (branded template)
                       → LaTeX PDF (xelatex, branded template)

Prerequisites

  • ~/.local/bin/pandoc
    (v3.6+)
  • xelatex
    (texlive-xetex)
  • DejaVu fonts (for PDF)
  • Templates at the project level:
    template.tex
    ,
    html-template.html
  • build.sh
    script in the project directory

Build Command

bash www/$SITE_DOMAIN/Research/PROJECT/build.sh

Template Setup

Each research project needs:

  1. template.tex
    — LaTeX template (branded header/footer, colors, title page)
  2. html-template.html
    — Standalone HTML template (dark theme, navigation)
  3. build.sh
    — Iterates research/*.md, builds both formats

FTP Sync

# Full site sync
bash scripts/sync-research-to-live.sh

# Single project sync (direct to FTP root)
lftp -f /tmp/lftp-PROJECT.sh
# Where remote path is /PROJECT (NOT /Research/PROJECT)

Critical: The web server maps

$DEPLOY_HOST/Research/X/
to FTP root
/X/
, not to
/Research/X/
. Always upload to root-level project directories.

Series Integration

After publishing, add the project to

series.js
:

{ id: 'CODE', name: 'Project Name', path: 'CODE/index.html' },

Alphabetical insertion by ID.