Publishing Modes¶
SkyCMS supports multiple publishing workflows — from single-click direct publishing to bulk static site generation. Choose the approach that best fits your content delivery requirements.
Audience: Editors, Administrators, Developers
Overview¶
| Mode | Description | Best For |
|---|---|---|
| Direct publish | Publish a single page immediately | Blog posts, quick updates |
| Scheduled publish | Set a future date for automatic activation | Embargoed content, campaigns |
| Static site generation | Generate HTML files and upload to blob storage | High-performance sites, CDN delivery |
| Bulk publish | Publish multiple pages simultaneously with progress tracking | Site-wide template changes, migrations |
Direct Publishing¶
The simplest workflow — publish a single page immediately.
- Open the page in the editor.
- Click Publish (or navigate to the publish dialog).
- The page is immediately available on the live site.
What Happens Behind the Scenes¶
- The article's
Publishedtimestamp is set to now. - Any previously published version of the same page is unpublished.
- A
PublishedPagesnapshot is created (a read-optimized copy for the live site). - If static pages are enabled, an HTML file is generated and uploaded to blob storage.
- The table of contents (TOC) is regenerated.
- If the page is a blog post, the blog stream TOC is also updated.
- The CDN cache is purged for the page's URL.
Scheduled Publishing¶
Set a future date and time to publish content automatically.
- Open the publish dialog for the page.
- Select a publish date/time (UTC).
- Confirm. The page will become live when the scheduled time arrives.
You can also set an expiration date to automatically retire content after a certain date.
Static Site Generation¶
For performance-critical sites, SkyCMS can generate static HTML files that are served directly from blob storage or a CDN — no server-side rendering required for each visitor request.
Enabling Static Pages¶
Static page generation is enabled at the site/tenant level. When enabled:
- Each publish operation also generates a static HTML file.
- Files are uploaded to the configured blob storage container.
- A
toc.jsonfile is generated with the site's table of contents. - The Publisher component serves these static files.
Bulk Static Generation¶
Administrators can regenerate static pages in bulk:
- Navigate to the publish interface.
- Select pages to regenerate (or leave empty to regenerate all published pages).
- Click Publish Static Pages.
- Progress is tracked in real-time via SignalR (see Publishing Progress below).
After bulk generation completes, a full CDN purge is triggered to ensure visitors see the latest content.
Table of Contents (TOC)¶
The TOC is a JSON file (toc.json) that represents the site's navigation structure:
- Generated automatically on every publish/unpublish operation.
- Includes hierarchical parent-child relationships between pages.
- Uploaded to blob storage at
/toc.jsonor/pub/---toc/{prefix}/toc.json. - Only generated when static pages are enabled.
Unpublishing¶
To remove a page from the live site:
- Open the page in the editor.
- Click Unpublish (or navigate to
/Editor/UnpublishPage/{articleNumber}).
What Happens¶
- The article's
Publishedfield is cleared. - The
PublishedPagerecord is removed (redirect entries are preserved). - The static HTML file is deleted from blob storage.
- The CDN cache is purged for each affected URL.
- The TOC is regenerated.
Template Publishing¶
Templates (page designs) have their own versioning and publishing workflow:
- Edit a template and save changes (creates a new template version).
- Publish the template version.
- On publish, the system automatically:
- Updates the template's published content.
- Creates new article versions for all pages using this template.
- Republishes any previously published articles with the new template.
- Creates a new draft version of the template for the next edit cycle.
Important: Publishing a template triggers changes to every page that uses it. This is a high-impact operation — review template changes carefully before publishing.
Publishing Progress¶
Bulk operations report progress in real-time via SignalR:
- A progress indicator shows the current page being processed.
- The total count and completed count are displayed.
- A completion notification appears when all pages are processed.
This feature requires the SignalR PublishingProgressHub connection (established automatically when you open the publish interface).
Access: Editors and Administrators only.
Multi-Tenancy¶
All publishing operations are scoped to the current tenant:
- Static files are uploaded to tenant-specific blob paths.
- CDN purge operations target the tenant's configured CDN.
- TOC generation includes only the current tenant's published articles.
- The
PublishedPagetable is filtered by tenant domain.
See Also¶
- Version History — How versions relate to publishing
- Preload & Caching — Cache warming and CDN pre-loading
- URL Management — How redirects interact with publishing
- Blog Architecture — Blog-specific publishing details