annotate README.md @ 12:7119cca186bf draft

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