Publish and manage web content via CLI.
Publishing Pipeline
Full Publish
{ "command": "core content publish" }
Runs: ingest -> assets -> prerender -> homepage -> sitemap
Individual Steps
{ "command": "core content publish --step ingest" }
{ "command": "core content publish --step assets" }
{ "command": "core content publish --step prerender" }
{ "command": "core content publish --step pages" }
{ "command": "core content publish --step sitemap" }
| Step | Action |
|---|---|
ingest |
Parse markdown files into database |
assets |
Copy CSS/JS from storage to web/dist |
prerender |
Generate static HTML from database |
pages |
Generate static pages (homepage, etc.) |
sitemap |
Generate sitemap.xml and feed.xml |
Content Management
List Content
{ "command": "core content list --source blog" }
{ "command": "core content list --source documentation" }
{ "command": "core content list --source legal" }
{ "command": "core content list --source blog --limit 20 --offset 0" }
Show Content
{ "command": "core content show <slug> --source <source>" }
Search Content
{ "command": "core content search \"<query>\"" }
Verify Content
{ "command": "core content verify <slug> --source <source>" }
{ "command": "core content verify <slug> --source <source> --base-url https://example.com" }
Content Status
{ "command": "core content status --source <source>" }
Re-ingest Content
{ "command": "core content ingest services/content/blog --source blog --override" }
Delete Content
{ "command": "core content delete <content-id> --yes" }
File Management
Upload Files
{ "command": "core files upload ./my-image.png --context <context-id>" }
List Files
{ "command": "core files list" }
{ "command": "core files list --limit 50" }
{ "command": "core files list --mime image/png" }
Show/Search Files
{ "command": "core files show <file-id>" }
{ "command": "core files search \"blog\"" }
Delete Files
{ "command": "core files delete <file-id> -y" }
Storage Stats
{ "command": "core files stats" }
{ "command": "core files config" }
Sync Content
Export to Disk
{ "command": "cloud sync local content --direction to-disk" }
{ "command": "cloud sync local content --direction to-disk --source blog" }
Import to Database
{ "command": "cloud sync local content --direction to-db" }
Dry Run
{ "command": "cloud sync local content --dry-run" }
Background Jobs
Content Jobs
{ "command": "infra jobs run publish_content" }
{ "command": "infra jobs run blog_image_optimization" }
{ "command": "infra jobs run copy_extension_assets" }
Troubleshooting
Content not appearing -- Verify published with core content verify --slug <slug> --source <source>.
Missing images -- Check file upload and run core content publish --step assets.
Stale content -- Re-ingest with core content ingest <path> --source <source> --override.
Quick Reference
| Task | Command |
|---|---|
| Full publish | core content publish |
| Ingest only | core content publish --step ingest |
| Assets only | core content publish --step assets |
| Prerender only | core content publish --step prerender |
| Pages only | core content publish --step pages |
| Sitemap only | core content publish --step sitemap |
| List content | core content list --source <source> |
| Show content | core content show <slug> --source <source> |
| Search | core content search "<query>" |
| Verify | core content verify <slug> --source <source> |
| Upload file | core files upload <path> |
| List files | core files list |
| Export to disk | cloud sync local content --direction to-disk |
| Import to DB | cloud sync local content --direction to-db |