blob: 8d750c3f4c16c0318532a0c3ab409a55ee70d8b5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
_____ __ _ __
/ ___// /______(_) /_____
\__ \/ __/ ___/ / //_/ _ \
___/ / /_/ / / / ,< / __/
/____/\__/_/ /_/_/|_|\___/
============================
A static site generator that does exactly what we need it to and no more.
Strike has simple goals:
1. Read HTML page contents from files in the source folder
2. Add boilerplate (head, header, footer, etc)
3. Save to output folder
And some stretch goals:
* Create an extra page listing all generated pages in order of creation date (newest first)
* As above, but as an RSS feed
* Add links to next & previous generated pages
* Turn the extra page into a flexible component that can be added into any other page
* Use different templates on different files
* Markup parsing (see below)
* More robust created/modified date handling - needs more specification (markup changes vs. template changes, caching original creation date because posix systems don't actually provide that, etc.)
strike.ini file
---------------
Strike should be passed the location of a .ini file or a directory containing a file named strike.ini. This is a text file in Python's configparser format (for now). You can see an example config file with all supported options at sample/strike.ini.
Markup
------
TBD. No markup is used at the moment.
reStructuredText fulfills most of our desires: https://docutils.sourceforge.io/rst.html
It generates <section>s and has specific markup for page titles.
Templating
----------
TBD.
Right now, templates are just passed to Python's str.format(). You can use these variables by default:
{content} : Complete file contents.
{meta[title]} : Filename, with extension dropped.
{meta[date]} : File modification date, in HTTP header format (e.g. "Sat, 23 Oct 2021 18:28:37 GMT")
Front matter
------------
* Front matter is indicated by starting a file with a line that contains exactly three dashes and nothing else ("---\n").
* Front matter is closed by another line that containts exactly three dashes and nothing else.
* Every line between the opening and closing line should be key=value pairs.
* Front matter is stored into the 'meta' dict, so you can overwrite meta[title] or meta[date] if you want to.
|