more advanced md script
[pinopress.git] / README.md
1 # pinopress
2
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
5 built in features include markdown generated blog articles, and a rss feed.
6
7 ## templates
8
9 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:
10
11 template          | description
12 ------------------|-----------
13 head              | html before body
14 foot              | html after body
15 archivebody       | everything inside body of archive page
16 archiveitem       | 
17 rollingbody       | everything inside body of rolling page
18 rollingitem       |
19
20 ## modules
21
22 these have not been implemented yet, but modules are shellscripts that are called during the build process that can add extra features.
23
24 here are some potential ideas for modules:
25 - [ ] syntax highlight for code blocks
26 - [ ] blog average time to read
27
28 ## pinopress flavored markdown
29
30 pinopress articles are written in an enhanced version of markdown. specification coming soon.
31
32 ## variables
33
34  **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:
35
36 ### global
37
38 `$SITEURL` - the SITEURL variable you set in the pinopress config
39
40 `$USERGLOBAL1` - global variable you can use however you want
41
42 `$USERGLOBAL2` - a second user defined global variable
43
44 ### article only
45
46 `$ARTICLE_TITLE` - title of article, as set in article header
47
48 `$PUBLISHED_DATE` - the date/time the article was published, as set in the article header
49
50 `$DESCRIPTION` - brief description of the blog post
51
52 `$USERLOCAL1` - article specific variable you can use for whatever you want
53
54 `$USERLOCAL2` - another user local variable
55
56 ## mounts
57
58 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.
59