Feature/rebrand (#3)

This commit is contained in:
Daniel Lautzenheiser
2022-09-30 06:13:47 -06:00
committed by GitHub
parent 213e51c52d
commit 8acda23acc
416 changed files with 2818 additions and 8793 deletions

488
dev-test/config.yml Normal file
View File

@ -0,0 +1,488 @@
backend:
name: test-repo
site_url: 'https://example.com'
media_folder: assets/uploads
publish_mode: editorial_workflow
collections:
- name: posts
label: Posts
label_singular: 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}}'
sortable_fields:
fields:
- title
- date
default:
field: title
create: true
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:
- label: Title
name: title
widget: string
- 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
- label: Body
name: body
widget: text
hint: Main content goes here.
- name: faq
label: FAQ
folder: _faqs
create: true
fields:
- label: Question
name: title
widget: string
- label: Answer
name: body
widget: text
- name: posts
label: Posts
label_singular: Post
widget: list
summary: '{{fields.post | split(''|'', ''$1'')}}'
fields:
- label: Related Post
name: post
widget: relationKitchenSinkPost
collection: posts
display_fields:
- title
- date
search_fields:
- title
- body
value_field: '{{title}}|{{date}}'
- name: settings
label: Settings
delete: false
editor:
preview: false
files:
- name: general
label: Site Settings
file: _data/settings.json
description: General Site Settings
fields:
- label: Number of posts on frontpage
name: front_limit
widget: number
min: 1
max: 10
- 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
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: text
- name: kitchenSink
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: string
- label: Datetime
name: datetime
widget: datetime
- label: Date
name: date
widget: datetime
- 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: text
- label: Datetime
name: datetime
widget: datetime
- label: Date
name: date
widget: datetime
- 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: text
- label: Datetime
name: datetime
widget: datetime
- label: Date
name: date
widget: datetime
- 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: text
- label: Datetime
name: datetime
widget: datetime
- label: Date
name: date
widget: datetime
- 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: text
- label: Datetime
name: datetime
widget: datetime
- label: Date
name: date
widget: datetime
- 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: text
- label: Datetime
name: datetime
widget: datetime
- label: Date
name: date
widget: datetime
- 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: text
- label: Type 3 Object
name: type_3_object
widget: object
fields:
- label: Date
name: date
widget: datetime
- label: Image
name: image
widget: image
- label: File
name: file
widget: file

View File

@ -3,7 +3,7 @@
<head>
<meta charset="utf-8" />
<title>Netlify CMS Development Test</title>
<title>Simple CMS Development Test</title>
<script>
window.repoFiles = {
_posts: {
@ -21,8 +21,8 @@
}
},
_faqs: {
"what-is-netlify-cms.md": {
content: "---\ntitle: What is netlify CMS?\ndate: 2015-11-02T00:00.000Z\n---\n\n# Netlify CMS is Content Manager for Static Site Generators\n\nStatic sites are many times faster, cheaper and safer and traditional dynamic websites.\n\nModern static site generators like Jekyll, Middleman, Roots or Hugo are powerful publishing and development systems, but when we build sites for non-technical users, we need a layer on top of them.\n\nNetlify CMS is there to let your marketing team push new content to your public site, or to let technical writers work on your documentation.\n\nNetlify CMS integrates with Git and turns normal content editors into git comitters.\n\n"
"what-is-simple-cms.md": {
content: "---\ntitle: What is simple CMS?\ndate: 2015-11-02T00:00.000Z\n---\n\n# Simple CMS is Content Manager for Static Site Generators\n\nStatic sites are many times faster, cheaper and safer and traditional dynamic websites.\n\nModern static site generators like Jekyll, Middleman, Roots or Hugo are powerful publishing and development systems, but when we build sites for non-technical users, we need a layer on top of them.\n\nSimple CMS is there to let your marketing team push new content to your public site, or to let technical writers work on your documentation.\n\nSimple CMS integrates with Git and turns normal content editors into git comitters.\n\n"
},
"what-is-jam-stack.md": {
content: "---\ntitle: What is the “JAM Stack”?\ndate: 2015-11-02T00:00.000Z\n---\n\n# The JAM stack is a new way of building websites and apps that are fast, secure and simple to work with.\n\nJAM stands for JavaScript, APIs and Markup. It's the fastest growing new stack for building websites and apps: no more servers, host all your front-end on a CDN and use APIs for any moving parts.\n\n"
@ -111,7 +111,7 @@
</script>
</head>
<body>
<script src="dist/netlify-cms-core.js"></script>
<script src="./simple-cms-core.js"></script>
<script type="module" src="./index.js"></script>
</body>
</html>

View File

@ -30,727 +30,7 @@ Object.keys(window.CMS.images).forEach(iconName => {
window.CMS.registerIcon(iconName, window.h(window.CMS.Icon, { type: iconName }));
});
window.CMS.init({
config: {
backend: {
name: 'test-repo',
},
site_url: 'https://example.com',
media_folder: 'assets/uploads',
publish_mode: 'editorial_workflow',
collections: [
{
name: 'posts',
label: 'Posts',
label_singular: 'Post',
description:
'The description is a great place for tone setting, high level information, and editing guidelines that are specific to a collection.\n',
folder: '_posts',
slug: '{{year}}-{{month}}-{{day}}-{{slug}}',
summary: '{{title}} -- {{year}}/{{month}}/{{day}}',
sortable_fields: {
fields: ['title', 'date'],
default: {
field: 'title'
}
},
create: true,
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: [
{
label: 'Title',
name: 'title',
widget: 'string',
},
{
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,
},
{
label: 'Body',
name: 'body',
widget: 'text',
hint: 'Main content goes here.',
},
],
},
{
name: 'faq',
label: 'FAQ',
folder: '_faqs',
create: true,
fields: [
{
label: 'Question',
name: 'title',
widget: 'string',
},
{
label: 'Answer',
name: 'body',
widget: 'text',
},
{
name: 'posts',
label: 'Posts',
label_singular: 'Post',
widget: 'list',
summary: "{{fields.post | split('|', '$1')}}",
fields: [
{
label: 'Related Post',
name: 'post',
widget: 'relationKitchenSinkPost',
collection: 'posts',
display_fields: ['title', 'date'],
search_fields: ['title', 'body'],
value_field: '{{title}}|{{date}}',
}
]
},
],
},
{
name: 'settings',
label: 'Settings',
delete: false,
editor: {
preview: false,
},
files: [
{
name: 'general',
label: 'Site Settings',
file: '_data/settings.json',
description: 'General Site Settings',
fields: [
{
label: 'Number of posts on frontpage',
name: 'front_limit',
widget: 'number',
min: 1,
max: 10,
},
{
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',
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: 'text',
},
],
},
],
},
],
},
{
name: 'kitchenSink',
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: 'string',
},
{
label: 'Datetime',
name: 'datetime',
widget: 'datetime',
},
{
label: 'Date',
name: 'date',
widget: 'datetime',
},
{
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: 'text',
},
{
label: 'Datetime',
name: 'datetime',
widget: 'datetime',
},
{
label: 'Date',
name: 'date',
widget: 'datetime',
},
{
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: 'text',
},
{
label: 'Datetime',
name: 'datetime',
widget: 'datetime',
},
{
label: 'Date',
name: 'date',
widget: 'datetime',
},
{
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: 'text',
},
{
label: 'Datetime',
name: 'datetime',
widget: 'datetime',
},
{
label: 'Date',
name: 'date',
widget: 'datetime',
},
{
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: 'text',
},
{
label: 'Datetime',
name: 'datetime',
widget: 'datetime',
},
{
label: 'Date',
name: 'date',
widget: 'datetime',
},
{
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: 'text',
},
{
label: 'Datetime',
name: 'datetime',
widget: 'datetime',
},
{
label: 'Date',
name: 'date',
widget: 'datetime',
},
{
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: 'text',
},
],
},
{
label: 'Type 3 Object',
name: 'type_3_object',
widget: 'object',
fields: [
{
label: 'Date',
name: 'date',
widget: 'datetime',
},
{
label: 'Image',
name: 'image',
widget: 'image',
},
{
label: 'File',
name: 'file',
widget: 'file',
},
],
},
],
},
],
},
],
},
});
window.CMS.init();
const PostPreview = window.createClass({
render: function () {