layout: true name: centered class: center, middle .footnote[ \#pillarcon ### [@schmonz](https://twitter.com/schmonz) ] --- layout: true name: twitterhandle .footnote[ \#pillarcon ### [@schmonz](https://twitter.com/schmonz) ] --- template: centered # Web Architecture for Unix Lovers ## Amitai Schlair ### PillarCon 2016/04/15 ??? These are presenter notes. Press 'C' to clone, then 'P' to show these notes. --- .right-column[ ## Ikiwiki is... >
the Unix of web CMSes (orthogonal and composable, with the concomitant learning curve) and a web CMS for Unix (files in the filesystem, real revision control)
### Build a site. ### Your server doesn't need a database. ### It might not even need ikiwiki. ] --- .left-column[ ## Example 1/5: ] .right-column[ ## [ikiwiki.info](http://ikiwiki.info) (1/2)
] --- .left-column[ ## Example 1/5: ] .right-column[ ## [ikiwiki.info](http://ikiwiki.info) (2/2) ### A wiki - Style:
the "anti-theme"
- Edit this page - Markdown - RecentChanges (sitewide) - History (per-page) -
tips/untrusted git push
- Oh yeah: `git`! ] --- .left-column[ ## Example 2/5: ] .right-column[ ## [schmonz.com](https://schmonz.com) (1/2)
] --- .left-column[ ## Example 2/5: ] .right-column[ ## [schmonz.com](https://schmonz.com) (2/2) ### A blog - Style: the "actiontabs" theme - Markdown (and also Textile for older posts) - Local offline instance: no web server, just files - `git commit` regenerates affected content - Tag cloud, backlinks, previous/next, RSS with enclosures, feed _aggregator_ (!), etc. - `git push` to publish - Live instance: web server with CGI enabled for search, comments - I wrote a [program to import my site from Textpattern](https://github.com/schmonz/txp2ikiwiki) ] --- .left-column[ ## Example 3/5: ] .right-column[ ## [agilein3minut.es](https://agilein3minut.es) (1/2)
] --- .left-column[ ## Example 3/5: ] .right-column[ ## [agilein3minut.es](https://agilein3minut.es) (2/2) ### A podcast - Similar to `schmonz.com` (including the unimpressive appearance) - I
wrote ikiwiki's modern podcast support
] --- .left-column[ ## Example 4/5: ] .right-column[ ## [philo.org](http://www.columbia.edu/cu/philo/) (1/2)
] --- .left-column[ ## Example 4/5: ] .right-column[ ## [philo.org](http://www.columbia.edu/cu/philo/) (2/2) ### An access-controlled wiki - Custom template (not by me) - University-provided web space is static-only - But group members can web-edit, and the site updates! - Alumnus provided a confederate server for ikiwiki CGI + my `rsync`, `windauth` plugins - No software on `www.columbia.edu` - I don't know any other way we could have accomplished this ] --- .left-column[ ## Example 5/5: ] .right-column[ ## [wiki.netbsd.org](https://wiki.netbsd.org) (1/2)
] --- .left-column[ ## Example 5/5: ] .right-column[ ## [wiki.netbsd.org](https://wiki.netbsd.org) (1.5/2)
] --- .left-column[ ## Example 5/5: ] .right-column[ ## [wiki.netbsd.org](https://wiki.netbsd.org) (2/2) ### An access-controlled wiki - Custom template designed to match [NetBSD's website](http://www.netbsd.org) (plus wiki-specific action bar) - I wrote
ikiwiki's CVS integration
so that NetBSD could have a wiki in my lifetime - Meets NetBSD project's [requirements for security, mirroring, backup, etc.](http://wiki.netbsd.org/wiki/todo/choose_wiki_software/) - Edit in browser with project Kerberos credentials - Edit in `$EDITOR` and commit to CVS - I don't know any other way we could have accomplished this ] --- .left-column[ ## Example 6/5: ] .right-column[ ## These slides When I realized I was about to be giving a bunch of talks, I integrated [Remark.js](http://remarkjs.com) into ikiwiki. It was pretty easy. Now I just write Markdown in a `.remark` file and it turns into slides like these. ```markdown .left-column[ ## Example 6/5: ] .right-column[ ## These slides When I realized I was about to be giving a bunch of talks, I integrated [Remark.js](http://remarkjs.com) into ikiwiki. It was pretty easy. Now I just write Markdown in a `.remark` file and it turns into slides like these. ] ``` ] --- .right-column[ ##
Similar, yet different
Ikiwiki can be kind of **like WordPress**, kind of **like Jekyll**, or both. _Nothing else is kind of like ikiwiki_. It does **most anything you want** (once you figure out how), and if it doesn't, you can **test-drive** what you want. And if you don't like Perl as much as I do, you can
extend ikiwiki in any language via XML-RPC
. ### More Goodies - My
full-length ikiwiki talk from Pittsburgh Perl Workshop 2014
, including a live-coded plugin - My
writings about ikiwiki
] --- template: centered # Web Architecture for Unix Lovers ## Amitai Schlair ### PillarCon 2016/04/15 ## [schmonz.com](https://schmonz.com) ## [ai3m.co](http://ai3m.co)