The tiny static site generator written in lisphp.
PHP Shell


The tiny static site generator written in lisphp.


To start a new site, just add the dependency via composer:

$ composer init --require igorw/balrog:dev-master -n

Now you can add the following directories:

  • assets: All of these files will be copied to the web directory. You can add JavaScript, CSS and images in here.

  • 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.

    Layouts get access to following variables:

    • 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.

    • posts: A listing of all posts in reverse order of publication.

    Filenames that follow the index.$format.twig naming scheme will get compiled to an index.$format file.

  • posts: Markdown files representing blog posts. Must be in the format of, e.g. Each one must begin with a YAML front matter. Here is a sample blog post:

      layout: post
      title: Blogging Like a Hacker
      # Blogging Like a Hacker
      * I’m bloggin yo!
      * ORLY?
      * YARLY!

    The following fields are defined:

    • 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.

In order to build the site, you can use the balrog build command:

$ vendor/bin/balrog build

This will populate the static directory with a set of files that can be deployed onto any static web server.

Quote of the day

"Fly, you fools!" - Gandalf