summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2017-02-04 09:48:07 +0000
committerDaniel Silverstone <dsilvers@digital-scurf.org>2017-02-04 09:48:07 +0000
commit3eac7ff5269b52ac322fb2328802df5ca517bc1b (patch)
treeab261bfba2d3148509806a988324d1a4bb8b7e51
downloadnetsurf-wiki-3eac7ff5269b52ac322fb2328802df5ca517bc1b.tar.gz
netsurf-wiki-3eac7ff5269b52ac322fb2328802df5ca517bc1b.tar.bz2
Initial setup content
-rw-r--r--.gitignore1
-rw-r--r--ikiwiki-bootstrap-theme/README.md27
-rw-r--r--ikiwiki-bootstrap-theme/aggregatepost.tmpl19
-rw-r--r--ikiwiki-bootstrap-theme/archivepage.tmpl19
-rw-r--r--ikiwiki-bootstrap-theme/atomitem.tmpl49
-rw-r--r--ikiwiki-bootstrap-theme/atompage.tmpl39
-rw-r--r--ikiwiki-bootstrap-theme/autoindex.tmpl1
-rw-r--r--ikiwiki-bootstrap-theme/autotag.tmpl4
-rw-r--r--ikiwiki-bootstrap-theme/blogpost.tmpl16
-rw-r--r--ikiwiki-bootstrap-theme/calendarmonth.tmpl5
-rw-r--r--ikiwiki-bootstrap-theme/calendaryear.tmpl1
-rw-r--r--ikiwiki-bootstrap-theme/change.tmpl72
-rw-r--r--ikiwiki-bootstrap-theme/comment.tmpl66
-rw-r--r--ikiwiki-bootstrap-theme/commentmoderation.tmpl32
-rw-r--r--ikiwiki-bootstrap-theme/editcomment.tmpl43
-rw-r--r--ikiwiki-bootstrap-theme/editconflict.tmpl7
-rw-r--r--ikiwiki-bootstrap-theme/editcreationconflict.tmpl9
-rw-r--r--ikiwiki-bootstrap-theme/editfailedsave.tmpl10
-rw-r--r--ikiwiki-bootstrap-theme/editpage.tmpl98
-rw-r--r--ikiwiki-bootstrap-theme/editpagegone.tmpl7
-rw-r--r--ikiwiki-bootstrap-theme/feedlink.tmpl9
-rw-r--r--ikiwiki-bootstrap-theme/googleform.tmpl8
-rw-r--r--ikiwiki-bootstrap-theme/imgpage.tmpl6
-rw-r--r--ikiwiki-bootstrap-theme/inlinepage.tmpl78
-rw-r--r--ikiwiki-bootstrap-theme/local.css59
-rw-r--r--ikiwiki-bootstrap-theme/microblog.tmpl22
-rw-r--r--ikiwiki-bootstrap-theme/notifyemail.tmpl9
-rw-r--r--ikiwiki-bootstrap-theme/openid-selector.tmpl43
-rw-r--r--ikiwiki-bootstrap-theme/page.tmpl288
-rw-r--r--ikiwiki-bootstrap-theme/passwordmail.tmpl15
-rw-r--r--ikiwiki-bootstrap-theme/pocreatepage.tmpl3
-rw-r--r--ikiwiki-bootstrap-theme/recentchanges.tmpl23
-rw-r--r--ikiwiki-bootstrap-theme/renamesummary.tmpl26
-rw-r--r--ikiwiki-bootstrap-theme/revert.tmpl21
-rw-r--r--ikiwiki-bootstrap-theme/rssitem.tmpl28
-rw-r--r--ikiwiki-bootstrap-theme/rsspage.tmpl16
-rw-r--r--ikiwiki-bootstrap-theme/searchform.tmpl9
-rw-r--r--ikiwiki-bootstrap-theme/searchquery.tmpl125
-rw-r--r--ikiwiki-bootstrap-theme/titlepage.tmpl7
-rw-r--r--ikiwiki-bootstrap-theme/trails.tmpl23
-rw-r--r--nswiki.setup406
41 files changed, 1749 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..b25c15b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+*~
diff --git a/ikiwiki-bootstrap-theme/README.md b/ikiwiki-bootstrap-theme/README.md
new file mode 100644
index 0000000..c3945be
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/README.md
@@ -0,0 +1,27 @@
+ikiwiki-bootstrap-theme
+=======================
+
+Twitter bootstrap theme for ikiwiki
+
+Usage
+-----
+
+```
+cd ~
+git clone git@github.com:ramseydsilva/ikiwiki-bootstrap-theme.git
+
+# edit wiki.setup and add
+templatedir: ~/ikiwiki-bootstrap-theme
+
+# Recompile wiki
+ikiwiki --setup wiki.setup
+
+# Install your own logo at /logo.png in your webroot
+```
+
+Issues
+------
+
+This theme is a WIP and has been flushed out only for the main pages/most commonly used options. If you notice that it breaks any particular page or feature, please report it [here] and we can fix it.
+
+[here]: https://github.com/ramseydsilva/ikiwiki-bootstrap-theme/issues
diff --git a/ikiwiki-bootstrap-theme/aggregatepost.tmpl b/ikiwiki-bootstrap-theme/aggregatepost.tmpl
new file mode 100644
index 0000000..a89ccfc
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/aggregatepost.tmpl
@@ -0,0 +1,19 @@
+<TMPL_VAR CONTENT>
+<TMPL_LOOP TAGS>
+[[!tag <TMPL_VAR TAG>]]
+</TMPL_LOOP>
+<TMPL_IF TITLE>
+[[!meta title="<TMPL_VAR TITLE ESCAPE=HTML>"]]
+</TMPL_IF>
+<TMPL_IF PERMALINK>
+[[!meta permalink="<TMPL_VAR PERMALINK ESCAPE=HTML>"]]
+</TMPL_IF>
+<TMPL_IF COPYRIGHT>
+[[!meta copyright="<TMPL_VAR COPYRIGHT ESCAPE=HTML>"]]
+</TMPL_IF>
+<TMPL_IF AUTHOR>
+[[!meta author="<TMPL_VAR NAME ESCAPE=HTML>: <TMPL_VAR AUTHOR ESCAPE=HTML>"]]
+<TMPL_ELSE>
+[[!meta author="<TMPL_VAR NAME ESCAPE=HTML>"]]
+</TMPL_IF>
+[[!meta authorurl="<TMPL_VAR URL ESCAPE=HTML>"]]
diff --git a/ikiwiki-bootstrap-theme/archivepage.tmpl b/ikiwiki-bootstrap-theme/archivepage.tmpl
new file mode 100644
index 0000000..3e0bd9b
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/archivepage.tmpl
@@ -0,0 +1,19 @@
+<div class="archivepage">
+<TMPL_IF PERMALINK>
+<a href="<TMPL_VAR PERMALINK>"><TMPL_VAR TITLE></a><br />
+<TMPL_ELSE>
+<a href="<TMPL_VAR PAGEURL>"><TMPL_VAR TITLE></a><br />
+</TMPL_IF>
+<span class="archivepagedate">
+Posted <TMPL_VAR CTIME>
+<TMPL_IF AUTHOR>
+by <span class="author">
+<TMPL_IF AUTHORURL>
+<a href="<TMPL_VAR AUTHORURL>"><TMPL_VAR AUTHOR></a>
+<TMPL_ELSE>
+<TMPL_VAR AUTHOR>
+</TMPL_IF>
+</span>
+</TMPL_IF>
+</span>
+</div>
diff --git a/ikiwiki-bootstrap-theme/atomitem.tmpl b/ikiwiki-bootstrap-theme/atomitem.tmpl
new file mode 100644
index 0000000..5b9d62a
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/atomitem.tmpl
@@ -0,0 +1,49 @@
+<entry>
+ <title><TMPL_VAR TITLE></title>
+<TMPL_IF GUID>
+ <id><TMPL_VAR GUID></id>
+<TMPL_ELSE>
+ <id><TMPL_VAR URL></id>
+</TMPL_IF>
+ <link href="<TMPL_VAR PERMALINK>"/>
+<TMPL_IF AUTHOR>
+ <author><name><TMPL_VAR AUTHOR ESCAPE=HTML></name></author>
+</TMPL_IF>
+<TMPL_IF COPYRIGHT>
+ <rights type="html" xml:lang="en">
+<TMPL_IF LICENSE>
+ <TMPL_VAR LICENSE ESCAPE=HTML>
+ <TMPL_VAR COPYRIGHT ESCAPE=HTML>
+<TMPL_ELSE>
+ <TMPL_VAR COPYRIGHT ESCAPE=HTML>
+</TMPL_IF>
+ </rights>
+<TMPL_ELSE>
+<TMPL_IF LICENSE>
+ <rights type="html" xml:lang="en">
+ <TMPL_VAR LICENSE ESCAPE=HTML>
+ </rights>
+</TMPL_IF>
+</TMPL_IF>
+<TMPL_IF CATEGORIES>
+<TMPL_LOOP CATEGORIES>
+ <category term="<TMPL_VAR CATEGORY>" />
+</TMPL_LOOP>
+</TMPL_IF>
+ <updated><TMPL_VAR MDATE_3339></updated>
+ <published><TMPL_VAR CDATE_3339></published>
+<TMPL_IF ENCLOSURE>
+ <link rel="enclosure" type="<TMPL_VAR TYPE>" href="<TMPL_VAR ENCLOSURE>" length="<TMPL_VAR LENGTH>" />
+</TMPL_IF>
+<TMPL_UNLESS SIMPLEPODCAST>
+ <content type="html" xml:lang="en">
+ <TMPL_VAR CONTENT ESCAPE=HTML>
+ </content>
+</TMPL_UNLESS>
+<TMPL_IF COMMENTSURL>
+ <link rel="replies" href="<TMPL_VAR COMMENTSURL>" type="text/html" />
+</TMPL_IF>
+<TMPL_IF ATOMCOMMENTSURL>
+ <link rel="replies" href="<TMPL_VAR ATOMCOMMENTSURL>" type="application/atom+xml" />
+</TMPL_IF>
+</entry>
diff --git a/ikiwiki-bootstrap-theme/atompage.tmpl b/ikiwiki-bootstrap-theme/atompage.tmpl
new file mode 100644
index 0000000..3cdd71d
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/atompage.tmpl
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<feed xmlns="http://www.w3.org/2005/Atom">
+<title><TMPL_VAR TITLE></title>
+<link href="<TMPL_VAR PAGEURL>"/>
+<link href="<TMPL_VAR FEEDURL>" rel="self" type="application/atom+xml"/>
+<author>
+<TMPL_IF AUTHOR>
+<name><TMPL_VAR AUTHOR></name>
+<TMPL_ELSE>
+<name><TMPL_VAR WIKINAME></name>
+</TMPL_IF>
+</author>
+<TMPL_IF COPYRIGHT>
+<rights type="html" xml:lang="en">
+<TMPL_IF LICENSE>
+ <TMPL_VAR LICENSE>
+ <TMPL_VAR COPYRIGHT ESCAPE=HTML>
+<TMPL_ELSE>
+ <TMPL_VAR COPYRIGHT ESCAPE=HTML>
+</TMPL_IF>
+</rights>
+<TMPL_ELSE>
+<TMPL_IF LICENSE>
+<rights type="html">
+ <TMPL_VAR LICENSE ESCAPE=HTML>
+</rights>
+</TMPL_IF>
+</TMPL_IF>
+<TMPL_IF GUID>
+<id><TMPL_VAR GUID></id>
+<TMPL_ELSE>
+<id><TMPL_VAR PAGEURL></id>
+</TMPL_IF>
+<subtitle type="html"><TMPL_VAR FEEDDESC ESCAPE=HTML></subtitle>
+<generator uri="http://ikiwiki.info/">ikiwiki</generator>
+<updated><TMPL_VAR FEEDDATE></updated>
+<TMPL_VAR CONTENT>
+</feed>
diff --git a/ikiwiki-bootstrap-theme/autoindex.tmpl b/ikiwiki-bootstrap-theme/autoindex.tmpl
new file mode 100644
index 0000000..d5ec3b8
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/autoindex.tmpl
@@ -0,0 +1 @@
+[[!map pages="<TMPL_VAR PAGE>/* and ! <TMPL_VAR PAGE>/*/*"]]
diff --git a/ikiwiki-bootstrap-theme/autotag.tmpl b/ikiwiki-bootstrap-theme/autotag.tmpl
new file mode 100644
index 0000000..9162e9e
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/autotag.tmpl
@@ -0,0 +1,4 @@
+[[!meta title="pages tagged <TMPL_VAR TAGNAME>"]]
+
+[[!inline pages="tagged(<TMPL_VAR TAG>)" actions="no" archive="yes"
+feedshow=10]]
diff --git a/ikiwiki-bootstrap-theme/blogpost.tmpl b/ikiwiki-bootstrap-theme/blogpost.tmpl
new file mode 100644
index 0000000..9e49c47
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/blogpost.tmpl
@@ -0,0 +1,16 @@
+<form <TMPL_IF POSTFORMID>id="<TMPL_VAR POSTFORMID ESCAPE=HTML>"</TMPL_IF> action="<TMPL_VAR CGIURL>" method="get">
+<div class="blogform">
+<TMPL_IF RSSURL>
+<a class="feedbutton" type="application/rss+xml" rel="alternate" title="<TMPL_VAR RSSDESC>" href="<TMPL_VAR RSSURL>">RSS</a>
+</TMPL_IF>
+<TMPL_IF ATOMURL>
+<a class="feedbutton" type="application/atom+xml" rel="alternate" title="<TMPL_VAR ATOMDESC>" href="<TMPL_VAR ATOMURL>">Atom</a>
+</TMPL_IF>
+<input type="hidden" name="do" value="blog" />
+<input type="hidden" name="from" value="<TMPL_VAR ROOTPAGE>" />
+<input type="hidden" name="subpage" value="1" />
+<TMPL_VAR POSTFORMTEXT>
+<input name="title" size="40" />
+<input type="submit" value="Edit" />
+</div>
+</form>
diff --git a/ikiwiki-bootstrap-theme/calendarmonth.tmpl b/ikiwiki-bootstrap-theme/calendarmonth.tmpl
new file mode 100644
index 0000000..23cd954
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/calendarmonth.tmpl
@@ -0,0 +1,5 @@
+[[!sidebar content="""
+[[!calendar type=month month=<TMPL_VAR MONTH> year=<TMPL_VAR YEAR> pages="<TMPL_VAR PAGESPEC>"]]
+"""]]
+
+[[!inline pages="creation_month(<TMPL_VAR MONTH>) and creation_year(<TMPL_VAR YEAR>) and <TMPL_VAR PAGESPEC>" show=0 feeds=no reverse=yes]]
diff --git a/ikiwiki-bootstrap-theme/calendaryear.tmpl b/ikiwiki-bootstrap-theme/calendaryear.tmpl
new file mode 100644
index 0000000..714bd6d
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/calendaryear.tmpl
@@ -0,0 +1 @@
+[[!calendar type=year year=<TMPL_VAR YEAR> pages="<TMPL_VAR PAGESPEC>"]]
diff --git a/ikiwiki-bootstrap-theme/change.tmpl b/ikiwiki-bootstrap-theme/change.tmpl
new file mode 100644
index 0000000..c4ef9c7
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/change.tmpl
@@ -0,0 +1,72 @@
+[[!meta author="""<TMPL_VAR AUTHOR>"""]]
+<TMPL_IF AUTHORURL>
+[[!meta authorurl="""<TMPL_VAR AUTHORURL>"""]]
+</TMPL_IF>
+[[!meta title="""change to<TMPL_LOOP PAGES> <TMPL_VAR PAGE></TMPL_LOOP> on <TMPL_VAR WIKINAME>"""]]
+<TMPL_IF PERMALINK>
+[[!meta permalink="<TMPL_VAR PERMALINK>"]]
+</TMPL_IF>
+
+<td>
+ <div class="changelog">
+ <TMPL_LOOP MESSAGE>
+ <TMPL_IF LINE>
+ <TMPL_VAR LINE><br />
+ </TMPL_IF>
+ </TMPL_LOOP>
+ </div>
+ <!-- <TMPL_VAR REV> -->
+</td>
+
+<td>
+ <TMPL_LOOP PAGES>
+ <TMPL_IF DIFFURL><a href="<TMPL_VAR DIFFURL>" title="diff" rel="nofollow">[[diff|wikiicons/diff.png]]</a><TMPL_VAR LINK>
+ <TMPL_ELSE><TMPL_VAR LINK></TMPL_IF>
+ </TMPL_LOOP>
+</td>
+<td>
+ <TMPL_IF AUTHORURL>
+ <a href="<TMPL_VAR AUTHORURL>" rel="nofollow"><TMPL_VAR USER></a>
+ <TMPL_ELSE>
+ <TMPL_VAR USER>
+ </TMPL_IF>
+</td>
+<td><TMPL_VAR COMMITTYPE></td>
+<td><TMPL_VAR COMMITDATE></td>
+<td>
+
+ <TMPL_UNLESS HAS_DIFFURL>
+ <TMPL_IF DIFF>
+ <a href="#diff-<TMPL_VAR REV>" class="toggle" title="diff" rel="nofollow">
+ <i class="glyphicon glyphicon-eye-open"></i>
+ </a>
+ </TMPL_IF>
+ </TMPL_UNLESS>
+
+
+ <TMPL_IF REVERTURL>
+ <span class="revert">
+ <a href="<TMPL_VAR REVERTURL>" title="revert" rel="nofollow">
+ <i class="glyphicon glyphicon-remove-circle"></i>
+ </a>
+ </span>
+ </TMPL_IF>
+</td>
+
+
+ <TMPL_IF DIFF>
+ </tr>
+ <tr>
+ <td colspan="6">
+ <TMPL_IF HAS_DIFFURL>
+ <div class="diff">
+ <TMPL_ELSE>
+ <div class="toggleable" id="diff-<TMPL_VAR REV>">
+ </TMPL_IF>
+ <pre>
+ <TMPL_VAR DIFF>
+ </pre>
+ </div>
+ </td>
+ </TMPL_IF>
+
diff --git a/ikiwiki-bootstrap-theme/comment.tmpl b/ikiwiki-bootstrap-theme/comment.tmpl
new file mode 100644
index 0000000..c16ca7c
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/comment.tmpl
@@ -0,0 +1,66 @@
+<TMPL_IF HTML5><article class="comment" id="<TMPL_VAR COMMENTID>">
+<TMPL_ELSE><div class="comment" id="<TMPL_VAR COMMENTID>"></TMPL_IF>
+
+<TMPL_IF COMMENTAUTHORAVATAR><div class="comment-avatar">
+<img src="<TMPL_VAR COMMENTAUTHORAVATAR>" alt="" />
+</div></TMPL_IF>
+
+<TMPL_IF HTML5><header class="comment-subject"><TMPL_ELSE><div class="comment-subject"></TMPL_IF>
+<TMPL_IF PERMALINK>
+<a href="<TMPL_VAR PERMALINK>"><TMPL_VAR TITLE></a>
+<TMPL_ELSE>
+<TMPL_VAR TITLE>
+</TMPL_IF>
+<TMPL_IF HTML5></header><TMPL_ELSE></div></TMPL_IF>
+
+<TMPL_IF HTML5><section class="inlinecontent"><TMPL_ELSE><div class="inlinecontent"></TMPL_IF>
+<TMPL_VAR CONTENT>
+<TMPL_IF HTML5></section><TMPL_ELSE></div></TMPL_IF>
+
+<TMPL_IF HTML5><header class="comment-header"><TMPL_ELSE><div class="comment-header"></TMPL_IF>
+<TMPL_IF COMMENTUSER>
+Comment by
+<TMPL_IF COMMENTOPENID>
+<span class="author" title="OpenID">
+<a href="<TMPL_VAR COMMENTOPENID>"><TMPL_VAR COMMENTAUTHOR></a>
+</span>
+<TMPL_ELSE>
+<span class="author" title="Signed in">
+<TMPL_IF COMMENTAUTHORURL>
+<a href="<TMPL_VAR COMMENTAUTHORURL>"><TMPL_VAR COMMENTAUTHOR></a>
+<TMPL_ELSE>
+<TMPL_VAR COMMENTAUTHOR>
+</TMPL_IF>
+</span>
+</TMPL_IF>
+<TMPL_ELSE>
+<TMPL_IF AUTHOR>
+Comment by
+<TMPL_IF COMMENTIP>
+<span class="author" title="Unauthenticated, from <TMPL_VAR COMMENTIP>">
+<TMPL_ELSE>
+<span class="author" title="Unauthenticated, from unknown IP address">
+</TMPL_IF>
+<TMPL_IF AUTHORURL>
+<a href="<TMPL_VAR AUTHORURL>"><TMPL_VAR AUTHOR></a>
+<TMPL_ELSE>
+<TMPL_VAR AUTHOR>
+</TMPL_IF>
+</TMPL_IF>
+</span>
+</TMPL_IF>
+&mdash; <TMPL_VAR CTIME>
+<TMPL_IF HTML5></header><TMPL_ELSE></div></TMPL_IF>
+
+<TMPL_IF HAVE_ACTIONS>
+<TMPL_IF HTML5><nav class="actions"><TMPL_ELSE><div class="actions"></TMPL_IF>
+<ul>
+<TMPL_IF REMOVEURL>
+<li><a href="<TMPL_VAR REMOVEURL>" rel="nofollow">Remove comment</a></li>
+</TMPL_IF>
+</ul>
+<TMPL_IF HTML5></nav><TMPL_ELSE></div></TMPL_IF>
+</TMPL_IF>
+
+<div style="clear: both"></div>
+<TMPL_IF HTML5></article><TMPL_ELSE></div></TMPL_IF>
diff --git a/ikiwiki-bootstrap-theme/commentmoderation.tmpl b/ikiwiki-bootstrap-theme/commentmoderation.tmpl
new file mode 100644
index 0000000..dfa63c2
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/commentmoderation.tmpl
@@ -0,0 +1,32 @@
+<TMPL_IF COMMENTS>
+<br />
+<form action="<TMPL_VAR CGIURL>" method="post">
+<input type="hidden" name="do" value="commentmoderation" />
+<input type="hidden" name="sid" value="<TMPL_VAR SID>" />
+<input type="submit" value="Submit" />
+<input id="rejectalldefer" type="checkbox" name="rejectalldefer" value="1" />
+<label for="rejectalldefer">Reject all comments marked <em>Defer</em></label>
+<br />
+<TMPL_LOOP COMMENTS>
+<div>
+<div>
+<TMPL_VAR VIEW>
+</div>
+<input id="defer_<TMPL_VAR ID>" type="radio" value="Defer" name="<TMPL_VAR ID>" checked="checked" />
+<label for="defer_<TMPL_VAR ID>">Defer</label>
+<input id="dccept_<TMPL_VAR ID>" type="radio" value="Accept" name="<TMPL_VAR ID>" />
+<label for="dccept_<TMPL_VAR ID>">Accept</label>
+<input id="reject_<TMPL_VAR ID>" type="radio" value="Reject" name="<TMPL_VAR ID>" />
+<label for="reject_<TMPL_VAR ID>">Reject</label>
+</div>
+<br />
+</TMPL_LOOP>
+<input type="submit" value="Submit" />
+<input id="rejectalldefer2" type="checkbox" name="rejectalldefer" value="1" />
+<label for="rejectalldefer2">Reject all comments marked <em>Defer</em></label>
+</form>
+<TMPL_ELSE>
+<p>
+No comments need moderation at this time.
+</p>
+</TMPL_IF>
diff --git a/ikiwiki-bootstrap-theme/editcomment.tmpl b/ikiwiki-bootstrap-theme/editcomment.tmpl
new file mode 100644
index 0000000..e177db9
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/editcomment.tmpl
@@ -0,0 +1,43 @@
+<div class="editcomment">
+<TMPL_VAR MESSAGE>
+<br />
+<TMPL_VAR FORM-START>
+<TMPL_VAR FIELD-DO>
+<TMPL_VAR FIELD-SID>
+<TMPL_VAR FIELD-PAGE>
+<TMPL_UNLESS NAME=USERNAME>
+<TMPL_IF NAME=ALLOWAUTHOR>
+<label for="author" class="block">Name:</label>
+<TMPL_VAR NAME=FIELD-AUTHOR> (optional, or <a href="<TMPL_VAR SIGNINURL>">signin</a>)
+<br/>
+<label for="url" class="block">Website:</label>
+<TMPL_VAR NAME=FIELD-URL> (optional)
+<br />
+<label for="url" class="block">Email:</label>
+<TMPL_VAR NAME=FIELD-EMAIL> <TMPL_VAR FIELD-ANONSUBSCRIBE>
+<br />
+<TMPL_ELSE>
+(You might want to <a href="<TMPL_VAR SIGNINURL>">Signin</a> first?)
+<br />
+</TMPL_IF>
+</TMPL_UNLESS>
+<label for="subject" class="block">Subject:</label>
+<TMPL_VAR FIELD-SUBJECT><br />
+<label for="editcontent" class="block">Comment:</label>
+<TMPL_VAR FIELD-EDITCONTENT><br />
+<TMPL_VAR FORM-SUBMIT> <TMPL_VAR FIELD-TYPE> <TMPL_VAR HELPONFORMATTINGLINK>
+<TMPL_VAR FIELD-SUBSCRIBE><br />
+<TMPL_VAR NAME="FORM-END">
+<TMPL_VAR WMD_PREVIEW>
+
+<TMPL_IF NAME="PAGE_PREVIEW">
+<hr />
+<div class="header">
+<span>Comment preview:</span>
+</div><!-- .header -->
+<div id="preview">
+<TMPL_VAR PAGE_PREVIEW>
+</div><!-- #preview -->
+</TMPL_IF>
+
+</div><!-- .editcomment -->
diff --git a/ikiwiki-bootstrap-theme/editconflict.tmpl b/ikiwiki-bootstrap-theme/editconflict.tmpl
new file mode 100644
index 0000000..1252033
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/editconflict.tmpl
@@ -0,0 +1,7 @@
+<p class="error">
+<b>Your changes conflict with other changes made to the page.</b>
+</p>
+<p>
+Conflict markers have been inserted into the page content. Reconcile the
+conflict and commit again to save your changes.
+</p>
diff --git a/ikiwiki-bootstrap-theme/editcreationconflict.tmpl b/ikiwiki-bootstrap-theme/editcreationconflict.tmpl
new file mode 100644
index 0000000..c99102f
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/editcreationconflict.tmpl
@@ -0,0 +1,9 @@
+<p class="error">
+<b>While you were creating this page, someone else independently created a page
+with the same name.</b>
+</p>
+<p>
+The edit box below contains the page's current content, followed by the
+content you entered previously, to allow you to merge the two
+together before saving.
+</p>
diff --git a/ikiwiki-bootstrap-theme/editfailedsave.tmpl b/ikiwiki-bootstrap-theme/editfailedsave.tmpl
new file mode 100644
index 0000000..5184f7d
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/editfailedsave.tmpl
@@ -0,0 +1,10 @@
+<p class="error">
+<b>Failed to save your changes.</b>
+</p>
+<p>
+Your changes were not able to be saved to disk. The system gave the error:
+<blockquote>
+<TMPL_VAR ERROR_MESSAGE>
+</blockquote>
+Your changes are preserved below, and you can try again to save them.
+</p>
diff --git a/ikiwiki-bootstrap-theme/editpage.tmpl b/ikiwiki-bootstrap-theme/editpage.tmpl
new file mode 100644
index 0000000..b30c892
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/editpage.tmpl
@@ -0,0 +1,98 @@
+<TMPL_VAR JAVASCRIPT>
+<TMPL_VAR MESSAGE>
+<br />
+<TMPL_VAR FORM-START>
+<TMPL_VAR FIELD-DO>
+<TMPL_VAR FIELD-SID>
+<TMPL_VAR FIELD-FROM>
+<TMPL_VAR FIELD-RCSINFO>
+<TMPL_VAR FIELD-NEWFILE>
+<TMPL_IF NAME="PAGE_SELECT">
+<label for="page" class="inline">Page location:</label><TMPL_VAR FIELD-PAGE>
+<label for="type" class="inline">Page type:</label><TMPL_VAR FIELD-TYPE>
+<TMPL_ELSE>
+<TMPL_VAR FIELD-PAGE>
+<TMPL_VAR FIELD-TYPE>
+</TMPL_IF>
+<div class="editcontentdiv">
+ <TMPL_VAR FIELD-EDITCONTENT>
+</div>
+<br/>
+<TMPL_IF NAME="CAN_COMMIT">
+ <TMPL_VAR FIELD-EDITMESSAGE>
+ <br/>
+</TMPL_IF>
+
+<TMPL_VAR FORM-SUBMIT>
+
+<TMPL_VAR HELPONFORMATTINGLINK>
+<TMPL_IF NAME="FIELD-ATTACHMENT">
+<a class="toggle" href="#attachments">Attachments</a>
+</TMPL_IF>
+<TMPL_VAR FIELD-SUBSCRIBE>
+<TMPL_IF NAME="FIELD-ATTACHMENT">
+<div class="<TMPL_VAR ATTACHMENTS-CLASS>" id="attachments">
+<div id="fileupload">
+<script>
+$(function () {
+ $('#fileupload').fileupload();
+}); // initialize upload widget
+</script>
+<script id="template-upload" type="text/x-jquery-tmpl">
+ <tr class="template-upload{{if error}} ui-state-error{{/if}}">
+ <td><input type="checkbox" name="attachment_select" value="${name}" />${name}</td>
+ {{if error}}
+ <td class="error" colspan="2">failed!</td>
+ {{else}}
+ <td class="progress" colspan="2"><div></div></td>
+ <td class="start"><button>Start</button></td>
+ {{/if}}
+ <td class="cancel"><button>Cancel</button></td>
+ </tr>
+</script>
+<script id="template-download" type="text/x-jquery-tmpl">
+ <tr class="template-download{{if error}} ui-state-error{{/if}}">
+ <td><input type="checkbox" checked name="attachment_select" value="${name}" />${name}</td>
+ <td>${humansize}</td>
+ {{if error}}
+ <td class="error" colspan="2">failed!</td>
+ {{else}}
+ <td>${stored_msg}</td>
+ {{/if}}
+ </tr>
+</script>
+<div class="fileupload-content">
+<table class="files">
+<TMPL_LOOP NAME="ATTACHMENT_LIST">
+<tr><td><input type="checkbox" name="attachment_select" value="<TMPL_VAR NAME ESCAPE="HTML">" /><TMPL_VAR LINK></td><td><TMPL_VAR SIZE></td><td><TMPL_VAR MTIME></td></tr>
+</TMPL_LOOP>
+</table>
+</div>
+<TMPL_VAR FIELD-ATTACHMENT>
+<noscript><TMPL_VAR FIELD-UPLOAD></noscript>
+<TMPL_VAR FIELD-LINK><TMPL_VAR FIELD-RENAME><TMPL_VAR FIELD-REMOVE>
+</div>
+</div>
+</TMPL_IF>
+<TMPL_VAR FORM-END>
+<TMPL_VAR WMD_PREVIEW>
+<TMPL_IF NAME="PAGE_PREVIEW">
+<hr />
+<div class="header">
+<span>Page preview:</span>
+</div>
+<div id="preview">
+<TMPL_VAR PAGE_PREVIEW>
+</div>
+</TMPL_IF>
+<TMPL_IF NAME="PAGE_DIFF">
+<hr />
+<div class="header">
+<span>Diff:</span>
+</div>
+<div id="diff">
+<TMPL_VAR PAGE_DIFF>
+</div>
+</TMPL_IF>
+
+<br/><br/><br/><br/>
diff --git a/ikiwiki-bootstrap-theme/editpagegone.tmpl b/ikiwiki-bootstrap-theme/editpagegone.tmpl
new file mode 100644
index 0000000..2eed03a
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/editpagegone.tmpl
@@ -0,0 +1,7 @@
+<p class="error">
+<b>The page you were editing has disappeared.</b>
+</p>
+<p>
+Perhaps someone else has deleted it or moved it. If you want to recreate
+this page with your text, click "Save Page" again.
+</p>
diff --git a/ikiwiki-bootstrap-theme/feedlink.tmpl b/ikiwiki-bootstrap-theme/feedlink.tmpl
new file mode 100644
index 0000000..6f8c478
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/feedlink.tmpl
@@ -0,0 +1,9 @@
+<div <TMPL_IF ID>id="<TMPL_VAR ID ESCAPE=HTML>"</TMPL_IF> class="feedlink text-right">
+ <TMPL_IF RSSURL>
+ <a class="label label-warning feedbutton" type="application/rss+xml" rel="alternate" title="<TMPL_VAR RSSDESC>" href="<TMPL_VAR RSSURL>">RSS</a>
+ </TMPL_IF>
+ <TMPL_IF ATOMURL>
+ <a class="label label-primary feedbutton" type="application/atom+xml" rel="alternate" title="<TMPL_VAR ATOMDESC>" href="<TMPL_VAR ATOMURL>">Atom</a>
+ </TMPL_IF>
+</div>
+<div class="spacer"></div>
diff --git a/ikiwiki-bootstrap-theme/googleform.tmpl b/ikiwiki-bootstrap-theme/googleform.tmpl
new file mode 100644
index 0000000..9468e06
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/googleform.tmpl
@@ -0,0 +1,8 @@
+
+<form method="get" action="http://www.google.com/search" id="searchform">
+ <div>
+ <input name="sitesearch" value="<TMPL_VAR URL>" type="hidden" />
+ <input name="q" value="" id="searchbox" size="16" maxlength="255" type="text"
+ <TMPL_IF HTML5>placeholder="search"</TMPL_IF> />
+ </div>
+</form>
diff --git a/ikiwiki-bootstrap-theme/imgpage.tmpl b/ikiwiki-bootstrap-theme/imgpage.tmpl
new file mode 100644
index 0000000..b2e0284
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/imgpage.tmpl
@@ -0,0 +1,6 @@
+# <TMPL_VAR NAME=alt>
+
+<img src="<TMPL_VAR NAME=imglink>" width="<TMPL_VAR NAME=width>"
+ height="<TMPL_VAR NAME=height>" alt="<TMPL_VAR NAME=alt>" />
+<br />
+<TMPL_LOOP NAME=sizes>[[<TMPL_VAR NAME=dimensions>|<TMPL_VAR NAME=htmllink>]] </TMPL_LOOP>
diff --git a/ikiwiki-bootstrap-theme/inlinepage.tmpl b/ikiwiki-bootstrap-theme/inlinepage.tmpl
new file mode 100644
index 0000000..ed82a00
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/inlinepage.tmpl
@@ -0,0 +1,78 @@
+<TMPL_IF HTML5><article class="inlinepage"><TMPL_ELSE><div class="inlinepage"></TMPL_IF>
+
+<TMPL_IF HTML5><section class="inlineheader"><TMPL_ELSE><div class="inlineheader"></TMPL_IF>
+<TMPL_IF HTML5><header class="header"><TMPL_ELSE><span class="header"></TMPL_IF>
+<TMPL_IF PERMALINK>
+<a href="<TMPL_VAR PERMALINK>"><TMPL_VAR TITLE></a>
+<TMPL_ELSE>
+<a href="<TMPL_VAR PAGEURL>"><TMPL_VAR TITLE></a>
+</TMPL_IF>
+<TMPL_IF AUTHOR>
+<span class="author">
+<TMPL_IF AUTHORURL>
+<a href="<TMPL_VAR AUTHORURL>"><TMPL_VAR AUTHOR></a>
+<TMPL_ELSE>
+<TMPL_VAR AUTHOR>
+</TMPL_IF>
+</span>
+</TMPL_IF>
+<TMPL_IF HTML5></header><TMPL_ELSE></span></TMPL_IF>
+<TMPL_IF HTML5></section><TMPL_ELSE></div></TMPL_IF>
+
+<TMPL_IF HTML5><section class="inlinecontent"><TMPL_ELSE><div class="inlinecontent"></TMPL_IF>
+<TMPL_VAR CONTENT>
+<TMPL_IF HTML5></section><TMPL_ELSE></div></TMPL_IF>
+
+<TMPL_IF ENCLOSURE>
+<TMPL_IF HTML5><section id="inlineenclosure"><TMPL_ELSE><div id="inlineenclosure"></TMPL_IF>
+<a href="<TMPL_VAR ENCLOSURE>">Download</a>
+<TMPL_IF HTML5></section><TMPL_ELSE></div></TMPL_IF>
+</TMPL_IF>
+
+<TMPL_IF HTML5><footer class="inlinefooter"><TMPL_ELSE><div class="inlinefooter"></TMPL_IF>
+
+<span class="pagedate">
+Posted <TMPL_VAR CTIME>
+</span>
+
+<TMPL_IF TAGS>
+<TMPL_IF HTML5><nav class="tags"><TMPL_ELSE><span class="tags"></TMPL_IF>
+Tags:
+<TMPL_LOOP TAGS>
+<TMPL_VAR LINK>
+</TMPL_LOOP>
+<TMPL_IF HTML5></nav><TMPL_ELSE></span></TMPL_IF>
+</TMPL_IF>
+
+<TMPL_IF COPYRIGHT>
+<div class="pagecopyright">
+<TMPL_VAR COPYRIGHT>
+</div>
+</TMPL_IF>
+
+<TMPL_IF LICENSE>
+<div class="pagelicense">
+License: <TMPL_VAR LICENSE>
+</div>
+</TMPL_IF>
+
+<TMPL_IF HAVE_ACTIONS>
+<TMPL_IF HTML5><nav class="actions"><TMPL_ELSE><div class="actions"></TMPL_IF>
+<ul>
+<TMPL_IF EDITURL>
+<li><a href="<TMPL_VAR EDITURL>" rel="nofollow">Edit</a></li>
+</TMPL_IF>
+<TMPL_IF COMMENTSLINK>
+<li><TMPL_VAR COMMENTSLINK></li>
+<TMPL_ELSE>
+<TMPL_IF DISCUSSIONLINK>
+<li><TMPL_VAR DISCUSSIONLINK></li>
+</TMPL_IF>
+</TMPL_IF>
+</ul>
+<TMPL_IF HTML5></nav><TMPL_ELSE></div></TMPL_IF>
+</TMPL_IF>
+
+<TMPL_IF HTML5></footer><TMPL_ELSE></div></TMPL_IF>
+
+<TMPL_IF HTML5></article><TMPL_ELSE></div></TMPL_IF>
diff --git a/ikiwiki-bootstrap-theme/local.css b/ikiwiki-bootstrap-theme/local.css
new file mode 100644
index 0000000..b5f3579
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/local.css
@@ -0,0 +1,59 @@
+body {
+ font-family: Verdana, Arial;
+}
+
+h1 {
+ font-size: 24px;
+}
+
+h2 {
+ font-size: 18px;
+}
+
+h3 {
+ font-size: 17px;
+}
+
+header nav {
+ padding: 40px 0 10px 0;
+}
+
+.actions.navbar-default {
+ border: none;
+ background: none;
+}
+
+.wiki-logo {
+ margin-top: -50px;
+}
+
+.title {
+ text-transform: capitalize;
+}
+
+.navbar-nav>li>span {
+ color: rgb(119, 119, 119);
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);
+}
+
+@media (min-width: 768px)
+.navbar-nav>li>span {
+ padding-top: 15px;
+ padding-bottom: 15px;
+}
+
+.nav>li>span {
+ line-height: 20px;
+ position: relative;
+ display: block;
+ padding: 15px 15px;
+}
+
+.spacer {
+ height: 10px;
+ padding: 10px 0;
+}
+
+.recentchanges-table {
+ table-layout: fixed;
+}
diff --git a/ikiwiki-bootstrap-theme/microblog.tmpl b/ikiwiki-bootstrap-theme/microblog.tmpl
new file mode 100644
index 0000000..e22d65c
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/microblog.tmpl
@@ -0,0 +1,22 @@
+<div class="microblog">
+
+<div class="inlinecontent">
+<TMPL_VAR CONTENT>
+</div>
+
+<div class="microblog-header">
+
+<TMPL_IF AUTHOR>
+<span class="author">
+<TMPL_IF AUTHORURL>
+<a href="<TMPL_VAR AUTHORURL>"><TMPL_VAR AUTHOR></a>
+<TMPL_ELSE>
+<TMPL_VAR AUTHOR>
+</TMPL_IF>
+</span>
+</TMPL_IF>
+
+&mdash; <TMPL_VAR CTIME>
+
+</div> <!--.microblog-header-->
+</div> <!--.microblog-->
diff --git a/ikiwiki-bootstrap-theme/notifyemail.tmpl b/ikiwiki-bootstrap-theme/notifyemail.tmpl
new file mode 100644
index 0000000..5087668
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/notifyemail.tmpl
@@ -0,0 +1,9 @@
+A <TMPL_IF NAME=ISCOMMENT>comment has been posted at<TMPL_ELSE>change has been made to</TMPL_IF> <TMPL_VAR URL>
+<TMPL_IF NAME=SHOWCONTENT>
+----
+
+<TMPL_VAR CONTENT>
+
+----
+</TMPL_IF>
+To stop these notifications, visit <TMPL_VAR PREFSURL>
diff --git a/ikiwiki-bootstrap-theme/openid-selector.tmpl b/ikiwiki-bootstrap-theme/openid-selector.tmpl
new file mode 100644
index 0000000..b6be272
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/openid-selector.tmpl
@@ -0,0 +1,43 @@
+<script type="text/javascript" src="ikiwiki/jquery.min.js"></script>
+<script type="text/javascript" src="ikiwiki/openid/openid-jquery.js"></script>
+<script type="text/javascript">
+$(document).ready(function() {
+ openid.init('openid_identifier','<TMPL_IF NONOPENIDFORM>nonopenidform</TMPL_IF>');
+});
+</script>
+
+<noscript>
+<h2>OpenID:</h2>
+</noscript>
+
+<form action="<TMPL_VAR CGIURL>" method="get" id="openid_form">
+ <fieldset>
+ <script>
+ $('fieldset').append("<legend>Select your account provider</legend>");
+ </script>
+
+ <input type="hidden" name="do" value="signin" />
+ <input type="hidden" name="action" value="verify" />
+ <div id="openid_choice">
+ <div id="openid_btns"></div>
+ </div>
+ <div id="openid_input_area">
+ <label for="openid_identifier" class="block">Enter your OpenID:</label>
+ <input id="openid_identifier" name="openid_identifier" type="text" value="<TMPL_VAR OPENID_URL>"/>
+ <input id="openid_submit" type="submit" value="Login"/>
+ </div>
+ <TMPL_IF OPENID_ERROR>
+ <div class="error"><TMPL_VAR OPENID_ERROR></div>
+ </TMPL_IF>
+ </fieldset>
+</form>
+
+<div id="nonopenidform">
+<TMPL_IF NONOPENIDFORM>
+<br />
+<noscript>
+<h2>Other:</h2>
+</noscript>
+</TMPL_IF>
+<TMPL_VAR NONOPENIDFORM>
+</div>
diff --git a/ikiwiki-bootstrap-theme/page.tmpl b/ikiwiki-bootstrap-theme/page.tmpl
new file mode 100644
index 0000000..41e5086
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/page.tmpl
@@ -0,0 +1,288 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <TMPL_IF DYNAMIC>
+ <TMPL_IF FORCEBASEURL><base href="<TMPL_VAR FORCEBASEURL>" /><TMPL_ELSE>
+ <TMPL_IF BASEURL><base href="<TMPL_VAR BASEURL>" /></TMPL_IF>
+ </TMPL_IF>
+ </TMPL_IF>
+
+ <meta charset="utf-8" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+
+ <title><TMPL_VAR TITLE></title>
+ <link rel="icon" href="<TMPL_VAR BASEURL><TMPL_VAR FAVICON>" type="image/x-icon" />
+
+ <!-- Latest compiled and minified CSS -->
+ <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+
+ <!-- Optional theme -->
+ <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
+
+ <!-- Latest compiled and minified JavaScript -->
+ <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
+ <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+
+ <TMPL_IF LOCAL_CSS>
+ <link rel="stylesheet" href="<TMPL_VAR BASEURL><TMPL_VAR LOCAL_CSS>" type="text/css" />
+ <TMPL_ELSE>
+ <link rel="stylesheet" href="<TMPL_VAR BASEURL>local.css" type="text/css" />
+ </TMPL_IF>
+
+ <TMPL_UNLESS DYNAMIC>
+ <TMPL_IF EDITURL>
+ <link rel="alternate" type="application/x-wiki" title="Edit this page" href="<TMPL_VAR EDITURL>" />
+ </TMPL_IF>
+ <TMPL_IF FEEDLINKS><TMPL_VAR FEEDLINKS></TMPL_IF>
+ <TMPL_IF RELVCS><TMPL_VAR RELVCS></TMPL_IF>
+ <TMPL_IF META><TMPL_VAR META></TMPL_IF>
+ <TMPL_LOOP TRAILLOOP>
+ <TMPL_IF PREVPAGE>
+ <link rel="prev" href="<TMPL_VAR PREVURL>" title="<TMPL_VAR PREVTITLE>" />
+ </TMPL_IF>
+ <link rel="up" href="<TMPL_VAR TRAILURL>" title="<TMPL_VAR TRAILTITLE>" />
+ <TMPL_IF NEXTPAGE>
+ <link rel="next" href="<TMPL_VAR NEXTURL>" title="<TMPL_VAR NEXTTITLE>" />
+ </TMPL_IF>
+ </TMPL_LOOP>
+ </TMPL_UNLESS>
+</head>
+<body>
+
+<!--
+<header class="header">
+ <nav class="navbar navbar-default" role="navigation">
+ <div class="container">
+ <div class="navbar-header">
+ <a class="navbar-brand" href="/">
+ <img class="wiki-logo" src="/logo.png" />
+ </a>
+ </div>
+ </div>
+ </nav>
+</header>
+-->
+
+<div class="container">
+ <div class="row"><div class="col-md-12">
+
+ <article class="page">
+ <section class="pageheader">
+
+ <nav class="actions navbar navbar-default" role="navigation">
+ <div class="container">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ </div>
+
+ <span class="navbar-brand">
+ <TMPL_VAR TITLE>
+ <TMPL_IF ISTRANSLATION>
+ &nbsp;(<TMPL_VAR PERCENTTRANSLATED>%)
+ </TMPL_IF>
+ </span>
+
+ <div class="collapse navbar-collapse navbar-right" id="bs-example-navbar-collapse-1">
+ <TMPL_IF HAVE_ACTIONS>
+ <ul class="nav navbar-nav">
+ <TMPL_IF EDITURL>
+ <li><a href="<TMPL_VAR EDITURL>" rel="nofollow">Edit</a></li>
+ </TMPL_IF>
+ <TMPL_IF RECENTCHANGESURL>
+ <li><a href="<TMPL_VAR RECENTCHANGESURL>">RecentChanges</a></li>
+ </TMPL_IF>
+ <TMPL_IF HISTORYURL>
+ <li><a href="<TMPL_VAR HISTORYURL>">History</a></li>
+ </TMPL_IF>
+ <TMPL_IF GETSOURCEURL>
+ <li><a href="<TMPL_VAR GETSOURCEURL>">Source</a></li>
+ </TMPL_IF>
+ <TMPL_IF PREFSURL>
+ <li><a href="<TMPL_VAR PREFSURL>">Preferences</a></li>
+ </TMPL_IF>
+ <TMPL_IF ACTIONS>
+ <TMPL_LOOP ACTIONS>
+ <li><TMPL_VAR ACTION></li>
+ </TMPL_LOOP>
+ </TMPL_IF>
+ <TMPL_IF COMMENTSLINK>
+ <li><TMPL_VAR COMMENTSLINK></li>
+ <TMPL_ELSE>
+ <TMPL_IF DISCUSSIONLINK>
+ <li><TMPL_VAR DISCUSSIONLINK></li>
+ </TMPL_IF>
+ </TMPL_IF>
+ </ul>
+ </TMPL_IF>
+
+ <TMPL_UNLESS DYNAMIC>
+ <TMPL_IF SEARCHFORM>
+ <TMPL_VAR SEARCHFORM>
+ </TMPL_IF>
+ </TMPL_UNLESS>
+ </div>
+ </div>
+ </nav>
+
+ <TMPL_IF PARENTLINKS>
+ <ol class="breadcrumb">
+ <TMPL_LOOP PARENTLINKS>
+ <li class="parentlinks">
+ <a href="<TMPL_VAR URL>"><TMPL_VAR PAGE></a>
+ </li>
+ </TMPL_LOOP>
+ <li class="active"><TMPL_VAR TITLE></li>
+ </ol>
+ </TMPL_IF>
+
+ <TMPL_IF OTHERLANGUAGES>
+ <TMPL_IF HTML5><nav id="otherlanguages"><TMPL_ELSE><div id="otherlanguages"></TMPL_IF>
+ <ul>
+ <TMPL_LOOP OTHERLANGUAGES>
+ <li>
+ <a href="<TMPL_VAR URL>"><TMPL_VAR LANGUAGE></a>
+ <TMPL_IF MASTER>
+ (master)
+ <TMPL_ELSE>
+ &nbsp;(<TMPL_VAR PERCENT>%)
+ </TMPL_IF>
+ </li>
+ </TMPL_LOOP>
+ </ul>
+ <TMPL_IF HTML5></nav><TMPL_ELSE></div></TMPL_IF>
+ </TMPL_IF>
+
+ <TMPL_UNLESS DYNAMIC>
+ <TMPL_VAR TRAILS>
+ </TMPL_UNLESS>
+
+ </section>
+ </div></div>
+ <div class="row"><div class="col-md-10">
+ <div id="pagebody">
+
+ <section id="content">
+ <TMPL_VAR CONTENT>
+ </section>
+
+ <TMPL_IF ENCLOSURE>
+ <TMPL_IF HTML5><section id="enclosure"><TMPL_ELSE><div id="enclosure"></TMPL_IF>
+ <a href="<TMPL_VAR ENCLOSURE>">Download</a>
+ <TMPL_IF HTML5></section><TMPL_ELSE></div></TMPL_IF>
+ </TMPL_IF>
+
+ <TMPL_UNLESS DYNAMIC>
+ <TMPL_IF COMMENTS>
+ <TMPL_IF HTML5><section id="comments"><TMPL_ELSE><div id="comments"></TMPL_IF>
+ <TMPL_VAR COMMENTS>
+ <TMPL_IF ADDCOMMENTURL>
+ <div class="addcomment">
+ <a href="<TMPL_VAR ADDCOMMENTURL>">Add a comment</a>
+ </div>
+ <TMPL_ELSE>
+ <div class="addcomment">Comments on this page are closed.</div>
+ </TMPL_IF>
+ <TMPL_IF HTML5></section><TMPL_ELSE></div></TMPL_IF>
+ </TMPL_IF>
+ </TMPL_UNLESS>
+
+ </div>
+ </div><div class="col-md-2">
+ <TMPL_UNLESS DYNAMIC>
+ <TMPL_IF SIDEBAR>
+ <TMPL_IF HTML5><aside class="sidebar"><TMPL_ELSE><div class="sidebar"></TMPL_IF>
+ <TMPL_VAR SIDEBAR>
+ <TMPL_IF HTML5></aside><TMPL_ELSE></div></TMPL_IF>
+ </TMPL_IF>
+ </TMPL_UNLESS>
+ </div></div>
+ <div class="row"><div class="col-md-12">
+
+ <footer id="footer" class="pagefooter">
+ <TMPL_UNLESS DYNAMIC>
+ <TMPL_IF HTML5><nav id="pageinfo"><TMPL_ELSE><div id="pageinfo"></TMPL_IF>
+
+ <TMPL_VAR TRAILS>
+
+ <TMPL_IF TAGS>
+ <TMPL_IF HTML5><nav class="tags"><TMPL_ELSE><div class="tags"></TMPL_IF>
+ Tags:
+ <TMPL_LOOP TAGS>
+ <TMPL_VAR LINK>
+ </TMPL_LOOP>
+ <TMPL_IF HTML5></nav><TMPL_ELSE></div></TMPL_IF>
+ </TMPL_IF>
+
+ <TMPL_IF BACKLINKS>
+ <TMPL_IF HTML5><nav id="backlinks"><TMPL_ELSE><div id="backlinks"></TMPL_IF>
+ Links:
+ <TMPL_LOOP BACKLINKS>
+ <a href="<TMPL_VAR URL>"><TMPL_VAR PAGE></a>
+ </TMPL_LOOP>
+ <TMPL_IF MORE_BACKLINKS>
+ <span class="popup">...
+ <span class="balloon">
+ <TMPL_LOOP MORE_BACKLINKS>
+ <a href="<TMPL_VAR URL>"><TMPL_VAR PAGE></a>
+ </TMPL_LOOP>
+ </span>
+ </span>
+ </TMPL_IF>
+ <TMPL_IF HTML5></nav><TMPL_ELSE></div></TMPL_IF>
+ </TMPL_IF>
+
+ <TMPL_IF COPYRIGHT>
+ <div class="pagecopyright">
+ <a name="pagecopyright"></a>
+ <TMPL_VAR COPYRIGHT>
+ </div>
+ </TMPL_IF>
+
+ <TMPL_IF LICENSE>
+ <div class="pagelicense">
+ <a name="pagelicense"></a>
+ License: <TMPL_VAR LICENSE>
+ </div>
+ </TMPL_IF>
+
+ <div class="pagedate">
+ Last edited <TMPL_VAR MTIME>
+ <!-- Created <TMPL_VAR CTIME> -->
+ </div>
+
+ <TMPL_IF HTML5></nav><TMPL_ELSE></div></TMPL_IF>
+
+ <br/><br/><br/><br/>
+
+ <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Creative Commons Licence" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/80x15.png" /></a><br />The content of this site is under the <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License</a> unless otherwise stated.<br />
+ <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons Licence" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/80x15.png" /></a><br />The artwork on this site is copyright 2017 <a href="http://www.maxinegreen.co.uk/">Maxine Green</a> and is provided under the <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.<br />
+For the community guidelines, please see <a href="https://www.gitano.org.uk/covenant/">The Gitano Community Covenant</a>.
+
+ <TMPL_IF EXTRAFOOTER><TMPL_VAR EXTRAFOOTER></TMPL_IF>
+ </TMPL_UNLESS>
+ <!-- from <TMPL_VAR WIKINAME> -->
+ </footer>
+
+ </article>
+
+ </div></div>
+</div>
+
+<script>
+$(function () {
+ $('input[name="_submit"]').addClass('btn btn-default');
+ $('textarea, input[type="text"]').addClass('form-control');
+ $('.toc').addClass('panel-body').wrap('<div class="panel panel-default"></div>')
+ .parent().prepend('<div class="panel-heading"><div class="panel-title">Table of Contents</div></div>');
+});
+</script>
+
+
+</body>
+</html>
diff --git a/ikiwiki-bootstrap-theme/passwordmail.tmpl b/ikiwiki-bootstrap-theme/passwordmail.tmpl
new file mode 100644
index 0000000..aa8a68c
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/passwordmail.tmpl
@@ -0,0 +1,15 @@
+Someone[1], possibly you, requested that the password for
+<TMPL_VAR USER_NAME> on <TMPL_VAR WIKINAME>[2] be reset.
+
+To change your password, visit the following url, and enter a new password:
+
+<TMPL_VAR PASSWORDURL>
+
+This url can only be used once to change your password, and it will also
+stop working the next time you successfully log in.
+
+--
+ikiwiki
+
+[1] Their IP address was <TMPL_VAR REMOTE_ADDR>
+[2] Located at <TMPL_VAR WIKIURL>
diff --git a/ikiwiki-bootstrap-theme/pocreatepage.tmpl b/ikiwiki-bootstrap-theme/pocreatepage.tmpl
new file mode 100644
index 0000000..f22ee50
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/pocreatepage.tmpl
@@ -0,0 +1,3 @@
+<p>
+<b>WARNING</b> this page must be written in <TMPL_VAR LANG>.
+</p>
diff --git a/ikiwiki-bootstrap-theme/recentchanges.tmpl b/ikiwiki-bootstrap-theme/recentchanges.tmpl
new file mode 100644
index 0000000..6099d1b
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/recentchanges.tmpl
@@ -0,0 +1,23 @@
+<TMPL_IF FIRST>
+<div id="change-<TMPL_VAR REV>" class="metadata table-responsive">
+ <table class="table table-bordered recentchanges-table">
+ <thead>
+ <tr>
+ <th width="25%">Message</th>
+ <th width="25%">Changed pages</th>
+ <th width="10%">Changed by</th>
+ <th width="10%">Commit type</th>
+ <th width="20%">Date</th>
+ <th width="10%">Actions</th>
+ </tr>
+ </thead>
+ <tbody>
+</TMPL_IF>
+ <tr>
+ <TMPL_VAR CONTENT>
+ </tr>
+<TMPL_IF LAST>
+ </tbody>
+ </table>
+</div>
+</TMPL_IF>
diff --git a/ikiwiki-bootstrap-theme/renamesummary.tmpl b/ikiwiki-bootstrap-theme/renamesummary.tmpl
new file mode 100644
index 0000000..7a8dc92
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/renamesummary.tmpl
@@ -0,0 +1,26 @@
+<TMPL_IF ERROR>
+<p>
+<b>Failed to rename <TMPL_VAR SRC> to <TMPL_VAR DEST>: </b>
+<TMPL_VAR ERROR>
+</p>
+<TMPL_ELSE>
+<p>
+<b>Successfully renamed <TMPL_VAR SRC> to <TMPL_VAR DEST>.</b>
+</p>
+<p>
+<TMPL_IF FIXEDLINKS>
+The following pages have been automatically modified to update their links to <TMPL_VAR DEST>:
+<ul>
+<TMPL_LOOP FIXEDLINKS><li><TMPL_VAR PAGE></li></TMPL_LOOP>
+</ul>
+</TMPL_IF>
+<TMPL_IF BROKENLINKS_CHECKED>
+<TMPL_IF BROKENLINKS>
+The following pages still link to <TMPL_VAR SRC>:
+<ul>
+<TMPL_LOOP BROKENLINKS><li><TMPL_VAR PAGE></li></TMPL_LOOP>
+</ul>
+</TMPL_IF>
+</TMPL_IF>
+</p>
+</TMPL_IF>
diff --git a/ikiwiki-bootstrap-theme/revert.tmpl b/ikiwiki-bootstrap-theme/revert.tmpl
new file mode 100644
index 0000000..0de3281
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/revert.tmpl
@@ -0,0 +1,21 @@
+<TMPL_VAR FORM-START>
+<div>
+ <TMPL_VAR FIELD-DO>
+ <TMPL_VAR FIELD-SID>
+ <TMPL_VAR FIELD-REV>
+<label for="revertmessage" class="block">Optional comment about this change:</label>
+ <TMPL_VAR FIELD-REVERTMESSAGE>
+</div>
+<div class="revert buttons">
+<TMPL_VAR form-submit>
+<TMPL_VAR form-cancel>
+</div>
+<TMPL_VAR FORM-END>
+<br \>
+<div class="header">
+<span>Diff being reverted:</span>
+</div>
+<div id="diff">
+<pre>
+<TMPL_VAR diff>
+</pre>
diff --git a/ikiwiki-bootstrap-theme/rssitem.tmpl b/ikiwiki-bootstrap-theme/rssitem.tmpl
new file mode 100644
index 0000000..bb03ca5
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/rssitem.tmpl
@@ -0,0 +1,28 @@
+<item>
+ <title><TMPL_VAR TITLE></title>
+<TMPL_IF GUID>
+ <guid isPermaLink="false"><TMPL_VAR GUID></guid>
+<TMPL_ELSE>
+ <guid isPermaLink="false"><TMPL_VAR URL></guid>
+</TMPL_IF>
+ <link><TMPL_VAR PERMALINK></link>
+<TMPL_IF AUTHOR>
+ <dc:creator><TMPL_VAR AUTHOR ESCAPE=HTML></dc:creator>
+</TMPL_IF>
+<TMPL_IF CATEGORIES>
+<TMPL_LOOP CATEGORIES>
+ <category><TMPL_VAR CATEGORY></category>
+</TMPL_LOOP>
+</TMPL_IF>
+ <pubDate><TMPL_VAR CDATE_822></pubDate>
+ <dcterms:modified><TMPL_VAR MDATE_3339></dcterms:modified>
+<TMPL_IF ENCLOSURE>
+ <enclosure url="<TMPL_VAR ENCLOSURE>" type="<TMPL_VAR TYPE>" length="<TMPL_VAR LENGTH>" />
+</TMPL_IF>
+<TMPL_UNLESS SIMPLEPODCAST>
+ <description><TMPL_VAR CONTENT ESCAPE=HTML></description>
+</TMPL_UNLESS>
+<TMPL_IF COMMENTSURL>
+ <comments><TMPL_VAR COMMENTSURL></comments>
+</TMPL_IF>
+</item>
diff --git a/ikiwiki-bootstrap-theme/rsspage.tmpl b/ikiwiki-bootstrap-theme/rsspage.tmpl
new file mode 100644
index 0000000..45265f2
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/rsspage.tmpl
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<rss version="2.0"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:dcterms="http://purl.org/dc/terms/" >
+<channel>
+<title><TMPL_VAR TITLE></title>
+<link><TMPL_VAR PAGEURL></link>
+<TMPL_IF COPYRIGHT>
+<copyright><TMPL_VAR COPYRIGHT ESCAPE=HTML></copyright>
+</TMPL_IF>
+<description><TMPL_VAR FEEDDESC ESCAPE=HTML></description>
+<generator>ikiwiki</generator>
+<pubDate><TMPL_VAR FEEDDATE_822></pubDate>
+<TMPL_VAR CONTENT>
+</channel>
+</rss>
diff --git a/ikiwiki-bootstrap-theme/searchform.tmpl b/ikiwiki-bootstrap-theme/searchform.tmpl
new file mode 100644
index 0000000..4f51c5a
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/searchform.tmpl
@@ -0,0 +1,9 @@
+<form class="navbar-form navbar-right" role="search" method="get" action="<TMPL_VAR SEARCHACTION>" id="searchform">
+ <div class="form-group">
+ <div class="input-group">
+ <span class="input-group-addon"><i class="glyphicon glyphicon-search"></i></span>
+ <input class="form-control" placeholder="Search" type="text" id="searchbox" name="P" value="" size="16" />
+ </div>
+ </div>
+ <button type="submit" class="btn btn-default">Submit</button>
+</form>
diff --git a/ikiwiki-bootstrap-theme/searchquery.tmpl b/ikiwiki-bootstrap-theme/searchquery.tmpl
new file mode 100644
index 0000000..3c5d2a9
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/searchquery.tmpl
@@ -0,0 +1,125 @@
+$setmap{prefix,title,S}
+$setmap{prefix,link,XLINK}
+$set{thousand,$.}$set{decimal,.}$setmap{BN,,Any Country,uk,England,fr,France}
+${
+$def{PREV,
+$if{$ne{$topdoc,0},<INPUT TYPE=image NAME="&lt;" ALT="&lt;"
+SRC="/images/xapian-omega/prev.png" BORDER=0 HEIGHT=30 WIDTH=30>,
+<IMG ALT="" SRC="/images/xapian-omega/prevoff.png" HEIGHT=30 WIDTH=30>}
+}
+
+$def{NEXT,
+$if{$ne{$last,$msize},<INPUT TYPE=image NAME="&gt;" ALT="&gt;"
+SRC="/images/xapian-omega/next.png" BORDER=0 HEIGHT=30 WIDTH=30>,
+<IMG ALT="" SRC="/images/xapian-omega/nextoff.png" HEIGHT=30 WIDTH=30>}
+}
+
+$def{P,<INPUT TYPE=image NAME="$1" VALUE="$1" SRC="/images/xapian-omega/page-$2.png" BORDER=0$opt{a} ALT="$1">}
+$def{PAGE,$if{$gt{$1,9},$if{$gt{$1,99},$P{$1,$div{$1,100}}}$P{$1,$mod{$div{$1,10},10}}}$P{$1,$mod{$1,10}}}
+
+$def{S,<IMG SRC="/images/xapian-omega/page-$2s.png"$opt{a} ALT=$1>}
+$def{SPAGE,$if{$gt{$1,9},$if{$gt{$1,99},$S{$1,$div{$1,100}}}$S{$1,$mod{$div{$1,10},10}}}$S{$1,$mod{$1,10}}}
+}
+
+$def{PREV,$if{$ne{$topdoc,0},<INPUT class="btn btn-default" TYPE=submit NAME="&lt;" VALUE="Previous">}}
+
+$def{PAGE,<INPUT class="btn btn-default" TYPE=submit NAME="[" VALUE="$1">}
+
+$def{SPAGE,<INPUT class="btn btn-default" TYPE=submit NAME="[" VALUE="$1" DISABLED=disabled>}
+
+$def{NEXT,$if{$ne{$last,$msize},<INPUT class="btn btn-default" TYPE=submit NAME="&gt;" VALUE="Next">}}
+
+<p>
+
+<FORM class="container form-inline" role="form" NAME=P METHOD=GET ACTION="$html{$env{CGIURL}}" TARGET="_top">
+ <div class="row">
+ <div style="text-align:center" class="form-group col-12 col-centered">
+ <INPUT class="form-control" placeholder="Search query" NAME=P VALUE="$html{$query}" SIZE=65>
+ <SELECT class="form-control" NAME=DEFAULTOP>
+ <OPTION VALUE=or $if{$eq{$defaultop,or},SELECTED}>Matching any words
+ <OPTION VALUE=and $if{$eq{$defaultop,and},SELECTED}>Matching all words
+ </SELECT>
+ <INPUT class="btn btn-default" TYPE=SUBMIT VALUE="Search">
+ $env{HELPLINK}
+ </div>
+ </div>
+
+
+ <div class="row">
+ <div class="col-12">
+ <hr>
+ $or{$html{$error},
+ $if{$eq{$msize,0},
+ $if{$query,No documents match your query,
+ <hr>Searching $nice{$dbsize} documents
+ },
+ $if{$not{$msizeexact},
+ $nice{$add{$topdoc,1}}-$nice{$last} of about $nice{$msize} matches,
+ $if{$and{$eq{$last,$msize},$eq{$topdoc,0}},
+ All $nice{$msize} matches,
+ $nice{$add{$topdoc,1}}$if{$ne{$add{$topdoc,1},$last},-$nice{$last}} of exactly $nice{$msize} matches}
+ }
+ $list{$map{$queryterms,$list{$html{$uniq{$unstem{$_}}},<b>,</b>/<b>,</b>}:&nbsp;$nice{$freq{$_}}},Term frequencies: ,$. ,}
+ <br><small>Search took $time seconds</small>
+ </div>
+ </div>
+
+ <br/>
+
+ <div class="row"><div class="col-12">
+ <table class="table table-bordered table-striped">
+ $hitlist{<tr><td valign=top>
+ ${<IMG SRC="/images/xapian-omega/score-$div{$percentage,10}.png" ALT="$percentage%" HEIGHT=16 WIDTH=32>}
+ <div title="$percentage%" style='float:left;width:60px;height:10px;border:1px solid black;margin-top:4px;'>
+ <div style='width:$div{$mul{$percentage,6},10}px; height:10px; background-color: red;'>
+ </div></div>
+ <div style='float:left;margin-top:2px;font-size:x-small;'>
+ <span title="$html{$date{$field{modtime},%Y-%m-%d %H:%M:%S}}">
+ Modified:<br><b>$html{$date{$field{modtime},%Y-%m-%d}}</b></span><br>
+ $if{$field{language},Language: <bold>$html{$field{language}}</bold><br>}
+ $if{$field{size},<span title="$html{$field{size}} bytes">Size: <b>$html{$filesize{$field{size}}}</b></span><br>}
+ </div>
+ </td>
+ <td><B><A HREF="$html{$field{url}}">$html{$or{$field{caption},$field{title},$field{url},Untitled}}</A></B><BR>
+ <small>$highlight{$field{sample},$terms}$if{$field{sample},...}</small><br>
+ <small>
+ $percentage% relevant$. matching:
+ <i>$list{$map{$terms,$html{$prettyterm{$_}}},$. ,</i> and <i>}</i></small>${for lynx:}<p></td></tr>}
+ </table>
+ </div></div>
+
+ <br />
+
+ <div style="text-align:center">
+ ${suppress next, prev, and page links if there's only one page}
+ $if{$ne{$lastpage,1},
+ $set{a,$if{$opt{pagelink_height}, HEIGHT=$opt{pagelink_height}}$if{$opt{pagelink_width}, WIDTH=$opt{pagelink_width}}}
+
+ ${1-W ... X-(this)-Y ...}
+ $set{w,$min{3,$add{$thispage,-1}}}
+ $set{x,$max{$add{$opt{w},1},$add{$thispage,-3}}}
+ $set{y,$min{$lastpage,$add{$thispage,8}}}
+ $PREV
+ $map{$range{1,$opt{w}},$PAGE{$_}}
+ $if{$ne{$add{$opt{w},1},$opt{x}},...}
+ $map{$range{$opt{x},$add{$thispage,-1}},$PAGE{$_}}
+ $SPAGE{$thispage}
+ $map{$range{$add{$thispage,1},$opt{y}},$PAGE{$_}}
+ $if{$ne{$opt{y},$lastpage},...}
+ $NEXT
+ }
+ }}
+ </div><br />
+ $if{$dbname,<INPUT TYPE=hidden NAME=DB VALUE="$html{$dbname}">}
+ $if{$ne{$topdoc,0},<INPUT TYPE=hidden NAME=TOPDOC VALUE=$topdoc>}
+ $if{$ne{$hitsperpage,10},<INPUT TYPE=hidden NAME=HITSPERPAGE VALUE=$hitsperpage>}
+ $if{$fmt,<INPUT TYPE=hidden NAME=FMT VALUE="$html{$fmt}">}
+ $if{$cgi{COLLAPSE},<INPUT TYPE=hidden NAME=COLLAPSE VALUE="$html{$cgi{COLLAPSE}}">}
+ $if{$queryterms,<INPUT TYPE=hidden NAME=xP VALUE="$html{$queryterms}">}
+ <INPUT TYPE=hidden NAME=xDB VALUE="$html{$dbname}">
+ <INPUT TYPE=hidden NAME=xFILTERS VALUE="$html{$filters}">
+ $list{$relevants,<INPUT TYPE=hidden NAME=R VALUE=",.,">}
+ $if{$cgi{THRESHOLD},<INPUT TYPE=hidden NAME=THRESHOLD VALUE="$html{$cgi{THRESHOLD}}">}
+
+</FORM>
+<hr><div align=right><i><small><a href="http://www.xapian.org/">$html{$version}</a></small></i></div>
diff --git a/ikiwiki-bootstrap-theme/titlepage.tmpl b/ikiwiki-bootstrap-theme/titlepage.tmpl
new file mode 100644
index 0000000..0e61037
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/titlepage.tmpl
@@ -0,0 +1,7 @@
+<h2>
+<TMPL_IF PERMALINK>
+<a href="<TMPL_VAR PERMALINK>"><TMPL_VAR TITLE></a>
+<TMPL_ELSE>
+<a href="<TMPL_VAR PAGEURL>"><TMPL_VAR TITLE></a>
+</TMPL_IF>
+</h2>
diff --git a/ikiwiki-bootstrap-theme/trails.tmpl b/ikiwiki-bootstrap-theme/trails.tmpl
new file mode 100644
index 0000000..54c0460
--- /dev/null
+++ b/ikiwiki-bootstrap-theme/trails.tmpl
@@ -0,0 +1,23 @@
+<TMPL_LOOP TRAILLOOP>
+<TMPL_IF __FIRST__><TMPL_IF HTML5><nav class="trails"><TMPL_ELSE><div class="trails"></TMPL_IF></TMPL_IF>
+<div class="trail">
+<TMPL_IF PREVPAGE>
+<span class="trailprev">
+<span class="trailarrow">←</span>
+<a href="<TMPL_VAR PREVURL>"><TMPL_VAR PREVTITLE></a>
+<span class="trailsep">|</span>
+</span>
+</TMPL_IF>
+<span class="trailup">
+<a href="<TMPL_VAR TRAILURL>"><TMPL_VAR TRAILTITLE></a>
+</span>
+<TMPL_IF NEXTPAGE>
+<span class="trailnext">
+<span class="trailsep">|</span>
+<a href="<TMPL_VAR NEXTURL>"><TMPL_VAR NEXTTITLE></a>
+<span class="trailarrow">→</span>
+</span>
+</TMPL_IF>
+</div>
+<TMPL_IF __LAST__><TMPL_IF HTML5></nav><TMPL_ELSE></div></TMPL_IF></TMPL_IF>
+</TMPL_LOOP>
diff --git a/nswiki.setup b/nswiki.setup
new file mode 100644
index 0000000..0125de2
--- /dev/null
+++ b/nswiki.setup
@@ -0,0 +1,406 @@
+# IkiWiki::Setup::Yaml - YAML formatted setup file
+#
+# Setup file for ikiwiki.
+#
+# Passing this to ikiwiki --setup will make ikiwiki generate
+# wrappers and build the wiki.
+#
+# Remember to re-run ikiwiki --setup any time you edit this file.
+#
+# name of the wiki
+wikiname: NetSurf Developers Wiki
+# contact email for wiki
+#adminemail: me@example.com
+# users who are wiki admins
+adminuser: []
+# users who are banned from the wiki
+banned_users: []
+# where the source of the wiki is located
+srcdir: '/home/netsurf/websites/wiki.netsurf-browser.org/gitroot'
+# where to build the wiki
+destdir: '/home/netsurf/websites/wiki.netsurf-browser.org/html'
+# base url to the wiki
+url: 'http://wiki.netsurf-browser.org/'
+# url to the ikiwiki.cgi
+cgiurl: ''
+# do not adjust cgiurl if CGI is accessed via different URL
+reverse_proxy: 0
+# filename of cgi wrapper to generate
+cgi_wrapper: ''
+# mode for cgi_wrapper (can safely be made suid)
+cgi_wrappermode: 06755
+# number of seconds to delay CGI requests when overloaded
+cgi_overload_delay: ''
+# message to display when overloaded (may contain html)
+cgi_overload_message: ''
+# enable optimization of only refreshing committed changes?
+only_committed_changes: 0
+# rcs backend to use
+rcs: ''
+# plugins to add to the default configuration
+add_plugins:
+- goodstuff
+- websetup
+- comments
+- blogspam
+- underlay
+- jscalendar
+- sidebar
+- trail
+- openid
+- remove
+- pingee
+- moderatedcomments
+- attachment
+- rename
+- htmlscrubber
+- relativedate
+- version
+- lockedit
+- favicon
+- format
+- highlight
+- getsource
+- edittemplate
+# plugins to disable
+disable_plugins: []
+# additional directory to search for t=emplate files
+templatedir: /home/netsurf/websites/wiki.netsurf-browser.org/gitsetup/ikiwiki-bootstrap-theme
+# base wiki source location
+underlaydir: /usr/share/ikiwiki/basewiki
+# display verbose messages?
+#verbose: 1
+# log to syslog?
+#syslog: 1
+# create output files named page/index.html?
+usedirs: 1
+# use '!'-prefixed preprocessor directives?
+prefix_directives: 1
+# use page/index.mdwn source files
+indexpages: 0
+# enable Discussion pages?
+discussion: 1
+# name of Discussion pages
+discussionpage: Discussion
+# use elements new in HTML5 like <section>?
+html5: 1
+# only send cookies over SSL connections?
+sslcookie: 0
+# extension to use for new pages
+default_pageext: mdwn
+# extension to use for html files
+htmlext: html
+# strftime format string to display date
+timeformat: '%c'
+# UTF-8 locale to use
+#locale: en_US.UTF-8
+# put user pages below specified page
+userdir: ''
+# how many backlinks to show before hiding excess (0 to show all)
+numbacklinks: 10
+# attempt to hardlink source files? (optimisation for large files)
+hardlink: 0
+# force ikiwiki to use a particular umask (keywords public, group or private, or a number)
+#umask: public
+# group for wrappers to run in
+#wrappergroup: ikiwiki
+# extra library and plugin directories
+libdirs: []
+# extra library and plugin directory (searched after libdirs)
+libdir: '/home/dsilvers/websites/digital-scurf.org/blog/gresille-ikiwiki/jscalendar'
+# environment variables
+ENV: {}
+# time zone name
+#timezone: US/Eastern
+# regexp of normally excluded files to include
+#include: ^\.htaccess$
+# regexp of files that should be skipped
+#exclude: ^(*\.private|Makefile)$
+# specifies the characters that are allowed in source filenames
+wiki_file_chars: -[:alnum:]+/.:_
+# allow symlinks in the path leading to the srcdir (potentially insecure)
+allow_symlinks_before_srcdir: 0
+# cookie control
+cookiejar:
+ file: /home/dsilvers/.ikiwiki/cookies
+# set custom user agent string for outbound HTTP requests e.g. when fetching aggregated RSS feeds
+useragent: ikiwiki/3.20150107
+# theme has a responsive layout? (mobile-optimized)
+responsive_layout: 1
+
+######################################################################
+# core plugins
+# (editpage, htmlscrubber, inline, link, meta, parentlinks, templatebody)
+######################################################################
+
+# htmlscrubber plugin
+# PageSpec specifying pages not to scrub
+#htmlscrubber_skip: '!*/Discussion'
+
+# inline plugin
+# enable rss feeds by default?
+#rss: 0
+# enable atom feeds by default?
+#atom: 0
+# allow rss feeds to be used?
+#allowrss: 0
+# allow atom feeds to be used?
+#allowatom: 0
+# urls to ping (using XML-RPC) on feed update
+pingurl: []
+
+######################################################################
+# auth plugins
+# (anonok, blogspam, httpauth, lockedit, moderatedcomments,
+# opendiscussion, openid, passwordauth, signinedit)
+######################################################################
+
+# anonok plugin
+# PageSpec to limit which pages anonymous users can edit
+#anonok_pagespec: '*/discussion'
+
+# blogspam plugin
+# PageSpec of pages to check for spam
+#blogspam_pagespec: postcomment(*)
+# options to send to blogspam server
+#blogspam_options: blacklist=1.2.3.4,blacklist=8.7.6.5,max-links=10
+# blogspam server JSON url
+#blogspam_server: ''
+
+# httpauth plugin
+# url to redirect to when authentication is needed
+#cgiauthurl: http://example.com/wiki/auth/ikiwiki.cgi
+# PageSpec of pages where only httpauth will be used for authentication
+#httpauth_pagespec: '!*/Discussion'
+
+# lockedit plugin
+# PageSpec controlling which pages are locked
+#locked_pages: '!*/Discussion'
+
+# moderatedcomments plugin
+# PageSpec matching users or comment locations to moderate
+#moderate_pagespec: '*'
+
+# openid plugin
+# url pattern of openid realm (default is cgiurl)
+#openid_realm: ''
+# url to ikiwiki cgi to use for openid authentication (default is cgiurl)
+#openid_cgiurl: ''
+
+# passwordauth plugin
+# a password that must be entered when signing up for an account
+#account_creation_password: s3cr1t
+# cost of generating a password using Authen::Passphrase::BlowfishCrypt
+#password_cost: 8
+
+######################################################################
+# format plugins
+# (creole, highlight, hnb, html, mdwn, otl, rawhtml, rst, textile, txt)
+######################################################################
+
+# highlight plugin
+# types of source files to syntax highlight
+#tohighlight: .c .h .cpp .pl .py Makefile:make
+# location of highlight's filetypes.conf
+#filetypes_conf: /etc/highlight/filetypes.conf
+# location of highlight's langDefs directory
+#langdefdir: /usr/share/highlight/langDefs
+
+# mdwn plugin
+# enable multimarkdown features?
+multimarkdown: 1
+# disable use of markdown discount?
+nodiscount: 1
+
+######################################################################
+# special-purpose plugins
+# (osm, underlay)
+######################################################################
+
+# osm plugin
+# the default zoom when you click on the map link
+#osm_default_zoom: 15
+# the icon shown on links and on the main map
+#osm_default_icon: ikiwiki/images/osm.png
+# the alt tag of links, defaults to empty
+#osm_alt: ''
+# the output format for waypoints, can be KML, GeoJSON or CSV (one or many, comma-separated)
+#osm_format: KML
+# the icon attached to a tag, displayed on the map for tagged pages
+#osm_tag_default_icon: icon.png
+# Url for the OpenLayers.js file
+#osm_openlayers_url: http://www.openlayers.org/api/OpenLayers.js
+# Layers to use in the map. Can be either the 'OSM' string or a type option for Google maps (GoogleNormal, GoogleSatellite, GoogleHybrid or GooglePhysical). It can also be an arbitrary URL in a syntax acceptable for OpenLayers.Layer.OSM.url parameter.
+#osm_layers:
+# OSM: GoogleSatellite
+# Google maps API key, Google layer not used if missing, see https://code.google.com/apis/console/ to get an API key
+#osm_google_apikey: ''
+
+# underlay plugin
+# extra underlay directories to add
+#add_underlays:
+#- /home/dsilvers/wiki.underlay
+
+######################################################################
+# web plugins
+# (404, attachment, comments, editdiff, edittemplate, getsource, google,
+# goto, mirrorlist, remove, rename, repolist, search, theme, userlist,
+# websetup, wmd)
+######################################################################
+
+# attachment plugin
+# enhanced PageSpec specifying what attachments are allowed
+#allowed_attachments: virusfree() and mimetype(image/*) and maxsize(50kb)
+# virus checker program (reads STDIN, returns nonzero if virus found)
+#virus_checker: clamdscan -
+
+# comments plugin
+# PageSpec of pages where comments are allowed
+#comments_pagespec: blog/* and !*/Discussion
+# PageSpec of pages where posting new comments is not allowed
+#comments_closed_pagespec: blog/controversial or blog/flamewar
+# Base name for comments, e.g. "comment_" for pages like "sandbox/comment_12"
+#comments_pagename: ''
+# Interpret directives in comments?
+#comments_allowdirectives: 0
+# Allow anonymous commenters to set an author name?
+#comments_allowauthor: 0
+# commit comments to the VCS
+#comments_commit: 1
+# Restrict formats for comments to (no restriction if empty)
+#comments_allowformats: mdwn txt
+
+# getsource plugin
+# Mime type for returned source.
+#getsource_mimetype: text/plain; charset=utf-8
+
+# mirrorlist plugin
+# list of mirrors
+#mirrorlist: {}
+# generate links that point to the mirrors' ikiwiki CGI
+#mirrorlist_use_cgi: 1
+
+# repolist plugin
+# URIs of repositories containing the wiki's source
+#repositories:
+#- svn://svn.example.org/wiki/trunk
+
+# search plugin
+# path to the omega cgi program
+#omega_cgi: /usr/lib/cgi-bin/omega/omega
+# use google site search rather than internal xapian index?
+#google_search: 1
+
+# theme plugin
+# name of theme to enable
+#theme: actiontabs
+
+# websetup plugin
+# list of plugins that cannot be enabled/disabled via the web interface
+#websetup_force_plugins: []
+# list of additional setup field keys to treat as unsafe
+#websetup_unsafe: []
+# show unsafe settings, read-only, in web interface?
+#websetup_show_unsafe: 1
+
+######################################################################
+# widget plugins
+# (calendar, color, conditional, cutpaste, date, format, fortune,
+# graphviz, haiku, headinganchors, img, linkmap, listdirectives, map,
+# more, orphans, pagecount, pagestats, poll, polygen, postsparkline,
+# progress, shortcut, sparkline, table, template, teximg, toc, toggle,
+# version)
+######################################################################
+
+# calendar plugin
+# base of the archives hierarchy
+#archivebase: archives
+# PageSpec of pages to include in the archives, if option `calendar_autocreate` is true.
+#archive_pagespec: page(posts/*) and !*/Discussion
+# autocreate new calendar pages?
+#calendar_autocreate: 1
+# if set, when building calendar pages, also build pages of year and month when no pages were published (building empty calendars).
+#calendar_fill_gaps: 1
+
+# listdirectives plugin
+# directory in srcdir that contains directive descriptions
+#directive_description_dir: ikiwiki/directive
+
+# teximg plugin
+# Should teximg use dvipng to render, or dvips and convert?
+#teximg_dvipng: ''
+# LaTeX prefix for teximg plugin
+#teximg_prefix: '\documentclass{article}
+#
+# \usepackage[utf8]{inputenc}
+#
+# \usepackage{amsmath}
+#
+# \usepackage{amsfonts}
+#
+# \usepackage{amssymb}
+#
+# \pagestyle{empty}
+#
+# \begin{document}
+#
+#'
+# LaTeX postfix for teximg plugin
+#teximg_postfix: \end{document}
+
+######################################################################
+# other plugins
+# (aggregate, autoindex, brokenlinks, camelcase, ddate, embed, favicon,
+# filecheck, flattr, goodstuff, htmlbalance, localstyle, notifyemail,
+# pagetemplate, pingee, pinger, prettydate, recentchanges,
+# recentchangesdiff, relativedate, rsync, sidebar, smiley,
+# sortnaturally, tag, testpagespec, trail, transient)
+######################################################################
+
+# aggregate plugin
+# enable aggregation to internal pages?
+#aggregateinternal: 1
+# allow aggregation to be triggered via the web?
+#aggregate_webtrigger: 0
+
+# autoindex plugin
+# commit autocreated index pages
+#autoindex_commit: 1
+
+# camelcase plugin
+# list of words to not turn into links
+#camelcase_ignore: []
+
+# flattr plugin
+# userid or user name to use by default for Flattr buttons
+#flattr_userid: joeyh
+
+# pinger plugin
+# how many seconds to try pinging before timing out
+#pinger_timeout: 15
+
+# prettydate plugin
+# format to use to display date
+#prettydateformat: '%X, %B %o, %Y'
+
+# recentchanges plugin
+# name of the recentchanges page
+recentchangespage: recentchanges
+# number of changes to track
+recentchangesnum: 100
+
+# rsync plugin
+# command to run to sync updated pages
+#rsync_command: rsync -qa --delete . user@host:/path/to/docroot/
+
+# sidebar plugin
+# show sidebar page on all pages?
+#global_sidebars: 1
+
+# tag plugin
+# parent page tags are located under
+#tagbase: tag
+# autocreate new tag pages?
+#tag_autocreate: 1
+# commit autocreated tag pages
+#tag_autocreate_commit: 1