103 lines
5.5 KiB
YAML
103 lines
5.5 KiB
YAML
# Sveltia CMS config — backend: Gitea behind the Cyfronet ingress (HTTPS
|
|
# vhost). Editors log in via Gitea OAuth (PKCE, no client secret); edits are
|
|
# committed to the ctao/content repo. Gitea's ROOT_URL and CORS are pinned to
|
|
# these origins in deploy/ctao-demo-gitea.container.
|
|
backend:
|
|
name: gitea
|
|
# Keep this branch in sync with CONTENT_BRANCH in deploy/build.sh.
|
|
# Seed the content branch from sample-content/ before deploying.
|
|
repo: ctao/content
|
|
branch: simple
|
|
base_url: https://astro-git.isl-dev.grid.cyfronet.pl
|
|
api_root: https://astro-git.isl-dev.grid.cyfronet.pl/api/v1
|
|
app_id: cf1c44ac-ebe6-4a97-bf2f-f7f26ef1126c
|
|
# OAuth only — hides the "access token" sign-in option (documented
|
|
# auth_methods). The "Work with Local Repository" button needs no config:
|
|
# it renders only on localhost (source-verified), so it vanishes once the
|
|
# portal is served from a real domain.
|
|
auth_methods: [oauth]
|
|
|
|
# CTAO branding on the sign-in screen and browser tab (documented Sveltia
|
|
# options: app_title replaces the "Sveltia CMS" label; logo.src is the
|
|
# current form of the deprecated logo_url).
|
|
app_title: CTAO Content Editor
|
|
logo:
|
|
src: /brand/CTAO_Logo_login.svg
|
|
|
|
media_folder: "uploads"
|
|
public_folder: "/uploads"
|
|
|
|
# Keep the git repo lean: images are stored as plain git blobs (no LFS), so
|
|
# every upload is converted client-side to WebP q85 and capped at 2048px
|
|
# (documented media_libraries transformations). A phone photo lands in the
|
|
# repo as ~100-300 KB instead of 5-10 MB.
|
|
media_libraries:
|
|
default:
|
|
config:
|
|
slugify_filename: true
|
|
transformations:
|
|
raster_image:
|
|
format: webp
|
|
quality: 85
|
|
width: 2048
|
|
height: 2048
|
|
svg:
|
|
optimize: true
|
|
|
|
collections:
|
|
- name: examples
|
|
label: "Example pages"
|
|
files:
|
|
- name: lorem-ipsum
|
|
label: "Lorem ipsum"
|
|
file: "pages/lorem-ipsum.md"
|
|
format: frontmatter
|
|
fields:
|
|
- { name: title, label: "Title", widget: string }
|
|
- { name: introduction, label: "Introduction", widget: text, required: false }
|
|
- { name: image, label: "Image", widget: image, required: false }
|
|
- { name: imageAlt, label: "Image alternative text", widget: string, required: false, hint: "Describe the image; leave empty only for decorative images." }
|
|
- { name: imageCaption, label: "Image caption", widget: string, required: false }
|
|
- { name: body, label: "Body", widget: markdown }
|
|
- { name: buttonLabel, label: "Button label", widget: string, required: false }
|
|
- { name: buttonUrl, label: "Button destination", widget: string, required: false, hint: "A site path such as /example/lorem-ipsum/, or an https:// URL." }
|
|
- name: dolor-sit-amet
|
|
label: "Dolor sit amet"
|
|
file: "pages/dolor-sit-amet.md"
|
|
format: frontmatter
|
|
fields:
|
|
- { name: title, label: "Title", widget: string }
|
|
- { name: introduction, label: "Introduction", widget: text, required: false }
|
|
- { name: image, label: "Image", widget: image, required: false }
|
|
- { name: imageAlt, label: "Image alternative text", widget: string, required: false, hint: "Describe the image; leave empty only for decorative images." }
|
|
- { name: imageCaption, label: "Image caption", widget: string, required: false }
|
|
- { name: body, label: "Body", widget: markdown }
|
|
- { name: buttonLabel, label: "Button label", widget: string, required: false }
|
|
- { name: buttonUrl, label: "Button destination", widget: string, required: false, hint: "A site path such as /example/lorem-ipsum/, or an https:// URL." }
|
|
- name: consectetur-adipiscing
|
|
label: "Consectetur adipiscing"
|
|
file: "pages/consectetur-adipiscing.md"
|
|
format: frontmatter
|
|
fields:
|
|
- { name: title, label: "Title", widget: string }
|
|
- { name: introduction, label: "Introduction", widget: text, required: false }
|
|
- { name: image, label: "Image", widget: image, required: false }
|
|
- { name: imageAlt, label: "Image alternative text", widget: string, required: false, hint: "Describe the image; leave empty only for decorative images." }
|
|
- { name: imageCaption, label: "Image caption", widget: string, required: false }
|
|
- { name: body, label: "Body", widget: markdown }
|
|
- { name: buttonLabel, label: "Button label", widget: string, required: false }
|
|
- { name: buttonUrl, label: "Button destination", widget: string, required: false, hint: "A site path such as /example/lorem-ipsum/, or an https:// URL." }
|
|
- name: sed-do-eiusmod
|
|
label: "Sed do eiusmod"
|
|
file: "pages/sed-do-eiusmod.md"
|
|
format: frontmatter
|
|
fields:
|
|
- { name: title, label: "Title", widget: string }
|
|
- { name: introduction, label: "Introduction", widget: text, required: false }
|
|
- { name: image, label: "Image", widget: image, required: false }
|
|
- { name: imageAlt, label: "Image alternative text", widget: string, required: false, hint: "Describe the image; leave empty only for decorative images." }
|
|
- { name: imageCaption, label: "Image caption", widget: string, required: false }
|
|
- { name: body, label: "Body", widget: markdown }
|
|
- { name: buttonLabel, label: "Button label", widget: string, required: false }
|
|
- { name: buttonUrl, label: "Button destination", widget: string, required: false, hint: "A site path such as /example/lorem-ipsum/, or an https:// URL." }
|