3 **pinopress** is a modular makefile based static blog generator. that means you run the build script once and every page is generated beforehand.
4 **pinopress** also focuses on extensibility, you can hook your own shell scripts into the build process to easily add any new features.
6 built in features include markdown generated blog articles, and a rss feed.
10 templates are html snippets that you can customize. these templates are then pieced together to form the final html page. edit them to your liking. they can be found in the `templates/` directory. Here's a brief description of each one:
12 template | description
13 ------------------|-----------
14 head | html before body
15 foot | html after body
16 archivebody | everything inside body of archive page
18 rollingbody | everything inside body of rolling page
23 these have not been implemented yet, but modules are shellscripts that are called during the build process that can add extra features.
25 here are some potential ideas for modules:
26 - [ ] syntax highlight for code blocks
27 - [ ] blog average time to read
29 ## pinopress flavored markdown
31 pinopress articles are written in an enhanced version of markdown. specification coming soon.
35 **pinopress** makes extensive use of **gnu envsubst** so in each template, you can use variables that will be substituted in on build. variables can be used in both templates and blog articles. Here's a list of some that you can use:
39 `$SITEURL` - the SITEURL variable you set in the pinopress config
41 `$USERGLOBAL1` - global variable you can use however you want
43 `$USERGLOBAL2` - a second user defined global variable
47 `$ARTICLE_TITLE` - title of article, as set in article header
49 `$PUBLISHED_DATE` - the date/time the article was published, as set in the article header
51 `$DESCRIPTION` - brief description of the blog post
53 `$USERLOCAL1` - article specific variable you can use for whatever you want
55 `$USERLOCAL2` - another user local variable
59 many times, you would like to display a list of html elements somewhere in the page. **pinopress** solves this using mounts. mounts are simply comments that tell pinopress where to append template items.