backend:
  name: test-repo

site_url: https://example.com

publish_mode: editorial_workflow
media_folder: assets/uploads

collections: # A list of collections the CMS should be able to edit
  - name: 'posts' # Used in routes, ie.: /admin/collections/:slug/edit
    label: 'Posts' # Used in the UI
    label_singular: 'Post' # Used in the UI, ie: "New Post"
    description: >
      The description is a great place for tone setting, high level information, and editing
      guidelines that are specific to a collection.
    folder: '_posts'
    slug: '{{year}}-{{month}}-{{day}}-{{slug}}'
    summary: '{{title}} -- {{year}}/{{month}}/{{day}}'
    create: true # Allow users to create new documents in this collection
    view_filters:
      - label: Posts With Index
        field: title
        pattern: 'This is post #'
      - label: Posts Without Index
        field: title
        pattern: front matter post
      - label: Drafts
        field: draft
        pattern: true
    view_groups:
      - label: Year
        field: date
        pattern: \d{4}
      - label: Drafts
        field: draft
    fields: # The fields each document in this collection have
      - { label: 'Title', name: 'title', widget: 'string', tagname: 'h1' }
      - { label: 'Draft', name: 'draft', widget: 'boolean', default: false }
      - {
          label: 'Publish Date',
          name: 'date',
          widget: 'datetime',
          date_format: 'YYYY-MM-DD',
          time_format: 'HH:mm',
          format: 'YYYY-MM-DD HH:mm',
        }
      - label: 'Cover Image'
        name: 'image'
        widget: 'image'
        required: false
        tagname: ''

      - { label: 'Body', name: 'body', widget: 'markdown', hint: 'Main content goes here.' }

  - name: 'faq' # Used in routes, ie.: /admin/collections/:slug/edit
    label: 'FAQ' # Used in the UI
    folder: '_faqs'
    create: true # Allow users to create new documents in this collection
    fields: # The fields each document in this collection have
      - { label: 'Question', name: 'title', widget: 'string', tagname: 'h1' }
      - { label: 'Answer', name: 'body', widget: 'markdown' }

  - name: 'settings'
    label: 'Settings'
    delete: false # Prevent users from deleting documents in this collection
    editor:
      preview: false
    files:
      - name: 'general'
        label: 'Site Settings'
        file: '_data/settings.json'
        description: 'General Site Settings'
        fields:
          - { label: 'Global title', name: 'site_title', widget: 'string' }
          - label: 'Post Settings'
            name: posts
            widget: 'object'
            fields:
              - {
                  label: 'Number of posts on frontpage',
                  name: front_limit,
                  widget: number,
                  min: 1,
                  max: 10,
                }
              - { label: 'Default Author', name: author, widget: string }
              - {
                  label: 'Default Thumbnail',
                  name: thumb,
                  widget: image,
                  class: 'thumb',
                  required: false,
                }

      - name: 'authors'
        label: 'Authors'
        file: '_data/authors.yml'
        description: 'Author descriptions'
        fields:
          - name: authors
            label: Authors
            label_singular: 'Author'
            widget: list
            fields:
              - { label: 'Name', name: 'name', widget: 'string', hint: 'First and Last' }
              - { label: 'Description', name: 'description', widget: 'markdown' }

  - name: 'kitchenSink' # all the things in one entry, for documentation and quick testing
    label: 'Kitchen Sink'
    folder: '_sink'
    create: true
    fields:
      - label: 'Related Post'
        name: 'post'
        widget: 'relationKitchenSinkPost'
        collection: 'posts'
        display_fields: ['title', 'date']
        search_fields: ['title', 'body']
        value_field: 'title'
      - { label: 'Title', name: 'title', widget: 'string' }
      - { label: 'Boolean', name: 'boolean', widget: 'boolean', default: true }
      - { label: 'Map', name: 'map', widget: 'map' }
      - { label: 'Text', name: 'text', widget: 'text', hint: 'Plain text, not markdown' }
      - { label: 'Number', name: 'number', widget: 'number', hint: 'To infinity and beyond!' }
      - { label: 'Markdown', name: 'markdown', widget: 'markdown' }
      - { label: 'Datetime', name: 'datetime', widget: 'datetime' }
      - { label: 'Date', name: 'date', widget: 'date' }
      - { label: 'Color', name: 'color', widget: 'color' }
      - {
          label: 'Color string editable and alpha enabled',
          name: 'colorEditable',
          widget: 'color',
          enableAlpha: true,
          allowInput: true,
        }
      - { label: 'Image', name: 'image', widget: 'image' }
      - { label: 'File', name: 'file', widget: 'file' }
      - { label: 'Select', name: 'select', widget: 'select', options: ['a', 'b', 'c'] }
      - {
          label: 'Select multiple',
          name: 'select_multiple',
          widget: 'select',
          options: ['a', 'b', 'c'],
          multiple: true,
        }
      - {
          label: 'Select numeric',
          name: 'select_numeric',
          widget: 'select',
          options:
            [{ label: 'One', value: 1 }, { label: 'Two', value: 2 }, { label: 'Three', value: 3 }],
        }
      - { label: 'Hidden', name: 'hidden', widget: 'hidden', default: 'hidden' }
      - label: 'Object'
        name: 'object'
        widget: 'object'
        collapsed: true
        fields:
          - label: 'Related Post'
            name: 'post'
            widget: 'relationKitchenSinkPost'
            collection: 'posts'
            search_fields: ['title', 'body']
            value_field: 'title'
          - { label: 'String', name: 'string', widget: 'string' }
          - { label: 'Boolean', name: 'boolean', widget: 'boolean', default: false }
          - { label: 'Text', name: 'text', widget: 'text' }
          - { label: 'Number', name: 'number', widget: 'number' }
          - { label: 'Markdown', name: 'markdown', widget: 'markdown' }
          - { label: 'Datetime', name: 'datetime', widget: 'datetime' }
          - { label: 'Date', name: 'date', widget: 'date' }
          - { label: 'Image', name: 'image', widget: 'image' }
          - { label: 'File', name: 'file', widget: 'file' }
          - { label: 'Select', name: 'select', widget: 'select', options: ['a', 'b', 'c'] }
      - label: 'List'
        name: 'list'
        widget: 'list'
        fields:
          - { label: 'String', name: 'string', widget: 'string' }
          - { label: 'Boolean', name: 'boolean', widget: 'boolean' }
          - { label: 'Text', name: 'text', widget: 'text' }
          - { label: 'Number', name: 'number', widget: 'number' }
          - { label: 'Markdown', name: 'markdown', widget: 'markdown' }
          - { label: 'Datetime', name: 'datetime', widget: 'datetime' }
          - { label: 'Date', name: 'date', widget: 'date' }
          - { label: 'Image', name: 'image', widget: 'image' }
          - { label: 'File', name: 'file', widget: 'file' }
          - { label: 'Select', name: 'select', widget: 'select', options: ['a', 'b', 'c'] }
          - label: 'Object'
            name: 'object'
            widget: 'object'
            fields:
              - { label: 'String', name: 'string', widget: 'string' }
              - { label: 'Boolean', name: 'boolean', widget: 'boolean' }
              - { label: 'Text', name: 'text', widget: 'text' }
              - { label: 'Number', name: 'number', widget: 'number' }
              - { label: 'Markdown', name: 'markdown', widget: 'markdown' }
              - { label: 'Datetime', name: 'datetime', widget: 'datetime' }
              - { label: 'Date', name: 'date', widget: 'date' }
              - { label: 'Image', name: 'image', widget: 'image' }
              - { label: 'File', name: 'file', widget: 'file' }
              - { label: 'Select', name: 'select', widget: 'select', options: ['a', 'b', 'c'] }
              - label: 'List'
                name: 'list'
                widget: 'list'
                fields:
                  - label: 'Related Post'
                    name: 'post'
                    widget: 'relationKitchenSinkPost'
                    collection: 'posts'
                    search_fields: ['title', 'body']
                    value_field: 'title'
                  - { label: 'String', name: 'string', widget: 'string' }
                  - { label: 'Boolean', name: 'boolean', widget: 'boolean' }
                  - { label: 'Text', name: 'text', widget: 'text' }
                  - { label: 'Number', name: 'number', widget: 'number' }
                  - { label: 'Markdown', name: 'markdown', widget: 'markdown' }
                  - { label: 'Datetime', name: 'datetime', widget: 'datetime' }
                  - { label: 'Date', name: 'date', widget: 'date' }
                  - { label: 'Image', name: 'image', widget: 'image' }
                  - { label: 'File', name: 'file', widget: 'file' }
                  - { label: 'Select', name: 'select', widget: 'select', options: ['a', 'b', 'c'] }
                  - { label: 'Hidden', name: 'hidden', widget: 'hidden', default: 'hidden' }
                  - label: 'Object'
                    name: 'object'
                    widget: 'object'
                    fields:
                      - { label: 'String', name: 'string', widget: 'string' }
                      - { label: 'Boolean', name: 'boolean', widget: 'boolean' }
                      - { label: 'Text', name: 'text', widget: 'text' }
                      - { label: 'Number', name: 'number', widget: 'number' }
                      - { label: 'Markdown', name: 'markdown', widget: 'markdown' }
                      - { label: 'Datetime', name: 'datetime', widget: 'datetime' }
                      - { label: 'Date', name: 'date', widget: 'date' }
                      - { label: 'Image', name: 'image', widget: 'image' }
                      - { label: 'File', name: 'file', widget: 'file' }
                      - {
                          label: 'Select',
                          name: 'select',
                          widget: 'select',
                          options: ['a', 'b', 'c'],
                        }
      - label: 'Typed List'
        name: 'typed_list'
        widget: 'list'
        types:
          - label: 'Type 1 Object'
            name: 'type_1_object'
            widget: 'object'
            fields:
              - { label: 'String', name: 'string', widget: 'string' }
              - { label: 'Boolean', name: 'boolean', widget: 'boolean' }
              - { label: 'Text', name: 'text', widget: 'text' }
          - label: 'Type 2 Object'
            name: 'type_2_object'
            widget: 'object'
            fields:
              - { label: 'Number', name: 'number', widget: 'number' }
              - { label: 'Select', name: 'select', widget: 'select', options: ['a', 'b', 'c'] }
              - { label: 'Datetime', name: 'datetime', widget: 'datetime' }
              - { label: 'Markdown', name: 'markdown', widget: 'markdown' }
          - label: 'Type 3 Object'
            name: 'type_3_object'
            widget: 'object'
            fields:
              - { label: 'Date', name: 'date', widget: 'date' }
              - { label: 'Image', name: 'image', widget: 'image' }
              - { label: 'File', name: 'file', widget: 'file' }