_____ __ _ __ / ___// /______(_) /_____ \__ \/ __/ ___/ / //_/ _ \ ___/ / /_/ / / / ,< / __/ /____/\__/_/ /_/_/|_|\___/ ============================ A static site generator that does exactly what we need it to and no more. (c) 2021 Starfall , all rights reserved until I decide it's in a good enough state for others to use. 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
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.