Obsidian Cloudflare Pages
--- name: obsidian-cloudflare-pages description: Publish selected Obsidian markdown from a vault to a static site and deploy to Cloudflare Pages. homepage: https://pages.cloudflare.com/ --- # OpenCla
Description
name: obsidian-cloudflare-pages description: Publish selected Obsidian markdown from a vault to a static site and deploy to Cloudflare Pages. homepage: https://pages.cloudflare.com/
OpenClaw Skill: Obsidian/Markdown → Cloudflare Pages
This is an OpenClaw Skill for publishing Markdown to Cloudflare Pages.
- Works with Obsidian vault folders or any Markdown folder
- Originally built for reading Obsidian Web Clipper output:
Automates a safe publishing flow:
- Select notes from your source folder
- Sync to a publish workspace
- Build static HTML with Quartz
- Deploy to Cloudflare Pages
Commands
node skills/obsidian-cloudflare-pages/bin/publishmd-cf.js init- Creates
config/config.jsonfrom example
- Creates
node skills/obsidian-cloudflare-pages/bin/publishmd-cf.js wizard- Interactive setup wizard for config (vault, folders, site/domain, Cloudflare project)
node skills/obsidian-cloudflare-pages/bin/publishmd-cf.js setup-project- Initializes Quartz project in configured workspace if missing
node skills/obsidian-cloudflare-pages/bin/publishmd-cf.js doctor- Validates paths + required binaries
node skills/obsidian-cloudflare-pages/bin/publishmd-cf.js sync- Syncs selected notes/assets into publish content folder
node skills/obsidian-cloudflare-pages/bin/publishmd-cf.js build- Runs Quartz build in project dir
node skills/obsidian-cloudflare-pages/bin/publishmd-cf.js deploy- Deploys to Cloudflare Pages with wrangler
node skills/obsidian-cloudflare-pages/bin/publishmd-cf.js run- sync → build → deploy
Config
Copy and edit:
skills/obsidian-cloudflare-pages/config/config.example.json → skills/obsidian-cloudflare-pages/config/config.json
Safety defaults
- Publish allowlist by folder
- Optional
publish: truefrontmatter gate - Exclude private folders by default
Requirements
node20+rsyncnpmnpx quartzwrangler
Cloudflare API token setup (recommended)
Create a Cloudflare API token with at least:
- Account → Cloudflare Pages:Edit
- (Optional) Zone → DNS:Edit if you want DNS automation elsewhere
You can either export env vars in your shell profile (~/.zshrc) or use the skill-local .env file.
Option A: shell profile (~/.zshrc)
export CLOUDFLARE_API_TOKEN="<your-token>"
export CLOUDFLARE_ACCOUNT_ID="<your-account-id>"
Reload shell:
source ~/.zshrc
Option B: skill-local env file (recommended for this skill)
cp skills/obsidian-cloudflare-pages/.env.example skills/obsidian-cloudflare-pages/.env
# then edit .env
The CLI auto-loads skills/obsidian-cloudflare-pages/.env (without overriding existing shell env vars).
Wizard now asks for:
- Full production domain (e.g.
YOURDOMAIN.COM) - Branding settings (root source folder, source index label, root index label, sidebar title HTML)
- Token/account env var names (defaults above)
- Optional basic-auth protection (username/password)
Notes
- ⚠️
setup-projectfallback 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.
OpenClaw usage tips
Example prompts:
- “Set up obsidian-cloudflare-pages wizard for my markdown folder.”
- “Run doctor and tell me what dependency is missing.”
- “Sync, build, and deploy to Cloudflare Pages.”
- “Enable basic auth and redeploy.”
Best practices:
- Keep secrets in
.env(never in chat logs) - Commit
config.example.json, not personalconfig.json - Use a scoped Cloudflare token (Pages edit, DNS edit only if needed)
- Start on a test subdomain before production
Standalone usage (outside OpenClaw)
This 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
Security note
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.
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!