tree: 7ae5d123bced50ffccce55bcbf3b65512677c5aa [path history] [tgz]
  1. example/
  2. tarify/
  3. BUILD
  4. gomod-import-force.go
  5. README.md
  6. rules.bzl
tools/gostatic/README.md

gostatic site generator

This implements support for 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 - please refer to that file for more information.

FieldDescriptionExample
templatesList of template sources/targets. This is used to populate the TEMPLATES config option.[ ":site.tmpl" ]
source_dirBUILDfile-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"
srcsList of template sources/targets. This is what will be available to gostatic during compilation.[ "src/blog/first.md" ]
extra_configRest 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.