# Decap CMS — a lightweight, git-based admin for this Hugo site. # It commits markdown straight to the Gitea repo; the public site stays static. # Setup (Gitea OAuth app, deploy trigger): see /ADMIN.md. backend: name: gitea repo: karim/kgva # TODO: owner/repo on git.kgva.ch base_url: https://git.kgva.ch # your Gitea instance branch: main # TODO: your default branch app_id: REPLACE_WITH_GITEA_OAUTH_CLIENT_ID # For editing locally without auth: run `npx decap-server` and uncomment: # local_backend: true media_folder: static/img public_folder: /img collections: # ── Projects ──────────────────────────────────────────────────────────── - name: portfolio label: Portfolio label_singular: Project folder: content/portfolio create: true slug: "{{slug}}" summary: "{{title}}" editor: preview: false fields: - { label: Title, name: title, widget: string } - { label: Slug, name: slug, widget: string, hint: "url part, e.g. textilsteinwerk" } - { label: Date, name: date, widget: datetime } - { label: Draft, name: draft, widget: boolean, default: true, required: false } - { label: Thumbnail, name: thumbnail, widget: image, required: false } - { label: Studies path, name: studies, widget: string, required: false, hint: "/studies/hslu/ba/semester_05" } - { label: School, name: schools, widget: select, multiple: true, options: [hslu, ost], required: false } - { label: Degree, name: degrees, widget: select, multiple: true, options: [ba, ma], required: false } - { label: Semester, name: semesters, widget: list, required: false, hint: "e.g. semester_05" } - { label: Vimeo ID, name: vimeo, widget: string, required: false } - label: Images name: images widget: list required: false summary: "{{fields.name}}" fields: - { label: File, name: src, widget: image } - { label: Name (caption), name: name, widget: string } - { label: Description, name: body, widget: markdown, required: false } # ── Single pages ──────────────────────────────────────────────────────── - name: pages label: Pages files: - label: Home (hero image) name: home file: content/_index.md fields: - { label: Title, name: title, widget: string } - { label: Description, name: description, widget: string } - { label: Hero image, name: heroImage, widget: image } - label: About name: about file: content/about.md fields: - { label: Title, name: title, widget: hidden, default: about } - { label: Description, name: description, widget: string } - { label: Layout, name: layout, widget: hidden, default: about } - { label: Body, name: body, widget: markdown } - label: Studio name: studio file: content/studio.md fields: - { label: Title, name: title, widget: hidden, default: studio } - { label: Description, name: description, widget: string } - { label: Body, name: body, widget: markdown } - label: Openbureau name: openbureau file: content/openbureau.md fields: - { label: Title, name: title, widget: hidden, default: openbureau } - { label: Description, name: description, widget: string } - { label: Body, name: body, widget: markdown } - label: CV name: cv file: content/cv.md fields: - { label: Title, name: title, widget: hidden, default: cv } - { label: Description, name: description, widget: string } - { label: Body, name: body, widget: markdown } - label: Colophon name: colophon file: content/colophon.md fields: - { label: Title, name: title, widget: hidden, default: colophon } - { label: Description, name: description, widget: string } - { label: Dotfile, name: dotfile, widget: hidden, default: true } - { label: Body, name: body, widget: markdown } # ── Legal notice sections ──────────────────────────────────────────────── - name: legal label: Legal notice label_singular: Section folder: content/legal create: true slug: "{{slug}}" fields: # keep these hidden ones so the section stays a non-rendered fragment - { label: build, name: build, widget: hidden, default: { render: never, list: never } } - { label: Body, name: body, widget: markdown }