saait - www.codemadness.org - www.codemadness.org saait content files
(HTM) git clone git://git.codemadness.org/www.codemadness.org
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
saait (14018B)
---
1 1<- Back / codemadness.org 70
2 i codemadness.org 70
3 i codemadness.org 70
4 i# Saait: a boring HTML page generator codemadness.org 70
5 i codemadness.org 70
6 iLast modification on 2020-07-20 codemadness.org 70
7 i codemadness.org 70
8 iSaait is the most boring static HTML page generator. codemadness.org 70
9 i codemadness.org 70
10 iMeaning of saai (dutch): boring. Pronunciation: site codemadness.org 70
11 i codemadness.org 70
12 1Read the README for more information about it. /git/saait/file/README.gph codemadness.org 70
13 i codemadness.org 70
14 1I used to use »shellscripts« to generate the static pages, but realised I /git/static-site-scripts/files.gph codemadness.org 70
15 iwanted a small program that works on each platform consistently. There are codemadness.org 70
16 imany incompatibilities or unimplemented features in base tools across different codemadness.org 70
17 iplatforms: Linux, UNIX, Windows. codemadness.org 70
18 i codemadness.org 70
19 i codemadness.org 70
20 iThis site is created using saait. codemadness.org 70
21 i codemadness.org 70
22 i codemadness.org 70
23 i## Features codemadness.org 70
24 i codemadness.org 70
25 i* Single small binary that handles all the things. At run-time no dependency on codemadness.org 70
26 i other tools. codemadness.org 70
27 i* Few lines of code (about 575 lines of C) and no dependencies except: a C codemadness.org 70
28 i compiler and libc. codemadness.org 70
29 i* Works on most platforms: tested on Linux, *BSD, Windows. codemadness.org 70
30 i* Simple template syntax. codemadness.org 70
31 i* Uses HTML output by default, but can easily be modified to generate any codemadness.org 70
32 i textual content, like gopher pages, wiki pages or other kinds of documents. codemadness.org 70
33 i* Out-of-the-box supports: creating an index page of all pages, Atom feed, codemadness.org 70
34 i twtxt.txt feed, sitemap.xml and urllist.txt. codemadness.org 70
35 i codemadness.org 70
36 i codemadness.org 70
37 i## Cons codemadness.org 70
38 i codemadness.org 70
39 i* Simple template syntax, but very basic. Requires C knowledge to extend it if codemadness.org 70
40 i needed. codemadness.org 70
41 i* Only basic (no nested) template blocks supported. codemadness.org 70
42 i codemadness.org 70
43 i codemadness.org 70
44 i## Clone codemadness.org 70
45 i codemadness.org 70
46 i git clone git://git.codemadness.org/saait codemadness.org 70
47 i codemadness.org 70
48 i codemadness.org 70
49 i## Browse codemadness.org 70
50 i codemadness.org 70
51 iYou can browse the source-code at: codemadness.org 70
52 i codemadness.org 70
53 h* https://git.codemadness.org/saait/ URL:https://git.codemadness.org/saait/ codemadness.org 70
54 1* gopher://codemadness.org/1/git/saait /git/saait codemadness.org 70
55 i codemadness.org 70
56 i codemadness.org 70
57 i## Download releases codemadness.org 70
58 i codemadness.org 70
59 iReleases are available at: codemadness.org 70
60 i codemadness.org 70
61 h* https://codemadness.org/releases/saait/ URL:https://codemadness.org/releases/saait/ codemadness.org 70
62 1* gopher://codemadness.org/1/releases/saait /releases/saait codemadness.org 70
63 i codemadness.org 70
64 i codemadness.org 70
65 i## Documentation / man page codemadness.org 70
66 i codemadness.org 70
67 iBelow is the saait(1) man page, which includes usage examples. codemadness.org 70
68 i codemadness.org 70
69 i codemadness.org 70
70 i SAAIT(1) General Commands Manual SAAIT(1) codemadness.org 70
71 i codemadness.org 70
72 i NAME codemadness.org 70
73 i saait the most boring static page generator codemadness.org 70
74 i codemadness.org 70
75 i SYNOPSIS codemadness.org 70
76 i saait [-c configfile] [-o outputdir] [-t templatesdir] pages... codemadness.org 70
77 i codemadness.org 70
78 i DESCRIPTION codemadness.org 70
79 i saait writes HTML pages to the output directory. codemadness.org 70
80 i codemadness.org 70
81 i The arguments pages are page config files, which are processed in the codemadness.org 70
82 i given order. codemadness.org 70
83 i codemadness.org 70
84 i The options are as follows: codemadness.org 70
85 i codemadness.org 70
86 i -c configfile codemadness.org 70
87 i The global configuration file, the default is "config.cfg". Each codemadness.org 70
88 i page configuration file inherits variables from this file. These codemadness.org 70
89 i variables can be overwritten per page. codemadness.org 70
90 i codemadness.org 70
91 i -o outputdir codemadness.org 70
92 i The output directory, the default is "output". codemadness.org 70
93 i codemadness.org 70
94 i -t templatesdir codemadness.org 70
95 i The templates directory, the default is "templates". codemadness.org 70
96 i codemadness.org 70
97 i DIRECTORY AND FILE STRUCTURE codemadness.org 70
98 i A recommended directory structure for pages, although the names can be codemadness.org 70
99 i anything: codemadness.org 70
100 i pages/001-page.cfg codemadness.org 70
101 i pages/001-page.html codemadness.org 70
102 i pages/002-page.cfg codemadness.org 70
103 i pages/002-page.html codemadness.org 70
104 i codemadness.org 70
105 i The directory and file structure for templates must be: codemadness.org 70
106 i templates/<templatename>/header.ext codemadness.org 70
107 i templates/<templatename>/item.ext codemadness.org 70
108 i templates/<templatename>/footer.ext codemadness.org 70
109 i codemadness.org 70
110 i The following filename prefixes are detected for template blocks and codemadness.org 70
111 i processed in this order: codemadness.org 70
112 i codemadness.org 70
113 i "header." codemadness.org 70
114 i Header block. codemadness.org 70
115 i codemadness.org 70
116 i "item." codemadness.org 70
117 i Item block. codemadness.org 70
118 i codemadness.org 70
119 i "footer." codemadness.org 70
120 i Footer block. codemadness.org 70
121 i codemadness.org 70
122 i The files are saved as output/<templatename>, for example codemadness.org 70
123 i templates/atom.xml/* will become: output/atom.xml. If a template block codemadness.org 70
124 i file does not exist then it is treated as if it was empty. codemadness.org 70
125 i codemadness.org 70
126 i Template directories starting with a dot (".") are ignored. codemadness.org 70
127 i codemadness.org 70
128 i The "page" templatename is special and will be used per page. codemadness.org 70
129 i codemadness.org 70
130 i CONFIG FILE codemadness.org 70
131 i A config file has a simple key=value configuration syntax, for example: codemadness.org 70
132 i codemadness.org 70
133 i # this is a comment line. codemadness.org 70
134 i filename = example.html codemadness.org 70
135 i title = Example page codemadness.org 70
136 i description = This is an example page codemadness.org 70
137 i created = 2009-04-12 codemadness.org 70
138 i updated = 2009-04-14 codemadness.org 70
139 i codemadness.org 70
140 i The following variable names are special with their respective defaults: codemadness.org 70
141 i codemadness.org 70
142 i contentfile codemadness.org 70
143 i Path to the input content filename, by default this is the path codemadness.org 70
144 i of the config file with the last extension replaced to ".html". codemadness.org 70
145 i codemadness.org 70
146 i filename codemadness.org 70
147 i The filename or relative file path for the output file for this codemadness.org 70
148 i page. By default the value is the basename of the contentfile. codemadness.org 70
149 i The path of the written output file is the value of filename codemadness.org 70
150 i appended to the outputdir path. codemadness.org 70
151 i codemadness.org 70
152 i A line starting with # is a comment and is ignored. codemadness.org 70
153 i codemadness.org 70
154 i TABs and spaces before and after a variable name are ignored. TABs and codemadness.org 70
155 i spaces before a value are ignored. codemadness.org 70
156 i codemadness.org 70
157 i TEMPLATES codemadness.org 70
158 i A template (block) is text. Variables are replaced with the values set codemadness.org 70
159 i in the config files. codemadness.org 70
160 i codemadness.org 70
161 i The possible operators for variables are: codemadness.org 70
162 i codemadness.org 70
163 i $ Escapes a XML string, for example: < to the entity <. codemadness.org 70
164 i codemadness.org 70
165 i # Literal raw string value. codemadness.org 70
166 i codemadness.org 70
167 i % Insert contents of file of the value of the variable. codemadness.org 70
168 i codemadness.org 70
169 i For example in a HTML item template: codemadness.org 70
170 i codemadness.org 70
171 i <article> codemadness.org 70
172 i <header> codemadness.org 70
173 i <h1><a href="">${title}</a></h1> codemadness.org 70
174 i <p> codemadness.org 70
175 i <strong>Last modification on </strong> codemadness.org 70
176 i <time datetime="${updated}">${updated}</time> codemadness.org 70
177 i </p> codemadness.org 70
178 i </header> codemadness.org 70
179 i %{contentfile} codemadness.org 70
180 i </article> codemadness.org 70
181 i codemadness.org 70
182 i EXIT STATUS codemadness.org 70
183 i The saait utility exits 0 on success, and >0 if an error occurs. codemadness.org 70
184 i codemadness.org 70
185 i EXAMPLES codemadness.org 70
186 i A basic usage example: codemadness.org 70
187 i codemadness.org 70
188 i 1. Create a directory for a new site: codemadness.org 70
189 i codemadness.org 70
190 i mkdir newsite codemadness.org 70
191 i codemadness.org 70
192 i 2. Copy the example pages, templates, global config file and example codemadness.org 70
193 i stylesheets to a directory: codemadness.org 70
194 i codemadness.org 70
195 i cp -r pages templates config.cfg style.css print.css newsite/ codemadness.org 70
196 i codemadness.org 70
197 i 3. Change the current directory to the created directory. codemadness.org 70
198 i codemadness.org 70
199 i cd newsite/ codemadness.org 70
200 i codemadness.org 70
201 i 4. Change the values in the global config.cfg file. codemadness.org 70
202 i codemadness.org 70
203 i 5. If you want to modify parts of the header, like the navigation menu codemadness.org 70
204 i items, you can change the following two template files: codemadness.org 70
205 i templates/page/header.html codemadness.org 70
206 i templates/index.html/header.html codemadness.org 70
207 i codemadness.org 70
208 i 6. Create any new pages in the pages directory. For each config file codemadness.org 70
209 i there has to be a corresponding HTML file. By default this HTML codemadness.org 70
210 i file has the path of the config file, but with the last extension codemadness.org 70
211 i (".cfg" in this case) replaced to ".html". codemadness.org 70
212 i codemadness.org 70
213 i 7. Create an output directory: codemadness.org 70
214 i codemadness.org 70
215 i mkdir -p output codemadness.org 70
216 i codemadness.org 70
217 i 8. After any modifications the following commands can be used to codemadness.org 70
218 i generate the output and process the pages in descending order: codemadness.org 70
219 i codemadness.org 70
220 i find pages -type f -name '*.cfg' -print0 | sort -zr | xargs -0 saait codemadness.org 70
221 i codemadness.org 70
222 i 9. Copy the modified stylesheets to the output directory also: codemadness.org 70
223 i codemadness.org 70
224 i cp style.css print.css output/ codemadness.org 70
225 i codemadness.org 70
226 i 10. Open output/index.html locally in your webbrowser to review the codemadness.org 70
227 i changes. codemadness.org 70
228 i codemadness.org 70
229 i 11. To synchronize files, you can securely transfer them via SSH using codemadness.org 70
230 i rsync: codemadness.org 70
231 i codemadness.org 70
232 i rsync -av output/ user@somehost:/var/www/htdocs/ codemadness.org 70
233 i codemadness.org 70
234 i TRIVIA codemadness.org 70
235 i The most boring static page generator. codemadness.org 70
236 i codemadness.org 70
237 i Meaning of saai (dutch): boring, pronunciation of saait: site codemadness.org 70
238 i codemadness.org 70
239 i SEE ALSO codemadness.org 70
240 i find(1), sort(1), xargs(1) codemadness.org 70
241 i codemadness.org 70
242 i AUTHORS codemadness.org 70
243 i Hiltjo Posthuma <hiltjo@codemadness.org> codemadness.org 70
244 .