backend:
  name: github
  branch: main
  repo: mwanstall/malwdev
  site_domain: malw.dev
  base_url: https://malw.dev
  auth_endpoint: oauth

# Uncomment for local development:
# local_backend: true

media_folder: "public/images"
public_folder: "/images"

slug:
  encoding: "ascii"
  clean_accents: true
  sanitize_replacement: "-"

collections:
  # Blog Posts
  - name: "blog"
    label: "Blog Posts"
    folder: "src/content/blog"
    create: true
    slug: "{{slug}}"
    extension: "md"
    summary: "{{title}} — {{pubDate}}"
    sortable_fields: ["title", "pubDate", "updatedDate", "draft"]
    view_filters:
      - label: "Drafts"
        field: "draft"
        pattern: true
      - label: "Published"
        field: "draft"
        pattern: false
    view_groups:
      - label: "Status"
        field: "draft"
    fields:
      - label: "Title"
        name: "title"
        widget: "string"
        required: true

      - label: "Description"
        name: "description"
        widget: "text"
        required: true
        hint: "Brief summary for SEO and article previews"

      - label: "Publish Date"
        name: "pubDate"
        widget: "datetime"
        date_format: "YYYY-MM-DD"
        time_format: false
        format: "YYYY-MM-DD"
        required: true

      - label: "Updated Date"
        name: "updatedDate"
        widget: "datetime"
        date_format: "YYYY-MM-DD"
        time_format: false
        format: "YYYY-MM-DD"
        required: false

      - label: "Author"
        name: "author"
        widget: "hidden"
        default: "Mal Wanstall"

      - label: "Image"
        name: "image"
        widget: "object"
        required: false
        fields:
          - label: "URL"
            name: "url"
            widget: "image"
            required: true
          - label: "Alt Text"
            name: "alt"
            widget: "string"
            required: true

      - label: "Tags"
        name: "tags"
        widget: "list"
        default: []
        hint: "Comma-separated tags"

      - label: "Featured"
        name: "featured"
        widget: "boolean"
        default: false

      - label: "Draft"
        name: "draft"
        widget: "boolean"
        default: false

      - label: "Body"
        name: "body"
        widget: "markdown"

  # Newsletters
  - name: "newsletters"
    label: "Newsletters"
    folder: "src/content/newsletters"
    create: true
    slug: "{{year}}-{{month}}-{{day}}"
    extension: "md"
    summary: "{{title}} — {{date}}"
    sortable_fields: ["title", "date", "published"]
    view_filters:
      - label: "Published"
        field: "published"
        pattern: true
      - label: "Unpublished"
        field: "published"
        pattern: false
    fields:
      - label: "Title"
        name: "title"
        widget: "string"
        required: true

      - label: "Date"
        name: "date"
        widget: "datetime"
        date_format: "YYYY-MM-DD"
        time_format: false
        format: "YYYY-MM-DD"
        required: true

      - label: "Description"
        name: "description"
        widget: "string"
        required: true

      - label: "Published"
        name: "published"
        widget: "boolean"
        default: false
        hint: "Toggle to publish. Publishing triggers the newsletter email send."

      - label: "Body"
        name: "body"
        widget: "markdown"

  # Videos
  - name: "video"
    label: "Videos"
    folder: "src/content/video"
    create: true
    slug: "{{slug}}"
    extension: "md"
    summary: "{{title}} — {{pubDate}}"
    sortable_fields: ["title", "pubDate", "draft"]
    view_filters:
      - label: "Drafts"
        field: "draft"
        pattern: true
      - label: "Published"
        field: "draft"
        pattern: false
    fields:
      - label: "Title"
        name: "title"
        widget: "string"
        required: true

      - label: "Description"
        name: "description"
        widget: "text"
        required: true

      - label: "Publish Date"
        name: "pubDate"
        widget: "datetime"
        date_format: "YYYY-MM-DD"
        time_format: false
        format: "YYYY-MM-DD"
        required: true

      - label: "Thumbnail"
        name: "thumbnail"
        widget: "image"
        required: true

      - label: "YouTube URL"
        name: "youtubeUrl"
        widget: "string"
        required: false

      - label: "YouTube ID"
        name: "youtubeId"
        widget: "string"
        required: false
        hint: "The video ID from the YouTube URL (e.g. dQw4w9WgXcQ)"

      - label: "LinkedIn URL"
        name: "linkedinUrl"
        widget: "string"
        required: false

      - label: "Duration"
        name: "duration"
        widget: "string"
        required: false
        hint: "e.g. 5:23"

      - label: "Tags"
        name: "tags"
        widget: "list"
        default: []

      - label: "Featured"
        name: "featured"
        widget: "boolean"
        default: false

      - label: "Draft"
        name: "draft"
        widget: "boolean"
        default: false
