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. |