# This file defines the contenttypes on the website. See the documentation for
# details: https://docs.bolt.cm/contenttypes/intro
# The Homepage contenttype is a singleton: There can be only one record of this
# contenttype.
homepage:
name: Homepage
singular_name: Homepage
fields:
title:
type: text
class: large
group: content
postfix: |
The 'Homepage' can contain basic information about the website. This title will be
shown on the homepage of the website, as the name implies. To change the
name of the site, as is shown in the header, and the tab
in the webbrowser, edit sitename:
in the configuration file.
image:
type: image
placeholder: https://source.unsplash.com/1920x640/?cityscape,landscape,nature/__random__
teaser:
type: html
height: 150px
content:
type: html
height: 300px
contentlink:
type: text
label: Link
placeholder: 'contenttype/slug or http://example.org/'
postfix: "Use this to add a link for this Homepage. This could either be an 'internal' link like page//about, if you use a contenttype/slug combination. Otherwise use a proper URL, like `http://example.org`."
slug:
type: slug
uses: title
group: meta
viewless: true
singleton: true
default_status: published
icon_many: "fa:home"
icon_one: "fa:home"
# Pages can be used for the more 'static' pages on your site. This content-type
# has a 'templateselect' field, which allows you to override the record_template
# setting for an individual page.
# The taxonomy for this ContentType is defined as 'groups', which is a so-called
# "grouping taxonomy". This way you can easily group sets of pages that logically
# belong together. If your site has a 'services' section, in which you'd like to
# list the different types of services a company provides, you can group these
# together.
pages:
name: Pages
singular_name: Page
fields:
title:
type: text
class: large
group: content
slug:
type: slug
uses: title
image:
type: image
placeholder: https://source.unsplash.com/1280x768/?business,workplace/__random__
teaser:
type: html
height: 150px
body:
type: html
height: 300px
template:
type: templateselect
filter: '*.twig'
taxonomy: [ groups ]
recordsperpage: 20
# Entries can be used for things like 'news' or 'blogpostings'. They have a
# 'teaser', which can be used for a short blurb on listing-pages, allowing
# visitors to click-through to the rest of the entry. It also has fields for an
# image and an optional video.
# A relation is defined to the pages ContentType. This way you can refer to a
# page from your news-item.
# This ContentType defines 'categories' and 'tags' as taxonomies, allowing the
# editor to use both to categorize a specific entry.
# The 'sort' is set to '-datepublish', which means that newer entries will be
# shown above older entries.
entries:
name: Entries
singular_name: Entry
fields:
title:
type: text
class: large
group: content
slug:
type: slug
uses: title
teaser:
type: html
height: 150px
body:
type: html
height: 300px
image:
type: image
group: media
placeholder: https://source.unsplash.com/1280x768/?business,workspace,interior/__random__
video:
type: video
relations:
pages:
multiple: false
order: title
label: Select a page
taxonomy: [ categories, tags ]
record_template: entry.twig
listing_template: listing.twig
listing_records: 10
default_status: published
sort: -datepublish
recordsperpage: 20
# The 'Showcases' is not particularly useful in most cases, but it does a good
# job of showcasing most of the available fieldtypes. Feel free to delete it, or
# copy some fields to your own ContentTypes.
# Since no templates are defined for this ContentType, the default record_template,
# listing_template, and related settings are used from config.yml
showcases:
name: Showcases
slug: showcases
singular_name: Showcase
singular_slug: showcase
fields:
title:
type: text
class: large
required: true
pattern: ".{2,255}" # see: http://html5pattern.com/
error: "The Title field is required, and must contain at least 2 characters"
group: Text
slug:
type: slug
uses: [ title ]
html:
type: html
height: 150px
textarea:
type: textarea
postfix: "
This is a plain text area. the contents will not be processed.
" markdown: type: markdown postfix: "This field gets parsed as Markdown, when rendered on the site.
" geolocation: type: geolocation group: Media embed: type: embed video: type: video image: type: image attrib: title # Note: retrieve this in your template with {{ record.values.image.title }} extensions: [ gif, jpg, png ] placeholder: https://source.unsplash.com/1280x768/?animal,koala,kitten,puppy,cute/__random__ imagelist: type: imagelist file: type: file group: files filelist: type: filelist checkbox: type: checkbox label: "This is a checkbox" group: other datetime: type: datetime default: "2000-01-01" variant: inline date: type: date default: "first day of last month" variant: inline integerfield: type: integer index: true floatfield: type: float selectfield: type: select values: [ foo, bar, baz ] multiselect: type: select values: [ A-tuin, Donatello, Rafael, Leonardo, Michelangelo, Koopa, Squirtle ] multiple: true postfix: "Select your favourite turtle(s)." selectentry: type: select values: entries/id,title postfix: "Select an entry" autocomplete: true sort: title repeater: type: repeater group: repeater label: Simple repeater example icon: fa:repeat limit: 3 prefix: "This allows you to create multiple sets of fields. Use the add button at the bottom to create a new empty set.
" fields: repeattitle: type: text repeatimage: type: image extensions: [ gif, jpg, png ] repeatcontent: type: html relations: entries: multiple: false label: "Choose an entry" order: -id format: "{{ item.title|escape }} (№ {{ item.id }})" postfix: "By selecting an Entry, you're creating a bi-directional relationship to that Entry." pages: multiple: true order: title label: Select zero or more pages taxonomy: [ categories, tags ] show_on_dashboard: true default_status: published searchable: true icon_many: "fa:gift" icon_one: "fa:gift" # The 'Blocks' ContentType is a so-called 'resource ContentType'. This means # that it can be used to manage smaller pieces of content, like the 'about us' # text, an 'our address' in the footer, or similar short blurbs of text. # For more info, see: https://docs.bolt.cm/howto/resource-contenttype blocks: name: Blocks singular_name: Block fields: title: type: text class: large group: "Block" slug: type: slug uses: [ title ] content: type: html height: 150px contentlink: type: text label: Link placeholder: 'contenttype/slug or http://example.org/' postfix: "Use this to add a link for this Block. This could either be an 'internal' link like page/about, if you use a contenttype/slug combination. Otherwise use a proper URL, like `http://example.org`." image: type: image attrib: title extensions: [ gif, jpg, png ] show_on_dashboard: true viewless: true default_status: published searchable: false icon_many: "fa:cubes" icon_one: "fa:cube" # Possible field types: # # text - varchar(256) - input type text. # integer - integer - Input field for integer numbers. # float - double - Input field for floating numbers, stored as 'Double'. # geolocation - text (65kb) - Input field for geolocation. Enter an address, and the location is geocoded to latitude/longitude coordinates # imagelist - text (65kb) - Input type for imagelists. Add multiple images with a description. Useful for image sliders, galleries, etcetera. # image - varchar(256) - image select/upload widget, stored as filename. # file - varchar(256) - file select/upload widget, stored as filename. # filelist - text (65kb) - Input type for a list of files. Including a description. # video - varchar(256) - Video embed widget, stored as filename. # html - text (65kb) - wysiwyg element. # textarea - varchar(32768) - Simple, plain < textarea > field. # markdown - varchar(32768) - Simple, plain < textarea > field, which is parsed as Markdown text. # datetime - datetime - date and time selector widget. # date - datetime - date selector widget. # select - varchar(256) - select with predefined values # templateselect - varchar(256) - select with template filenames # checkbox - integer - checkbox-field which is 1 (checked) or 0 (unchecked) # Using YAML repeated nodes # # YAML allows the defining of "repeated nodes". These allow you to define a 'node' # with a 'key: &name' and referenced later with '<<: *name' # # Bolt allows you to define this with the special entry of '__nodes:' that itself # won't create a ContentType, but will allow you to use it in actual ContentTypes # to prevent repeating yourself. # # To achieve this, first create a key '__nodes:' #__nodes: # field_defaults: &field_defaults # title: # type: text # class: large # group: main # slug: # type: slug # uses: title # template_defaults: &template_defaults # template: # type: templateselect # filter: '*.twig' # group: meta # # Then, as an example, you could create a ContentType with default fields, with # an additional 'image' field. # #contenttype_abc: # name: ContentType Abc # fields: # <<: *field_defaults # image: # type: image # attrib: title # extensions: [ gif, jpg, png ] # <<: *template_defaults # taxonomy: [ chapters ] # recordsperpage: 10 # # Alternatively, or additionally, you then can then create a ContentType with # default fields, and a 'select' field, and a different 'templateselect' option. # #contenttype_xyz: # name: ContentType Xyz # fields: # <<: *field_defaults # selectfield: # type: select # values: [ none, foo, bar ] # template: # type: templateselect # filter: '*_xyz.twig' # taxonomy: [ tags ] # recordsperpage: 20