dopry/netlify-cms

View on GitHub
example/config.yml

Summary

Maintainability
Test Coverage
backend:
  name: test-repo
  delay: 0.1

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: "Post" # Used in the UI, ie.: "New Post"
    folder: "_posts"
    slug: "{{year}}-{{month}}-{{day}}-{{slug}}"
    create: true # Allow users to create new documents in this collection
    fields: # The fields each document in this collection have
      - {label: "Title", name: "title", widget: "string", tagname: "h1"}
      - {label: "Publish Date", name: "date", widget: "datetime", format: "YYYY-MM-DD hh:mma"}
      - {label: "Cover Image", name: "image", widget: "image", required: false, tagname: ""}
      - {label: "Body", name: "body", widget: "markdown"}
    meta:
      - {label: "SEO Description", name: "description", widget: "text"}

  - name: "faq" # Used in routes, ie.: /admin/collections/:slug/edit
    label: "FAQ" # Used in the UI, ie.: "New Post"
    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"
    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}
              - {label: "Default Author", name: author, widget: string}
              - {label: "Default Thumbnail", name: thumb, widget: image, class: "thumb"}

      - name: "authors"
        label: "Authors"
        file: "_data/authors.yml"
        description: "Author descriptions"
        fields:
          - name: authors
            label: Authors
            widget: list
            fields:
              - {label: "Name", name: "name", widget: "string"}
              - {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"
        searchFields: ["title", "body"]
        valueField: "title"
      - {label: "Title", name: "title", widget: "string"}
      - {label: "Boolean", name: "boolean", widget: "boolean", default: true}
      - {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: "Related Post"
            name: "post"
            widget: "relationKitchenSinkPost"
            collection: "posts"
            searchFields: ["title", "body"]
            valueField: "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"
                    searchFields: ["title", "body"]
                    valueField: "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"]}