### Generated by Statocles version <%= $Statocles::VERSION %>
# This is the site configuration file. The format is YAML, and the config is
# read by Beam::Wire, a dependency-injection library that builds complete
# objects. For full details on how to edit this file, see
# Statocles::Help::Config.
#
# This file contains configuration for objects. Each object has a name, like
# "site", "theme", or "blog_app". This name can be used to refer to the object
# later, for example, using "$ref: name".
#
# Every object has a "class". Developers can customize behavior by changing the
# class or creating their own classes. If you need help with an object, look at
# the class's documentation.
#
# Every object has "args", which are the object's attributes. See the class's
# documentation for a full list of attributes and what they do.
#
# Many objects have events. Event handlers can be configured using the "on"
# key. See the class's documentation for a list of possible events. Every
# event handler should have at least "$class" and a "$sub". "$class" is the
# plugin class. "$sub" is the plugin method to run. If necessary, you can
# add "$args" to configure the plugin object.
# site: This is the main site object. Site objects handle building and
# deploying, and store global site data like themes and navigation. See
# Statocles::Site for a full list of attributes and what they do.
site:
$class: 'Statocles::Site'
# title: This is the title of the site, shown in the <title> tag
title: 'My Statocles Site'
# base_url: This is the base URL the site will be deployed to. It
# should be a full URL, and may contain a path, like:
#
# http://example.com/username
#
# If the base_url contains a path, all internal links will be
# rewritten appropriately.
base_url: '<%= $site->{base_url} %>'
# apps: These are the applications in this site. The name of the app,
# "blog", "page", or "static", is used to refer to it in commands.
apps:
# blog: This is the blog app
blog:
$ref: 'blog_app'
# page: This app turns any Markdown page into HTML
page:
$ref: 'page_app'
# plugins: These are plugins that can add features and alter the
# content of the site.
plugins:
link_check:
$class: 'Statocles::Plugin::LinkCheck'
# theme: The theme builds and manages the templates. Use themes to
# change how your site looks.
theme:
$ref: 'theme'
# index: The path to the page that should be used for the site index.
index: '<%= $site->{index} %>'
# nav: These are lists of navigation links used by the theme.
# Navigations are used to move between applications, or to go to
# specific, important pages.
#
# The "main" nav is the primary navigation for the site. Every theme
# should have this one.
#
# Each nav consists of an array of links. See the Statocles::Link class
# for a list of attributes and what they mean. The most important are
# "text", the text of the link, and "href", the URL to link to.
nav:
main:
% for my $link ( @{ $site->{nav}{main} // [] } ) {
- text: '<%= $link->{text} %>'
href: '<%= $link->{href} %>'
% }
# deploy: This is the deploy object, used to deploy this site.
deploy:
$ref: 'deploy'
# theme: These are the settings for the theme. See Statocles::Help::Theme for
# more information, and Statocles::Theme for a full list of attributes and what
# they do
theme:
$class: 'Statocles::Theme'
# store: The store points to the directory where the theme's
# templates are kept. Under-the-hood, this is a Statocles::Store
# object.
#
# Themes have a special syntax to refer to themes that come bundled with
# Statocles. See Statocles::Help::Theme for more information
store: '<%= $theme->{store} %>'
# deploy: These are the settings for the site's deploy. See Statocles::Deploy::File
# for a full list of attributes and what they do.
deploy:
$class: '<%= $deploy->{'$class'} %>'
% for my $k ( keys %{ $deploy } ) {
<%= $k %>: '<%= $deploy->{$k} %>'
% }
#----------------------------------------------------------------------------
# Applications
#----------------------------------------------------------------------------
#
# All applications have a "url_root" attribute, which is the root URL of the
# app. All the app's pages will be under this URL.
#
# Most applications have a "store" attribute. The store points to the directory
# where the application's data is kept. Under-the-hood, this is a
# Statocles::Store object, but you only need to specify the directory path.
# blog_app: These are the settings for the blog application.
blog_app:
$class: 'Statocles::App::Blog'
url_root: '/blog'
store: 'blog'
# page_app: These are the settings for the page application.
page_app:
$class: 'Statocles::App::Basic'
store: 'page'
url_root: '/page'