Creating Pages
Creating Pages
Section titled “Creating Pages”This guide explains the complete frontmatter requirements for creating pages in this Team 8531 documentation site.
Project Architecture
Section titled “Project Architecture”This project uses Astro with Starlight framework for documentation, featuring:
- Role-based access control
- Content lifecycle management
- Built-in search functionality
- Sidebar navigation control
Required Frontmatter Fields
Section titled “Required Frontmatter Fields”Every page must include these three required fields:
---title: "Page Title" # Displayed in browser tab and main headingdescription: "Brief description" # SEO and preview textroles: ["Guest"] # Array of allowed roles---1. Title
Section titled “1. Title”- Required: The page title
- Displayed in:
- Browser tab
- Main page heading (H1)
- Sidebar navigation (unless overridden)
- Should be concise but descriptive
2. Description
Section titled “2. Description”- Required: Brief summary of the page content
- Used for:
- SEO meta description
- Search result previews
- Social media sharing
- Keep under 160 characters for optimal SEO
3. Roles
Section titled “3. Roles”- Required: Array determining who can access the content
- Accepts any combination of:
"Guest": Publicly accessible content"Member": Requires login"CoreTeam": Leadership team only"Admin": Administrators only
Example:
roles: ["Member", "CoreTeam", "Admin"] # Multiple rolesroles: ["Guest"] # Public contentroles: ["Admin"] # Admin-only contentOptional Frontmatter Fields
Section titled “Optional Frontmatter Fields”Content Management Fields
Section titled “Content Management Fields”Status
Section titled “Status”Controls the content lifecycle state:
status: "published" # Default# Options: "published", "draft", "review", "archived"- published: Visible in navigation and search
- draft: Hidden from navigation, accessible via direct URL
- review: Under review for publication
- archived: No longer maintained content
Array of strings for categorization and search:
tags: ["documentation", "guide", "tutorial", "admin"]Last Updated
Section titled “Last Updated”Timestamp for tracking content freshness:
lastUpdated: 2024-12-11T00:00:00.000Z # ISO 8601 formatSearch Control
Section titled “Search Control”Control page inclusion in search results:
pagefind: false # Exclude from search (default: true)Sidebar Navigation
Section titled “Sidebar Navigation”Customize how the page appears in the sidebar:
sidebar: label: "Custom Display Name" # Override title in navigation order: 10 # Sort order (lower = higher priority) badge: # Optional badge text: "New" variant: "tip" # Options: "note", "tip", "caution", "danger"Archived Content Metadata
Section titled “Archived Content Metadata”When using status: "archived", you can add:
status: "archived"archiveDate: "2024-01-15" # When it was archivedarchivedReason: "Replaced by new system" # Why it was archivedFile Types and Extensions
Section titled “File Types and Extensions”Markdown (.md)
Section titled “Markdown (.md)”- Use for simple text content
- Supports standard Markdown features
- Cannot use interactive components
MDX (.mdx)
Section titled “MDX (.mdx)”- Use for interactive content with React components
- Supports all Markdown features plus:
- Google Drive embeddings
- Video players
- Interactive diagrams
- Custom React components
Directory Structure
Section titled “Directory Structure”Content location determines default access level:
src/content/docs/├── public/ # Guest content│ └── *.md, *.mdx├── protected/│ ├── member/ # Member content│ │ └── *.md, *.mdx│ ├── coreteam/ # CoreTeam content│ │ └── *.md, *.mdx│ └── admin/ # Admin content│ └── *.md, *.mdxComplete Examples
Section titled “Complete Examples”Minimal Public Page
Section titled “Minimal Public Page”---title: "About Us"description: "Learn about our team and mission"roles: ["Guest", "Member", "CoreTeam", "Admin"]---Member-Protected Content
Section titled “Member-Protected Content”---title: "Team Resources"description: "Internal resources and documentation"roles: ["Member", "CoreTeam", "Admin"]status: "published"tags: ["resources", "internal"]sidebar: label: "📚 Resources" order: 2---Admin Guide with All Features
Section titled “Admin Guide with All Features”---title: "Advanced Configuration"description: "Complete guide to advanced system configuration"roles: ["Admin"]status: "published"tags: ["configuration", "advanced", "admin", "system"]sidebar: label: "⚙️ Advanced Config" order: 10 badge: text: "Advanced" variant: "caution"lastUpdated: 2024-12-11T00:00:00.000Zpagefind: true---Draft Content
Section titled “Draft Content”---title: "Upcoming Features"description: "Documentation for features in development"roles: ["Admin"]status: "draft"tags: ["features", "upcoming", "draft"]sidebar: label: "🚧 Upcoming" order: 20---Schema Validation
Section titled “Schema Validation”The frontmatter is validated against the schema defined in src/content/config.ts. Common validation errors:
- Missing required fields (
title,description,roles) - Invalid role names
- Invalid status values
- Incorrect date formats
Best Practices
Section titled “Best Practices”- Always include required fields:
title,description,roles - Use descriptive tags for better categorization and search
- Set appropriate sidebar order for logical navigation structure
- Update
lastUpdatedwhen making significant changes - Use
status: "draft"for work-in-progress pages - Consider
pagefind: falsefor sensitive or temporary content - Choose the right file extension:
.mdfor simple content,.mdxfor interactive content - Place files in the correct directory based on intended access level
Common Patterns
Section titled “Common Patterns”Creating a New Guide
Section titled “Creating a New Guide”---title: "New Feature Guide"description: "How to use the new feature"roles: ["Member", "CoreTeam", "Admin"]tags: ["guide", "feature", "tutorial"]sidebar: label: "📖 Feature Guide" order: 5status: "draft" # Start with draft, update to published when ready---Policy Documentation
Section titled “Policy Documentation”---title: "Policy Name"description: "Official policy documentation"roles: ["CoreTeam", "Admin"]tags: ["policy", "official", "internal"]status: "published"pagefind: true # Make discoverable in search---Archive Old Content
Section titled “Archive Old Content”---title: "Old System Documentation"description: "Legacy system documentation"roles: ["Admin"]status: "archived"archiveDate: "2024-01-15"archivedReason: "System replaced by new platform"tags: ["legacy", "archived"]---Remember: The frontmatter controls not just metadata but also who can see your content and how it appears in the site navigation!