backend:
  name: github
  repo: globaladvances/lyricalzen
  branch: main
  base_url: https://lyricalzen.com
  auth_endpoint: api/decap/auth
  squash_merges: true
  cms_label_prefix: decap-cms/
  commit_messages:
    create: "cms: create {{collection}} {{slug}}"
    update: "cms: update {{collection}} {{slug}}"
    delete: "cms: delete {{collection}} {{slug}}"
    uploadMedia: "cms: upload {{path}}"
    deleteMedia: "cms: delete media {{path}}"

publish_mode: simple
site_url: https://lyricalzen.com
display_url: https://lyricalzen.com
logo:
  src: /images/branding/logo-lyrical-zen.png
  show_in_header: true
media_folder: public/media/posts
public_folder: /media/posts
slug:
  encoding: ascii
  clean_accents: true
  sanitize_replacement: "-"

collections:
  - name: blog
    label: Posts
    label_singular: Post
    folder: src/content/blog
    create: true
    extension: mdx
    format: frontmatter
    path: "{{slug}}"
    slug: "{{slug}}"
    media_folder: public/media/posts/{{slug}}
    public_folder: /media/posts/{{slug}}
    preview_path: "{{slug}}/"
    summary: "{{title}} - {{publishedAt}}"
    editor:
      preview: false
    sortable_fields:
      - publishedAt
      - updatedAt
      - title
    view_filters:
      - label: Drafts
        field: draft
        pattern: true
      - label: Published
        field: draft
        pattern: false
    fields:
      - label: Title
        name: title
        widget: string
        required: true
        pattern:
          - "^.{1,120}$"
          - "Use a clear title of 120 characters or fewer."
      - label: Description
        name: description
        widget: text
        required: false
        default: Draft post.
        hint: "SEO description. Keep this between 1 and 220 characters."
        pattern:
          - "^.{1,220}$"
          - "Description must be 220 characters or fewer."
      - label: Excerpt
        name: excerpt
        widget: text
        required: false
        hint: "Optional card excerpt. Keep this to 260 characters or fewer."
        pattern:
          - "^.{0,260}$"
          - "Excerpt must be 260 characters or fewer."
      - label: Publish Date
        name: publishedAt
        widget: datetime
        required: true
        format: "YYYY-MM-DDTHH:mm:ss.SSS[Z]"
        picker_utc: true
        default: "{{now}}"
      - label: Updated Date
        name: updatedAt
        widget: datetime
        required: false
        format: "YYYY-MM-DDTHH:mm:ss.SSS[Z]"
        picker_utc: true
      - label: Draft
        name: draft
        widget: boolean
        default: true
        required: true
      - label: Author
        name: author
        widget: hidden
        default: Lyrical Zen
      - label: Categories
        name: categories
        widget: select
        multiple: true
        min: 1
        required: false
        default:
          - Moments
        options:
          - Moments
          - Words
          - Quotes
          - Image
          - Video
          - Sound
      - label: Languages
        name: languages
        widget: select
        multiple: true
        min: 1
        required: false
        default:
          - English
        options:
          - English
          - French
          - Spanish
          - Portuguese
          - Chinese
          - Russian
          - Creole (Caribbean)
          - Swahili
      - label: Featured Image
        name: featuredImage
        widget: image
        required: false
        choose_url: false
        allow_multiple: false
        media_folder: public/media/posts/{{slug}}
        public_folder: /media/posts/{{slug}}
        hint: "Use an optimized image from /media/posts/<slug>/ with a SEO-friendly filename that includes the post slug. Prefer .webp."
        media_library:
          config:
            max_file_size: 1048576
      - label: Featured Image Alt
        name: featuredImageAlt
        widget: string
        required: false
      - label: SEO Keywords
        name: seoKeywords
        widget: list
        required: false
        field:
          label: Keyword
          name: keyword
          widget: string
      - label: Media Placement
        name: mediaPlacement
        widget: select
        required: false
        default: text-first
        options:
          - { label: Text before media, value: text-first }
          - { label: Media before text, value: media-first }
        hint: "Choose whether the post opens with written content or an image, video, audio, gallery, or embed."
      - label: Body
        name: body
        widget: markdown
        required: false
        modes:
          - raw
        editor_components:
          - lyricalzen-image
          - lyricalzen-video
          - lyricalzen-audio
          - lyricalzen-embed
          - code-block
        hint: "Use the Media Placement field above to decide whether the body opens with written content or media."
