Install
openclaw skills install openclaw-skill-obsidian-cloudflare-pagesPublish selected Obsidian markdown from a vault to a static site and deploy to Cloudflare Pages.
openclaw skills install openclaw-skill-obsidian-cloudflare-pagesThis is an OpenClaw Skill for publishing Markdown to Cloudflare Pages.
Automates a safe publishing flow:
node skills/obsidian-cloudflare-pages/bin/publishmd-cf.js init
config/config.json from examplenode skills/obsidian-cloudflare-pages/bin/publishmd-cf.js wizard
node skills/obsidian-cloudflare-pages/bin/publishmd-cf.js setup-project
node skills/obsidian-cloudflare-pages/bin/publishmd-cf.js doctor
node skills/obsidian-cloudflare-pages/bin/publishmd-cf.js sync
node skills/obsidian-cloudflare-pages/bin/publishmd-cf.js build
node skills/obsidian-cloudflare-pages/bin/publishmd-cf.js deploy
node skills/obsidian-cloudflare-pages/bin/publishmd-cf.js run
node skills/obsidian-cloudflare-pages/bin/publishmd-cf.js run --dry-run
Copy and edit:
skills/obsidian-cloudflare-pages/config/config.example.json → skills/obsidian-cloudflare-pages/config/config.json
publish: true frontmatter gatenode 20+rsyncnpmnpx quartzwranglerCreate a Cloudflare API token with at least:
You can either export env vars in your shell profile (~/.zshrc) or use the skill-local .env file.
~/.zshrc)export CLOUDFLARE_API_TOKEN="<your-token>"
export CLOUDFLARE_ACCOUNT_ID="<your-account-id>"
Reload shell:
source ~/.zshrc
cp skills/obsidian-cloudflare-pages/.env.example skills/obsidian-cloudflare-pages/.env
# then edit .env
# optional auth envs: BASIC_AUTH_USERNAME / BASIC_AUTH_PASSWORD
The CLI auto-loads skills/obsidian-cloudflare-pages/.env (without overriding existing shell env vars).
Wizard now asks for:
YOURDOMAIN.COM)setup-project fallback behavior: if the direct Quartz bootstrap command fails, the fallback path may clear files in the configured workspace directory before cloning Quartz. Use a dedicated workspace path for this skill.ALLOW_DESTRUCTIVE=1 when workspace is non-empty.Example prompts:
Best practices:
.env (never in chat logs)BASIC_AUTH_USERNAME / BASIC_AUTH_PASSWORD)config.example.json, not personal config.jsonThis works as a plain Node CLI too:
node bin/publishmd-cf.js init
node bin/publishmd-cf.js wizard
cp .env.example .env
# fill .env values
node bin/publishmd-cf.js run
Basic auth in this skill is intentionally simple and optional. Do not publish highly sensitive content unless you fully understand your security model and hardening choices.
Safety switches:
--dry-run (or DRY_RUN=1) to preview actions without mutating/deployingALLOW_DESTRUCTIVE=1 only when you intentionally allow fallback setup to clear a non-empty workspace directory