feat: Add Decap CMS for Meg/Holly content editing

- admin/index.html: Decap CMS loader
- admin/config.yml: Gitea backend config (native support!)
- .eleventy.js: Added admin passthrough copy

OAuth App created in Gitea:
- Client ID: ad439d72-e724-4f88-ad24-a1187c52b313
- Redirect URI: https://firefrostgaming.com/admin/

Gemini's architecture: Decap → Gitea (direct) → GitHub mirror → Cloudflare Pages
No bidirectional sync issues, Gitea remains source of truth.

Signed-off-by: Claude <claude@firefrostgaming.com>
This commit is contained in:
Claude (Chronicler #58)
2026-04-04 00:47:23 +00:00
parent 3d8d1b50d5
commit 5c6f419f6d
3 changed files with 85 additions and 0 deletions

View File

@@ -3,6 +3,9 @@ module.exports = function(eleventyConfig) {
// Without this, your styles and images won't appear in the _site output
eleventyConfig.addPassthroughCopy("src/css");
eleventyConfig.addPassthroughCopy("assets");
// Decap CMS admin panel
eleventyConfig.addPassthroughCopy("admin");
return {
dir: {

65
admin/config.yml Normal file
View File

@@ -0,0 +1,65 @@
backend:
name: gitea
repo: firefrost-gaming/firefrost-website
api_root: https://git.firefrostgaming.com/api/v1
base_url: https://git.firefrostgaming.com
app_id: ad439d72-e724-4f88-ad24-a1187c52b313
branch: main
# Media settings for Eleventy
media_folder: "assets/images/uploads"
public_folder: "/assets/images/uploads"
# Site settings
site_url: https://firefrostgaming.com
display_url: https://firefrostgaming.com
logo_url: https://firefrostgaming.com/assets/images/logo.png
# Editorial workflow (optional - start simple)
# publish_mode: editorial_workflow
collections:
- name: "pages"
label: "Pages"
files:
- label: "About"
name: "about"
file: "about.njk"
fields:
- {label: "Title", name: "title", widget: "string", default: "About Firefrost Gaming"}
- {label: "Body", name: "body", widget: "markdown"}
- label: "Servers"
name: "servers"
file: "servers.njk"
fields:
- {label: "Title", name: "title", widget: "string", default: "Our Servers"}
- {label: "Body", name: "body", widget: "markdown"}
- label: "Subscribe"
name: "subscribe"
file: "subscribe.njk"
fields:
- {label: "Title", name: "title", widget: "string", default: "Subscribe"}
- {label: "Body", name: "body", widget: "markdown"}
- label: "Contact"
name: "contact"
file: "contact.njk"
fields:
- {label: "Title", name: "title", widget: "string", default: "Contact Us"}
- {label: "Body", name: "body", widget: "markdown"}
- label: "Terms of Service"
name: "terms"
file: "terms.njk"
fields:
- {label: "Title", name: "title", widget: "string", default: "Terms of Service"}
- {label: "Body", name: "body", widget: "markdown"}
- label: "Privacy Policy"
name: "privacy"
file: "privacy.njk"
fields:
- {label: "Title", name: "title", widget: "string", default: "Privacy Policy"}
- {label: "Body", name: "body", widget: "markdown"}

17
admin/index.html Normal file
View File

@@ -0,0 +1,17 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="robots" content="noindex" />
<title>Firefrost CMS</title>
<style>
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}
</style>
</head>
<body>
<script src="https://unpkg.com/decap-cms@^3.0.0/dist/decap-cms.js"></script>
</body>
</html>