annotate README.md @ 23:40f55059fbfa draft

fixed output file names in html pages, fixed amber function bindings, replaced print command with build, fixed plugin functions, implemented zs and exec functions
author zaitsev.serge
date Sun, 30 Aug 2015 12:20:35 +0000
parents 7119cca186bf
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.