forked from hswaw/hscloud
44 lines
1.9 KiB
Markdown
44 lines
1.9 KiB
Markdown
gostatic site generator
|
|
=======================
|
|
|
|
This implements support for [gostatic](https://github.com/piranha/gostatic), a static site generator, inside hscloud.
|
|
|
|
Creating a gostatic site
|
|
------------------------
|
|
|
|
To get started, copy over the skeleton from //tools/gostatic/example into a new directory.
|
|
|
|
mkdir -p personal/foo
|
|
cp -rv tools/gostatic/example personal/foo/mysite
|
|
|
|
You can also build your own `gostatic_tarball` from scratch if you are familiar enough with gostatic.
|
|
|
|
You can then then build a tarball of your site by running:
|
|
|
|
bazel build //personal/foo/mysite
|
|
|
|
Your site will be built and tarred up into `bazel-bin/personal/foo/mysite/mysite.tar`. You can then use this to populate a container in `docker_rules`.
|
|
|
|
TODO(q3k): add a target that starts up a simple web server for testing the rendered site.
|
|
|
|
Configuring a gostatic site
|
|
---------------------------
|
|
|
|
Configuration is done via the `gostatic_tarball` rule. This mostly generates an upstream gostatic [configuration file](https://github.com/piranha/gostatic#configuration) - please refer to that file for more information.
|
|
|
|
| Field | Description | Example |
|
|
|-------|-------------|---------|
|
|
| `templates` | List of template sources/targets. This is used to populate the TEMPLATES config option. | `[ ":site.tmpl" ]` |
|
|
| `source_dir` | BUILDfile-relative source directory containing site sources. This is used to populate the SOURCE config option. All files given in `srcs` must be contained within this directory. | `"src"` |
|
|
| `srcs` | List of template sources/targets. This is what will be available to gostatic during compilation. | `[ "src/blog/first.md" ]` |
|
|
| `extra_config` | Rest of the gostatic config, ie. rules. | |
|
|
|
|
Running gostatic-the-tool
|
|
-------------------------
|
|
|
|
If you want to run plain gostatic for some odd reason, it's available under:
|
|
|
|
bazel run //tools/gostatic
|
|
|
|
TODO(q3k): allow running this against a `gostatic_tarball`'s config.
|