Content Collections and Schemas

**Referenced Files in This Document** - [config.yml](file://src/admin/config.yml) - [config.ts](file://tina/config.ts) - [news.11tydata.json](file://src/content/news/news.11tydata.json) - [cases.11tydata.json](file://src/content/cases/cases.11tydata.json) - [team.11tydata.json](file://src/content/team/team.11tydata.json) - [knowledge.11tydata.js](file://src/content/knowledge/knowledge.11tydata.js) - [newsletters.11tydata.json](file://src/content/newsletters/newsletters.11tydata.json) - [2025-10-17-political-powerhouse.md](file://src/content/news/2025-10-17-political-powerhouse.md) - [adelaide-city-fc.md](file://src/content/cases/adelaide-city-fc.md) - [01-matt-neagle.md](file://src/content/team/01-matt-neagle.md) - [getting-started.md](file://src/content/knowledge/getting-started.md) - [curabitur-ullamcorper-ultricies-nisi.md](file://src/content/newsletters/curabitur-ullamcorper-ultricies-nisi.md) - [.eleventy.js](file://.eleventy.js) - [news-article-card.njk](file://src/_includes/macros/news-article-card.njk) - [case-study-card.njk](file://src/_includes/macros/case-study-card.njk) - [team-flip-card.njk](file://src/_includes/macros/team-flip-card.njk)

Table of Contents

  1. Introduction
  2. Project Structure
  3. Core Components
  4. Architecture Overview
  5. Detailed Component Analysis
  6. Dependency Analysis
  7. Performance Considerations
  8. Troubleshooting Guide
  9. Conclusion
  10. Appendices

Introduction

This document describes the content collections and schemas used by the Sveltia CMS for managing structured content in the Sveltia-based static site. It covers five primary content collections: News & Insights, Case Studies, Team Members, Knowledge Base, and Newsletters. For each collection, it explains field definitions, data types, validation rules, and UI components. It also clarifies the differences between markdown and JSON formats, the rich text editing experience, and how content integrates with static site generation. Finally, it outlines content organization patterns, naming conventions, metadata management, and the draft and featured content system.

Project Structure

The CMS uses two complementary authoring systems:

  • NetlifyCMS configuration for folder-based markdown content and JSON data files
  • Tina CMS configuration for typed schemas and rich text editing

Static site generation is powered by Eleventy, which reads markdown and JSON content, applies transforms, and builds HTML output.

graph TB
subgraph "Authoring"
NCMS["Netlify CMS<br/>src/admin/config.yml"]
TCMS["Tina CMS<br/>tina/config.ts"]
end
subgraph "Content"
MDNews["Markdown: src/content/news/*.md"]
MDCases["Markdown: src/content/cases/*.md"]
MDTeam["Markdown: src/content/team/*.md"]
MDKnowledge["Markdown: src/content/knowledge/*.md"]
MDNewsletters["Markdown: src/content/newsletters/*.md"]
JSONData["_data/*.json"]
end
subgraph "Build"
ELEVENTY[".eleventy.js"]
LAYOUTS["_includes/layouts/*.njk"]
MACROS["_includes/macros/*.njk"]
end
NCMS --> MDNews
NCMS --> MDCases
NCMS --> MDTeam
NCMS --> MDKnowledge
NCMS --> MDNewsletters
NCMS --> JSONData
TCMS --> MDNews
TCMS --> MDCases
TCMS --> MDTeam
TCMS --> MDKnowledge
TCMS --> MDNewsletters
TCMS --> JSONData
MDNews --> ELEVENTY
MDCases --> ELEVENTY
MDTeam --> ELEVENTY
MDKnowledge --> ELEVENTY
MDNewsletters --> ELEVENTY
JSONData --> ELEVENTY
ELEVENTY --> LAYOUTS
ELEVENTY --> MACROS

Diagram sources

  • [config.yml:11-105](file://src/admin/config.yml#L11-L105)
  • [config.ts:22-122](file://tina/config.ts#L22-L122)
  • [.eleventy.js:166-210](file://.eleventy.js#L166-L210)

Section sources

  • [config.yml:11-105](file://src/admin/config.yml#L11-L105)
  • [config.ts:22-122](file://tina/config.ts#L22-L122)
  • [.eleventy.js:166-210](file://.eleventy.js#L166-L210)

Core Components

This section summarizes the content collections and their schemas, highlighting field definitions, data types, validation rules, and UI components.

  • News & Insights

    • Format: markdown with front matter
    • Fields: title, date, author, excerpt, image, image_alt, pdf_url, pdf_label, featured, draft, body
    • Validation: title and date are required; others optional
    • UI: NetlifyCMS uses string/datetime/image/text widgets; Tina uses rich-text for body
    • Static generation: collection sorted by date descending; permalink disabled
  • Case Studies

    • Format: markdown with front matter
    • Fields: client, category (select), title, image, image_alt, quote, quote_author, order, featured, draft, body
    • Validation: client and title are required; category constrained to predefined options
    • UI: NetlifyCMS uses select/string/image/text widgets; Tina uses rich-text for body
    • Static generation: collection unsorted; permalink disabled
  • Team Members

    • Format: markdown with front matter
    • Fields: anchor, name, role, order, image_index, image_profile, image_alt_index, image_alt_profile, bio_short, featured, draft, body
    • Validation: anchor, name are required; others optional
    • UI: NetlifyCMS uses string/number/image/text widgets; Tina uses rich-text for body
    • Static generation: collection sorted by order ascending; permalink disabled
  • Knowledge Base

    • Format: markdown with front matter
    • Fields: title, date, author, excerpt, tags_list, body
    • Validation: title is required; others optional
    • UI: NetlifyCMS uses markdown widget; Tina uses rich-text for body
    • Static generation: custom computed permalink under /alliance/members/knowledge//; tagged as knowledge
  • Newsletters

    • Format: markdown with front matter
    • Fields: title, date, excerpt, pdf_link, archive_link, featured, draft
    • Validation: title and date are required; others optional
    • UI: NetlifyCMS uses string/datetime/text widgets
    • Static generation: permalink disabled; tagged as newsletters

Section sources

  • [config.yml:15-31](file://src/admin/config.yml#L15-L31)
  • [config.yml:33-58](file://src/admin/config.yml#L33-L58)
  • [config.yml:60-77](file://src/admin/config.yml#L60-L77)
  • [config.yml:79-90](file://src/admin/config.yml#L79-L90)
  • [config.yml:92-104](file://src/admin/config.yml#L92-L104)
  • [config.ts:26-42](file://tina/config.ts#L26-L42)
  • [config.ts:45-72](file://tina/config.ts#L45-L72)
  • [config.ts:75-92](file://tina/config.ts#L75-L92)
  • [config.ts:95-106](file://tina/config.ts#L95-L106)
  • [config.ts:109-122](file://tina/config.ts#L109-L122)
  • [news.11tydata.json:1-2](file://src/content/news/news.11tydata.json#L1-L2)
  • [cases.11tydata.json:1-2](file://src/content/cases/cases.11tydata.json#L1-L2)
  • [team.11tydata.json:1-2](file://src/content/team/team.11tydata.json#L1-L2)
  • [knowledge.11tydata.js:1-8](file://src/content/knowledge/knowledge.11tydata.js#L1-L8)
  • [newsletters.11tydata.json:1-2](file://src/content/newsletters/newsletters.11tydata.json#L1-L2)

Architecture Overview

The CMS architecture supports dual editing experiences while maintaining a single content model and build pipeline.

sequenceDiagram
participant Author as "Author"
participant NCMS as "NetlifyCMS UI"
participant TCMS as "TinaCMS UI"
participant FS as "Repository Files"
participant E as "Eleventy Build"
Author->>NCMS : Edit via NetlifyCMS
NCMS->>FS : Save markdown/front matter or JSON
Author->>TCMS : Edit via TinaCMS
TCMS->>FS : Save markdown/front matter or JSON
FS-->>E : Watched content changes
E->>E : Collections, filters, transforms
E-->>Author : Built HTML output

Diagram sources

  • [config.yml:1-105](file://src/admin/config.yml#L1-L105)
  • [config.ts:1-331](file://tina/config.ts#L1-L331)
  • [.eleventy.js:1-283](file://.eleventy.js#L1-L283)

Detailed Component Analysis

News & Insights Collection

  • Field definitions and types
    • title: string, required
    • date: datetime, required
    • author: string, optional
    • excerpt: text, optional
    • image: image, optional
    • image_alt: string, optional
    • pdf_url: string, optional
    • pdf_label: string, optional
    • featured: boolean, optional
    • draft: boolean, default false, optional
    • body: markdown/rich-text, required
  • Validation rules
    • title and date are required; body is required in rich-text schema
  • UI components
    • NetlifyCMS: string, datetime, image, text, boolean, markdown widgets
    • TinaCMS: rich-text for body; textarea for excerpt
  • Static site generation
    • Collection: sorted by date descending
    • Permalink: disabled
    • Layout: default markdown rendering via Eleventy
  • Example content creation workflow
    • Create a new markdown file in src/content/news with required front matter
    • Add body content; set featured or draft flags as needed
    • Commit to trigger Eleventy rebuild; verify on /news route
  • Rich text editor configuration
    • Tina rich-text enables structured editing; NetlifyCMS markdown supports standard markdown
  • Content organization and metadata
    • Filename pattern: date-based slug recommended for chronological sorting
    • Use excerpt for summaries; image_alt for accessibility
  • Draft and featured management
    • Use draft: false to publish; draft: true to hide
    • Use featured: true to promote in listings
flowchart TD
Start(["Create News Article"]) --> FM["Add Required Front Matter<br/>title, date, body"]
FM --> Optional["Add Optional Fields<br/>author, excerpt, image, pdf_*"]
Optional --> Flag["Set Flags<br/>featured, draft"]
Flag --> Save["Save Markdown File"]
Save --> Build["Commit Changes"]
Build --> Publish{"Published?"}
Publish --> |Yes| Index["Appears in News Collection"]
Publish --> |No| Draft["Remains Draft"]

Diagram sources

  • [config.yml:20-31](file://src/admin/config.yml#L20-L31)
  • [config.ts:30-41](file://tina/config.ts#L30-L41)
  • [2025-10-17-political-powerhouse.md:1-18](file://src/content/news/2025-10-17-political-powerhouse.md#L1-L18)

Section sources

  • [config.yml:15-31](file://src/admin/config.yml#L15-L31)
  • [config.ts:26-42](file://tina/config.ts#L26-L42)
  • [news.11tydata.json:1-2](file://src/content/news/news.11tydata.json#L1-L2)
  • [.eleventy.js:170-174](file://.eleventy.js#L170-L174)
  • [2025-10-17-political-powerhouse.md:1-18](file://src/content/news/2025-10-17-political-powerhouse.md#L1-L18)

Case Studies Collection

  • Field definitions and types
    • client: string, required
    • category: select, optional; values include Public Affairs & Government Engagement, Strategic Communications, Stakeholder Engagement, New Market Entry, Media Issues Management
    • title: string, optional
    • image: image, optional
    • image_alt: string, optional
    • quote: text, optional
    • quote_author: string, optional
    • order: number, optional
    • featured: boolean, optional
    • draft: boolean, default false, optional
    • body: markdown/rich-text, required
  • Validation rules
    • client is required; category constrained to predefined options
  • UI components
    • NetlifyCMS: select, string, image, text, number, boolean, markdown widgets
    • Tina: select for category; rich-text for body
  • Static site generation
    • Collection: unsorted; permalink disabled
    • Layout: default markdown rendering via Eleventy
  • Example content creation workflow
    • Create a new markdown file in src/content/cases with required front matter
    • Select category; add quote and quote_author if applicable
    • Commit to trigger Eleventy rebuild; verify on /cases route
  • Rich text editor configuration
    • Tina rich-text for body; NetlifyCMS markdown for body
  • Content organization and metadata
    • Use order to influence display priority where applicable
    • Use category to filter and group content
  • Draft and featured management
    • Use draft: false to publish; draft: true to hide
    • Use featured: true to promote in listings
flowchart TD
Start(["Create Case Study"]) --> FM["Add Required Front Matter<br/>client, body"]
FM --> Category["Select Category"]
Category --> Optional["Add Optional Fields<br/>title, image, quote, order"]
Optional --> Flag["Set Flags<br/>featured, draft"]
Flag --> Save["Save Markdown File"]
Save --> Build["Commit Changes"]
Build --> Publish{"Published?"}
Publish --> |Yes| Index["Appears in Cases Collection"]
Publish --> |No| Draft["Remains Draft"]

Diagram sources

  • [config.yml:38-58](file://src/admin/config.yml#L38-L58)
  • [config.ts:45-72](file://tina/config.ts#L45-L72)
  • [adelaide-city-fc.md:1-14](file://src/content/cases/adelaide-city-fc.md#L1-L14)

Section sources

  • [config.yml:33-58](file://src/admin/config.yml#L33-L58)
  • [config.ts:45-72](file://tina/config.ts#L45-L72)
  • [cases.11tydata.json:1-2](file://src/content/cases/cases.11tydata.json#L1-L2)
  • [adelaide-city-fc.md:1-14](file://src/content/cases/adelaide-city-fc.md#L1-L14)

Team Members Collection

  • Field definitions and types
    • anchor: string, required
    • name: string, required
    • role: string, optional
    • order: number, optional
    • image_index: image, optional
    • image_profile: image, optional
    • image_alt_index: string, optional
    • image_alt_profile: string, optional
    • bio_short: text, optional
    • featured: boolean, optional
    • draft: boolean, default false, optional
    • body: markdown/rich-text, required
  • Validation rules
    • anchor and name are required; others optional
  • UI components
    • NetlifyCMS: string, number, image, text, boolean, markdown widgets
    • Tina: rich-text for body; textarea for bio_short
  • Static site generation
    • Collection: sorted by order ascending; permalink disabled
    • Layout: default markdown rendering via Eleventy
  • Example content creation workflow
    • Create a new markdown file in src/content/team with required front matter
    • Set anchor for deep linking; add profile images and bios
    • Commit to trigger Eleventy rebuild; verify on /team route
  • Rich text editor configuration
    • Tina rich-text for body; NetlifyCMS markdown for body
  • Content organization and metadata
    • Use order to control display sequence
    • Use anchor to enable deep linking to profiles
  • Draft and featured management
    • Use draft: false to publish; draft: true to hide
    • Use featured: true to promote in listings
flowchart TD
Start(["Create Team Member"]) --> FM["Add Required Front Matter<br/>anchor, name, body"]
FM --> Optional["Add Optional Fields<br/>role, images, bio_short, order"]
Optional --> Flag["Set Flags<br/>featured, draft"]
Flag --> Save["Save Markdown File"]
Save --> Build["Commit Changes"]
Build --> Publish{"Published?"}
Publish --> |Yes| Index["Appears in Team Collection"]
Publish --> |No| Draft["Remains Draft"]

Diagram sources

  • [config.yml:64-77](file://src/admin/config.yml#L64-L77)
  • [config.ts:75-92](file://tina/config.ts#L75-L92)
  • [01-matt-neagle.md:1-21](file://src/content/team/01-matt-neagle.md#L1-L21)

Section sources

  • [config.yml:60-77](file://src/admin/config.yml#L60-L77)
  • [config.ts:75-92](file://tina/config.ts#L75-L92)
  • [team.11tydata.json:1-2](file://src/content/team/team.11tydata.json#L1-L2)
  • [.eleventy.js:187-191](file://.eleventy.js#L187-L191)
  • [01-matt-neagle.md:1-21](file://src/content/team/01-matt-neagle.md#L1-L21)

Knowledge Base Collection

  • Field definitions and types
    • title: string, required
    • date: datetime, optional
    • author: string, optional
    • excerpt: text, optional
    • tags_list: list, optional
    • body: markdown/rich-text, required
  • Validation rules
    • title is required; others optional
  • UI components
    • NetlifyCMS: markdown widget
    • Tina: rich-text for body; list for tags_list
  • Static site generation
    • Collection: sorted by date descending
    • Permalink: computed to /alliance/members/knowledge//
    • Tags: knowledge applied for filtering
  • Example content creation workflow
    • Create a new markdown file in src/content/knowledge with required front matter
    • Add tags_list for categorization; write body content
    • Commit to trigger Eleventy rebuild; verify at computed permalink
  • Rich text editor configuration
    • Tina rich-text for body; NetlifyCMS markdown for body
  • Content organization and metadata
    • Use tags_list for taxonomy; excerpt for index summaries
  • Draft and featured management
    • No explicit draft/featured flags in schema; manage visibility via commit strategy
flowchart TD
Start(["Create Knowledge Note"]) --> FM["Add Required Front Matter<br/>title, body"]
FM --> Optional["Add Optional Fields<br/>date, author, excerpt, tags_list"]
Optional --> Save["Save Markdown File"]
Save --> Build["Commit Changes"]
Build --> Permalink["Computed Permalink<br/>/alliance/members/knowledge/<slug>/"]
Permalink --> Publish{"Published?"}
Publish --> |Yes| Index["Appears in Knowledge Collection"]
Publish --> |No| Draft["Remains Draft"]

Diagram sources

  • [config.yml:83-90](file://src/admin/config.yml#L83-L90)
  • [config.ts:95-106](file://tina/config.ts#L95-L106)
  • [knowledge.11tydata.js:1-8](file://src/content/knowledge/knowledge.11tydata.js#L1-L8)
  • [getting-started.md:1-52](file://src/content/knowledge/getting-started.md#L1-L52)

Section sources

  • [config.yml:79-90](file://src/admin/config.yml#L79-L90)
  • [config.ts:95-106](file://tina/config.ts#L95-L106)
  • [knowledge.11tydata.js:1-8](file://src/content/knowledge/knowledge.11tydata.js#L1-L8)
  • [getting-started.md:1-52](file://src/content/knowledge/getting-started.md#L1-L52)

Newsletters Collection

  • Field definitions and types
    • title: string, required
    • date: datetime, required
    • excerpt: text, optional
    • pdf_link: string, optional
    • archive_link: string, optional
    • featured: boolean, optional
    • draft: boolean, default false, optional
  • Validation rules
    • title and date are required
  • UI components
    • NetlifyCMS: string, datetime, text, boolean widgets
  • Static site generation
    • Collection: sorted by date descending
    • Permalink: disabled
    • Tags: newsletters applied for filtering
  • Example content creation workflow
    • Create a new markdown file in src/content/newsletters with required front matter
    • Add excerpt and links; set flags as needed
    • Commit to trigger Eleventy rebuild; verify on newsletters route
  • Rich text editor configuration
    • NetlifyCMS markdown widget; no rich-text body in schema
  • Content organization and metadata
    • Use excerpt for summaries; pdf_link/archive_link for distribution
  • Draft and featured management
    • Use draft: false to publish; draft: true to hide
    • Use featured: true to promote in listings
flowchart TD
Start(["Create Newsletter"]) --> FM["Add Required Front Matter<br/>title, date"]
FM --> Optional["Add Optional Fields<br/>excerpt, pdf_link, archive_link"]
Optional --> Flag["Set Flags<br/>featured, draft"]
Flag --> Save["Save Markdown File"]
Save --> Build["Commit Changes"]
Build --> Publish{"Published?"}
Publish --> |Yes| Index["Appears in Newsletters Collection"]
Publish --> |No| Draft["Remains Draft"]

Diagram sources

  • [config.yml:96-104](file://src/admin/config.yml#L96-L104)
  • [config.ts:109-122](file://tina/config.ts#L109-L122)
  • [curabitur-ullamcorper-ultricies-nisi.md:1-10](file://src/content/newsletters/curabitur-ullamcorper-ultricies-nisi.md#L1-L10)

Section sources

  • [config.yml:92-104](file://src/admin/config.yml#L92-L104)
  • [config.ts:109-122](file://tina/config.ts#L109-L122)
  • [newsletters.11tydata.json:1-2](file://src/content/newsletters/newsletters.11tydata.json#L1-L2)
  • [curabitur-ullamcorper-ultricies-nisi.md:1-10](file://src/content/newsletters/curabitur-ullamcorper-ultricies-nisi.md#L1-L10)

Dependency Analysis

The CMS depends on consistent front matter across collections and Eleventy’s collection APIs and filters.

graph LR
A["NetlifyCMS Schema<br/>src/admin/config.yml"] --> B["Markdown Content<br/>src/content/*/*.md"]
C["Tina Schema<br/>tina/config.ts"] --> B
D["Eleventy Collections<br/>.eleventy.js"] --> E["Layouts & Macros<br/>_includes/*/*.njk"]
B --> D
E --> F["Built Site<br/>_site/*.html"]

Diagram sources

  • [config.yml:11-105](file://src/admin/config.yml#L11-L105)
  • [config.ts:22-122](file://tina/config.ts#L22-L122)
  • [.eleventy.js:166-210](file://.eleventy.js#L166-L210)

Section sources

  • [.eleventy.js:166-210](file://.eleventy.js#L166-L210)

Performance Considerations

  • Prefer markdown for lightweight content editing; use rich-text only when necessary for complex formatting.
  • Keep excerpts concise to reduce rendering overhead in lists.
  • Use order and category fields to minimize client-side sorting in templates.
  • Leverage Eleventy’s filters (limit, sortBy, where) to optimize template rendering.

Troubleshooting Guide

  • Missing required fields
    • Symptoms: Build errors or missing content in collections
    • Resolution: Ensure title and date are present for News & Insights, Case Studies, and Newsletters; ensure client and body for Case Studies; ensure anchor, name, and body for Team Members; ensure title and body for Knowledge Base
  • Incorrect sorting
    • Symptoms: Team members not ordered as expected
    • Resolution: Verify order numeric values; Eleventy sorts by order ascending
  • Permalink issues
    • Symptoms: Knowledge article not found at computed URL
    • Resolution: Confirm computed permalink logic and slug generation; ensure tags include knowledge
  • Draft content visibility
    • Symptoms: Draft posts appear publicly
    • Resolution: Ensure draft flag is set appropriately; avoid committing drafts to shared branches
  • Rich text formatting
    • Symptoms: Formatting inconsistencies between NetlifyCMS and TinaCMS
    • Resolution: Use markdown for broad compatibility; rely on rich-text only when needed; test transforms for Obsidian syntax if applicable

Section sources

  • [config.yml:20-31](file://src/admin/config.yml#L20-L31)
  • [config.yml:38-58](file://src/admin/config.yml#L38-L58)
  • [config.yml:64-77](file://src/admin/config.yml#L64-L77)
  • [config.yml:83-90](file://src/admin/config.yml#L83-L90)
  • [config.yml:96-104](file://src/admin/config.yml#L96-L104)
  • [config.ts:30-41](file://tina/config.ts#L30-L41)
  • [config.ts:45-72](file://tina/config.ts#L45-L72)
  • [config.ts:75-92](file://tina/config.ts#L75-L92)
  • [config.ts:95-106](file://tina/config.ts#L95-L106)
  • [config.ts:109-122](file://tina/config.ts#L109-L122)
  • [knowledge.11tydata.js:4-6](file://src/content/knowledge/knowledge.11tydata.js#L4-L6)
  • [.eleventy.js:187-191](file://.eleventy.js#L187-L191)

Conclusion

The Sveltia CMS provides a robust, dual-authored content system with clear schemas and strong static site integration. By adhering to the defined field sets, validation rules, and organization patterns, authors can efficiently manage News & Insights, Case Studies, Team Members, Knowledge Base, and Newsletters. The combination of NetlifyCMS and TinaCMS offers flexibility in authoring, while Eleventy ensures reliable, fast site generation.

Appendices

Markdown vs JSON Format Differences

  • Markdown collections
    • Format: front matter plus markdown body
    • Editors: NetlifyCMS and TinaCMS both support markdown editing
    • Use cases: News, Cases, Team, Knowledge Base, Newsletters
  • JSON data collections
    • Format: single JSON file per dataset
    • Editors: NetlifyCMS and TinaCMS both support JSON editing
    • Use cases: Site settings, homepage content, testimonials, clients, affiliations, partners, capabilities carousel, IAA partners, resources

Section sources

  • [config.yml:108-774](file://src/admin/config.yml#L108-L774)
  • [config.ts:124-331](file://tina/config.ts#L124-L331)

Rich Text Editor Configuration and Formatting Options

  • NetlifyCMS
    • Widgets: string, datetime, image, text, boolean, markdown
    • Body fields: markdown for News, Cases, Team, Knowledge Base, Newsletters
  • TinaCMS
    • Types: string, datetime, image, number, boolean, rich-text
    • Body fields: rich-text for News, Cases, Team, Knowledge Base, Newsletters
  • Formatting options
    • Markdown: standard markdown syntax
    • Rich-text: structured editing with inline formatting and blocks

Section sources

  • [config.yml:20-31](file://src/admin/config.yml#L20-L31)
  • [config.yml:38-58](file://src/admin/config.yml#L38-L58)
  • [config.yml:64-77](file://src/admin/config.yml#L64-L77)
  • [config.yml:83-90](file://src/admin/config.yml#L83-L90)
  • [config.yml:96-104](file://src/admin/config.yml#L96-L104)
  • [config.ts:30-41](file://tina/config.ts#L30-L41)
  • [config.ts:45-72](file://tina/config.ts#L45-L72)
  • [config.ts:75-92](file://tina/config.ts#L75-L92)
  • [config.ts:95-106](file://tina/config.ts#L95-L106)
  • [config.ts:109-122](file://tina/config.ts#L109-L122)

Relationship Between Content Collections and Static Site Generation

  • Collections
    • News, Cases, Newsletters, Team, Knowledge: defined in Eleventy
  • Sorting and filtering
    • News, Newsletters, Knowledge sorted by date descending
    • Team sorted by order ascending
    • Featured filtering supported via front matter flags
  • Transforms
    • Obsidian syntax transform converts wikilinks and callouts for Knowledge Base
  • Permalinks
    • Knowledge Base uses computed permalinks under /alliance/members/knowledge//
    • Other collections disable permalinks to use default Eleventy routing

Section sources

  • [.eleventy.js:166-210](file://.eleventy.js#L166-L210)
  • [.eleventy.js:216-239](file://.eleventy.js#L216-L239)
  • [knowledge.11tydata.js:4-6](file://src/content/knowledge/knowledge.11tydata.js#L4-L6)

Content Creation Workflows by Collection

  • News & Insights
    • Create markdown with title, date, body; add optional fields; set flags; commit
  • Case Studies
    • Create markdown with client, body; select category; add optional fields; set flags; commit
  • Team Members
    • Create markdown with anchor, name, body; add optional images/bios; set flags; commit
  • Knowledge Base
    • Create markdown with title, body; add tags_list; commit; verify computed permalink
  • Newsletters
    • Create markdown with title, date; add optional fields; set flags; commit

Section sources

  • [2025-10-17-political-powerhouse.md:1-18](file://src/content/news/2025-10-17-political-powerhouse.md#L1-L18)
  • [adelaide-city-fc.md:1-14](file://src/content/cases/adelaide-city-fc.md#L1-L14)
  • [01-matt-neagle.md:1-21](file://src/content/team/01-matt-neagle.md#L1-L21)
  • [getting-started.md:1-52](file://src/content/knowledge/getting-started.md#L1-L52)
  • [curabitur-ullamcorper-ultricies-nisi.md:1-10](file://src/content/newsletters/curabitur-ullamcorper-ultricies-nisi.md#L1-L10)

Content Organization Patterns and Naming Conventions

  • Filename patterns
    • News: date-based slugs (e.g., YYYY-MM-DD-title.md)
    • Cases, Team, Knowledge Base, Newsletters: descriptive slugs
  • Front matter
    • Consistent use of title, date, excerpt, tags_list where applicable
    • Boolean flags for draft and featured
  • Accessibility
    • Provide image_alt for all images
  • Taxonomy
    • Use tags_list for Knowledge Base; category for Case Studies; order for Team

Section sources

  • [2025-10-17-political-powerhouse.md:1-18](file://src/content/news/2025-10-17-political-powerhouse.md#L1-L18)
  • [adelaide-city-fc.md:1-14](file://src/content/cases/adelaide-city-fc.md#L1-L14)
  • [01-matt-neagle.md:1-21](file://src/content/team/01-matt-neagle.md#L1-L21)
  • [getting-started.md:1-52](file://src/content/knowledge/getting-started.md#L1-L52)
  • [curabitur-ullamcorper-ultricies-nisi.md:1-10](file://src/content/newsletters/curabitur-ullamcorper-ultricies-nisi.md#L1-L10)

Metadata Management and Draft/Featured Systems

  • Metadata
    • title, date, author, excerpt, tags_list, category, order, image, image_alt, pdf_url/pdf_label, quote, quote_author, anchor
  • Draft system
    • draft: true hides content; draft: false publishes content
  • Featured system
    • featured: true promotes content in listings
  • Implementation
    • Managed via front matter in markdown files
    • Respected by Eleventy collections and filters

Section sources

  • [config.yml:20-31](file://src/admin/config.yml#L20-L31)
  • [config.yml:38-58](file://src/admin/config.yml#L38-L58)
  • [config.yml:64-77](file://src/admin/config.yml#L64-L77)
  • [config.yml:83-90](file://src/admin/config.yml#L83-L90)
  • [config.yml:96-104](file://src/admin/config.yml#L96-L104)
  • [config.ts:30-41](file://tina/config.ts#L30-L41)
  • [config.ts:45-72](file://tina/config.ts#L45-L72)
  • [config.ts:75-92](file://tina/config.ts#L75-L92)
  • [config.ts:95-106](file://tina/config.ts#L95-L106)
  • [config.ts:109-122](file://tina/config.ts#L109-L122)
  • [.eleventy.js:193-198](file://.eleventy.js#L193-L198)