blake 0.4.1 blake: ^0.4.1 copied to clipboard
Experimental static site generator for Dart with Markdown support, mustache templates and live-reload.
Blake: Static Site Generator #
Did he smile his work to see?
Did he who made the Lamb make thee?
Blake is an experimental static site generator written in the Dart language.
Features as of now:
- Markdown support.
- YAML configuration and front-matter.
- Mustache templates.
- Live-reload.
- Single native binary.
- YAML/JSON data content and non-public Data pages.
- Define content types for quick creation.
- Basic JSON search index.
- Sitemap generation.
- Inline & body shortcodes.
Remember that this project is WIP. Everything can change at any time.
Install #
You can download compiled binary on release page. Builds are currently done manually and not every platform (i.e. Windows/Mac/Linux) will be available for each release.
Another option is using pub global activate blake
.
Usage #
Use blake init
to setup a new project in the current directory. blake init <name>
will setup the project inside the <name>
directory.
Use blake build
to generate the site from your files. By default, generated files will be outputted into the public
folder.
Use blake serve
to start a webserver to see your site instantly. The site will be rebuilt every time you change files in your project and the browser tab will be reloaded automatically.
Use blake new
to create new content based on types defined in types
folder.
And as usual, blake
or blake help
will show usage help.
Structure #
content
directory contains all Markdown files which will be transformed into HTML files.
static
directory files will be copied into the public
folder without change.
public
contains generated files.
templates
should contain templates which will be used to process Markdown files inside content
.
data
contains YAML/JSON files which you can use inside templates.
types
is used by the new
command to quickly create content.
config.yaml
configures build options for your site.
Build #
To create native binary use the following command. You need to have installed full Dart SDK at your computer (Dart packaged with Flutter is not enough).
# Windows
dart2native bin/blake.dart -o bin/blake.exe
# Linux or macOS
dart2native bin/blake.dart -o bin/blake
You can also run this project without compiling to the binary.
dart bin/blake.dart
You can activate Blake globally from a local path which might be useful during development.
pub global activate --source path .