asw-v01: archive deferred content (packs, site, lab, legacy examples)

- 2.1: packs/ -> archive/packs/
- 2.2: site/ -> archive/site/
- 2.3: src/lab/ -> archive/lab/
- 2.4: examples/ -> archive/examples-legacy/ (SSI-based)
This commit is contained in:
exe.dev user 2026-06-07 10:39:21 +02:00
parent 416fe2f180
commit e47a9f4401
173 changed files with 11 additions and 5 deletions

View file

@ -0,0 +1,138 @@
# Decap CMS — ASW site content manager
#
# LOCAL MODE: run `npx decap-server` from site/ directory
# No OAuth, no Forgejo auth — reads/writes files directly.
#
# PRODUCTION MODE: switch backend to gitea (see packs/hugo/admin/config.yml)
local_backend: true
backend:
name: git-gateway
media_folder: static/images
public_folder: /images
slug:
encoding: ascii
clean_accents: true
# ── Site settings (file-based collections) ───────────────────────────
collections:
- name: settings
label: Settings
files:
- name: nav
label: Navigation
file: data/nav.yml
fields:
- label: Navigation Links
name: items
widget: list
fields:
- { label: Name, name: name, widget: string }
- { label: URL, name: url, widget: string }
- { label: Weight, name: weight, widget: number, hint: "Sort order (lower = first)" }
# ── Content collections ──────────────────────────────────────────────
- name: docs-getting-started
label: "Docs: Getting Started"
folder: content/docs/getting-started
create: true
slug: "{{slug}}"
fields: &doc-fields
- { label: Title, name: title, widget: string }
- { label: Description, name: description, widget: string, required: false }
- { label: Type, name: type, widget: hidden, default: docs }
- { label: Weight, name: weight, widget: number, required: false, hint: "Sort order in sidebar" }
- { label: Date, name: date, widget: datetime, format: "YYYY-MM-DD" }
- { label: Tags, name: tags, widget: list, required: false }
- { label: AI Disclosure, name: ai-disclosure, widget: select, options: ["generated", "assisted", "none"], default: "assisted" }
- { label: AI Model, name: ai-model, widget: string, required: false }
- { label: AI Provider, name: ai-provider, widget: string, required: false, default: "Anthropic" }
- { label: Body, name: body, widget: markdown }
- name: docs-core
label: "Docs: Core"
folder: content/docs/core
create: true
slug: "{{slug}}"
fields: *doc-fields
- name: docs-components
label: "Docs: Components"
folder: content/docs/components
create: true
slug: "{{slug}}"
fields: *doc-fields
- name: docs-reference
label: "Docs: Reference"
folder: content/docs/reference
create: true
slug: "{{slug}}"
fields: *doc-fields
- name: articles
label: Articles
label_singular: Article
folder: content/articles
create: true
slug: "{{slug}}"
fields:
- { label: Title, name: title, widget: string }
- { label: Description, name: description, widget: string, required: false }
- { label: Date, name: date, widget: datetime, format: "YYYY-MM-DD" }
- { label: Categories, name: categories, widget: list, required: false, hint: "e.g. framework, tutorial, deep-dive" }
- { label: Tags, name: tags, widget: list, required: false }
- { label: AI Disclosure, name: ai-disclosure, widget: select, options: ["generated", "assisted", "none"], default: "assisted" }
- { label: AI Model, name: ai-model, widget: string, required: false }
- { label: AI Provider, name: ai-provider, widget: string, required: false, default: "Anthropic" }
- { label: Body, name: body, widget: markdown }
- name: essays
label: Essays
label_singular: Essay
folder: content/essays
create: true
slug: "{{slug}}"
fields:
- { label: Title, name: title, widget: string }
- { label: Description, name: description, widget: string }
- { label: Abstract, name: abstract, widget: text, required: false }
- { label: Author, name: author, widget: string, required: false }
- { label: Eyebrow, name: eyebrow, widget: string, required: false, default: "Essay" }
- { label: Type, name: type, widget: hidden, default: essay }
- { label: Date, name: date, widget: datetime, format: "YYYY-MM-DD" }
- { label: Tags, name: tags, widget: list, required: false }
- { label: Draft, name: draft, widget: boolean, default: true }
- { label: Categories, name: categories, widget: list, required: false }
- { label: AI Disclosure, name: ai-disclosure, widget: select, options: ["generated", "assisted", "none"], default: "assisted" }
- { label: AI Model, name: ai-model, widget: string, required: false }
- { label: AI Provider, name: ai-provider, widget: string, required: false, default: "Anthropic" }
- { label: Body, name: body, widget: markdown }
- name: notes
label: Notes
label_singular: Note
folder: content/notes
create: true
slug: "{{slug}}"
fields:
- { label: Title, name: title, widget: string }
- { label: Date, name: date, widget: datetime, format: "YYYY-MM-DD" }
- { label: Tags, name: tags, widget: list, required: false }
- { label: Body, name: body, widget: markdown }
- name: pages
label: Pages
label_singular: Page
folder: content/pages
create: true
slug: "{{slug}}"
fields:
- { label: Title, name: title, widget: string }
- { label: Description, name: description, widget: string, required: false }
- { label: Body, name: body, widget: markdown }

View file

@ -0,0 +1,11 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ASW Content Manager</title>
</head>
<body>
<script src="https://unpkg.com/decap-cms@^3.0.0/dist/decap-cms.js"></script>
</body>
</html>