Example

Introduction

First and foremost, Welcome to RokCMS! Here I'll walk you through the basics of this whole system. Firstly, I suggest opening the admin area and following along.

Site

The Name of your site is accessible when creating pages and posts by using {{ site.name }} .
The Hostname is how the system knows to render your site instead of someone else's. If you delete all of these by accident and can no longer access your site, you can just visit oeQuacki Admin and login there to fix it.
The Blog Base is prefixed to all your blog posts paths so they remain separate to your CMS pages. This path will take precedence over a CMS page with the same path.
The SCSS is SASS and is included in every theme when you call {{ page.stylesheet_tag }}
The Javascript is included in every theme when you call {{ page.javascript_tag }}

Theme

The Name of the theme is just for recognisability in other screens.
The Update URL will be where the system goes to check for updates to this theme. This is currently unimplemented and does nothing.
The Version is going to be used for update checks but currently does nothing.
The HTML is the markup for this page. [[yield]] will be replaced by the actual content of the page and should always be present.
The SCSS is SASS and is included in every page when you call {{ page.stylesheet_tag }}
The Javascript is included in every page when you call {{ page.javascript_tag }}

Layout

The Name of the layout is just for recognisability in other screens.
The Theme is the theme to use when rendering pages that use this layout.
The Page is the markup to use when rendering a page. Each [[page:blah]] you have will give you another area to edit on a page using this layout. For instance if you have <div>[[page:left]]</div> <div>[[page:centre]]</div> <div>[[page:right]]</div> you'd get three fields to use on a page.
The Post is the markup to us when rendering a post. here you'll want to use {{ page.content }} instead of [[page:content]] and you can't have more than one field.

Page

The Title of your page is accessible by using {{ page.title }} .
The Slug is used to generate the path of the page. For the root page you'll want this to just be / but for deeper pages a single word is a good choice. Something like 'about', 'contact', or 'boop'. These are automatically concatenated onto their parents slugs to create a path.
The Layout to render with.
The Parent of this page, blank for root.
The Published determines whether or not the public can actually see this page.
The Content (or whatever you called it) is the markup for this page. You can use any of the methods listed on the page drop , on the site drop , or on the base drop .

Post

The Title of your page is accessible by using {{ page.title }} .
The Permament Link is used to generate the path of the post. This will be prepended with whatever you set the blog base to (which be default is /blog).
The Layout to render with.
The Post is the markup for this post. You can use any of the methods listed on the post drop , on the site drop , or on the base drop . These are referenced as page though, not post. So you'd still call something like {{ page.created_by }} .

Upload

The Name is used by the upload helper to generate urls. So if you had an upload named 'Beep' you'd access it in a page like {{ 'Beep' | upload }} . If the upload is an image you can use three different versions. Thumb (512x512), preview (1024x1024), and original. If left blank (like before) it will default to original. To access the other versions you'd call it like this {{ 'Beep' | upload: 'thumb' }} . If this is left blank it'll be set to the name of the file uploaded.
The File is what you want to upload.

This whole system runs off of Liquid. I strongly suggest going over to Liquid for Designers and familiarising yourself.

Example blog index

The list below will only show the first 5 published posts. Go and create some to see it in action.