diff --git a/.github/workflows/deploy-docs-cloudflare.yml b/.github/workflows/deploy-docs-cloudflare.yml index 587f70c..37b027d 100644 --- a/.github/workflows/deploy-docs-cloudflare.yml +++ b/.github/workflows/deploy-docs-cloudflare.yml @@ -99,6 +99,8 @@ jobs: cat > mkdocs-ci.yml < mkdocs-ci.yml < **Reading path:** [Architecture overview](./architecture.md) > [Architecture Executive Summary](./architecture-executive-summary.md) > **Core Platform Architecture** > [Architecture Decision Matrix](./ar...", + "broken_snippets": false, + "content_length": 12190 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/architecture-decision-matrix.md", + "frontmatter": { + "canonical_title": "Architecture Decision Matrix", + "description": "Decision guide for choosing static, dynamic, or hybrid SkyCMS delivery architecture.", + "doc_type": "Reference", + "product_area": "architecture", + "user_intent": "understand-architecture-decision-matrix", + "audience": [ + "Developers" + ], + "difficulty": "advanced", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Decision guide for choosing static, dynamic, or hybrid SkyCMS delivery architecture.\n\n> **Reading path:** [Architecture overview](./architecture.md) > [Architecture Executive Summary](./architecture-executive-summary.md) > [Core Platform Architecture](./architecture-core-platform.md) > **Architectur...", + "broken_snippets": false, + "content_length": 5104 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/architecture-decision-records.md", + "frontmatter": { + "canonical_title": "Architecture Decision Records (ADRs)", + "description": "SkyCMS ADRs are maintained in the main SkyCMS repository as the canonical source of truth.", + "doc_type": "Explanation", + "product_area": "architecture", + "user_intent": "understand-architecture-decision-records-adrs", + "audience": [ + "Developers" + ], + "difficulty": "advanced", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "SkyCMS ADRs are maintained in the main SkyCMS repository as the canonical source of truth.", + "broken_snippets": false, + "content_length": 12678 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/architecture-diagram-catalog.md", + "frontmatter": { + "canonical_title": "Architecture Diagram Catalog", + "description": "Central table of contents for Mermaid architecture diagrams across SkyCMS documentation.", + "doc_type": "Reference", + "product_area": "architecture", + "user_intent": "understand-architecture-diagram-catalog", + "audience": [ + "Developers" + ], + "difficulty": "advanced", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Central table of contents for Mermaid architecture diagrams across SkyCMS documentation.", + "broken_snippets": false, + "content_length": 6721 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/architecture-executive-summary.md", + "frontmatter": { + "canonical_title": "Architecture Executive Summary", + "description": "Stakeholder-level summary of SkyCMS architecture, deployment patterns, and governance model.", + "doc_type": "Explanation", + "product_area": "architecture", + "user_intent": "understand-architecture-executive-summary", + "audience": [ + "Developers" + ], + "difficulty": "advanced", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Stakeholder-level summary of SkyCMS architecture, deployment patterns, and governance model.\n\n> **Reading path:** [Architecture overview](./architecture.md) > **Architecture Executive Summary** > [Core Platform Architecture](./architecture-core-platform.md) > [Architecture Decision Matrix](./archite...", + "broken_snippets": false, + "content_length": 2780 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/architecture-mode-selection-worksheet.md", + "frontmatter": { + "canonical_title": "Architecture Mode Selection Worksheet", + "description": "Practical worksheet to select static, dynamic, or hybrid delivery mode for a SkyCMS workload.", + "doc_type": "Reference", + "product_area": "architecture", + "user_intent": "understand-architecture-mode-selection-worksheet", + "audience": [ + "Developers" + ], + "difficulty": "advanced", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Practical worksheet to select static, dynamic, or hybrid delivery mode for a SkyCMS workload.", + "broken_snippets": false, + "content_length": 2694 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/architecture-profile-dynamic.md", + "frontmatter": { + "canonical_title": "Dynamic Delivery Architecture Profile", + "description": "Architecture profile for dynamic SkyCMS deployments with on-demand rendering and richer runtime behavior.", + "doc_type": "Explanation", + "product_area": "architecture", + "user_intent": "reference-dynamic-delivery-architecture-profile", + "audience": [ + "Developers" + ], + "difficulty": "advanced", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Architecture profile for dynamic SkyCMS deployments with on-demand rendering and richer runtime behavior.", + "broken_snippets": false, + "content_length": 4838 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/architecture-profile-hybrid.md", + "frontmatter": { + "canonical_title": "Hybrid Delivery Architecture Profile", + "description": "Architecture profile for combining static artifact delivery with dynamic authorization or extension endpoints in SkyCMS.", + "doc_type": "Explanation", + "product_area": "architecture", + "user_intent": "reference-hybrid-delivery-architecture-profile", + "audience": [ + "Developers" + ], + "difficulty": "advanced", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Architecture profile for combining static artifact delivery with dynamic authorization or extension endpoints in SkyCMS.", + "broken_snippets": false, + "content_length": 5401 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/architecture-profile-static.md", + "frontmatter": { + "canonical_title": "Static Delivery Architecture Profile", + "description": "Architecture profile for static-first SkyCMS deployments using generated artifacts and edge caching.", + "doc_type": "Explanation", + "product_area": "architecture", + "user_intent": "reference-static-delivery-architecture-profile", + "audience": [ + "Developers" + ], + "difficulty": "advanced", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Architecture profile for static-first SkyCMS deployments using generated artifacts and edge caching.", + "broken_snippets": false, + "content_length": 4801 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/architecture-review-checklist.md", + "frontmatter": { + "canonical_title": "Architecture Review Checklist", + "description": "Practical checklist for reviewing SkyCMS changes that affect tenant, publishing, and delivery architecture behavior.", + "doc_type": "Reference", + "product_area": "architecture", + "user_intent": "understand-architecture-review-checklist", + "audience": [ + "Developers" + ], + "difficulty": "advanced", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Practical checklist for reviewing SkyCMS changes that affect tenant, publishing, and delivery architecture behavior.", + "broken_snippets": false, + "content_length": 4006 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/architecture-route-inventory-templates.md", + "frontmatter": { + "canonical_title": "Architecture Route Inventory Templates", + "description": "Copy-ready route classification templates for static, dynamic, and hybrid SkyCMS architecture reviews.", + "doc_type": "Reference", + "product_area": "architecture", + "user_intent": "understand-architecture-route-inventory-templates", + "audience": [ + "Developers" + ], + "difficulty": "advanced", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Copy-ready route classification templates for static, dynamic, and hybrid SkyCMS architecture reviews.", + "broken_snippets": false, + "content_length": 3203 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/architecture.md", + "frontmatter": { + "canonical_title": "SkyCMS architecture overview", + "description": "Core architecture map for SkyCMS with deployment mode profiles and a selection matrix.", + "doc_type": "Explanation", + "product_area": "architecture", + "user_intent": "understand-skycms-architecture-overview", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Core architecture map for SkyCMS with deployment mode profiles and a selection matrix.\n\n> **Reading path:** **Architecture overview** > [Architecture Executive Summary](./architecture-executive-summary.md) > [Core Platform Architecture](./architecture-core-platform.md) > [Architecture Decision Matri...", + "broken_snippets": false, + "content_length": 6457 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/article-lifecycle.md", + "frontmatter": { + "canonical_title": "Article lifecycle", + "description": "Understand article command/handler lifecycle behavior and how create, update, and delete actions affect publishing artifacts.", + "doc_type": "Explanation", + "product_area": "publishing", + "user_intent": "understand-article-lifecycle-and-publishing-effects", + "audience": [ + "Developers" + ], + "difficulty": "advanced", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Understand article command/handler lifecycle behavior and how create, update, and delete actions affect publishing artifacts.", + "broken_snippets": false, + "content_length": 16884 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/audit-logging.md", + "frontmatter": { + "canonical_title": "Audit and logging", + "description": "SkyCMS uses structured logging, domain events, and a dedicated setup audit log to provide visibility into system activity. Health check endpoints support uptime monitoring.", + "doc_type": "Reference", + "product_area": "development", + "user_intent": "understand-audit-logging", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "SkyCMS uses structured logging, domain events, and a dedicated setup audit log to provide visibility into system activity. Health check endpoints support uptime monitoring.", + "broken_snippets": false, + "content_length": 5704 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/blog-architecture.md", + "frontmatter": { + "canonical_title": "Blog Architecture", + "description": "Developer reference for the SkyCMS blogging subsystem, including article types, CQRS flows, rendering, routing, and published output behavior.", + "doc_type": "Explanation", + "product_area": "architecture", + "user_intent": "understand-blog-architecture", + "audience": [ + "Developers" + ], + "difficulty": "advanced", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Developer reference for the SkyCMS blogging subsystem, including article types, CQRS flows, rendering, routing, and published output behavior.", + "broken_snippets": false, + "content_length": 8862 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/content-delivery-architecture.md", + "frontmatter": { + "canonical_title": "Content Delivery Architecture", + "description": "How SkyCMS serves files, pages, and assets to site visitors \u2014 from blob storage through the application layer to CDN edge caches.", + "doc_type": "Explanation", + "product_area": "architecture", + "user_intent": "understand-content-delivery-architecture", + "audience": [ + "Developers" + ], + "difficulty": "advanced", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "How SkyCMS serves files, pages, and assets to site visitors \u2014 from blob storage through the application layer to CDN edge caches.", + "broken_snippets": false, + "content_length": 8329 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/documentation-adoption-priority-plan.md", + "frontmatter": { + "canonical_title": "SkyCMS Documentation Adoption Priority Plan", + "description": "Adoption-first documentation execution plan prioritizing installation/configuration and first-website-build success.", + "doc_type": "Explanation", + "product_area": "documentation", + "user_intent": "prioritize-doc-work-for-adoption", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-27" + }, + "h1_count": 1, + "summary": "Adoption-first documentation execution plan prioritizing installation/configuration and first-website-build success.", + "broken_snippets": false, + "content_length": 5761 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/documentation-metadata-schema.md", + "frontmatter": { + "canonical_title": "SkyCMS Documentation Metadata Schema v1", + "description": "Required YAML front matter schema and validation rules for SkyCMS documentation pages.", + "doc_type": "Reference", + "product_area": "documentation", + "user_intent": "apply-documentation-metadata-schema", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-27" + }, + "h1_count": 1, + "summary": "Required YAML front matter schema and validation rules for SkyCMS documentation pages.", + "broken_snippets": false, + "content_length": 2423 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/documentation-pr-checklist.md", + "frontmatter": { + "canonical_title": "Documentation PR Checklist", + "description": "Use this checklist for documentation pull requests.", + "doc_type": "How-to", + "product_area": "development", + "user_intent": "implement-documentation-pr-checklist", + "audience": [ + "Developers" + ], + "difficulty": "beginner", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Use this checklist for documentation pull requests.", + "broken_snippets": false, + "content_length": 1759 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/documentation-rollout-plan.md", + "frontmatter": { + "canonical_title": "Documentation Standards Rollout Plan (30-60-90)", + "description": "This rollout plan applies the Documentation Standards Stack v1 in measured phases.", + "doc_type": "How-to", + "product_area": "development", + "user_intent": "implement-documentation-standards-rollout-plan-30-60-90", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "This rollout plan applies the Documentation Standards Stack v1 in measured phases.", + "broken_snippets": false, + "content_length": 1715 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/documentation-standards-gap-review-2026-04.md", + "frontmatter": { + "canonical_title": "SkyCMS Documentation Standards Gap Review (2026-04)", + "description": "Compliance audit of SkyCMS documentation against Documentation Standards Stack v1, with a phased implementation plan and progress tracking.", + "doc_type": "Reference", + "product_area": "development", + "user_intent": "review-skycms-documentation-standards-gap-and-implementation-plan", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Compliance audit of SkyCMS documentation against Documentation Standards Stack v1, with a phased implementation plan and progress tracking.", + "broken_snippets": false, + "content_length": 18179 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/documentation-standards-stack-v1.md", + "frontmatter": { + "canonical_title": "SkyCMS Documentation Standards Stack v1", + "description": "This standard defines how SkyCMS documentation is structured, written, reviewed, and improved.", + "doc_type": "Reference", + "product_area": "development", + "user_intent": "understand-skycms-documentation-standards-stack-v1", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "This standard defines how SkyCMS documentation is structured, written, reviewed, and improved.", + "broken_snippets": false, + "content_length": 5375 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/documentation-templates.md", + "frontmatter": { + "canonical_title": "SkyCMS Documentation Templates", + "description": "Use these templates for new pages and major rewrites.", + "doc_type": "Reference", + "product_area": "development", + "user_intent": "understand-skycms-documentation-templates", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Use these templates for new pages and major rewrites.", + "broken_snippets": false, + "content_length": 2202 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/documentation-visual-style-standard.md", + "frontmatter": { + "canonical_title": "SkyCMS Documentation Visual Style Standard (DVSS)", + "description": "Visual and typographic standards for SkyCMS documentation, including heading hierarchy, paragraph readability, and navigation/TOC clarity.", + "doc_type": "Reference", + "product_area": "documentation", + "user_intent": "apply-documentation-visual-style-standard", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-27" + }, + "h1_count": 1, + "summary": "Visual and typographic standards for SkyCMS documentation, including heading hierarchy, paragraph readability, and navigation/TOC clarity.", + "broken_snippets": false, + "content_length": 5521 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/editor-rendering-flow.md", + "frontmatter": { + "canonical_title": "Editor Rendering Flow", + "description": "How SkyCMS HomeController resolves layout context, authentication, and rendering path for editor views.", + "doc_type": "Reference", + "product_area": "infrastructure", + "user_intent": "understand-editor-rendering-flow", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "How SkyCMS `HomeController` resolves layout context, authentication, and rendering path for editor views.", + "broken_snippets": false, + "content_length": 10733 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/ef-cross-provider-guide.md", + "frontmatter": { + "canonical_title": "EF Cross-Provider Compatibility Guide", + "description": "Query restrictions, EF patterns, and provider detection strategy for maintaining compatibility across MS SQL Server, MySQL, SQLite, and Azure Cosmos DB.", + "doc_type": "How-to", + "product_area": "development", + "user_intent": "implement-ef-cross-provider-compatibility-guide", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Query restrictions, EF patterns, and provider detection strategy for maintaining compatibility across MS SQL Server, MySQL, SQLite, and Azure Cosmos DB.", + "broken_snippets": false, + "content_length": 7687 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/image-processing-api.md", + "frontmatter": { + "canonical_title": "Image Processing API", + "description": "SkyCMS provides server-side image processing for generating thumbnails on demand. The File Manager uses this to display image previews, and the API is available to any authenticated user with file access.", + "doc_type": "Reference", + "product_area": "development", + "user_intent": "understand-image-processing-api", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "SkyCMS provides server-side image processing for generating thumbnails on demand. The File Manager uses this to display image previews, and the API is available to any authenticated user with file access.", + "broken_snippets": false, + "content_length": 4381 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/index.md", + "frontmatter": { + "canonical_title": "For Developers", + "description": "Start here for SkyCMS developer architecture, API, lifecycle, and implementation guidance.", + "doc_type": "Explanation", + "product_area": "development", + "user_intent": "find-developer-guides-and-reference-docs", + "audience": [ + "Developers" + ], + "difficulty": "beginner", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-27" + }, + "h1_count": 1, + "summary": "Start here for SkyCMS developer architecture, API, lifecycle, and implementation guidance.", + "broken_snippets": false, + "content_length": 4028 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/layouts-templates-articles.md", + "frontmatter": { + "canonical_title": "Layouts, Templates, and Articles", + "description": "Canonical developer guide to how layouts, templates, articles, and published pages relate in SkyCMS.", + "doc_type": "Explanation", + "product_area": "development", + "user_intent": "understand-layouts-templates-and-articles", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Canonical developer guide to how layouts, templates, articles, and published pages relate in SkyCMS.", + "broken_snippets": false, + "content_length": 4807 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/layouts.md", + "frontmatter": { + "canonical_title": "Layouts", + "description": "Developer reference for layout entities, versioning, runtime resolution, import flows, and layout-to-template binding in SkyCMS.", + "doc_type": "Reference", + "product_area": "development", + "user_intent": "understand-layouts", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Developer reference for layout entities, versioning, runtime resolution, import flows, and layout-to-template binding in SkyCMS.", + "broken_snippets": false, + "content_length": 8900 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/middleware-pipeline.md", + "frontmatter": { + "canonical_title": "Middleware Pipeline", + "description": "SkyCMS middleware ordering, tenant and security behavior, customization points, and debugging practices.", + "doc_type": "Reference", + "product_area": "architecture", + "user_intent": "reference-skycms-middleware-pipeline", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-27" + }, + "h1_count": 1, + "summary": "SkyCMS middleware ordering, tenant and security behavior, customization points, and debugging practices.", + "broken_snippets": false, + "content_length": 3344 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/multi-tenancy-deep-dive.md", + "frontmatter": { + "canonical_title": "Multi-Tenancy Deep Dive", + "description": "Detailed view of tenant resolution, isolation boundaries, and multi-tenant runtime behavior in SkyCMS.", + "doc_type": "Explanation", + "product_area": "development", + "user_intent": "understand-multi-tenancy-deep-dive", + "audience": [ + "Developers" + ], + "difficulty": "advanced", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Detailed view of tenant resolution, isolation boundaries, and multi-tenant runtime behavior in SkyCMS.", + "broken_snippets": false, + "content_length": 4474 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/overview.md", + "frontmatter": { + "canonical_title": "SkyCMS Developer Guide Overview", + "description": "Navigate SkyCMS developer documentation by architecture, extension area, workflow stage, and implementation task.", + "doc_type": "Explanation", + "product_area": "developer-experience", + "user_intent": "find-right-skycms-developer-guide", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-27" + }, + "h1_count": 1, + "summary": "Navigate SkyCMS developer documentation by architecture, extension area, workflow stage, and implementation task.", + "broken_snippets": false, + "content_length": 3364 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/publisher-architecture.md", + "frontmatter": { + "canonical_title": "Publisher Architecture", + "description": "Sky.Publisher is the public-facing SkyCMS component that serves published content to site visitors in either dynamic or static mode depending on deployment configuration.", + "doc_type": "Explanation", + "product_area": "architecture", + "user_intent": "understand-publisher-architecture", + "audience": [ + "Developers" + ], + "difficulty": "advanced", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Sky.Publisher is the public-facing SkyCMS component that serves published content to site visitors in either dynamic or static mode depending on deployment configuration.", + "broken_snippets": false, + "content_length": 7470 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/publisher-rendering-flow.md", + "frontmatter": { + "canonical_title": "Publisher Rendering Flow", + "description": "How Sky.Publisher selects static or dynamic delivery at startup and routes requests through each flow.", + "doc_type": "Reference", + "product_area": "infrastructure", + "user_intent": "understand-publisher-rendering-flow", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "How Sky.Publisher selects static or dynamic delivery at startup and routes requests through each flow.", + "broken_snippets": false, + "content_length": 7352 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/roles-and-permissions.md", + "frontmatter": { + "canonical_title": "Role-based access control and authorization", + "description": "Understand SkyCMS role-based authorization model, built-in roles, permission matrix, and best practices for managing user access.", + "doc_type": "Reference", + "product_area": "administration", + "user_intent": "understand-skycms-rbac-authorization-model", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Understand SkyCMS role-based authorization model, built-in roles, permission matrix, and best practices for managing user access.", + "broken_snippets": false, + "content_length": 9808 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/storage-provider-auto-detection.md", + "frontmatter": { + "canonical_title": "Storage provider auto-detection", + "description": "Understand how SkyCMS selects a blob storage driver from connection string configuration and tenant-specific settings.", + "doc_type": "Explanation", + "product_area": "infrastructure", + "user_intent": "understand-storage-provider-selection-and-detection", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Understand how SkyCMS selects a blob storage driver from connection string configuration and tenant-specific settings.", + "broken_snippets": false, + "content_length": 5622 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/templates.md", + "frontmatter": { + "canonical_title": "Templates", + "description": "Developer guide to template entities, versioning, editable region contracts, save flows, and rollout behavior in SkyCMS.", + "doc_type": "Explanation", + "product_area": "development", + "user_intent": "understand-templates", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Developer guide to template entities, versioning, editable region contracts, save flows, and rollout behavior in SkyCMS.", + "broken_snippets": false, + "content_length": 6246 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/tenant-isolation-reference.md", + "frontmatter": { + "canonical_title": "Tenant Isolation Reference", + "description": "This reference documents how SkyCMS isolates data, caches, cookies, blob storage, and CDN operations between tenants in a multi-tenant deployment.", + "doc_type": "Reference", + "product_area": "administration", + "user_intent": "understand-tenant-isolation-reference", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "This reference documents how SkyCMS isolates data, caches, cookies, blob storage, and CDN operations between tenants in a multi-tenant deployment.", + "broken_snippets": false, + "content_length": 7532 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/api/architecture.md", + "frontmatter": { + "canonical_title": "Sky.Cms.Api.Shared Architecture", + "description": "CQRS, handler, and service layer design used in Sky.Cms.Api.Shared, with directory structure and dependency injection wiring.", + "doc_type": "Reference", + "product_area": "architecture", + "user_intent": "understand-sky-cms-api-shared-architecture", + "audience": [ + "Developers" + ], + "difficulty": "advanced", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Sky.Cms.Api.Shared uses a custom CQRS (Command Query Responsibility Segregation) pattern combined with dependency injection to create a clean, testable, and maintainable API architecture.", + "broken_snippets": false, + "content_length": 6490 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/api/blog-api.md", + "frontmatter": { + "canonical_title": "Blog API Reference", + "description": "JSON API endpoints for programmatic access to SkyCMS blog data.", + "doc_type": "Reference", + "product_area": "development", + "user_intent": "reference-blog-api-endpoints", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "JSON API endpoints for programmatic access to SkyCMS blog data.", + "broken_snippets": false, + "content_length": 4745 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/api/configuration.md", + "frontmatter": { + "canonical_title": "Configuration Guide - Sky.Cms.Api.Shared", + "description": "The Sky.Cms.Api.Shared API uses a configuration-driven approach. All settings are defined in the `ContactApiConfig` class and can be configured via `appsettings.json` or environment variables.", + "doc_type": "Reference", + "product_area": "development", + "user_intent": "understand-configuration-guide-sky-cms-api-shared", + "audience": [ + "Backend Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "The Sky.Cms.Api.Shared API uses a configuration-driven approach. All settings are defined in the `ContactApiConfig` class and can be configured via `appsettings.json` or environment variables.", + "broken_snippets": false, + "content_length": 8300 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/api/contact-form-example.md", + "frontmatter": { + "canonical_title": "Contact Form API Example (HTML)", + "description": "Use this example when you want a complete, copy-ready contact form implementation that integrates with the SkyCMS Contact Form API JavaScript client.", + "doc_type": "Reference", + "product_area": "development", + "user_intent": "implement-contact-form-using-skycms-api-example", + "audience": [ + "Full-Stack Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Use this example when you want a complete, copy-ready contact form implementation that integrates with the SkyCMS Contact Form API JavaScript client.", + "broken_snippets": false, + "content_length": 5314 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/api/contact-form.md", + "frontmatter": { + "canonical_title": "Contact Form API Documentation", + "description": "Configure, deploy, and extend the SkyCMS Contact Form API \u2014 including CAPTCHA validation, rate limiting, and email notification.", + "doc_type": "Reference", + "product_area": "development", + "user_intent": "configure-and-extend-contact-form-api", + "audience": [ + "Backend Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Configure, deploy, and extend the SkyCMS Contact Form API \u2014 including CAPTCHA validation, rate limiting, and email notification.", + "broken_snippets": false, + "content_length": 30069 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/api/development.md", + "frontmatter": { + "canonical_title": "Development Guide - Sky.Cms.Api.Shared", + "description": "How to extend Sky.Cms.Api.Shared with new endpoints \u2014 from model and handler creation through DI registration and controller wiring.", + "doc_type": "How-to", + "product_area": "development", + "user_intent": "extend-sky-cms-api-shared-with-new-endpoints", + "audience": [ + "Backend Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "How to extend Sky.Cms.Api.Shared with new endpoints \u2014 from model and handler creation through DI registration and controller wiring.", + "broken_snippets": false, + "content_length": 15192 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/api/integration-guide.md", + "frontmatter": { + "canonical_title": "Contact Form API Integration Guide", + "description": "How to integrate the Contact Form API into the SkyCMS Editor web app \u2014 library include, form submission endpoint, and multi-tenant header setup.", + "doc_type": "How-to", + "product_area": "development", + "user_intent": "integrate-contact-form-api-into-skycms-editor", + "audience": [ + "Full-Stack Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "How to integrate the Contact Form API into the SkyCMS Editor web app \u2014 library include, form submission endpoint, and multi-tenant header setup.", + "broken_snippets": false, + "content_length": 14954 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/api/overview.md", + "frontmatter": { + "canonical_title": "Sky.Cms.Api.Shared Documentation", + "description": "Reference for Sky.Cms.Api.Shared \u2014 the shared contact form API used across Editor and Publisher, including endpoints, architecture, and configuration.", + "doc_type": "Reference", + "product_area": "development", + "user_intent": "integrate-or-extend-sky-cms-api-shared", + "audience": [ + "Developers" + ], + "difficulty": "beginner", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Reference for Sky.Cms.Api.Shared \u2014 the shared contact form API used across Editor and Publisher, including endpoints, architecture, and configuration.", + "broken_snippets": false, + "content_length": 4751 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/api/testing.md", + "frontmatter": { + "canonical_title": "Testing Guide - Sky.Cms.Api.Shared", + "description": "Testing strategies for Sky.Cms.Api.Shared \u2014 unit tests with Moq, integration tests with TestServer, and recommended project structure.", + "doc_type": "How-to", + "product_area": "development", + "user_intent": "write-and-run-tests-for-sky-cms-api-shared", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Testing strategies for Sky.Cms.Api.Shared \u2014 unit tests with Moq, integration tests with TestServer, and recommended project structure.", + "broken_snippets": false, + "content_length": 17974 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/api/tutorial.md", + "frontmatter": { + "error": "mapping values are not allowed here\n in \"\", line 2, column 26:\n canonical_title: Tutorial: Adding a Contact Form to Your ... \n ^" + }, + "h1_count": 1, + "summary": "Step-by-step tutorial for adding a working contact form to your website using the SkyCMS Contact Form API.", + "broken_snippets": false, + "content_length": 16167 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/api/updates.md", + "frontmatter": { + "canonical_title": "Sky.Cms.Api.Shared Integration Updates", + "description": "Integration changes added to SkyCMS Editor when Sky.Cms.Api.Shared was incorporated \u2014 covering new API endpoints, DI registration, and middleware wiring.", + "doc_type": "Explanation", + "product_area": "development", + "user_intent": "track-sky-cms-api-shared-integration-changes", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Integration changes added to SkyCMS Editor when Sky.Cms.Api.Shared was incorporated \u2014 covering new API endpoints, DI registration, and middleware wiring.", + "broken_snippets": false, + "content_length": 9068 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/extending/custom-widgets.md", + "frontmatter": { + "canonical_title": "Extending SkyCMS with Custom Widgets", + "description": "Build, integrate, and validate custom widget behavior for SkyCMS editing experiences.", + "doc_type": "How-to", + "product_area": "extensibility", + "user_intent": "create-and-integrate-custom-widgets", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-27" + }, + "h1_count": 1, + "summary": "Build, integrate, and validate custom widget behavior for SkyCMS editing experiences.", + "broken_snippets": false, + "content_length": 2733 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/extending/flex-db.md", + "frontmatter": { + "canonical_title": "Extending FlexDb", + "description": "Extend FlexDb when the built-in provider strategies are not enough for your application.", + "doc_type": "Reference", + "product_area": "development", + "user_intent": "understand-extending-flexdb", + "audience": [ + "Backend Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Extend FlexDb when the built-in provider strategies are not enough for your application.", + "broken_snippets": false, + "content_length": 4971 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/extending/vscode-extension.md", + "frontmatter": { + "canonical_title": "SkyCMS VS Code Extension", + "description": "Use the SkyCMS VS Code extension to browse and edit SkyCMS content and files from inside Visual Studio Code.", + "doc_type": "How-to", + "product_area": "extensibility", + "user_intent": "use-skycms-vscode-extension", + "audience": [ + "Developers", + "Site Builders" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-05-05" + }, + "h1_count": 1, + "summary": "Use the SkyCMS VS Code extension to connect VS Code to a SkyCMS Editor site, then work with layouts, templates, articles, blogs, and files without leaving your editor.", + "broken_snippets": false, + "content_length": 4330 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/website-launch/01-Design-and-Planning.md", + "frontmatter": { + "error": "mapping values are not allowed here\n in \"\", line 2, column 25:\n canonical_title: Phase 1: Design & Planning Guide\n ^" + }, + "h1_count": 1, + "summary": "Plan the SkyCMS site structure, information architecture, layouts, templates, and article types before implementation.", + "broken_snippets": false, + "content_length": 20707 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/website-launch/02-Creating-Layouts.md", + "frontmatter": { + "error": "mapping values are not allowed here\n in \"\", line 2, column 25:\n canonical_title: Phase 2: Creating Layouts Guide\n ^" + }, + "h1_count": 1, + "summary": "Build site-wide layout shells in SkyCMS and understand how shared structure reduces duplication across templates and articles.", + "broken_snippets": false, + "content_length": 50881 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/website-launch/03-Creating-Templates.md", + "frontmatter": { + "error": "mapping values are not allowed here\n in \"\", line 2, column 25:\n canonical_title: Phase 3: Creating Templates Guide\n ^" + }, + "h1_count": 1, + "summary": "Build reusable templates in SkyCMS with editable regions and understand how template changes affect authored articles and published output.", + "broken_snippets": false, + "content_length": 38391 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/website-launch/04-Building-Home-Page.md", + "frontmatter": { + "error": "mapping values are not allowed here\n in \"\", line 2, column 25:\n canonical_title: Phase 4: Building Your Home Page\n ^" + }, + "h1_count": 1, + "summary": "Create the home page article in SkyCMS using a layout and template, and understand the page creation workflow.", + "broken_snippets": false, + "content_length": 75356 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/website-launch/05-Building-Initial-Pages.md", + "frontmatter": { + "error": "mapping values are not allowed here\n in \"\", line 2, column 25:\n canonical_title: Phase 5: Building Initial Pages\n ^" + }, + "h1_count": 1, + "summary": "Create the first published content set in SkyCMS by building core articles, organizing hierarchy, and configuring internal linking and navigation.", + "broken_snippets": false, + "content_length": 39657 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/website-launch/06-Preparing-for-Handoff.md", + "frontmatter": { + "error": "mapping values are not allowed here\n in \"\", line 2, column 25:\n canonical_title: Phase 6: Preparing for Handoff\n ^" + }, + "h1_count": 1, + "summary": "Prepare SkyCMS sites for team handoff with roles, documentation, training, and sustainable publishing workflows.", + "broken_snippets": true, + "content_length": 31285 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/website-launch/CreatingEditableAreas.md", + "frontmatter": { + "canonical_title": "Creating Editable Areas", + "description": "A practical guide for developers to define editable regions in templates and stand-alone articles, using the code editor (Monaco) with CKEditor-based Visual Editor.", + "doc_type": "How-to", + "product_area": "development", + "user_intent": "implement-creating-editable-areas", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "A practical guide for developers to define editable regions in templates and stand-alone articles, using the code editor (Monaco) with CKEditor-based Visual Editor.", + "broken_snippets": false, + "content_length": 10537 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/website-launch/index.md", + "frontmatter": { + "canonical_title": "Website Launch Workflow (Migrated Guides)", + "description": "Phased implementation guides for building and launching a SkyCMS website, from design and planning through content creator handoff.", + "doc_type": "How-to", + "product_area": "development", + "user_intent": "implement-website-launch-workflow-migrated-guides", + "audience": [ + "Developers" + ], + "difficulty": "beginner", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Phased implementation guides for building and launching a SkyCMS website, from design and planning through content creator handoff.", + "broken_snippets": false, + "content_length": 1576 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/website-launch/README.md", + "frontmatter": { + "canonical_title": "Developer Guides", + "description": "Complete workflows and best practices for developers building and maintaining SkyCMS sites.", + "doc_type": "How-to", + "product_area": "development", + "user_intent": "implement-developer-guides", + "audience": [ + "Developers" + ], + "difficulty": "beginner", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Complete workflows and best practices for developers building and maintaining SkyCMS sites.", + "broken_snippets": false, + "content_length": 9409 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/website-launch/SkyCMS-Modern-Approach.md", + "frontmatter": { + "error": "mapping values are not allowed here\n in \"\", line 3, column 87:\n ... tates modern website development: modular structure, content wor ... \n ^" + }, + "h1_count": 1, + "summary": "A practical overview of how SkyCMS facilitates modern website development: modular structure, content workflows, and evergreen quality practices.", + "broken_snippets": false, + "content_length": 3316 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/website-launch/UploadSecretsToGithubRepo.md", + "frontmatter": { + "canonical_title": "UploadSecretsToGithubRepo.ps1 Documentation", + "description": "PowerShell script that reads local secrets.json and uploads entries as GitHub repository secrets for CI/CD use.", + "doc_type": "Reference", + "product_area": "development", + "user_intent": "understand-uploadsecretstogithubrepo-ps1-documentation", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "PowerShell script that reads `secrets.json` and uploads entries as GitHub repository secrets for CI/CD use.", + "broken_snippets": false, + "content_length": 5552 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/website-launch/Website-Launch-Workflow.md", + "frontmatter": { + "canonical_title": "Website Launch Workflow Guide", + "description": "Take a SkyCMS installation from zero to ready for content creators in 6 structured phases.", + "doc_type": "How-to", + "product_area": "development", + "user_intent": "implement-website-launch-workflow-guide", + "audience": [ + "Developers" + ], + "difficulty": "intermediate", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Take a SkyCMS installation from zero to ready for content creators in 6 structured phases.", + "broken_snippets": false, + "content_length": 18903 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/website-launch/Checklists/Content-Creator-Onboarding.md", + "frontmatter": { + "canonical_title": "Content Creator Onboarding Checklist", + "description": "Use this checklist to onboard new content creators and ensure they're confident using SkyCMS to manage your website content.", + "doc_type": "How-to", + "product_area": "content-management", + "user_intent": "onboard-content-creators-to-skycms", + "audience": [ + "Developers", + "Administrators" + ], + "difficulty": "beginner", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Use this checklist to onboard new content creators and ensure they're confident using SkyCMS to manage your website content.", + "broken_snippets": false, + "content_length": 14838 + }, + { + "file": "d:/source/SkyCMS.Docs/for-developers/website-launch/Checklists/Pre-Launch-Checklist.md", + "frontmatter": { + "canonical_title": "Pre-Launch Checklist", + "description": "Before launching your website to the public, conduct thorough testing and verification using this comprehensive checklist. This ensures your site is reliable, secure, fast, and ready for visitors.", + "doc_type": "How-to", + "product_area": "deployment", + "user_intent": "implement-pre-launch-checklist", + "audience": [ + "Developers" + ], + "difficulty": "beginner", + "version": "current", + "status": "active", + "owner": "docs-platform", + "last_reviewed": "2026-04-28" + }, + "h1_count": 1, + "summary": "Before launching your website to the public, conduct thorough testing and verification using this comprehensive checklist. This ensures your site is reliable, secure, fast, and ready for visitors.", + "broken_snippets": false, + "content_length": 21023 + } +] \ No newline at end of file diff --git a/configuration/email/overview.md b/configuration/email/overview.md index dc9f23e..7f4f5d6 100644 --- a/configuration/email/overview.md +++ b/configuration/email/overview.md @@ -17,6 +17,10 @@ last_reviewed: 2026-04-27 # Email Overview +> Canonical source of truth for editor and administrator operations: [Email Management](../../for-editors/feature-catalog/email-management.md) + +This page focuses on provider-level configuration decisions. + ## Summary Use this page to select an email delivery approach and validate outbound email behavior in your environment. diff --git a/for-developers/ai-integration.md b/for-developers/ai-integration.md index 64b1694..5f754f5 100644 --- a/for-developers/ai-integration.md +++ b/for-developers/ai-integration.md @@ -225,3 +225,4 @@ If you extend the current AI layer: - [AI Configuration Overview](../configuration/ai/overview.md) - [AI Provider Comparison](../configuration/ai/provider-comparison.md) - [AI Assistant for Editors](../for-editors/ai-assistant.md) +- [SkyCMS VS Code Extension](./extending/vscode-extension.md) diff --git a/for-developers/extending/vscode-extension.md b/for-developers/extending/vscode-extension.md new file mode 100644 index 0000000..8dd89e0 --- /dev/null +++ b/for-developers/extending/vscode-extension.md @@ -0,0 +1,186 @@ +--- +canonical_title: SkyCMS VS Code Extension +description: Use the SkyCMS VS Code extension to browse and edit SkyCMS content and files from inside Visual Studio Code. +doc_type: How-to +product_area: extensibility +user_intent: use-skycms-vscode-extension +audience: + - Developers + - Site Builders +difficulty: intermediate +version: current +status: active +owner: docs-platform +last_reviewed: 2026-05-05 +--- + +# SkyCMS VS Code Extension + +## Summary + +Use the SkyCMS VS Code extension to connect VS Code to a SkyCMS Editor site, then work with layouts, templates, articles, blogs, and files without leaving your editor. + +This extension is central to the SkyCMS "CMS as code" workflow: developers can use familiar IDE practices while still collaborating with content teams who use CKEditor and visual tools. + +## Outcome + +After this guide, you can: + +- connect to one or more SkyCMS sites, +- sign in with browser-based authentication, +- edit SkyCMS fields and files from VS Code, +- publish and preview key content items, +- recover quickly from common setup and auth errors. + +## Why this matters for team workflow + +SkyCMS is designed so teams do not have to choose between developer freedom and editor simplicity. + +- Developers can keep working in a code-first environment with standard IDE patterns. +- Non-technical content creators can continue routine page and blog updates through CKEditor with little or no training. +- Both groups work on the same platform and share the same publishing lifecycle. + +In most teams, this creates a clean handoff model: developers and site builders shape structure, then content creators maintain day-to-day content confidently. + +## What this extension does today + +The extension provides: + +- site profile management (add, switch, remove), +- browser sign-in with one-time code exchange, +- a SkyCMS explorer tree (layouts, templates, articles, blogs, files), +- field editing in either document mode or inline input mode, +- article and layout actions (publish, unpublish, set default, duplicate), +- file operations in `/pub` (open, upload, create folder, rename/move, delete), +- preview launch for supported content nodes, +- an in-chat SkyCMS assistant focused on docs discovery. + +## Prerequisites + +Before you start: + +1. Install Visual Studio Code 1.85 or later. +2. Ensure you can reach a running SkyCMS Editor URL. +3. Use an account with a role that can edit content. + +## First-run workflow + +### 1. Add a SkyCMS site profile + +1. Open Command Palette. +2. Run `SkyCMS: Add Site`. +3. Enter your SkyCMS Editor base URL. +4. Optionally enter a friendly site name. + +### 2. Sign in + +1. Open the SkyCMS view in Explorer. +2. Select **Sign In**. +3. Complete sign-in in your browser. +4. Copy the one-time verification code from SkyCMS. +5. Paste the code into the VS Code prompt. + +### 3. Expand the content tree + +After sign-in, expand SkyCMS categories: + +- Layouts +- Page Templates +- Articles (Drafts and Published) +- Blogs +- Files + +## Editing model + +SkyCMS fields open in one of two ways: + +- Document mode: opens in an editor tab and saves on standard VS Code save. +- Input mode: opens a prompt and saves on Enter. + +Common document fields include content/body/head/footer blocks. Common input fields include title/category/date-like values. + +## When to use VS Code versus browser editors + +Use the VS Code extension when you need: + +- IDE-centric exploration of SkyCMS-managed resources, +- code review and source-control friendly editing sessions, +- rapid developer iteration on templates, layout assets, and technical content fields. + +Use browser editors when you need: + +- fast non-technical authoring in CKEditor, +- visual page composition in Page Builder, +- editorial workflows where contributors are not expected to use developer tooling. + +Most teams use both paths together. + +## File workflow in VS Code + +The extension mounts SkyCMS blob storage through a virtual file system rooted at `/pub`. + +Typical workflow: + +1. Expand **Files**. +2. Open and edit a text file. +3. Save in VS Code to persist directly to SkyCMS storage. +4. Use context menu commands to upload, create folders, or delete nodes. + +## Commands quick reference + +Site and auth commands: + +- `SkyCMS: Add Site` +- `SkyCMS: Switch Site` +- `SkyCMS: Remove Site` +- `SkyCMS: Manage Sites` +- `SkyCMS: Sign In` +- `SkyCMS: Sign Out` + +Working commands: + +- `SkyCMS: Refresh` +- `SkyCMS: New Article` +- `SkyCMS: Documentation` +- `SkyCMS: Open in Browser` +- `SkyCMS: Ask SkyCMS` + +Most publish/preview/file commands are available from right-click context menus in the SkyCMS tree. + +## Troubleshooting + +### No site configured + +Run `SkyCMS: Add Site`, then retry sign-in. + +### Sign-in browser did not open + +Allow external URL launch from VS Code, then retry `SkyCMS: Sign In`. + +### Tree is empty after sign-in + +Run `SkyCMS: Refresh`. If still empty, sign out and sign in again. + +### Save fails with auth errors + +Run `SkyCMS: Sign Out`, then run `SkyCMS: Sign In` to refresh token state. + +### Preview command fails for an item + +Refresh the tree and retry. Some preview actions require server-provided preview IDs. + +## Current preview limitations + +- File watching is refresh-oriented. Tree updates are not a full live watch implementation. +- Concurrent edits to the same field or file do not provide conflict-merge UX. +- Chat responses depend on the selected language model availability in VS Code. + +## Related guides + +- [VS Code Explorer Quick Tour](../../getting-started/vscode-explorer-quick-tour.md) +- [Why SkyCMS Is Different](../../getting-started/why-skycms-is-different.md) +- [Code Editor](../../for-editors/code-editor.md) +- [File Manager](../../for-editors/file-manager.md) +- [Layouts, Templates & Articles](../layouts-templates-articles.md) +- [AI Integration](../ai-integration.md) +- [Troubleshooting](../../reference/troubleshooting.md) diff --git a/for-developers/index.md b/for-developers/index.md index 49cc7a7..40d8679 100644 --- a/for-developers/index.md +++ b/for-developers/index.md @@ -19,6 +19,8 @@ last_reviewed: 2026-04-27 Start here for SkyCMS developer architecture, API, lifecycle, and implementation guidance. +SkyCMS supports a code-first development model without sacrificing editor usability. Developers can implement and maintain websites with familiar architecture and tooling, while content teams continue routine updates through visual editing. + ## Role overview SkyCMS content roles work together like this: @@ -37,6 +39,12 @@ Developers typically: - Maintain performance, observability, and deployment quality. - Add tests and uphold architecture and tenant isolation constraints. +## Developer experience philosophy + +SkyCMS is designed to remove unnecessary constraints on implementation style. You can work through templates, APIs, infrastructure, and IDE-centric workflows instead of being locked into a rigid CMS authoring model. + +When you want to interact with CMS content and structure from inside your IDE, use the [SkyCMS VS Code Extension](./extending/vscode-extension.md) to work with SkyCMS resources as code. + For the complete permission matrix and cross-role responsibilities, see [Roles and permissions (RBAC)](./roles-and-permissions.md). ## Start here diff --git a/for-editors/article-permissions.md b/for-editors/article-permissions.md new file mode 100644 index 0000000..7609ddd --- /dev/null +++ b/for-editors/article-permissions.md @@ -0,0 +1,86 @@ +--- +canonical_title: Article Permissions +description: Control who can view or edit individual pages in SkyCMS using per-article role and user permissions. +doc_type: How-to +product_area: editor +user_intent: set-per-article-access-permissions +audience: + - Content Managers + - Administrators +difficulty: intermediate +version: current +status: active +owner: docs-platform +last_reviewed: 2026-05-01 +--- + +# Article Permissions + +**Article Permissions** let you restrict access to individual pages. You can control which roles or individual users are allowed to view or edit a specific page, independently of their global role assignments. + +By default, a page inherits the access rules of its template and layout. Permissions settings override those defaults for a single article. + +## When to Use Article Permissions + +- A page contains sensitive or confidential content that should only be visible to certain roles +- You want a draft page to be editable only by a specific team +- You need to grant a guest user or contractor access to one page without broadening their global role + +## Opening Permissions for a Page + +1. Go to the **Pages Catalog** (Editor home). +2. Find the page you want to restrict. +3. Click the **More (...)** menu on the page row. +4. Select **Permissions**. + +The Permissions screen shows two tabs: **Roles** and **Users**. + +## Role Permissions + +The **Roles** tab lets you grant or revoke access by role. This is the recommended approach for most situations. + +### Grant a role access + +1. Open the **Roles** tab. +2. Use the search or list to find the role. +3. Check the **Allow** box next to the role. +4. Save. + +### Revoke a role + +1. Uncheck **Allow** next to the role. +2. Save. + +## User Permissions + +The **Users** tab lets you assign access to individual user accounts, overriding role-level rules. + +### Grant a user access + +1. Open the **Users** tab. +2. Find the user by name or email. +3. Check **Allow** next to their account. +4. Save. + +## Clearing All Restrictions + +To revert a page to default (inherited) permissions: + +1. Open Permissions for the page. +2. Uncheck all role and user assignments. +3. Save. + +The page will then inherit access rules from the global settings. + +## Notes + +- Permissions apply to the article at its current version. New versions inherit the same permissions. +- Permissions affect editor-side visibility, not necessarily public-facing site access (which is controlled by your site's front-end access rules). +- Only users with the Administrator or Content Manager role can modify article permissions. + +## Related Guides + +- [Role Management](role-management.md) — create and manage roles +- [User Management](user-management.md) — manage user accounts +- [Dashboard Overview](dashboard-overview.md) — finding pages in the Pages Catalog +- [Roles & Permissions (developer reference)](../for-developers/roles-and-permissions.md) diff --git a/for-editors/code-editor.md b/for-editors/code-editor.md index 7d4562d..5db3e15 100644 --- a/for-editors/code-editor.md +++ b/for-editors/code-editor.md @@ -15,6 +15,10 @@ last_reviewed: 2026-04-27 # Code Editor Basics +> Canonical source of truth: [Code Editor](./feature-catalog/code-editor.md) + +This page is the detailed workflow and deep-use companion for the canonical feature page. + ## Summary Use this guide when you need to: diff --git a/for-editors/compare-page-versions.md b/for-editors/compare-page-versions.md new file mode 100644 index 0000000..c26a128 --- /dev/null +++ b/for-editors/compare-page-versions.md @@ -0,0 +1,59 @@ +--- +canonical_title: Compare Page Versions +description: Side-by-side comparison of two saved versions of a SkyCMS page to identify what changed between them. +doc_type: How-to +product_area: editor +user_intent: compare-two-versions-of-a-page +audience: + - Content Editors + - Content Managers + - Administrators +difficulty: beginner +version: current +status: active +owner: docs-platform +last_reviewed: 2026-05-01 +--- + +# Compare Page Versions + +Use the **Compare** view to see a side-by-side diff of two saved versions of a page. This helps you identify what changed, who made the change, and whether you want to revert. + +## Opening the Compare View + +1. Go to the Pages Catalog and find the page. +2. Open the **More (...)** menu → **Version History**. +3. In the Version History list, select **two versions** using the checkboxes. +4. Click **Compare**. + +The comparison screen opens with the older version on the left and the newer version on the right. + +## Reading the Diff + +- **Green** text or sections indicate additions. +- **Red** text or sections indicate deletions. +- **Unchanged** content is shown in neutral color. + +The diff compares the rendered HTML content of each version. Structural tags, inline styles, and text content are all visible. + +## Acting on the Comparison + +After reviewing the diff, you can: + +| Action | How | +| --- | --- | +| Keep the current version | Close the Compare view — no changes are made | +| Restore the older version | Click **Restore this version** below the left panel | +| Open a version for editing | Click **Edit** below either panel to open it in the editor | + +## Notes + +- The Compare view is read-only. You cannot edit content directly in this view. +- Restoring a version creates a new draft from that snapshot — it does not overwrite other versions. +- Only saved versions appear in the comparison list. Auto-save drafts that were never explicitly saved may not appear. + +## Related Guides + +- [Version History](version-history.md) — browse all saved versions and restore any snapshot +- [Trash and Recovery](trash-and-recovery.md) — recover a page that was deleted +- [Dashboard Overview](dashboard-overview.md) — find pages in the Pages Catalog diff --git a/for-editors/dashboard-overview.md b/for-editors/dashboard-overview.md new file mode 100644 index 0000000..d3fd060 --- /dev/null +++ b/for-editors/dashboard-overview.md @@ -0,0 +1,98 @@ +--- +canonical_title: Dashboard Overview (Pages Catalog) +description: Understand the SkyCMS Pages Catalog — your starting point for finding, creating, and managing all content pages. +doc_type: How-to +product_area: editor +user_intent: navigate-pages-catalog-find-and-manage-pages +audience: + - Content Editors + - Content Managers + - Administrators +difficulty: beginner +version: current +status: active +owner: docs-platform +last_reviewed: 2026-05-01 +--- + +# Dashboard Overview (Pages Catalog) + +The **Pages Catalog** is the first screen you see after logging in to the SkyCMS editor. It lists every content page in the current tenant and is the starting point for all editing, publishing, and management tasks. + +## What You Can Do Here + +- Browse all pages in a sortable, paginated list +- Search by title or URL +- Create a new page +- Open any page in the Visual Editor, Page Builder, or Code Editor +- Check a page's publish status at a glance +- Access version history, permissions, publish controls, and more for each page + +## Reading the Pages List + +Each row in the list represents one page. The columns show: + +| Column | What it means | +| --- | --- | +| Title | The page heading as it appears in the editor | +| URL / Slug | The public path this page lives at | +| Status | Draft, Review, Published, Scheduled, or Deleted | +| Last updated | Date and author of the most recent save | +| Actions | Quick links to open the page in an editor or access settings | + +A **Status** badge uses color coding: green = Published, yellow = Draft or Review, grey = Deleted or Scheduled. + +## Main Controls + +| Control | What it does | +| --- | --- | +| New Page | Opens the Create Page form | +| Search | Filters the list by title or URL fragment | +| Sort columns | Click any column header to sort ascending or descending | +| Edit (pencil icon) | Opens the Visual Editor for this page | +| Page Builder icon | Opens the Page Builder for this page | +| Code Editor icon | Opens the Code Editor for this page | +| More (...) | Reveals version history, permissions, scheduling, trash, and export | +| Pagination controls | Navigate pages when the list exceeds one screen | + +## Common Tasks + +### Find a specific page + +1. Type part of the page title or URL in the **Search** field. +2. The list filters live as you type. +3. Click the page row or an action icon to open it. + +### Create a new page + +1. Click **New Page**. +2. Fill in the title and choose a template. +3. Click **Create** to proceed to editing. + +See [Creating Articles](creating-articles.md) for the full workflow. + +### Open a page for editing + +- Click the **pencil** icon to open the Visual Editor. +- Click the **Page Builder** icon to open the drag-and-drop Page Builder. +- Click the **Code** icon to open raw HTML/CSS in the Code Editor. + +### Check and change publish status + +1. Locate the page in the list. +2. Read the **Status** badge. +3. Use the **More** menu → **Publish** or **Schedule** to change it. + +See [Publish a Page](publish-a-page.md) for step-by-step publish instructions. + +## Filters and Sorting + +Use the sort headers to re-order by title, status, or last-updated date. Sorting and search can be combined: search first, then sort the filtered results. + +## Related Guides + +- [Creating Articles](creating-articles.md) — full page creation walkthrough +- [Publish a Page](publish-a-page.md) — publish, schedule, and unpublish +- [Version History](version-history.md) — browse and restore earlier saves +- [Article Permissions](article-permissions.md) — restrict who can view or edit a page +- [Trash and Recovery](trash-and-recovery.md) — recover deleted pages diff --git a/for-editors/email-admin.md b/for-editors/email-admin.md new file mode 100644 index 0000000..c0d4fff --- /dev/null +++ b/for-editors/email-admin.md @@ -0,0 +1,57 @@ +--- +canonical_title: Email Admin +description: Use the SkyCMS Email Admin panel to test outgoing email configuration and verify delivery. +doc_type: How-to +product_area: administration +user_intent: test-and-verify-email-configuration +audience: + - Administrators +difficulty: beginner +version: current +status: active +owner: docs-platform +last_reviewed: 2026-05-01 +--- + +# Email Admin + +The **Email Admin** panel lets administrators test the outgoing email configuration for a SkyCMS tenant. Use it to verify that notification, contact-form, and system emails are being sent correctly. + +For configuring email settings (SMTP, provider keys, sender address), see [Email Configuration Overview](../configuration/email/overview.md). + +## Opening Email Admin + +Go to **Editor → Email Admin** in the sidebar or top navigation. This section is only visible to users with the Administrator role. + +## Sending a Test Email + +1. Open Email Admin. +2. Enter a **recipient email address** you have access to. +3. Click **Send Test Email**. +4. Check the inbox for the recipient address. + +A successful test email confirms that: + +- The SMTP/email provider settings are correctly configured +- The sending domain is authorized +- The application can reach the mail server + +## Troubleshooting Failed Test Sends + +**No email received.** +Check that the recipient address is correct and not filtered to spam. Then verify: + +- SMTP server, port, and authentication credentials in [Site Settings](site-settings.md) +- Firewall or network rules that may block outbound connections on the SMTP port (usually 587 or 465) + +**Error message on send.** +The error message will indicate the failure type (authentication error, connection refused, etc.). Cross-reference with your email provider's documentation or contact your hosting administrator. + +**Email received but shows wrong sender.** +Check the **From Address** and **From Name** fields in the email settings section of [Site Settings](site-settings.md). + +## Related Guides + +- [Email Configuration Overview](../configuration/email/overview.md) — set up your email provider +- [Site Settings](site-settings.md) — general settings including sender address +- [Contact Management](contact-management.md) — manage contact form submissions diff --git a/for-editors/feature-catalog/canonical-content-model.md b/for-editors/feature-catalog/canonical-content-model.md new file mode 100644 index 0000000..aa2a5fa --- /dev/null +++ b/for-editors/feature-catalog/canonical-content-model.md @@ -0,0 +1,82 @@ +--- +canonical_title: Canonical Content Model (Conical Docs) +description: Governance model for combining workflow docs with single-source-of-truth feature pages in SkyCMS documentation. +doc_type: Reference +product_area: editor +user_intent: maintain-consistent-doc-ownership +audience: + - Documentation Contributors + - Product Owners + - Developers + - Content Editors +difficulty: intermediate +version: current +status: active +owner: docs-platform +last_reviewed: 2026-05-01 +--- + +# Canonical Content Model (Conical Docs) + +Use this page to keep both documentation approaches working together: + +- workflow guides for onboarding and day-to-day use, +- canonical feature pages as single sources of truth. + +## Core Rule + +Each user-facing editor surface has one canonical page that owns: + +- what the feature is, +- when to use it, +- control and button behavior, +- common tasks, +- constraints and troubleshooting. + +All other pages should summarize and link back to that canonical page unless the detail is specific to their own topic. + +## Layered Documentation Architecture + +| Layer | Purpose | Content style | +| --- | --- | --- | +| Canonical feature pages | Single source of truth per feature/screen | Full feature detail, control maps, step-by-step tasks | +| Workflow and role guides | Help users complete outcomes quickly | Task paths, minimal feature detail, links to canonical pages | +| Deep references | Advanced internals and edge behavior | Architecture, APIs, implementation details | + +## Duplication Policy + +Allowed duplication: + +- one to three lines of context needed by a workflow topic, +- glossary-level definitions, +- short reminders directly needed to complete the current task. + +Not allowed duplication: + +- full control tables copied from canonical pages, +- repeated long "when to use" sections across multiple guides, +- separate and conflicting versions of the same feature behavior. + +## Ownership Model + +- Canonical pages are edited first. +- Workflow and deep reference pages are updated second. +- If behavior changes in product UI, update canonical page in the same PR. +- If workflow guidance changes, link to canonical page rather than duplicating details. + +## Existing Canonical Pages + +- [Visual Editor](./visual-editor.md) +- [Code Editor](./code-editor.md) +- [Page Builder](./page-builder.md) +- [Image Editor](./image-editor.md) +- [File Management](./file-management.md) +- [Email Management](./email-management.md) + +## Consolidation Pass Checklist + +1. Find duplicate feature detail in non-canonical pages. +2. Keep only context needed for that page's goal. +3. Link to canonical page for full feature behavior. +4. Verify all links and navigation entries. +5. Validate changes with docs lint/link checks. diff --git a/for-editors/feature-catalog/code-editor.md b/for-editors/feature-catalog/code-editor.md new file mode 100644 index 0000000..d442e1e --- /dev/null +++ b/for-editors/feature-catalog/code-editor.md @@ -0,0 +1,65 @@ +--- +canonical_title: Code Editor +description: Concrete usage guide for the SkyCMS Code Editor, including controls, scenarios, and common workflows. +doc_type: How-to +product_area: editor +user_intent: use-code-editor-safely-and-quickly +audience: + - Content Editors + - Site Builders +difficulty: intermediate +version: current +status: active +owner: docs-platform +last_reviewed: 2026-05-01 +--- + +# Code Editor + +Use Code Editor when you need precise control over markup and style. + +## What You Can Do + +- Edit HTML, CSS, and script blocks directly +- Search and replace within content +- Fix structure and spacing issues quickly +- Compare and review detailed changes + +## When to Use This Editor + +- Template cleanup and targeted markup fixes +- Styling adjustments that are difficult in visual mode +- Advanced embedding or script placement + +## Main Controls and What They Do + +| Control | What it does | +| --- | --- | +| Save | Saves code changes to your draft | +| Find | Searches text in the current editor view | +| Replace | Replaces one or all matching values | +| Format (if enabled) | Reflows code for consistent indentation | +| Line numbers | Helps locate and discuss exact code lines | +| Minimap (if enabled) | Gives a high-level scroll map of the document | + +## Common Tasks + +### Fix a broken HTML section + +1. Open the page or template in Code Editor. +2. Use Find to locate the affected section. +3. Correct tag structure and attributes. +4. Save changes. +5. Preview in page view and confirm rendering. + +### Replace old class names + +1. Open the relevant content or template. +2. Use Replace to swap old class name with new class name. +3. Review each replacement. +4. Save and preview. + +## Related Deep References + +- [Code Editor](../../for-editors/code-editor.md) +- [SkyCMS VS Code Extension](../../for-developers/extending/vscode-extension.md) diff --git a/for-editors/feature-catalog/content-editors.md b/for-editors/feature-catalog/content-editors.md new file mode 100644 index 0000000..b881a6b --- /dev/null +++ b/for-editors/feature-catalog/content-editors.md @@ -0,0 +1,49 @@ +--- +canonical_title: Content Editors +description: Concrete guide to SkyCMS content editors, including when to use each editor and where to find task guides. +doc_type: Explanation +product_area: editor +user_intent: choose-the-right-editor +audience: + - Content Editors + - Content Managers +difficulty: beginner +version: current +status: active +owner: docs-platform +last_reviewed: 2026-05-01 +--- + +# Content Editors + +SkyCMS gives you four editor experiences. Use this page to pick the right one quickly. + + + +## Editor List + +- [Visual Editor](./visual-editor.md) +- [Code Editor](./code-editor.md) +- [Page Builder](./page-builder.md) +- [Image Editor](./image-editor.md) + +## When to Use Each Editor + +| Editor | Use it when you need to... | Best for | +| --- | --- | --- | +| Visual Editor | Edit text and media in context on the page | Day-to-day content updates | +| Code Editor | Make precise HTML, CSS, or script changes | Advanced content and markup fixes | +| Page Builder | Assemble sections with drag-and-drop blocks | Landing pages and layout-heavy pages | +| Image Editor | Crop, resize, annotate, and export images | Media preparation and cleanup | + +## Decision Shortcut + +1. If you want visual text editing with minimal technical work, start with Visual Editor. +2. If you need exact markup control, use Code Editor. +3. If you are composing a section-based page layout, use Page Builder. +4. If your task is mostly image changes, use Image Editor. + +## Related Guides + +- [Choosing an editor (site builders)](../../for-site-builders/choosing-an-editor.md) +- [Editor workflow reference](../../for-editors/overview.md) diff --git a/for-editors/feature-catalog/editor-help-route-map.md b/for-editors/feature-catalog/editor-help-route-map.md new file mode 100644 index 0000000..0169446 --- /dev/null +++ b/for-editors/feature-catalog/editor-help-route-map.md @@ -0,0 +1,148 @@ +--- +canonical_title: Editor Help Route Map +description: Route-to-documentation mapping for context-aware Help behavior in SkyCMS editor surfaces. +doc_type: Reference +product_area: editor +user_intent: map-editor-routes-to-canonical-help-pages +audience: + - Developers + - Documentation Contributors + - Product Owners +difficulty: intermediate +version: current +status: active +owner: docs-platform +last_reviewed: 2026-05-01 +--- + +# Editor Help Route Map + +Use this map to keep in-product Help aligned with canonical documentation pages. + +## Route to Canonical Page Mapping + +### Content Editing — Articles + +| Editor route pattern | Surface | Canonical help target | +| --- | --- | --- | +| `/Editor/Index` | Pages Catalog (dashboard) | [Dashboard Overview](../dashboard-overview.md) | +| `/Editor/Create` | Create new page | [Creating Articles](../creating-articles.md) | +| `/Editor/VisualEditor/{id}` | Visual Editor | [Visual Editor](./visual-editor.md) | +| `/Editor/Edit/{id}` | Legacy visual editor route | [Visual Editor](./visual-editor.md) | +| `/Editor/EditCode/{id}` | Page code editing | [Code Editor](./code-editor.md) | +| `/Editor/PageBuilder/{id}` | Page Builder (article) | [Page Builder](./page-builder.md) | +| `/Editor/Designer/{id}` | Legacy page builder route | [Page Builder](./page-builder.md) | +| `/Editor/AiHelp` | AI writing assistant | [AI Assistant](../ai-assistant.md) | + +### Publishing and Scheduling + +| Editor route pattern | Surface | Canonical help target | +| --- | --- | --- | +| `/Editor/Publish` | Single-page publish | [Publish a Page](../publish-a-page.md) | +| `/Editor/PublishPage` | Publish API endpoint | [Publish a Page](../publish-a-page.md) | +| `/Editor/UnpublishPage` | Unpublish endpoint | [Publish a Page](../publish-a-page.md) | +| `/Editor/Scheduler` | Scheduled publish queue | [Page Scheduling](../page-scheduling.md) | + +### Version Management + +| Editor route pattern | Surface | Canonical help target | +| --- | --- | --- | +| `/Editor/Versions/{id}` | Version history list | [Version History](../version-history.md) | +| `/Editor/Compare` | Side-by-side version diff | [Compare Page Versions](../compare-page-versions.md) | +| `/Editor/Trash` | Deleted pages / recovery | [Trash and Recovery](../trash-and-recovery.md) | +| `/Editor/Restore` | Restore deleted page | [Trash and Recovery](../trash-and-recovery.md) | + +### Access Control and URL Management + +| Editor route pattern | Surface | Canonical help target | +| --- | --- | --- | +| `/Editor/Permissions/{id}` | Per-article access control | [Article Permissions](../article-permissions.md) | +| `/Editor/ReservedPaths` | Reserved URL paths | [URL Management](../url-management.md) | +| `/Editor/CreateReservedPath` | Add reserved path | [URL Management](../url-management.md) | +| `/Editor/EditReservedPath/{id}` | Edit reserved path | [URL Management](../url-management.md) | + +### Administration and Logging + +| Editor route pattern | Surface | Canonical help target | +| --- | --- | --- | +| `/Editor/Logs` | Audit log viewer | [Audit Logging](../../for-developers/audit-logging.md) | +| `/Editor/ExportPage` | Export page content | [Content Export & Import](../content-export-import.md) | + +### File Management + +| Editor route pattern | Surface | Canonical help target | +| --- | --- | --- | +| `/FileManager/Index` | File browser and operations | [File Management](./file-management.md) | +| `/FileManager/EditCode` | File code editing | [Code Editor](./code-editor.md) | +| `/FileManager/EditImage` | File image editing | [Image Editor](./image-editor.md) | +| `/FileManager/Import` | Import content files | [Content Export & Import](../content-export-import.md) | + +### Layouts and Templates + +| Editor route pattern | Surface | Canonical help target | +| --- | --- | --- | +| `/Layouts/Index` | Layouts list | [Layouts and Templates](../layouts-and-templates.md) | +| `/Layouts/Create` | Create layout | [Layouts and Templates](../layouts-and-templates.md) | +| `/Layouts/PageBuilder` | Layout Page Builder | [Page Builder](./page-builder.md) | +| `/Layouts/Designer` | Legacy layout Page Builder | [Page Builder](./page-builder.md) | +| `/Layouts/EditCode` | Layout code editor | [Code Editor](./code-editor.md) | +| `/Layouts/CommunityLayouts` | Community layout library | [Layouts and Templates](../layouts-and-templates.md) | +| `/Templates/Index` | Templates list | [Layouts and Templates](../layouts-and-templates.md) | +| `/Templates/Create` | Create template | [Layouts and Templates](../layouts-and-templates.md) | +| `/Templates/PageBuilder/{id}` | Template Page Builder | [Page Builder](./page-builder.md) | +| `/Templates/Designer/{id}` | Legacy template Page Builder | [Page Builder](./page-builder.md) | +| `/Templates/EditCode/{id}` | Template code editor | [Code Editor](./code-editor.md) | +| `/Templates/Pages/{id}` | Pages using template | [Layouts and Templates](../layouts-and-templates.md) | +| `/Templates/PreviewImpact/{id}` | Template change impact | [Layouts and Templates](../layouts-and-templates.md) | + +### Blogging + +| Editor route pattern | Surface | Canonical help target | +| --- | --- | --- | +| `/Blog/Index` | Blog list | [Blogging](../blogging.md) | +| `/Blog/Create` | Create blog | [Blogging](../blogging.md) | +| `/Blog/Edit/{id}` | Edit blog settings | [Blogging](../blogging.md) | +| `/Blog/Posts/{id}` | Blog posts list | [Blogging](../blogging.md) | + +### Users and Roles + +| Editor route pattern | Surface | Canonical help target | +| --- | --- | --- | +| `/Users/Index` | User accounts list | [User Management](../user-management.md) | +| `/Users/Create` | Create user | [User Management](../user-management.md) | +| `/Users/AuthorInfos` | Author profile settings | [User Management](../user-management.md) | +| `/Roles/Index` | Roles list | [Role Management](../role-management.md) | +| `/Roles/Create` | Create role | [Role Management](../role-management.md) | +| `/Roles/UsersInRole/{id}` | Users assigned to role | [Role Management](../role-management.md) | + +### Settings and Configuration + +| Editor route pattern | Surface | Canonical help target | +| --- | --- | --- | +| `/SkyCmsSettings/Index` | General site settings | [Site Settings](../site-settings.md) | +| `/SkyCmsSettings/CDN` | CDN configuration | [Site Settings](../site-settings.md) | +| `/SkyCmsSettings/AiProvider` | AI provider configuration | [AI Provider Setup](../ai-provider-setup.md) | + +### Email and Contacts + +| Editor route pattern | Surface | Canonical help target | +| --- | --- | --- | +| `/EmailAdmin/Index` | Email test and operations UI | [Email Admin](../email-admin.md) | +| `/Contact/Index` | Contact form submissions | [Contact Management](../contact-management.md) | +| `/Contact/MailChimp` | MailChimp integration | [Contact Management](../contact-management.md) | + +## Fallback Rule + +If no direct route mapping exists: + +1. Open docs search UI in product. +2. If docs search cannot load, open docs home. + +## Maintenance Rule + +When a new editor route or user-facing page is added: + +1. Create or confirm a canonical page. +2. Add mapping in product route-help map. +3. Add mapping row here. +4. Verify Help opens the expected destination. diff --git a/for-editors/feature-catalog/email-management.md b/for-editors/feature-catalog/email-management.md new file mode 100644 index 0000000..e0f255f --- /dev/null +++ b/for-editors/feature-catalog/email-management.md @@ -0,0 +1,70 @@ +--- +canonical_title: Email Management +description: Concrete usage guide for SkyCMS email management, including provider choices, practical checks, and common workflows. +doc_type: How-to +product_area: email +user_intent: configure-and-verify-email +audience: + - Administrators + - Content Managers +difficulty: beginner +version: current +status: active +owner: docs-platform +last_reviewed: 2026-05-01 +--- + +# Email Management + +Use Email Management when you need to configure how SkyCMS sends messages such as contact notifications, account confirmation, and password reset email. + +## What You Can Do + +- Choose an email delivery provider +- Configure credentials and sender identity +- Test delivery from your environment +- Troubleshoot common send failures + +## When to Use This Area + +- Initial platform setup +- Environment changes (new domain, new credentials, provider migration) +- Ongoing operational checks and troubleshooting + +## Main Controls and What They Do + +| Control or Setting | What it does | +| --- | --- | +| Provider selection | Chooses which email service SkyCMS uses | +| Sender identity fields | Defines display name and from address | +| Credential fields | Stores API key, connection string, or SMTP credentials | +| Test send | Sends a verification email to validate configuration | +| Environment variable mapping | Lets you manage secrets outside source control | + +## Common Tasks + +### Configure email for the first time + +1. Pick a provider (ACS, SendGrid, SMTP, or NoOp for local test). +2. Add provider credentials. +3. Set sender display name and from email. +4. Save settings. +5. Run test send and confirm delivery. + +### Troubleshoot missing contact emails + +1. Verify active provider and credentials. +2. Run test send. +3. Check spam/quarantine and sender policy setup. +4. Confirm contact notification settings are enabled. +5. Review environment variable overrides if behavior differs by environment. + +## Related Deep References + +- [Email Overview](../../configuration/email/overview.md) +- [Email Configuration Reference](../../configuration/email/configuration-reference.md) +- [Azure Communication Services](../../configuration/email/azure-communication-services.md) +- [SendGrid](../../configuration/email/sendgrid.md) +- [SMTP](../../configuration/email/smtp.md) +- [Contact Management](../../for-editors/contact-management.md) +- [Feature Catalog: Administration and Security](../../reference/features/06-administration-and-security.md) diff --git a/for-editors/feature-catalog/file-management.md b/for-editors/feature-catalog/file-management.md new file mode 100644 index 0000000..7ca061c --- /dev/null +++ b/for-editors/feature-catalog/file-management.md @@ -0,0 +1,68 @@ +--- +canonical_title: File Management +description: Concrete usage guide for SkyCMS File Management, including controls, scenarios, and common workflows. +doc_type: How-to +product_area: file-management +user_intent: manage-files-and-media +audience: + - Content Editors + - Content Managers +difficulty: beginner +version: current +status: active +owner: docs-platform +last_reviewed: 2026-05-01 +--- + +# File Management + +Use File Management when you need to upload, organize, and maintain media and document files used by your content. + +## What You Can Do + +- Upload files and images +- Organize folders and naming +- Move, copy, rename, and delete assets +- Open files in code or image editors + +## When to Use This Area + +- Content preparation before editing pages +- Shared asset housekeeping and cleanup +- Reusing existing assets across multiple pages + +## Main Controls and What They Do + +| Control | What it does | +| --- | --- | +| Upload | Adds files to the current folder | +| New Folder | Creates a folder for organization | +| Rename | Changes file or folder name | +| Move / Copy | Reorganizes assets across folders | +| Delete | Removes selected files or folders | +| Search | Finds files by name | +| View toggle | Switches between grid and list view | + +## Common Tasks + +### Upload and place a new content image + +1. Open File Manager. +2. Navigate to the destination folder. +3. Select Upload and choose the image. +4. Confirm upload completion. +5. Return to your editor and insert the uploaded image. + +### Clean up an old campaign folder + +1. Open the campaign folder. +2. Move files that are still needed to archive folders. +3. Delete outdated or duplicate assets. +4. Verify links in active pages are still valid. + +## Related Deep References + +- [File Manager](../../for-editors/file-manager.md) +- [File Manager Quick Start](../../for-editors/file-manager-quickstart.md) +- [File Manager Toolbar Reference](../../for-editors/file-manager-toolbar-reference.md) +- [Feature Catalog: File and Media Management](../../reference/features/05-file-and-media-management.md) diff --git a/for-editors/feature-catalog/image-editor.md b/for-editors/feature-catalog/image-editor.md new file mode 100644 index 0000000..47e9949 --- /dev/null +++ b/for-editors/feature-catalog/image-editor.md @@ -0,0 +1,66 @@ +--- +canonical_title: Image Editor +description: Concrete usage guide for the SkyCMS Image Editor, including controls, scenarios, and common workflows. +doc_type: How-to +product_area: image-editing +user_intent: edit-and-export-images +audience: + - Content Editors + - Designers +difficulty: beginner +version: current +status: active +owner: docs-platform +last_reviewed: 2026-05-01 +--- + +# Image Editor + +Use Image Editor when you need to prepare images before inserting them into content. + +## What You Can Do + +- Crop and resize images +- Rotate and flip assets +- Apply adjustments and filters +- Add annotations and basic markup + +## When to Use This Editor + +- Preparing hero images and article thumbnails +- Correcting dimensions or orientation +- Producing variants for different layout slots + +## Main Controls and What They Do + +| Control | What it does | +| --- | --- | +| Crop | Trims image boundaries | +| Resize | Changes image dimensions | +| Rotate / Flip | Corrects orientation | +| Adjust | Tunes brightness, contrast, and color values | +| Annotate | Adds text or drawing marks | +| Save | Writes updated image back to storage | +| Export (if available) | Exports a copy with selected format/quality | + +## Common Tasks + +### Prepare a banner image + +1. Open the image from File Manager. +2. Crop to the target banner ratio. +3. Resize to your preferred pixel dimensions. +4. Apply light contrast adjustments if needed. +5. Save and use the updated file in your page. + +### Correct a sideways upload + +1. Open the image in Image Editor. +2. Use Rotate until orientation is correct. +3. Save. +4. Refresh thumbnail in File Manager if needed. + +## Related Deep References + +- [Image Editing](../../for-editors/image-editing.md) +- [File Manager](../../for-editors/file-manager.md) diff --git a/for-editors/feature-catalog/index.md b/for-editors/feature-catalog/index.md new file mode 100644 index 0000000..689626e --- /dev/null +++ b/for-editors/feature-catalog/index.md @@ -0,0 +1,60 @@ +--- +canonical_title: Editor Feature Catalog +description: Concrete entry point for SkyCMS editing and management tools with direct links to role-ready guides. +doc_type: Reference +product_area: editor +user_intent: find-concrete-feature-guides +audience: + - Content Editors + - Content Managers +difficulty: beginner +version: current +status: active +owner: docs-platform +last_reviewed: 2026-05-01 +--- + +# Editor Feature Catalog + +Use this page when you want a concrete list of what tools exist in SkyCMS and where to find task-ready guidance. + +## Content Editors + +- [Content Editors overview](./content-editors.md) +- [Visual Editor](./visual-editor.md) +- [Code Editor](./code-editor.md) +- [Page Builder](./page-builder.md) +- [Image Editor](./image-editor.md) + +## Management Tools + +- [File Management](./file-management.md) +- [Email Management](./email-management.md) + +## Governance and Integration + +- [Canonical Content Model](./canonical-content-model.md) +- [Editor Help Route Map](./editor-help-route-map.md) + +## Quick Tool Map + +```mermaid +flowchart LR + A[Editor Tasks] --> B[Content Editors] + A --> C[Management Tools] + + B --> B1[Visual Editor] + B --> B2[Code Editor] + B --> B3[Page Builder] + B --> B4[Image Editor] + + C --> C1[File Management] + C --> C2[Email Management] +``` + +## How to Use This Catalog + +1. Start with the tool name that matches your task. +2. Open that tool page to see when to use it and what each control does. +3. Follow a step-by-step workflow from the "Common Tasks" section. +4. Use the linked deep references when you need advanced detail. diff --git a/for-editors/feature-catalog/page-builder.md b/for-editors/feature-catalog/page-builder.md new file mode 100644 index 0000000..b6cd5eb --- /dev/null +++ b/for-editors/feature-catalog/page-builder.md @@ -0,0 +1,66 @@ +--- +canonical_title: Page Builder +description: Concrete usage guide for SkyCMS Page Builder, including controls, scenarios, and common workflows. +doc_type: How-to +product_area: page-builder +user_intent: build-pages-with-blocks +audience: + - Content Editors + - Site Builders +difficulty: beginner +version: current +status: active +owner: docs-platform +last_reviewed: 2026-05-01 +--- + +# Page Builder + +Use Page Builder when you want to construct page sections visually using drag-and-drop blocks. + +## What You Can Do + +- Build page sections with reusable blocks +- Reorder components quickly +- Apply styles visually +- Preview layout behavior before publishing + +## When to Use This Editor + +- Building landing pages and campaign pages +- Assembling new page sections from existing blocks +- Rapid visual iteration with minimal code + +## Main Controls and What They Do + +| Control | What it does | +| --- | --- | +| Blocks panel | Shows available section and element blocks | +| Canvas | Main visual workspace for page composition | +| Layers panel | Displays hierarchy and helps with selection | +| Style panel | Applies visual styles to selected elements | +| Device preview | Switches desktop/tablet/mobile preview | +| Save | Saves current page builder draft | + +## Common Tasks + +### Build a new hero section + +1. Open the page in Page Builder. +2. Drag a hero block from the Blocks panel onto the canvas. +3. Select text and image elements to edit content. +4. Adjust spacing and typography in the Style panel. +5. Save and preview. + +### Reorder sections on a page + +1. Open Layers panel. +2. Drag sections up or down to the desired order. +3. Save changes. +4. Validate desktop and mobile previews. + +## Related Deep References + +- [Page Builder](../../for-editors/page-builder.md) +- [Page Builder Quick Start](../../for-editors/page-builder-quickstart.md) +- [Layers Panel](../../for-editors/layers.md) diff --git a/for-editors/feature-catalog/visual-editor.md b/for-editors/feature-catalog/visual-editor.md new file mode 100644 index 0000000..4ab2153 --- /dev/null +++ b/for-editors/feature-catalog/visual-editor.md @@ -0,0 +1,82 @@ +--- +canonical_title: Visual Editor +description: Canonical guide to the SkyCMS Visual Editor — edit content directly on the page and see your changes as you write. +doc_type: How-to +product_area: editor +user_intent: use-visual-editor-effectively +audience: + - Content Editors + - Content Managers +difficulty: beginner +version: current +status: active +owner: docs-platform +last_reviewed: 2026-05-01 +--- + +# Visual Editor + +The **Visual Editor** lets you edit page content in place and see the result as you type. It is the fastest path to updating existing text, images, and links without touching code. + + + +## What You Can Do + +- Edit headings, paragraphs, and lists directly on the page +- Insert links, images, tables, and embeds +- Apply formatting (bold, italic, block quotes, headings) +- Save drafts and resume editing later + +## When to Use This Editor + +- Fast content updates on existing pages +- Authoring blog and article copy +- Non-technical edits that should stay visual + +## Main Controls and What They Do + + + +| Control | What it does | +| --- | --- | +| Save | Saves your current draft changes | +| Undo / Redo | Reverses or reapplies your latest edits | +| Paragraph / Heading menu | Changes selected text style and hierarchy | +| Bold / Italic / Underline | Applies text emphasis | +| Link | Creates or edits hyperlinks | +| Image | Inserts images from upload or File Manager | +| Table | Inserts and edits table structure | +| Source (if enabled) | Opens the raw HTML source view | + +## Common Tasks + +### Update body copy on a page + +1. Open the page from the [Pages Catalog](../dashboard-overview.md) and click the **Visual Editor** (pencil) icon. +2. Click into the text region you want to change. +3. Edit the text and apply formatting as needed. +4. Click **Save**. +5. Preview and publish when ready — see [Publish a Page](../publish-a-page.md). + +### Add an image to a section + +1. Place the cursor where the image should appear. +2. Click the **Image** button in the toolbar. +3. Upload a new image or choose one from File Manager. +4. Add alt text for accessibility. +5. Click **Save**. + +### Create a link + +1. Select the text you want to turn into a link. +2. Click the **Link** button in the toolbar. +3. Paste or type the URL. +4. Choose whether to open in a new tab. +5. Click **Save**. + +## Related Deep References + +- [Visual Editor deep guide](../../for-editors/visual-editor.md) — full feature walkthrough +- [Visual Editor Quick Start](../../for-editors/visual-editor-quickstart.md) +- [Visual Editor Toolbar Reference](../../for-editors/visual-editor-toolbar-reference.md) +- [Visual Editor Visual Guide](../../for-editors/visual-editor-visual-guide.md) diff --git a/for-editors/file-manager.md b/for-editors/file-manager.md index e112622..927759a 100644 --- a/for-editors/file-manager.md +++ b/for-editors/file-manager.md @@ -16,6 +16,10 @@ last_reviewed: 2026-04-30 # File Manager +> Canonical source of truth: [File Management](./feature-catalog/file-management.md) + +This page is the detailed workflow and deep-use companion for the canonical feature page. + ## Summary Use this guide when you need to: @@ -117,12 +121,14 @@ Deletion is permanent and cannot be undone. Verify your selection before confirm ### Copy or move **Copy:** + 1. Select the items to copy. 2. Click **Copy** in the toolbar (or right-click → **Copy**). 3. Navigate to the destination folder. 4. Click **Paste** in the toolbar — a copy is created. **Move:** + 1. Select the items to move. 2. Click **Cut** in the toolbar (or right-click → **Cut**). 3. Navigate to the destination folder. diff --git a/for-editors/image-editing.md b/for-editors/image-editing.md index 3cc4ee1..7d5ae0a 100644 --- a/for-editors/image-editing.md +++ b/for-editors/image-editing.md @@ -15,6 +15,10 @@ last_reviewed: 2026-04-27 # Image Editing +> Canonical source of truth: [Image Editor](./feature-catalog/image-editor.md) + +This page is the detailed workflow and deep-use companion for the canonical feature page. + ## Summary Use this guide when you need to: diff --git a/for-editors/index.md b/for-editors/index.md index 7759495..29e28dd 100644 --- a/for-editors/index.md +++ b/for-editors/index.md @@ -49,11 +49,16 @@ For role boundaries and permission details across all roles, see [Roles and perm 1. Learn the lifecycle and workflow states: - [Article Lifecycle Quick Reference](./article-lifecycle-reference.md) - [Editor Workflow Reference](./overview.md) -2. Execute core daily operations: +2. Find concrete feature guides by tool: + - [Editor Feature Catalog](./feature-catalog/index.md) + - [Content Editors](./feature-catalog/content-editors.md) + - [File Management](./feature-catalog/file-management.md) + - [Email Management](./feature-catalog/email-management.md) +3. Execute core daily operations: - [Creating articles](./creating-articles.md) - [Updating and deleting articles](./updating-and-deleting-articles.md) - [Scheduling pages](./page-scheduling.md) -3. Use editing tools effectively: +4. Use editing tools effectively: - [Using the Visual Editor](./visual-editor.md) - [Visual Editor quick start](./visual-editor-quickstart.md) - [Visual Editor toolbar reference](./visual-editor-toolbar-reference.md) @@ -61,7 +66,7 @@ For role boundaries and permission details across all roles, see [Roles and perm - [Page builder quick start](./page-builder-quickstart.md) - [Layers panel](./layers.md) - [Code editor](./code-editor.md) -4. Use advanced and media tools when needed: +5. Use advanced and media tools when needed: - [AI assistant](./ai-assistant.md) - [AI provider setup](./ai-provider-setup.md) - [AI troubleshooting](./ai-troubleshooting.md) diff --git a/for-editors/layouts-and-templates.md b/for-editors/layouts-and-templates.md new file mode 100644 index 0000000..e134607 --- /dev/null +++ b/for-editors/layouts-and-templates.md @@ -0,0 +1,124 @@ +--- +canonical_title: Layouts and Templates +description: Manage layouts and templates in SkyCMS — the structural building blocks that determine how every page looks and renders. +doc_type: How-to +product_area: site-structure +user_intent: create-and-manage-layouts-and-templates +audience: + - Content Managers + - Site Builders + - Administrators +difficulty: intermediate +version: current +status: active +owner: docs-platform +last_reviewed: 2026-05-01 +--- + +# Layouts and Templates + +**Layouts** and **Templates** are the structural building blocks of SkyCMS. They control the outer shell and the inner content structure of every page on your site. Understanding how they work together is key to managing any SkyCMS site. + +!!! tip "New to SkyCMS?" + If you are unfamiliar with the underlying concepts, read the [For Site Builders guide](../for-site-builders/index.md) first, then return here for the admin how-to steps. + +## Layouts vs. Templates — What Each One Does + +| | Layout | Template | +| --- | --- | --- | +| **What it controls** | Outer page shell: header, footer, navigation, global CSS/JS | Inner content region: page structure, widget zones | +| **Applies to** | All pages that use this layout | All articles using this template | +| **Who typically edits it** | Site builder or administrator | Site builder or content manager | +| **Edited with** | Page Builder or Code Editor | Page Builder or Code Editor | + +A layout wraps a template. A template wraps an article. When a visitor views a page, SkyCMS renders: layout shell → template structure → article content. + +For the full conceptual explanation, see [Layouts, Templates & Articles](../for-developers/layouts-templates-articles.md). + +## Managing Layouts + +### View all layouts + +Go to **Editor → Layouts** (top navigation or sidebar). The list shows all layouts defined for this tenant with their names and last-updated dates. + +### Create a layout + +1. Click **New Layout**. +2. Enter a name for the layout. +3. Click **Create**. +4. The layout opens in the Code Editor (empty). Build the outer shell HTML there, or switch to Page Builder for visual editing. + +### Edit a layout + +- Click **Page Builder** to edit the layout visually with drag-and-drop components. +- Click **Code Editor** to edit raw HTML, CSS, and template tokens directly. +- Click **Community Layouts** to browse and import pre-built layout starter templates. + +### Delete a layout + +1. Find the layout in the list. +2. Open the **More** menu → **Delete**. +3. Confirm deletion. + +!!! warning + Deleting a layout affects every page that uses it. Confirm the layout is not in use, or reassign pages first. + +## Managing Templates + +### View all templates + +Go to **Editor → Templates** (top navigation or sidebar). The list shows all templates, their assigned layout, and last-updated dates. + +### Create a template + +1. Click **New Template**. +2. Enter a name and choose the layout it will use. +3. Click **Create**. +4. Edit the template structure in Page Builder or Code Editor. + +### Edit a template + +- Click **Page Builder** to edit the template visually. +- Click **Code Editor** to edit the raw template markup. +- Click **Pages** to see which articles currently use this template. +- Click **Preview Impact** to check how changes will affect those pages before saving. + +### Publish a template + +After editing, click **Publish** on the template to push changes live. All articles using this template will reflect the new structure on their next publish. + +### Delete a template + +1. Check the **Pages** list to see which articles use this template. +2. Reassign articles to another template, or confirm they can be retired. +3. Delete the template from the **More** menu. + +## Common Tasks + +### Change which layout a template uses + +1. Open the template. +2. Select **Edit** to open template settings. +3. Choose a different layout from the layout dropdown. +4. Save. + +### See all pages using a template + +1. Open the template. +2. Click **Pages**. +3. The list shows every article currently assigned to this template. + +### Preview what a template change will look like + +1. Open the template. +2. Click **Preview Impact** before saving. +3. Review the simulated output. +4. Proceed with saving if the result is correct. + +## Related Guides + +- [For Site Builders: Layouts](../for-site-builders/layouts.md) — conceptual overview and examples +- [For Site Builders: Templates](../for-site-builders/templates.md) — conceptual overview and examples +- [Page Builder](feature-catalog/page-builder.md) — how to use the drag-and-drop editor +- [Code Editor](feature-catalog/code-editor.md) — how to use the code editor +- [Layouts, Templates & Articles (developer deep dive)](../for-developers/layouts-templates-articles.md) diff --git a/for-editors/page-builder.md b/for-editors/page-builder.md index 63b9f5a..a0a90fb 100644 --- a/for-editors/page-builder.md +++ b/for-editors/page-builder.md @@ -16,6 +16,10 @@ last_reviewed: 2026-04-28 # Page Builder +> Canonical source of truth: [Page Builder](./feature-catalog/page-builder.md) + +This page is the detailed workflow and deep-use companion for the canonical feature page. + ## Summary Use this guide when you need to compose layouts, templates, or article structures visually with the SkyCMS Page Builder. diff --git a/for-editors/publish-a-page.md b/for-editors/publish-a-page.md new file mode 100644 index 0000000..5b0b28f --- /dev/null +++ b/for-editors/publish-a-page.md @@ -0,0 +1,90 @@ +--- +canonical_title: Publish a Page +description: Step-by-step guide to publishing, scheduling, and unpublishing a single page in SkyCMS. +doc_type: How-to +product_area: publishing +user_intent: publish-schedule-or-unpublish-a-page +audience: + - Content Editors + - Content Managers +difficulty: beginner +version: current +status: active +owner: docs-platform +last_reviewed: 2026-05-01 +--- + +# Publish a Page + +This guide covers three tasks: publishing a page now, scheduling a page for a future date, and unpublishing a live page. + +For an overview of all available publishing modes (including bulk publish and static generation), see [Publishing Modes](publishing-modes.md). + +## Before You Publish + +Check that: + +- The page is saved (status is **Draft** or **Review**, not **Unsaved**) +- The content is ready and reviewed +- The URL slug is correct — changing it after publish can break existing links +- Any images or files referenced on the page are already uploaded + +## Publish Now + +1. Open the page in any editor (Visual Editor, Page Builder, or Code Editor). +2. Click the **Publish** button in the top toolbar, **or** go to the Pages Catalog, find the page, and choose **Publish** from the **More (...)** menu. +3. In the publish dialog, confirm the page title and target URL. +4. Click **Publish Now**. +5. The page status changes to **Published** and the change goes live immediately. + +## Schedule for a Future Date + +1. Open the page or find it in the Pages Catalog. +2. Click **Publish** → **Schedule**. +3. Choose the date and time for publication. +4. Click **Confirm Schedule**. +5. The page status changes to **Scheduled**. It will publish automatically at the specified time. + +To review or cancel a scheduled publish, open the **Scheduler** view (Editor → Scheduler). + +## Unpublish a Live Page + +Unpublishing takes the page offline without deleting it. + +1. Go to the Pages Catalog. +2. Find the published page. +3. Open the **More (...)** menu → **Unpublish**. +4. Confirm. +5. The page status returns to **Draft**. It is no longer visible on the site. + +!!! note + Unpublishing does not delete the page or its version history. You can republish at any time. + +## Publish Status Reference + +| Status | Meaning | +| --- | --- | +| Draft | Saved but not live | +| Review | Submitted for editorial sign-off | +| Scheduled | Will publish at a future date/time | +| Published | Live on the site | +| Deleted | In trash — not visible anywhere | + +## Troubleshooting + +**Publish button is greyed out.** +You may not have the Publish permission for this page. Check with your administrator, or review [Article Permissions](article-permissions.md). + +**Page published but changes are not visible.** +If your site uses a CDN, the cache may need to clear. Check [Publishing Progress](publishing-progress.md) and CDN settings. + +**Scheduled publish did not run.** +Verify the scheduled time (including timezone) in the Scheduler view. If the time has passed and the page is still Draft, contact your administrator. + +## Related Guides + +- [Publishing Modes](publishing-modes.md) — all publishing options explained +- [Page Scheduling](page-scheduling.md) — detailed scheduling options +- [Publishing Progress](publishing-progress.md) — monitoring bulk publish operations +- [Version History](version-history.md) — restore an earlier version before publishing +- [Article Permissions](article-permissions.md) — who can publish this page diff --git a/for-editors/role-management.md b/for-editors/role-management.md new file mode 100644 index 0000000..138c1e7 --- /dev/null +++ b/for-editors/role-management.md @@ -0,0 +1,75 @@ +--- +canonical_title: Role Management +description: Create and manage editor roles in SkyCMS to control what users can access and do across the CMS. +doc_type: How-to +product_area: administration +user_intent: create-and-manage-editor-roles +audience: + - Administrators +difficulty: intermediate +version: current +status: active +owner: docs-platform +last_reviewed: 2026-05-01 +--- + +# Role Management + +**Roles** define what a user can do in SkyCMS. Each role is a named set of permissions. When you assign a user to a role, they inherit everything that role allows. + +Use this guide to create roles, manage who belongs to them, and understand the built-in role structure. + +## Built-in Roles + +SkyCMS includes several built-in roles that cover most use cases: + +| Role | Typical capabilities | +| --- | --- | +| Administrator | Full access to all editor features, settings, and user management | +| Content Manager | Create, edit, publish, and manage all content; manage users | +| Editor | Create and edit content; limited publish rights | +| Author | Create and edit own content only | +| Reviewer | View and comment on drafts; cannot publish | + +For the full permission matrix, see [Roles & Permissions (developer reference)](../for-developers/roles-and-permissions.md). + +## Opening Role Management + +Go to **Editor → Roles** in the top navigation. The list shows all roles defined in the system. + +## Create a Role + +1. Click **New Role**. +2. Enter a role name. +3. Click **Create**. +4. The role is created. Assign permissions to it (if custom permission sets are configured) or assign users to it. + +## View and Manage Users in a Role + +1. Click the role name. +2. Click **Users in Role**. +3. The list shows all user accounts assigned to this role. +4. To add a user: use the search box to find the account, then click **Add**. +5. To remove a user: click **Remove** next to their account. + +## Delete a Role + +1. Find the role in the list. +2. Click **Delete** from the role's action menu. +3. Confirm. + +!!! warning + Deleting a role removes it from all users currently assigned to it. Confirm that affected users have an alternative role, or their access will be revoked. + +## Notes + +- A user can belong to multiple roles. +- Role assignments take effect the next time the user logs in or their session refreshes. +- Custom roles inherit the permission structure defined by the developer. Contact your administrator if you need a new custom role type. + +## Related Guides + +- [User Management](user-management.md) — create and manage user accounts +- [Article Permissions](article-permissions.md) — per-article access overrides +- [Authentication & SSO](authentication.md) — login and identity provider settings +- [Roles & Permissions (developer reference)](../for-developers/roles-and-permissions.md) diff --git a/for-editors/trash-and-recovery.md b/for-editors/trash-and-recovery.md new file mode 100644 index 0000000..6475a2d --- /dev/null +++ b/for-editors/trash-and-recovery.md @@ -0,0 +1,60 @@ +--- +canonical_title: Trash and Recovery +description: Recover deleted pages from the SkyCMS trash, or permanently remove content you no longer need. +doc_type: How-to +product_area: editor +user_intent: recover-or-permanently-delete-trashed-pages +audience: + - Content Editors + - Content Managers + - Administrators +difficulty: beginner +version: current +status: active +owner: docs-platform +last_reviewed: 2026-05-01 +--- + +# Trash and Recovery + +When you delete a page in SkyCMS, it moves to the **Trash** rather than being permanently removed. You can restore it from there at any time, or permanently delete it when you are ready. + +## How the Trash Works + +Deleting a page sets its status to **Deleted**. The page is no longer visible on the live site or in the main Pages Catalog list, but it remains in the database. The Trash view shows all deleted pages for the current tenant. + +## Opening the Trash + +Go to **Editor → Trash** in the top navigation or sidebar. The list shows all deleted pages with their original title, URL slug, and the date they were deleted. + +## Restoring a Deleted Page + +1. Open the Trash. +2. Find the page you want to restore. +3. Click **Restore**. +4. The page status returns to **Draft** and it reappears in the Pages Catalog. + +After restoring, the page is not yet live. Open it and publish it when ready. + +## Permanently Deleting a Page + +Permanent deletion cannot be undone. + +1. Open the Trash. +2. Find the page you want to remove permanently. +3. Click **Delete Permanently**. +4. Confirm the deletion. + +The page and its version history are removed from the system. + +## Notes + +- Restored pages retain all previous versions and their permissions settings. +- If a published page is deleted, it is immediately taken offline. Restoring it returns it to Draft status — it will not automatically go live again. +- Only users with the Content Manager or Administrator role can permanently delete pages. + +## Related Guides + +- [Version History](version-history.md) — browse and restore earlier content snapshots +- [Dashboard Overview](dashboard-overview.md) — the main Pages Catalog +- [Publishing a Page](publish-a-page.md) — republish a restored page diff --git a/for-editors/visual-editor.md b/for-editors/visual-editor.md index a592762..54cd4a5 100644 --- a/for-editors/visual-editor.md +++ b/for-editors/visual-editor.md @@ -15,6 +15,10 @@ last_reviewed: 2026-04-28 # Using the Visual Editor +> Canonical source of truth: [Visual Editor](./feature-catalog/visual-editor.md) + +This page is the detailed workflow and deep-use companion for the canonical feature page. + ## Summary Use this guide when you want to edit article content directly in page context with the SkyCMS Visual Editor. diff --git a/for-site-builders/choosing-an-editor.md b/for-site-builders/choosing-an-editor.md index e61a1c9..d46c38b 100644 --- a/for-site-builders/choosing-an-editor.md +++ b/for-site-builders/choosing-an-editor.md @@ -20,12 +20,22 @@ last_reviewed: 2026-04-29 SkyCMS provides two primary visual editing tools: the **Visual Editor** (CKEditor 5) and the **Page Builder** (GrapesJS). Both produce web page content, but they serve fundamentally different purposes. This guide helps site builders and developers decide which tool to use — and how to design for it — before the first editor ever opens the page. +## Why this decision matters + +Choosing an editor in SkyCMS is not only a tooling choice. It defines team handoff and long-term maintenance. + +- If your goal is to let non-technical content creators maintain pages and blogs with minimal training, prefer CKEditor inside a clear template structure. +- If your goal is editor-controlled page composition, prefer Page Builder for structure-at-authoring workflows. +- If your goal is developer control in IDE workflows, use the SkyCMS VS Code extension alongside structured template design. + +The practical objective is to give every role enough freedom for their job without creating barriers for the next person in the workflow. + ## The Core Difference The most useful way to think about this is not "which editor is more powerful," but rather: **what is being authored — structure, or content?** | | Visual Editor (CKEditor) | Page Builder (GrapesJS) | -|---|---|---| +| --- | --- | --- | | **What it authors** | Content inside a predefined structure | Structure itself | | **Who defines the layout** | Site builder / developer (in the template) | The editor, at authoring time | | **Number of editable regions** | Typically few — one to a handful | Potentially many, determined at edit time | @@ -130,7 +140,7 @@ For content types that will grow to many pages, the Visual Editor + template mod ## Quick Decision Reference -``` +```text Is the page structure consistent across many pages? Yes → Visual Editor + template diff --git a/for-site-builders/index.md b/for-site-builders/index.md index 627eb3e..678d847 100644 --- a/for-site-builders/index.md +++ b/for-site-builders/index.md @@ -25,6 +25,8 @@ Use this page when you need to: - find the right guide for layouts, templates, pages, or example implementations, - navigate quickly to the supporting implementation guides. +SkyCMS site building is designed around a deliberate handoff model: builders and developers define structure, then content creators maintain pages and blogs through familiar editing tools like CKEditor. + ## Role overview SkyCMS content roles work together like this: @@ -43,6 +45,15 @@ Site builders typically: - Collaborate with editors on authoring patterns and handoff. - Coordinate with developers when implementation changes are required. +## Builder workflow philosophy + +Site builders in SkyCMS balance two goals: + +- make day-to-day editing safe and simple for non-technical content teams, +- avoid rigid implementation limits that reduce developer and design freedom. + +This is why SkyCMS supports multiple editing modes and code-oriented workflows, including Visual Studio Code extension support for teams that manage CMS websites with IDE-first practices. + For role boundaries and permission details across all roles, see [Roles and permissions (RBAC)](../for-developers/roles-and-permissions.md). ## Start here diff --git a/getting-started/img/vscode-explorer-quick-tour.png b/getting-started/img/vscode-explorer-quick-tour.png new file mode 100644 index 0000000..e69de29 diff --git a/getting-started/vscode-explorer-quick-tour.md b/getting-started/vscode-explorer-quick-tour.md new file mode 100644 index 0000000..44144e2 --- /dev/null +++ b/getting-started/vscode-explorer-quick-tour.md @@ -0,0 +1,80 @@ +--- +canonical_title: VS Code Explorer Quick Tour +description: Quick visual tour of the SkyCMS VS Code Explorer workflow and when to use it alongside CKEditor. +doc_type: How-to +product_area: getting-started +user_intent: understand-vscode-explorer-workflow-fast +audience: + - Evaluators + - Developers + - Site Builders +difficulty: beginner +version: current +status: active +owner: docs-platform +last_reviewed: 2026-05-11 +--- + +# VS Code Explorer Quick Tour + +## Summary + +This page gives a fast, visual introduction to the SkyCMS Explorer extension inside Visual Studio Code. + +Use it when you want to understand what "CMS as code" looks like in practice before reading deeper setup documentation. + +## Where this fits in your team workflow + +Use VS Code Explorer when: + +- developers need IDE-first control of SkyCMS-managed resources, +- teams want source-control friendly workflows, +- structure and technical content updates are being made. + +Use CKEditor when: + +- non-technical content creators are performing routine page and blog updates, +- the task is writing and formatting content rather than structural implementation. + +Most teams use both. + +## Quick tour steps + +### 1. Connect a SkyCMS site + +Add the site profile and sign in from VS Code commands. + +### 2. Open the SkyCMS tree + +Browse layouts, templates, articles, and files from the Explorer panel. + +### 3. Edit fields and files + +Open CMS content fields and site files in editor tabs, save like normal VS Code documents. + +### 4. Preview and publish + +Use context actions for preview, publish, and unpublish where supported. + +## Visual reference + +When your screenshot is ready, place it here: + +- `getting-started/img/vscode-explorer-quick-tour.png` + +Then this page will render it automatically: + +![SkyCMS VS Code Explorer quick tour screenshot](img/vscode-explorer-quick-tour.png) + +## What to look for in the screenshot + +- SkyCMS Explorer panel with a connected site. +- Category nodes such as Layouts, Page Templates, Articles, and Files. +- An open field/file tab in the VS Code editor area. +- Context menu actions or command palette entries for SkyCMS tasks. + +## Related guides + +- [SkyCMS VS Code Extension](../for-developers/extending/vscode-extension.md) +- [Why SkyCMS Is Different](./why-skycms-is-different.md) +- [What Is SkyCMS?](./what-is-skycms.md) diff --git a/getting-started/what-is-skycms.md b/getting-started/what-is-skycms.md index a5af5a3..fd1f867 100644 --- a/getting-started/what-is-skycms.md +++ b/getting-started/what-is-skycms.md @@ -30,6 +30,46 @@ SkyCMS is designed to support both: - editors get visual tools to create and publish content, - developers get configurable architecture, provider choice, and deployment flexibility. +## Two ways to work, one shared platform + +SkyCMS is built for teams that need both of these realities to be true: + +- non-technical content creators can keep publishing work moving without depending on developers for routine content updates, +- developers can still work in code-first workflows and avoid restrictive CMS guardrails. + +In practice, this means the same website can be maintained through a visual authoring path and a code-oriented path, depending on who is doing the work. + +## For content creators: familiar writing experience + +SkyCMS includes CKEditor as a first-class editing experience. For most page and blog maintenance work, content creators can use a familiar writing interface similar to a word processor. + +Teams often use this model to reduce training overhead: + +- developers and site builders set the structure, +- content creators update the text and media, +- everyone shares the same publishing workflow. + +## For developers: CMS website as code + +With the SkyCMS VS Code Explorer extension, developers can view and work with SkyCMS website assets and content fields from inside Visual Studio Code. + +This supports a modern workflow where developers can: + +- inspect and edit CMS-managed resources with IDE tooling, +- use familiar source-control and review practices, +- stay in a code-centric environment while still working with CMS content. + +See [SkyCMS VS Code Extension](../for-developers/extending/vscode-extension.md). + +## SkyCMS philosophy: remove barriers, not flexibility + +SkyCMS is designed to remove barriers for both groups: + +- content creators should not need deep technical training to keep content current, +- developers should not be forced into rigid abstractions that block creative implementation choices. + +This is a core product stance, not a single feature. It shapes how editing modes, templates, code workflows, and handoff patterns are designed across the platform. + ## Who SkyCMS is for SkyCMS is primarily used by: @@ -65,6 +105,7 @@ flowchart LR SkyCMS includes: - multiple editing experiences, including visual and code-oriented options, +- Visual Studio Code integration for code-first CMS workflows, - structured content lifecycle and publishing states, - layout and template composition for reusable site design, - multi-tenant architecture support, @@ -88,6 +129,8 @@ For AI assistants, search pipelines, and prompt-grounding workflows, use: ## Related guides +- [Why SkyCMS Is Different](./why-skycms-is-different.md) +- [VS Code Explorer Quick Tour](./vscode-explorer-quick-tour.md) - [Quick Start](./quick-start.md) - [Key Concepts](./key-concepts.md) - [Installation Overview](../installation/overview.md) diff --git a/getting-started/why-skycms-is-different.md b/getting-started/why-skycms-is-different.md new file mode 100644 index 0000000..2897934 --- /dev/null +++ b/getting-started/why-skycms-is-different.md @@ -0,0 +1,94 @@ +--- +canonical_title: Why SkyCMS Is Different +description: Understand how SkyCMS combines editor simplicity and developer freedom, and why that changes the usual CMS tradeoff. +doc_type: Explanation +product_area: getting-started +user_intent: evaluate-why-skycms-stands-out +audience: + - Evaluators + - Developers + - Content Teams +difficulty: beginner +version: current +status: active +owner: docs-platform +last_reviewed: 2026-05-11 +--- + +# Why SkyCMS Is Different + +## Summary + +Most CMS products force a tradeoff: + +- either editors get a simple experience and developers lose flexibility, +- or developers get control and content teams struggle with complexity. + +SkyCMS is built to avoid that tradeoff. + +## The practical difference + +SkyCMS treats these as first-class needs, at the same time: + +- Non-technical content creators can maintain pages and blogs using CKEditor with a familiar word-processor-like flow. +- Developers can use Visual Studio Code and the SkyCMS Explorer extension to approach the website as code. + +The result is a shared platform where each role can work in its best environment without blocking the other role. + +```mermaid +flowchart LR + A[Developer designs structure] --> B[Template and layout handoff] + B --> C[Editor updates content in CKEditor] + C --> D[Shared publish lifecycle] + D --> E[Public website output] +``` + +## What this changes in how teams think about CMS + +### 1. CMS becomes a collaboration system, not a role silo + +Instead of separating "developer tools" and "editor tools" into disconnected systems, SkyCMS keeps both in one workflow. Structure, authoring, and publishing stay aligned. + +### 2. Handoff is intentional, not accidental + +Developers can define structure once. Content teams can update copy and media repeatedly, without waiting for technical intervention for routine updates. + +### 3. Creative freedom increases instead of shrinking + +Developers are not locked into rigid guardrails. Editors are not forced into code. Each role gets freedom that fits its work. + +## Scenario 1: Agency handoff model + +A web agency builds a branded marketing site for a client. + +- During implementation, developers use layouts, templates, and VS Code workflows to build the structure and quality baseline. +- At launch, the client content team takes over daily updates in CKEditor. +- The agency remains available for structural improvements, while the client can safely run day-to-day publishing. + +Why this matters: the client is independent for routine work, and the agency is not trapped doing basic content changes. + +## Scenario 2: Product team with shared ownership + +A SaaS product team runs docs and marketing pages in SkyCMS. + +- Front-end developers iterate on template systems and reusable components through code-centric workflows. +- PMM and content teams maintain release notes, landing pages, and blog content in CKEditor. +- Everyone shares one publish lifecycle and one website output model. + +Why this matters: release velocity improves because each team works in parallel, without tool friction. + +## How to position SkyCMS in conversations + +If you are describing SkyCMS to evaluators or stakeholders, these points are usually the clearest: + +- "SkyCMS lets developers see and manage CMS websites as code in VS Code." +- "SkyCMS also lets non-technical editors run daily content with little or no training." +- "SkyCMS reduces handoff friction between build teams and content teams." +- "SkyCMS removes rigid CMS barriers while keeping governance and publishing discipline." + +## Related guides + +- [What Is SkyCMS?](./what-is-skycms.md) +- [VS Code Explorer Quick Tour](./vscode-explorer-quick-tour.md) +- [SkyCMS VS Code Extension](../for-developers/extending/vscode-extension.md) +- [Choosing an Editor](../for-site-builders/choosing-an-editor.md) diff --git a/index.md b/index.md index 03e1679..aae0474 100644 --- a/index.md +++ b/index.md @@ -16,7 +16,7 @@ hide: - toc --- -# SkyCMS Documentation +# Documentation > **Docs version:** These pages reflect **SkyCMS v12.3.0** (April 2026). [See what changed](reference/changelog.md) @@ -24,8 +24,28 @@ hide: SkyCMS is a multi-tenant CMS that gives content editors modern publishing tools and gives developers full technical control — without fighting over the same codebase. +## Why SkyCMS feels different + +SkyCMS supports two equally important ways to work: + +- Content creators can maintain pages and blogs with CKEditor, using a word-processor-like experience that needs little or no training. +- Developers can open the same website in Visual Studio Code with the SkyCMS Explorer extension and work with website structure and content as code. + +This means teams do not have to choose between "easy for editors" and "powerful for developers." SkyCMS is built to support both at the same time. + +```mermaid +flowchart LR + Dev[Developer in VS Code] --> Build[Build structure and workflows] + Build --> Handoff[Handoff to content team] + Editor[Editor in CKEditor] --> Write[Write and update content] + Handoff --> Write + Write --> Publish[Publish with shared lifecycle] +``` + [Install SkyCMS](installation/overview.md){ .md-button .md-button--primary } [What is SkyCMS?](getting-started/what-is-skycms.md){ .md-button } [Docs Map](reference/documentation-map.md){ .md-button } +[Why SkyCMS Is Different](getting-started/why-skycms-is-different.md){ .md-button } [VS Code Explorer Quick Tour](getting-started/vscode-explorer-quick-tour.md){ .md-button } + --- ## How can we help? @@ -81,6 +101,9 @@ flowchart LR - I need to deploy SkyCMS: [Deployment overview](deployment/overview.md) - I need to configure database, storage, CDN, or email: [Configuration overview](configuration/overview.md) - I need to understand architecture before coding: [Developer overview](for-developers/overview.md) +- I want to edit SkyCMS content from Visual Studio Code: [SkyCMS VS Code Extension](for-developers/extending/vscode-extension.md) +- I want a quick buyer-friendly summary of what makes SkyCMS unique: [Why SkyCMS Is Different](getting-started/why-skycms-is-different.md) +- I want a visual walkthrough of the VS Code workflow: [VS Code Explorer Quick Tour](getting-started/vscode-explorer-quick-tour.md) --- @@ -131,7 +154,7 @@ Use these role hubs after you complete the Start Here path. | ------ | ----------- | ------------ | | **Content Editors** | [Editor Overview](for-editors/overview.md) | [Visual Editor](for-editors/visual-editor.md) · [Blogging](for-editors/blogging.md) · [Publishing](for-editors/publishing-modes.md) · [File Manager](for-editors/file-manager.md) | | **Site Builders** | [Builder Overview](for-site-builders/overview.md) | [Layouts](for-site-builders/layouts.md) · [Layout Examples](for-site-builders/layout-examples/overview.md) · [Templates](for-site-builders/templates.md) · [Template Examples](for-site-builders/template-examples/overview.md) · [Article Examples](for-site-builders/article-examples/overview.md) · [Widgets](for-site-builders/widgets/overview.md) | -| **Developers** | [Developer Overview](for-developers/overview.md) | [Architecture](for-developers/architecture.md) · [Architecture Diagram Catalog](for-developers/architecture-diagram-catalog.md) · [API Reference](for-developers/api/overview.md) · [Multi-Tenancy](for-developers/multi-tenancy-deep-dive.md) | +| **Developers** | [Developer Overview](for-developers/overview.md) | [Architecture](for-developers/architecture.md) · [Architecture Diagram Catalog](for-developers/architecture-diagram-catalog.md) · [API Reference](for-developers/api/overview.md) · [Multi-Tenancy](for-developers/multi-tenancy-deep-dive.md) · [VS Code Extension](for-developers/extending/vscode-extension.md) | | **Administrators** | [Configuration](configuration/overview.md) | [Database](configuration/database/overview.md) · [Storage](configuration/storage/overview.md) · [Deployment](deployment/overview.md) | --- diff --git a/mkdocs.yml b/mkdocs.yml index a135ffe..77d5f0d 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -12,6 +12,9 @@ site_dir: '../_skycms_docs_site' theme: name: material logo: assets/images/sky-logo.png + custom_dir: overrides + icon: + repo: fontawesome/brands/github palette: - scheme: light primary: blue @@ -84,6 +87,8 @@ nav: - Home: index.md - Getting Started: - What Is SkyCMS?: getting-started/what-is-skycms.md + - Why SkyCMS Is Different: getting-started/why-skycms-is-different.md + - VS Code Explorer Quick Tour: getting-started/vscode-explorer-quick-tour.md - Key Concepts: getting-started/key-concepts.md - Quick Start: getting-started/quick-start.md - Installation: @@ -112,9 +117,21 @@ nav: - For Editors: - Start Here: for-editors/index.md - Overview: for-editors/overview.md + - Feature Catalog (Concrete Guides): + - Editor Feature Catalog: for-editors/feature-catalog/index.md + - Canonical Content Model: for-editors/feature-catalog/canonical-content-model.md + - Editor Help Route Map: for-editors/feature-catalog/editor-help-route-map.md + - Content Editors: for-editors/feature-catalog/content-editors.md + - Visual Editor: for-editors/feature-catalog/visual-editor.md + - Code Editor: for-editors/feature-catalog/code-editor.md + - Page Builder: for-editors/feature-catalog/page-builder.md + - Image Editor: for-editors/feature-catalog/image-editor.md + - File Management: for-editors/feature-catalog/file-management.md + - Email Management: for-editors/feature-catalog/email-management.md - Creating Articles: for-editors/creating-articles.md - Updating & Deleting: for-editors/updating-and-deleting-articles.md - Article Lifecycle: for-editors/article-lifecycle-reference.md + - Dashboard Overview: for-editors/dashboard-overview.md - Editors: - Visual Editor: for-editors/visual-editor.md - Visual Editor Quick Start: for-editors/visual-editor-quickstart.md @@ -130,11 +147,15 @@ nav: - AI Troubleshooting: for-editors/ai-troubleshooting.md - Image Editing: for-editors/image-editing.md - Publishing: + - Publish a Page: for-editors/publish-a-page.md - Publishing Modes: for-editors/publishing-modes.md - Page Scheduling: for-editors/page-scheduling.md - Publishing Progress: for-editors/publishing-progress.md - Version History: for-editors/version-history.md + - Compare Page Versions: for-editors/compare-page-versions.md + - Trash and Recovery: for-editors/trash-and-recovery.md - URL Management: for-editors/url-management.md + - Layouts and Templates: for-editors/layouts-and-templates.md - Blogging: for-editors/blogging.md - File Manager: for-editors/file-manager.md - File Manager Quick Start: for-editors/file-manager-quickstart.md @@ -145,7 +166,10 @@ nav: - Administration: - Authentication & SSO: for-editors/authentication.md - User Management: for-editors/user-management.md + - Role Management: for-editors/role-management.md + - Article Permissions: for-editors/article-permissions.md - Site Settings: for-editors/site-settings.md + - Email Admin: for-editors/email-admin.md - Contact Management: for-editors/contact-management.md - For Site Builders: - Start Here: for-site-builders/index.md @@ -233,6 +257,7 @@ nav: - Extending: - Custom Widgets: for-developers/extending/custom-widgets.md - FlexDb Identity: for-developers/extending/flex-db.md + - VS Code Extension: for-developers/extending/vscode-extension.md - API Reference: - Overview: for-developers/api/overview.md - Architecture: for-developers/api/architecture.md @@ -343,9 +368,12 @@ nav: # Site configuration site_author: CWALabs copyright: Copyright © 2026 Moonrise Software +repo_url: https://github.com/CWALabs/SkyCMS +repo_name: CWALabs/SkyCMS # Extra configuration extra: + product_url: https://sky-cms.com social: - icon: fontawesome/brands/github link: https://github.com/CWALabs/SkyCMS diff --git a/notes/screenshot-guide.md b/notes/screenshot-guide.md new file mode 100644 index 0000000..bdee3ea --- /dev/null +++ b/notes/screenshot-guide.md @@ -0,0 +1,91 @@ +# Screenshot Guide for SkyCMS Docs + +This guide covers how to capture, name, and embed screenshots in SkyCMS documentation pages. + +--- + +## Where screenshots live + +All screenshots for the `for-editors/` section go in: + +``` +d:\source\SkyCMS.Docs\for-editors\img\ +``` + +Create the `img/` folder if it does not exist — MkDocs picks it up automatically. + +For screenshots in other sections, create a parallel `img/` folder next to that section's `.md` files: + +``` +for-editors/img/ +for-site-builders/img/ +for-developers/img/ +``` + +--- + +## Recommended dimensions + +| Screenshot type | Width × Height | Notes | +|---|---|---| +| Full page / full editor view | **1600 × 900 px** | 16:9; captures toolbar + canvas + save button without cutting anything | +| Toolbar strip | **1600 × 280 px** | Tight horizontal crop; no wasted space above or below | +| Card grid / selection screen | **1200 × 600 px** | Fits 2-column layouts comfortably | +| Panel or dialog | **800 × 600 px** | Modals, sidebars, confirmation dialogs | + +--- + +## DPI + +Use **144 DPI** (2× / HiDPI). + +At 144 DPI, a 1600 px wide image renders at a crisp 800 px on a retina display. If your tool does not let you set DPI, just capture at the pixel dimensions above — the browser handles scaling. + +--- + +## Format + +**PNG** for all UI screenshots. PNG is lossless, so text, icons, and button edges stay sharp. Avoid JPEG for UI captures. + +--- + +## Before you take the screenshot + +1. Set your browser zoom to **100%**. At 125% or 150%, rendered pixels are larger and the captured file will be smaller than intended. +2. On a high-DPI (HiDPI/Retina) monitor, Windows Snipping Tool captures at the monitor's native resolution. 800 px of screen content at 2× = 1600 px in the saved file — that is exactly what you want. +3. Close any personal information (email, username, profile photos) that should not appear in docs. +4. Use realistic but neutral content in editable fields — for example, "Sample page title" rather than a real client's page name. + +--- + +## Naming convention + +Use lowercase with hyphens. Match the filename in the `` placeholder comment in the `.md` file. + +Examples: +- `visual-editor-overview.png` +- `visual-editor-toolbar-annotated.png` +- `editor-selection-overview.png` +- `dashboard-overview-columns.png` + +--- + +## Embedding in a doc + +```markdown +![Alt text describing the image](img/filename.png) +``` + +Replace the `` placeholder comment with the live image tag once the file is saved. + +--- + +## Placeholder format (for new pages) + +When writing a page before screenshots are ready, insert: + +```markdown + +``` + +This keeps the intent visible in the source without breaking the rendered page. diff --git a/overrides/partials/header.html b/overrides/partials/header.html new file mode 100644 index 0000000..b683862 --- /dev/null +++ b/overrides/partials/header.html @@ -0,0 +1,74 @@ +{#- + This file extends the Material header so we can add custom external links. +-#} +{% set class = "md-header" %} +{% if "navigation.tabs.sticky" in features %} + {% set class = class ~ " md-header--shadow md-header--lifted" %} +{% elif "navigation.tabs" not in features %} + {% set class = class ~ " md-header--shadow" %} +{% endif %} +
+ + {% if "navigation.tabs.sticky" in features %} + {% if "navigation.tabs" in features %} + {% include "partials/tabs.html" %} + {% endif %} + {% endif %} +
diff --git a/reference/features/01-content-editing-and-authoring.md b/reference/features/01-content-editing-and-authoring.md index 635cadd..0815d81 100644 --- a/reference/features/01-content-editing-and-authoring.md +++ b/reference/features/01-content-editing-and-authoring.md @@ -18,6 +18,16 @@ last_reviewed: 2026-04-28 SkyCMS provides four distinct editing experiences, allowing content creators to choose the tool that matches their skill level and task. All editors share a common save/publish pipeline, version history, and real-time collaboration layer. +## Editing philosophy + +SkyCMS treats content editing as a shared workflow between different skill profiles, not a single-tool experience. + +- Non-technical content creators can maintain day-to-day pages and blog content through CKEditor with minimal training. +- Site builders and developers can define and evolve structure using templates, layout systems, and code-oriented workflows. +- Teams can use the [SkyCMS VS Code Extension](../../for-developers/extending/vscode-extension.md) when they want to inspect and edit CMS-managed assets in an IDE. + +The goal is straightforward: smooth handoff to content teams without imposing rigid barriers on developer creativity. + **Audiences:** Editors, Authors, Reviewers, Administrators **Jump to:** @@ -98,6 +108,8 @@ Templates control which toolbar each editable region uses: > **Documentation:** > +> - [Content Editors (Concrete Guide)](../../for-editors/feature-catalog/content-editors.md) +> - [Visual Editor (Concrete Guide)](../../for-editors/feature-catalog/visual-editor.md) > - [Visual Editor](../../for-editors/visual-editor.md) > - [Visual Editor Quickstart](../../for-editors/visual-editor-quickstart.md) > - [Visual Editor Toolbar Reference](../../for-editors/visual-editor-toolbar-reference.md) @@ -176,6 +188,7 @@ Pre-built component blocks organized by category: > **Documentation:** > +> - [Page Builder (Concrete Guide)](../../for-editors/feature-catalog/page-builder.md) > - [Page Builder](../../for-editors/page-builder.md) > - [Layers Panel](../../for-editors/layers.md) > - [Page Builder Quickstart](../../for-editors/page-builder-quickstart.md) @@ -186,6 +199,8 @@ Pre-built component blocks organized by category: A professional code editing experience built on **Monaco Editor** (the same engine as VS Code), for editors who prefer direct HTML/CSS/JavaScript control. +For developer-heavy workflows that require IDE context, use the [SkyCMS VS Code Extension](../../for-developers/extending/vscode-extension.md) to view and work with SkyCMS resources from Visual Studio Code. + ### Editor Capabilities - Full syntax highlighting for HTML, CSS, JavaScript, JSON, XML @@ -241,7 +256,9 @@ Full VS Code-compatible shortcut set including: > **Documentation:** > +> - [Code Editor (Concrete Guide)](../../for-editors/feature-catalog/code-editor.md) > - [Code Editor](../../for-editors/code-editor.md) +> - [SkyCMS VS Code Extension](../../for-developers/extending/vscode-extension.md) --- @@ -342,6 +359,7 @@ A comprehensive in-browser image editing suite built on **Filerobot Image Editor > **Documentation:** > +> - [Image Editor (Concrete Guide)](../../for-editors/feature-catalog/image-editor.md) > - [Image Editing](../../for-editors/image-editing.md) --- diff --git a/reference/features/05-file-and-media-management.md b/reference/features/05-file-and-media-management.md index d0d35b9..db1fb5a 100644 --- a/reference/features/05-file-and-media-management.md +++ b/reference/features/05-file-and-media-management.md @@ -32,7 +32,7 @@ SkyCMS provides a browser-based file manager built on **elFinder 2.1** (via the ## 1. File Manager -> **Documentation:** [File Manager](../../for-editors/file-manager.md) · [File Manager Quickstart](../../for-editors/file-manager-quickstart.md) · [File Manager Toolbar Reference](../../for-editors/file-manager-toolbar-reference.md) +> **Documentation:** [File Management (Concrete Guide)](../../for-editors/feature-catalog/file-management.md) · [File Manager](../../for-editors/file-manager.md) · [File Manager Quickstart](../../for-editors/file-manager-quickstart.md) · [File Manager Toolbar Reference](../../for-editors/file-manager-toolbar-reference.md) · [SkyCMS VS Code Extension](../../for-developers/extending/vscode-extension.md) A full-featured browser-based file management interface for all site assets. diff --git a/reference/features/06-administration-and-security.md b/reference/features/06-administration-and-security.md index baabaed..ef531eb 100644 --- a/reference/features/06-administration-and-security.md +++ b/reference/features/06-administration-and-security.md @@ -136,7 +136,7 @@ SkyCMS ships with six default roles: ## 4. Email Administration -> **Documentation:** [Email Overview](../../configuration/email/overview.md) · [Azure Communication Services](../../configuration/email/azure-communication-services.md) · [SendGrid](../../configuration/email/sendgrid.md) · [SMTP](../../configuration/email/smtp.md) · [NoOp Provider](../../configuration/email/none.md) · [Email Configuration Reference](../../configuration/email/configuration-reference.md) · [Email Environment Variables](../../configuration/email/environment-variables.md) +> **Documentation:** [Email Management (Concrete Guide)](../../for-editors/feature-catalog/email-management.md) · [Email Overview](../../configuration/email/overview.md) · [Azure Communication Services](../../configuration/email/azure-communication-services.md) · [SendGrid](../../configuration/email/sendgrid.md) · [SMTP](../../configuration/email/smtp.md) · [NoOp Provider](../../configuration/email/none.md) · [Email Configuration Reference](../../configuration/email/configuration-reference.md) · [Email Environment Variables](../../configuration/email/environment-variables.md) ### Email Provider Configuration diff --git a/reference/features/index.md b/reference/features/index.md index 6d0239d..41fd41e 100644 --- a/reference/features/index.md +++ b/reference/features/index.md @@ -21,6 +21,15 @@ last_reviewed: 2026-04-28 A comprehensive inventory of every feature built into SkyCMS, organized by functional area. This catalog is intended for developers, editors, site builders, administrators, and anyone evaluating SkyCMS as a content management platform. +## Product approach behind these features + +SkyCMS is intentionally built around two parallel experiences: + +- a visual, low-friction editing path for content creators, +- a code-first path for developers who want full creative and technical control. + +The feature set below reflects that philosophy. You can hand off daily content maintenance to non-technical editors through CKEditor, while developers continue to work in familiar tooling, including Visual Studio Code. + --- ## Sections @@ -44,6 +53,8 @@ A comprehensive inventory of every feature built into SkyCMS, organized by funct ### For Content Creators & Editors - Four editing modes: Visual Editor (WYSIWYG), drag-and-drop Page Builder, Code Editor, and AI-assisted editing/help +- CKEditor-powered writing experience designed for easy handoff from developers to non-technical content teams +- VS Code extension support for editing SkyCMS fields and files from inside Visual Studio Code - In-browser image editing (crop, resize, filters, annotate, watermark) - Full version history with side-by-side comparison and restore - Scheduled publishing with timezone support @@ -71,6 +82,8 @@ A comprehensive inventory of every feature built into SkyCMS, organized by funct ### For Developers - Multi-tenant architecture with automatic tenant resolution +- [SkyCMS VS Code Extension](../../for-developers/extending/vscode-extension.md) for editor-integrated content and file workflows +- CMS-as-code workflow support so developers can approach website implementation in their own IDE-centric style - Four database providers (Cosmos DB, SQL Server, MySQL, SQLite) — auto-detected - Three cloud storage providers (Azure Blob, S3, Cloudflare R2) — auto-detected - CQRS + Mediator vertical-slice architecture diff --git a/requirements.txt b/requirements.txt index 85b2f98..1723b49 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -mkdocs>=1.6.0 -mkdocs-material>=9.5.0 -mkdocs-material-extensions>=1.3.0 +mkdocs>=1.6.0,<2.0 +mkdocs-material>=9.5.0,<10.0 +mkdocs-material-extensions>=1.3.0,<2.0 Pygments>=2.17.0