Mercurial > yakumo_izuru > aya
comparison README.md @ 8:90f73028f891 draft
added readme
| author | zaitsev.serge |
|---|---|
| date | Fri, 05 Dec 2014 21:49:42 +0000 |
| parents | |
| children | 7119cca186bf |
comparison
equal
deleted
inserted
replaced
| 7:11073a30f71f | 8:90f73028f891 |
|---|---|
| 1 zs | |
| 2 == | |
| 3 | |
| 4 zs is an extremely minimal static site generator written in Go. | |
| 5 | |
| 6 It's inspired by `zas` generator, but is even more minimal. | |
| 7 | |
| 8 The name stands for 'zen static' as well as it's my initials. | |
| 9 | |
| 10 ## Features | |
| 11 | |
| 12 * Zero configuration (no configuration file needed) | |
| 13 * Cross-platform | |
| 14 * Highly extensible | |
| 15 * Easy to learn | |
| 16 * Fast | |
| 17 | |
| 18 ## Installation | |
| 19 | |
| 20 Download the binaries from Github or build it manually: | |
| 21 | |
| 22 $ go get github.com/zserge/zs | |
| 23 | |
| 24 ## Ideology | |
| 25 | |
| 26 Keep your texts in markdown format in the root directory of your blog/site. | |
| 27 | |
| 28 Keep all service files (extensions, layout pages, deployment scripts etc) | |
| 29 in the `.zs` subdirectory. | |
| 30 | |
| 31 Define variables in the header of the markdown files: | |
| 32 | |
| 33 title: My web site | |
| 34 keywords: best website, hello, world | |
| 35 | |
| 36 Markdown text goes after a *newline* | |
| 37 | |
| 38 Use placeholders for variables and plugins in your markdown or html | |
| 39 files, e.g. `{{ title }}`. | |
| 40 | |
| 41 Write extensions in any language you like and put them into the `.zs` | |
| 42 subdiretory. | |
| 43 | |
| 44 Everything the extensions prints to stdout becomes the value of the | |
| 45 placeholder. | |
| 46 | |
| 47 Extensions can use special environment variables, like: | |
| 48 | |
| 49 * `$ZS` - a path to the `zs` executable | |
| 50 * `$ZS_OUTDIR` - a path to the directory with generated files | |
| 51 * `$ZS_FILE` - a path to the currently processed markdown file | |
| 52 * `$ZS_URL` - a URL for the currently generated page | |
| 53 | |
| 54 You can also pass command line arguments, e.g: `{{ my-plugin arg1 arg2 }}` | |
| 55 | |
| 56 ## Example of RSS generation | |
| 57 | |
| 58 ## Hooks | |
| 59 | |
| 60 There are two special plugin names that are executed every time the build | |
| 61 happens - `pre` and `post`. You can define some global action here like compile | |
| 62 your LESS to CSS etc: | |
| 63 | |
| 64 # .zs/post | |
| 65 | |
| 66 #!/bin/sh | |
| 67 lessc < $ZS_OUTDIR/styles.less > $ZS_OUTDIR/styles.css | |
| 68 rm -f $ZS_OUTDIR/styles.css | |
| 69 | |
| 70 ## Command line usage | |
| 71 | |
| 72 `zs build` re-builds your site. | |
| 73 | |
| 74 `zs watch` rebuilds your site every time you modify any file. | |
| 75 | |
| 76 `zs var <filename> [var1 var2...]` prints a list of variables defined in the | |
| 77 header of a given markdown file, or the values of certain variables (even if | |
| 78 it's an empty string). | |
| 79 | |
| 80 ## License | |
| 81 | |
| 82 The software is distributed under the MIT license. |
