Balrog
The tiny static site generator written in lisphp., (*1)
Usage
To start a new site, just add the dependency via composer:, (*2)
$ composer init --require igorw/balrog:dev-master -n
Now you can add the following directories:, (*3)
-
assets: All of these files will be copied to the web directory. You can
add JavaScript, CSS and images in here., (*4)
-
layouts: The layouts are used to render the pages. They have a
.html.twig
suffix. You can create base templates and have more specific
ones that extend them using the extends
tag., (*5)
Layouts get access to following variables:, (*6)
-
post: Contains the data of the current post (it is not set on the index
page). A post has title
, body
and any additional front-matter meta data.
body
contains the markdown body rendered as html., (*7)
-
posts: A listing of all posts in reverse order of publication., (*8)
Filenames that follow the index.$format.twig
naming scheme will get compiled
to an index.$format
file., (*9)
-
posts: Markdown files representing blog posts. Must be in the format of
YYYY-mm-dd-slug.md
, e.g. 2012-09-20-like-a-hacker.md
. Each one must begin
with a YAML front matter. Here is a sample blog post:, (*10)
---
layout: post
title: Blogging Like a Hacker
---
# Blogging Like a Hacker
* I’m bloggin yo!
* ORLY?
* YARLY!
The following fields are defined:, (*11)
-
title: Title of the blog post for display on the index.
-
layout: Layout to be used for rendering this post. Defaults to
default
,
which means layouts/default.html.twig
is rendered unless specified
otherwise.
-
hidden: Set this to true to hide a post from the index.
Other fields can be defined at will and used in the template., (*12)
In order to build the site, you can use the balrog build
command:, (*13)
$ vendor/bin/balrog build
This will populate the static
directory with a set of files that can be
deployed onto any static web server., (*14)
Quote of the day
"Fly, you fools!" - Gandalf, (*15)