A simple static site/blog generator like jekyll (made in node.js)
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
.gitignore
README.md
blode.js
package.json

README.md

Blode

A simple static site/blog generator like jekyll but simpler, made in node.js

Install

$npm install blode -g

Structure

.
|-- config.json
|-- static
|-- layouts
|   |-- main.html
|-- pages
|   |-- no-layout-page.md
|   |   main
|   |   |-- page-using-main-layout.md
|-- output

config.json

Main site configuration.
The possible keys are:

  • port (number): the default server port (--server).

  • url (string): the site's url.

  • rss (object): if you specify this object in the config an RSS will be created everytime you regenerate the site (--gen). The object format:

    {
        "title": "a title",
        "description": "a description",
        "feed_url": "http://example.com/rss.xml",
        "site_url": "http://example.com",
        "image_url": "http://example.com/icon.png",
        "author": "Test Jones"
    }
    

static

All static files like html, images, documents, etc. They'll be copied to the output folder.

layouts

Layout files represented as doT html files (allowed extensions: .htm, .html). You can use the following variables inside a layout:

  • blode.body: this is the main content of the layout
  • blode.posts: an array of all you site's posts. Each one is an object in the form {"path": "/full/path", "link": "post-name.html", "name": "post-name"}

E.g:

<body>
-- header --
{{=blode.body}}
-- footer --
</body>

All files should be utf-8 encoded.

pages

The dynamic content. They should be markdown files (extension .md). If you put a page inside a subfolder called X then X is the name of the layout (without extension) to use for this page. All files should be utf-8 encoded.

output

The folder where the generated content will be placed.

Usage

You can use -v or --verbose to execute the commands in verbose mode.

blode --help

Show the help.

blode --new /my/new/site

Creates a new site skeleton at /my/new/site or at the current working dir if none is specified.

blode --gen

Generates the site at current dir (must be a valid blode directory).

blode --server 3000

Starts a web server at port 3000 (default: 4000) to test the site (must be a valid blode directory).