validatePost akzeptiert jetzt auch string-dates im YYYY-MM-DD- oder ISO-8601-format und coerced sie in ein Date-objekt in-place. vorher schlug die validation für 13 von 18 altposts fehl, weil deren yaml `date: "2023-02-26"` quoted war (hugo-konvention) und der yaml-parser strings statt Date-instanzen liefert. migration durchgelaufen (log in docs/publish-logs/): 18/18 success, 91 bilder auf beiden blossom-servern, 5 write-relays — bis auf relay.damus.io, der bei 6 posts nicht auf OK antwortet (üblich bei damus, rate-limiting). alle 7 multi-relay-posts haben weiter mindestens 4 acks (über MIN_RELAY_ACKS=2). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| src | ||
| tests | ||
| .env.example | ||
| .gitignore | ||
| README.md | ||
| deno.jsonc | ||
README.md
publish — Nostr-Publish-Pipeline
Markdown-Posts aus einem Hugo-ähnlichen Content-Ordner zu kind:30023-Events,
Bilder zu Blossom, Signatur via NIP-46-Bunker.
Blaupause für Nostr-Repos: keinerlei Projekt-Konstanten im Code, alles über Env-Variablen konfigurierbar.
Setup
cp .env.example .envund Werte eintragen.- Oder:
.env.localim Eltern-Ordner pflegen unddeno.jsoncanpassen (siehe--env-file=../.env.local-Tasks). deno task check— verifiziert Bunker, Relay-Liste, Blossom-Server.
Befehle
deno task publish— Git-Diff-Modus: publisht nur geänderte Posts.deno task publish --force-all— alle Posts (Migration / Reimport).deno task publish --post <slug>— nur ein Post.deno task publish --dry-run— zeigt, was publiziert würde, ohne Uploads.deno task validate-post content/posts/<ordner>/index.md— Frontmatter-Check.deno task test— Tests.
Struktur
src/core/— Library (Frontmatter, Markdown, Events, Signer, Relays, Blossom).src/subcommands/— CLI-Befehle.src/cli.ts— Entrypoint, Subcommand-Dispatcher.tests/— Unit- und Integration-Tests..github/workflows/publish.yml— CI-Workflow.