# 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