Recent changes to this wiki:

Bug: wrong rendering of template
diff --git a/doc/bugs/wrong_rendering_of_templatebody.mdwn b/doc/bugs/wrong_rendering_of_templatebody.mdwn
new file mode 100644
index 0000000..91c86d2
--- /dev/null
+++ b/doc/bugs/wrong_rendering_of_templatebody.mdwn
@@ -0,0 +1,22 @@
+I recently moved from Trisquel's version of ikiwiki (from 2013, the same one of
+Debian wheezy backports) to the version 5.20141016 which I built from git, by
+pulling the tag. One of the new things I have now is the templatebody
+directive.
+
+I started using it in my templates, and I suddenly notice strange behavior: one
+of my templates renders as the *rest* of the template page when used, instead of
+the body part. In other words, it renders exactly the part it should hide (the
+description) and ignores the body itself (which is inside \[[!templatebody]]).
+
+When I manually re-generate the wiki, it suddenly renders right. As soon as the
+page gets rebuilt automatically after some git push, it renders the wrong way.
+
+[[This|http://www.rel4tion.org/languages/haskell/]] is the page, and
+[[this|http://www.rel4tion.org/templates/wikitag/]] is a template it uses. Right
+now the template is rendered on that page exactly like the template page itself.
+Both display the description text, and the \[[!templatebody]] content isn't
+displayed at all.
+
+If I debug it myself and find something relevant, I'll update here.
+
+-- [[fr33domlover]]

diff --git a/doc/forum/Git_push_failure.mdwn b/doc/forum/Git_push_failure.mdwn
index e443994..d9953eb 100644
--- a/doc/forum/Git_push_failure.mdwn
+++ b/doc/forum/Git_push_failure.mdwn
@@ -1,18 +1,18 @@
 I set up a local Ikiwiki following the instruction on [manually installing](https://ikiwiki.info/setup/byhand/).  However, when I Git push, I see the following
 
-```
-$ git push
-Counting objects: 22, done.
-Delta compression using up to 4 threads.
-Compressing objects: 100% (22/22), done.
-Writing objects: 100% (22/22), 2.71 KiB | 0 bytes/s, done.
-Total 22 (delta 14), reused 0 (delta 0)
-remote: Died at /usr/share/perl5/IkiWiki/CGI.pm line 491.
-remote: Content-type: text/html
-remote: 
-remote: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-<skip>
-```
+
+    $ git push
+    Counting objects: 22, done.
+    Delta compression using up to 4 threads.
+    Compressing objects: 100% (22/22), done.
+    Writing objects: 100% (22/22), 2.71 KiB | 0 bytes/s, done.
+    Total 22 (delta 14), reused 0 (delta 0)
+    remote: Died at /usr/share/perl5/IkiWiki/CGI.pm line 491.
+    remote: Content-type: text/html
+    remote: 
+    remote: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    <skip>
+
 
 where the content at the bottom of the console printout is actually the content of my `rootdir/index.mdwn`.  And the destination, i.e. the deployed web documents is not automatically updated reflecting the commits I pushed to Git repo.  Any idea?
 

diff --git a/doc/forum/Git_push_failure.mdwn b/doc/forum/Git_push_failure.mdwn
new file mode 100644
index 0000000..e443994
--- /dev/null
+++ b/doc/forum/Git_push_failure.mdwn
@@ -0,0 +1,21 @@
+I set up a local Ikiwiki following the instruction on [manually installing](https://ikiwiki.info/setup/byhand/).  However, when I Git push, I see the following
+
+```
+$ git push
+Counting objects: 22, done.
+Delta compression using up to 4 threads.
+Compressing objects: 100% (22/22), done.
+Writing objects: 100% (22/22), 2.71 KiB | 0 bytes/s, done.
+Total 22 (delta 14), reused 0 (delta 0)
+remote: Died at /usr/share/perl5/IkiWiki/CGI.pm line 491.
+remote: Content-type: text/html
+remote: 
+remote: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+<skip>
+```
+
+where the content at the bottom of the console printout is actually the content of my `rootdir/index.mdwn`.  And the destination, i.e. the deployed web documents is not automatically updated reflecting the commits I pushed to Git repo.  Any idea?
+
+I'm using ikiwiki version 3.20150107 on Ubuntu Linux 14.0.4 LTS.
+
+

Added a comment: Fix
diff --git a/doc/forum/Cannot_run_ikiwiki_due_to_Encode.pm/comment_1_3be380ae32e9e6f65d47975827950050._comment b/doc/forum/Cannot_run_ikiwiki_due_to_Encode.pm/comment_1_3be380ae32e9e6f65d47975827950050._comment
new file mode 100644
index 0000000..752141c
--- /dev/null
+++ b/doc/forum/Cannot_run_ikiwiki_due_to_Encode.pm/comment_1_3be380ae32e9e6f65d47975827950050._comment
@@ -0,0 +1,15 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawlobQ5j7hQVIGkwMWW3yKB_DWqthJcpnsQ"
+ nickname="Qi"
+ subject="Fix"
+ date="2015-02-25T05:43:26Z"
+ content="""
+I fixed it by adding
+```
+sub decode($$;$) {
+    my ( $name, $octets, $check ) = @_;
+    return undef unless defined $octets;
+    return $octets if Encode::is_utf8($octets);  # add this check
+	$octets .= '';
+```
+"""]]

diff --git a/doc/forum/Cannot_run_ikiwiki_due_to_Encode.pm.mdwn b/doc/forum/Cannot_run_ikiwiki_due_to_Encode.pm.mdwn
new file mode 100644
index 0000000..467df27
--- /dev/null
+++ b/doc/forum/Cannot_run_ikiwiki_due_to_Encode.pm.mdwn
@@ -0,0 +1,47 @@
+Cross posting on Stackoverflow http://stackoverflow.com/questions/28709936/perl-error-related-to-encode-pm
+
+I have the following software:
+
+Ubuntu Linux 14.04 LTS
+
+    $ uname -a
+    Linux XXX 3.13.0-45-generic #74-Ubuntu SMP Tue Jan 13 19:36:28 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
+
+
+Perl 5.18:
+
+    $ perl -version
+
+    This is perl 5, version 18, subversion 2 (v5.18.2) built for x86_64-linux-gnu-thread-multi
+    (with 41 registered patches, see perl -V for more detail)
+
+and Encode.pm 2.49:
+
+    $ head -n 10 /usr/lib/perl/5.18/Encode.pm
+    #
+    # $Id: Encode.pm,v 2.49 2013/03/05 03:13:47 dankogai Exp dankogai $
+
+
+When I use [ikiwiki](https://packages.debian.org/experimental/ikiwiki), which is a package using Encode.pm, I got the following error:
+
+    $ ikiwiki --setup ~/wiki.setup
+    Cannot decode string with wide characters at /usr/lib/perl/5.18/Encode.pm line 176.
+
+Lines 166 - 180 of Encode.pm reads:
+
+    sub decode($$;$) {
+        my ( $name, $octets, $check ) = @_;
+        return undef unless defined $octets;
+        $octets .= '';
+        $check ||= 0;
+        my $enc = find_encoding($name);
+        unless ( defined $enc ) {
+            require Carp;
+            Carp::croak("Unknown encoding '$name'");
+        }
+        my $string = $enc->decode( $octets, $check );
+        $_[1] = $octets if $check and !ref $check and !( $check & LEAVE_SRC() );
+        return $string;
+    }
+
+Does any kind soul have idea how to fix this issue?

Added a comment: gentag
diff --git a/doc/forum/Autotag_transient_pages/comment_3_c70adef7638a52d2035c0455de734355._comment b/doc/forum/Autotag_transient_pages/comment_3_c70adef7638a52d2035c0455de734355._comment
new file mode 100644
index 0000000..a4a3a67
--- /dev/null
+++ b/doc/forum/Autotag_transient_pages/comment_3_c70adef7638a52d2035c0455de734355._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawkickHAzX_uVJMd_vFJjae6SLs2G38URPU"
+ nickname="Kalle"
+ subject="gentag"
+ date="2015-02-19T22:02:32Z"
+ content="""
+Gentag solved the tag page autocreation problem. Thanks again for the tip!
+--[[kjs]]
+"""]]

fixed me sig
diff --git a/doc/forum/tables_with_1_cell_in_1st_row.mdwn b/doc/forum/tables_with_1_cell_in_1st_row.mdwn
index 95b076d..fd6e92f 100644
--- a/doc/forum/tables_with_1_cell_in_1st_row.mdwn
+++ b/doc/forum/tables_with_1_cell_in_1st_row.mdwn
@@ -117,4 +117,4 @@ a |b | c
 """]]
 
 
-  -- EdePopede (poor man's signature)
+  -- [[EdePopede]]

for future month the value is interperted as "month of the year" => breaks symmetry, lacks functionality
diff --git a/doc/bugs/no_future_relative_month_for_month_calendar.mdwn b/doc/bugs/no_future_relative_month_for_month_calendar.mdwn
new file mode 100644
index 0000000..f792457
--- /dev/null
+++ b/doc/bugs/no_future_relative_month_for_month_calendar.mdwn
@@ -0,0 +1,18 @@
+The following could would be expected to produce a 3-month output similar to <code>gcal .</code>
+
+[[!format txt """
+[[!calendar type="month" month="-1"]]
+[[!calendar type="month" ]]
+[[!calendar type="month" month="+1"]]
+"""]]
+
+**Behaviour:** The 3rd entry doesn't show the *next* month, but the *1st* month of the year (aka January).
+
+**Problem:** Since there are no negative month numbers (unless someone starts with march because of Feb 29), *–1* is interpreted correctly.
+Explicitely positive numbers aren't recognized as being relative. Possibly it is the numerical interpretation of the value, there is no difference between *n* and *+n*.
+
+**Solution:** treat the value as string, check for a leading *+*, set a *relativeMonth* flag (which then also should happen on negative values, if it does not happen yet). If then it is set for the month in question, first calculate *month_year* and then go on as usual.
+
+**Idea:** since i mentioned gcal earlier, how about some of the shorthanded sytax as "." for this, ".-" for previous, ".+" for next month together with its neighbours?
+
+-- [[EdePopede]]

Added a comment: Precarious situation
diff --git a/doc/forum/Autotag_transient_pages/comment_2_1a9eb7446d218d2d96101db7c077e9e9._comment b/doc/forum/Autotag_transient_pages/comment_2_1a9eb7446d218d2d96101db7c077e9e9._comment
new file mode 100644
index 0000000..00723d1
--- /dev/null
+++ b/doc/forum/Autotag_transient_pages/comment_2_1a9eb7446d218d2d96101db7c077e9e9._comment
@@ -0,0 +1,18 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawkickHAzX_uVJMd_vFJjae6SLs2G38URPU"
+ nickname="Kalle"
+ subject="Precarious situation"
+ date="2015-02-19T11:13:58Z"
+ content="""
+Thanks for the gentag tip will try it out.
+
+About transients being precarious. In my workflow I like the metadata to be regenerated if the image changes. Generally I don't want my local image library to diverge from the published one and I'd like to avoid duplicating efford changing the metadata in two places. The simplest way of doing this is to upload images with changed metadata again or use cli exif tools with the server mounted as sshfs copying only metadata across to the image files. Editing mdwns to match the exif data is much more complicated and time consuming.
+
+The brilliant thing with the transient would be that I could check in the files I don't want auto updated, cases where the web should diverge from my local files, whilst the transients would just get replaced. A magic solution to a potentially complex problem.
+
+Unfortunately there is a catch with the album lugin as it fails to update the album if I change or add images to the underlay. It may build the files but it then doesn't recognize the files it has created requiring a rebuild. By touching the file with the album directive before changing any images and committing / pushing the directive file the problem is mitigated. Forgetting this have however caused a lot of rebuilds :)
+
+--[[kjs]]
+
+
+"""]]

Added a comment
diff --git a/doc/forum/Autotag_transient_pages/comment_1_7194ae3acb30bef38a7158bbfaaf22d2._comment b/doc/forum/Autotag_transient_pages/comment_1_7194ae3acb30bef38a7158bbfaaf22d2._comment
new file mode 100644
index 0000000..3166c39
--- /dev/null
+++ b/doc/forum/Autotag_transient_pages/comment_1_7194ae3acb30bef38a7158bbfaaf22d2._comment
@@ -0,0 +1,25 @@
+[[!comment format=mdwn
+ username="smcv"
+ subject="comment 1"
+ date="2015-02-18T23:55:19Z"
+ content="""
+I think I can see why this wouldn't work: ikiwiki calculates the set of
+potential \"autofiles\" (automatically-created pages, normally in the transient
+underlay), once, then creates them. It does not check after it has created
+them to see whether it should create any more for some reason. I'm not sure
+whether it should or not.
+
+One possible workaround would be for your tag-extraction code to call
+`IkiWiki::Plugin::tag::gentag` itself, at the same time it calls
+`add_autofile` for its own automatically-created page.
+
+Having metadata like tags in transient pages seems a somewhat precarious
+situation anyway: your wiki is structurally different, depending whether the
+transient pages have turned up or not. That doesn't seem ideal?
+
+Whenever I've looked into making album extract metadata from photos, my idea
+had been that it would generate \"real pages\" that get committed to git, so that
+the metadata gets copied out of the opaque binary with no useful diff, that is not
+necessarily even in the VCS (I use an underlay for photos), and into an editable
+text format in git with useful diffs and history.
+"""]]

already fixed in newer ikiwiki
diff --git a/doc/bugs/trailitems_fails_inside_template.mdwn b/doc/bugs/trailitems_fails_inside_template.mdwn
index 4777457..bf401a7 100644
--- a/doc/bugs/trailitems_fails_inside_template.mdwn
+++ b/doc/bugs/trailitems_fails_inside_template.mdwn
@@ -26,3 +26,28 @@ My ikiwiki version: 3.20130904
 Huge thanks in advance!
 
 --[[fr33domlover]]
+
+> These templates have traditionally had a problem: they need to be
+> simultaneously a valid page in their own right, and a valid page after
+> template substitutions.
+>
+> In newer ikiwiki versions, the [[ikiwiki/directive/templatebody]]
+> directive [[solves this|done]] ... but your ikiwiki is nearly a year
+> and a half old, so you don't have recent bugfixes.
+>
+> You might be able to get somewhere by abusing the two intersecting
+> markup languages, something like this:
+>
+>     <TMPL_IF FALSE>
+>     \[[!if test="included() and !included()" then="""
+>     </TMPL_IF>
+>     ... real content here: inline, trailitems etc. ...
+>     ... just don't use a triple quote mark ...
+>     <TMPL_IF FALSE>
+>     """]]
+>     </TMPL_IF>
+>
+> Alternatively, if you have direct commit access and don't need
+> to be able to perform web-based edits on your template, I think
+> renaming your template from `foo.mdwn` to `foo.tmpl` would bypass
+> this while still working as a template. --[[smcv]]

escaping directives continues to be harder than it should be
diff --git a/doc/ikiwiki/directive/templatebody.mdwn b/doc/ikiwiki/directive/templatebody.mdwn
index dfadb2c..36b5af1 100644
--- a/doc/ikiwiki/directive/templatebody.mdwn
+++ b/doc/ikiwiki/directive/templatebody.mdwn
@@ -16,7 +16,7 @@ convenient to use the "here-document" syntax for it:
 
 	\[[!templatebody <<ENDBODY
 	[[!meta title="<TMPL_VAR name>"]]
-	[[!tag person]]
+	\[[!tag person]]
 	<dl>
 	<dt>Name:</dt><dd><TMPL_VAR name></dd>
 	<dt>Age:</dt><dd><TMPL_VAR age></dd>

Report a bug
diff --git a/doc/bugs/trailitems_fails_inside_template.mdwn b/doc/bugs/trailitems_fails_inside_template.mdwn
new file mode 100644
index 0000000..4777457
--- /dev/null
+++ b/doc/bugs/trailitems_fails_inside_template.mdwn
@@ -0,0 +1,28 @@
+In my wiki I have a template page under `/templates` that looks like this:
+
+    \[[!inline                                                                       
+          pages="<TMPL_VAR PAGE>/* and !<TMPL_VAR PAGE>/*/*"                    
+          show=0                                                                
+          template=titlepage                                                    
+          feeds=no                                                              
+          sort=title]]                                                          
+                                                                                    
+    \[[!trailitems                                                                   
+              pages="<TMPL_VAR PAGE>/* and !<TMPL_VAR PAGE>/*/*"                
+              sort=title]]
+
+I tested this page with many variations and by trial and error reached a conclusion that
+when using `trailitems` with a path that contains TMPL_VAR, or using the inline directive
+with `trail=yes` and a `pages` that contains TMPL_VAR, the trail plugin (or something else?)
+seems to not resolve the TMPL_VAR and ikiwiki fails to compile the wiki, and I get this:
+
+    syntax error in pagespec "<TMPL_VAR PAGE>/* and !<TMPL_VAR PAGE>/*/*"
+
+on the command line.
+
+Until I get feedback here I'll try to look at the source and see if I figure it out.
+My ikiwiki version: 3.20130904
+
+Huge thanks in advance!
+
+--[[fr33domlover]]

typos
diff --git a/doc/forum/Autotag_transient_pages.mdwn b/doc/forum/Autotag_transient_pages.mdwn
index a172e88..327738b 100644
--- a/doc/forum/Autotag_transient_pages.mdwn
+++ b/doc/forum/Autotag_transient_pages.mdwn
@@ -1,14 +1,14 @@
 During my adventures tweaking the album plugin to read image metadata I've
-encountered some unexpected behaviour. My tweaks populate the [[tag]] from the
+encountered some unexpected behavior. My tweaks populate the [[tag]] from the
 xmp:subject tag in the image and the file is written to the transient
 underlay. 
 
-The tag links get displayed properly but the /tag/* page isn't auto created
+The tag links get created but the corresponding /tag/* page isn't auto created
 until I run a full --rebuild. Checked in pages appear to get instantly
 autotagged and their tag pages created.
 
 There is some discussion about autotagging and transients on this site. But I
-can't quite descipher what is supposed to be the expected behaviour.
+can't quite descipher what is now the expected behaviour with autotagging and transients.
 
 Anyone able to explain if the above scenario is as it should be? (for whatever
 reason) --[[kjs]]

should transients be autotagged witout rebuild
diff --git a/doc/forum/Autotag_transient_pages.mdwn b/doc/forum/Autotag_transient_pages.mdwn
new file mode 100644
index 0000000..a172e88
--- /dev/null
+++ b/doc/forum/Autotag_transient_pages.mdwn
@@ -0,0 +1,16 @@
+During my adventures tweaking the album plugin to read image metadata I've
+encountered some unexpected behaviour. My tweaks populate the [[tag]] from the
+xmp:subject tag in the image and the file is written to the transient
+underlay. 
+
+The tag links get displayed properly but the /tag/* page isn't auto created
+until I run a full --rebuild. Checked in pages appear to get instantly
+autotagged and their tag pages created.
+
+There is some discussion about autotagging and transients on this site. But I
+can't quite descipher what is supposed to be the expected behaviour.
+
+Anyone able to explain if the above scenario is as it should be? (for whatever
+reason) --[[kjs]]
+
+

Added a comment: git branch now added
diff --git a/doc/forum/Appropriate_way_to_share_low_quality_patches/comment_3_d256a495e8618e72c0c93a07855f8a31._comment b/doc/forum/Appropriate_way_to_share_low_quality_patches/comment_3_d256a495e8618e72c0c93a07855f8a31._comment
new file mode 100644
index 0000000..9c8117b
--- /dev/null
+++ b/doc/forum/Appropriate_way_to_share_low_quality_patches/comment_3_d256a495e8618e72c0c93a07855f8a31._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawkickHAzX_uVJMd_vFJjae6SLs2G38URPU"
+ nickname="Kalle"
+ subject="git branch now added"
+ date="2015-02-18T21:58:48Z"
+ content="""
+I've added the branches using the git template where I guessed it was appropriate.
+"""]]

kjs userpage, reference git repo using template and tweak some links
diff --git a/doc/users/kjs.mdwn b/doc/users/kjs.mdwn
index 7a80072..2c8553d 100644
--- a/doc/users/kjs.mdwn
+++ b/doc/users/kjs.mdwn
@@ -7,16 +7,16 @@ Websites using ikiwiki:
 * <http://stockholm.kalleswork.net>
 
 
+[[!template id=gitbranch branch=kjs/master author="[[Kalle Söderman|kjs]]"]]
+
 Mostly using ikiwiki with the [[/plugins/contrib/album/]] and [[plugins/osm]]
 plugins. My git repo with tweaks including the simplebw theme and various
-changes to the [[plugins/contrib/album]] plugin and templates can be cloned at:
-
-	git://src.kalleswork.net/ikiwiki.git
+changes to the [[plugins/contrib/album]] plugin and templates can be found in
+my master branch
 
-Note that the default branch kalleswork.net-current is all my changes piled
-into one branch. **I can't code (clone my repo above if you don't believe me!)
-so noone should run my code without checking it first.** I can't stress this
-enough.
+Note that the master brach is all my changes piled into one branch. **I can't
+code (clone my repo above if you don't believe me!) so noone should run my
+code without checking it first.** I can't stress this enough.
 
 The main changes I've done are the following
 
@@ -37,11 +37,5 @@ link to the album. Useful for visual index of albums.
 For my public websites above the image metadata is "manually" ie shell script
 populated but I'll eventually start using automatic metadata for new images.
 
-A dump of my debug site with relatively low res images can be found at
-<http://src.kalleswork.net/ikidebug/> where the current behavior sans maps can be
-tested. Its full of noise so see my proper sites above for how it should look.
-
-* <http://src.kalleswork.net/ikidebug/album01> contains scaled images with
-download link
-* <http://src.kalleswork.net/ikidebug/album02> contains images with album size
-set to "full"
+A simple test wiki with downloadable setup and data can be found at:
+<http://src.kalleswork.net/masterbranch/>

Link to sharpen when resampling patch
diff --git a/doc/plugins/img/discussion.mdwn b/doc/plugins/img/discussion.mdwn
index e1bb2d1..c87469d 100644
--- a/doc/plugins/img/discussion.mdwn
+++ b/doc/plugins/img/discussion.mdwn
@@ -10,3 +10,9 @@ It would be handy if the `class` and `id` tags were passed through to the surrou
 
 > Seems unlikely to break *too* much. I can imagine css that styles the img
 > unexpectedly applying the table. --[[Joey]]
+
+[[!template id=gitbranch branch=kjs/img-sharpen author="[[Kalle Söderman|kjs]]"]]
+
+I have created a patch that allows the image to be sharpened when resampled.
+There is also an additional option to interlace the image using plane for
+progressive display. --[[kjs]]

patch link for album6-imgmeta added
diff --git a/doc/plugins/contrib/album/discussion.mdwn b/doc/plugins/contrib/album/discussion.mdwn
index 23ff901..a60de0b 100644
--- a/doc/plugins/contrib/album/discussion.mdwn
+++ b/doc/plugins/contrib/album/discussion.mdwn
@@ -628,8 +628,14 @@ I've changed the behavior of the "slideshow" to show the next image when clickin
 
 My wishlist for the plugin would include:
 
-- Reading exif info from the imagefile
-- ~~Keeping the full resolution image files out of version control~~ Solved this by simply creating a underlay for the images. Works out of the box for my non cgi workflow.
+[[!template id=gitbranch branch=kjs/album6-imgmeta author="[[Kalle Söderman|kjs]]"]] 
+
+- ~~Reading exif info from the imagefile~~
+    - I have now implemented this (in some fashion) and the patch is available in my album6-imgmeta branch. --kjs
+
+- ~~Keeping the full resolution image files out of version control~~ Solved
+this by simply creating a underlay for the images. Works out of the box for my
+non cgi workflow.
 - Being able to create new albums by tag or by manually picking images from other albums. Could be a simple comma separated list of viewer names, or even full urls, in the album directive.
 - A counter showing **current image/total number of images in album**. This would mean that you know how many images you have left to click through before you have seen all images in an album. This gives you enought info to decide weather to click through or go back/leave.
 

kjs git repo with mainly album plugin tweaks
diff --git a/doc/git.mdwn b/doc/git.mdwn
index 1e67ba2..ac8d602 100644
--- a/doc/git.mdwn
+++ b/doc/git.mdwn
@@ -82,6 +82,7 @@ think about merging them. This is recommended. :-)
 * [[spalax]] `git://github.com/paternal/ikiwiki.git` ([[browse|https://github.com/paternal/ikiwiki]])
 * [[jcflack]] `git://github.com/jcflack/ikiwiki.git`
 * [[users/mjd]] `https://github.com/mjdominus/ikiwiki.git` ([[browse|https://github.com/mjdominus/ikiwiki]])
+* [[users/kjs]] `git://src.kalleswork.net/ikiwiki.git`
 
 ## branches
 

patches merged
diff --git a/doc/plugins/contrib/pagespec_alias/discussion.mdwn b/doc/plugins/contrib/pagespec_alias/discussion.mdwn
index fe0e1e1..09cf772 100644
--- a/doc/plugins/contrib/pagespec_alias/discussion.mdwn
+++ b/doc/plugins/contrib/pagespec_alias/discussion.mdwn
@@ -12,3 +12,5 @@ that the problem with a map might have been in websetup - which I'm not using, s
 know if it would still be a problem there.
 
 [[jcflack]]
+
+> With apologies for the delay, jcflack's patches have now been merged. — [[Jon]]

revert spurious move
This reverts commit 102a712976534c0677bb162e2784b3af1f5d6361
diff --git a/doc/bugs/Discussion_of_main_page_generates_invalid_link.mdwn b/doc/bugs/Discussion_of_main_page_generates_invalid_link.mdwn
new file mode 100644
index 0000000..5080ac6
--- /dev/null
+++ b/doc/bugs/Discussion_of_main_page_generates_invalid_link.mdwn
@@ -0,0 +1,3 @@
+The [[index/discussion]] for the main page is located at /index/discussion . In the header ikiwiki generates "ikiwiki / index / discussion" instead of "ikiwiki / discussion" like it should. /index/ contains no index.html file since it is at /index.html instead. The link should either be removed, or a copy of /index.html should be placed in /index/ . --[[TaylorKillian]]
+
+> [[done]] since a while ago --[[Joey]]
diff --git a/doc/service_solahart_082122541663.Makefile b/doc/service_solahart_082122541663.Makefile
deleted file mode 100644
index 5080ac6..0000000
--- a/doc/service_solahart_082122541663.Makefile
+++ /dev/null
@@ -1,3 +0,0 @@
-The [[index/discussion]] for the main page is located at /index/discussion . In the header ikiwiki generates "ikiwiki / index / discussion" instead of "ikiwiki / discussion" like it should. /index/ contains no index.html file since it is at /index.html instead. The link should either be removed, or a copy of /index.html should be placed in /index/ . --[[TaylorKillian]]
-
-> [[done]] since a while ago --[[Joey]]

rename bugs/Discussion_of_main_page_generates_invalid_link.mdwn to service_solahart_082122541663.Makefile
diff --git a/doc/bugs/Discussion_of_main_page_generates_invalid_link.mdwn b/doc/bugs/Discussion_of_main_page_generates_invalid_link.mdwn
deleted file mode 100644
index 5080ac6..0000000
--- a/doc/bugs/Discussion_of_main_page_generates_invalid_link.mdwn
+++ /dev/null
@@ -1,3 +0,0 @@
-The [[index/discussion]] for the main page is located at /index/discussion . In the header ikiwiki generates "ikiwiki / index / discussion" instead of "ikiwiki / discussion" like it should. /index/ contains no index.html file since it is at /index.html instead. The link should either be removed, or a copy of /index.html should be placed in /index/ . --[[TaylorKillian]]
-
-> [[done]] since a while ago --[[Joey]]
diff --git a/doc/service_solahart_082122541663.Makefile b/doc/service_solahart_082122541663.Makefile
new file mode 100644
index 0000000..5080ac6
--- /dev/null
+++ b/doc/service_solahart_082122541663.Makefile
@@ -0,0 +1,3 @@
+The [[index/discussion]] for the main page is located at /index/discussion . In the header ikiwiki generates "ikiwiki / index / discussion" instead of "ikiwiki / discussion" like it should. /index/ contains no index.html file since it is at /index.html instead. The link should either be removed, or a copy of /index.html should be placed in /index/ . --[[TaylorKillian]]
+
+> [[done]] since a while ago --[[Joey]]

remove content-free entry
This reverts commit b32969f9a09012689f5322b052a882ef5e511b95
diff --git a/doc/todo/hyt.mdwn b/doc/todo/hyt.mdwn
deleted file mode 100644
index 9cd65c9..0000000
--- a/doc/todo/hyt.mdwn
+++ /dev/null
@@ -1 +0,0 @@
-Yh

diff --git a/doc/todo/hyt.mdwn b/doc/todo/hyt.mdwn
new file mode 100644
index 0000000..9cd65c9
--- /dev/null
+++ b/doc/todo/hyt.mdwn
@@ -0,0 +1 @@
+Yh

respond
diff --git a/doc/bugs/postsparkline_and_calendar_archive_do_not_respect_meta_directives.mdwn b/doc/bugs/postsparkline_and_calendar_archive_do_not_respect_meta_directives.mdwn
index 3bdcad6..f41f802 100644
--- a/doc/bugs/postsparkline_and_calendar_archive_do_not_respect_meta_directives.mdwn
+++ b/doc/bugs/postsparkline_and_calendar_archive_do_not_respect_meta_directives.mdwn
@@ -17,3 +17,16 @@ Articles par mois:
 </pre>
 
 Is it possible the `meta(date)` directives are being ignored by those plugins? --[[anarcat]]
+
+> For background, each page has two dates: creation date (`ctime`, `meta(date)`)
+> and last modification date (`mtime`, `meta(updated)`). postsparkline
+> defaults to showing the ctime but can be configured to use the mtime
+> instead; calendar always uses ctime. So what you're doing *should* work
+> like you expect.
+>
+> The plugins don't get to choose whether they ignore meta(date);
+> the effect of a meta(date) directive in `$page` is to set `$pagectime{$page}`
+> during scanning (overriding whatever was found in the filesystem), and
+> that data structure is what the plugins read from. So the first thing to
+> investigate is whether the ctime
+> [[in your .ikiwiki/indexdb|tips/inside_dot_ikiwiki]] is correct. --[[smcv]]

diff --git a/doc/bugs/postsparkline_and_calendar_archive_do_not_respect_meta_directives.mdwn b/doc/bugs/postsparkline_and_calendar_archive_do_not_respect_meta_directives.mdwn
new file mode 100644
index 0000000..3bdcad6
--- /dev/null
+++ b/doc/bugs/postsparkline_and_calendar_archive_do_not_respect_meta_directives.mdwn
@@ -0,0 +1,19 @@
+On my [blog](http://anarc.at/blog), i have setup a simple calendar and sparkline on the sidebar, similar to [joey's](http://joeyh.name/blog/). Unfortunately, in my case it looks like all posts were done in february, date at which i [converted from drupal](http://anarc.at/blog/2015-02-06-migrating-drupal-ikiwiki/).
+
+This is how i did the directives:
+
+<pre>
+\[[!calendar pages="blog/* and !blog/*/* and !*/Discussion"]]
+
+\[[!calendar pages="blog/* and !blog/*/* and !*/Discussion" month=-1]]
+
+Temps passé entre les articles: 
+\[[!postsparkline pages="blog/* and !blog/*/* and !link(foo) and
+!link(unfinished)" max=50
+formula=interval style=bar barwidth=2 barspacing=1 height=13]]  
+Articles par mois:
+\[[!postsparkline pages="blog/* and !blog/*/* and !link(foo) and
+!link(unfinished)" max=23 formula=permonth style=bar barwidth=2 barspacing=1 height=13]]  
+</pre>
+
+Is it possible the `meta(date)` directives are being ignored by those plugins? --[[anarcat]]

created (sanitizing dead links)
diff --git a/doc/users/EdePopede.mdwn b/doc/users/EdePopede.mdwn
new file mode 100644
index 0000000..9c558e3
--- /dev/null
+++ b/doc/users/EdePopede.mdwn
@@ -0,0 +1 @@
+.

created: observation + samples
diff --git a/doc/forum/tables_with_1_cell_in_1st_row.mdwn b/doc/forum/tables_with_1_cell_in_1st_row.mdwn
new file mode 100644
index 0000000..95b076d
--- /dev/null
+++ b/doc/forum/tables_with_1_cell_in_1st_row.mdwn
@@ -0,0 +1,120 @@
+Just found a bug while building a table with 1st column made of the lines output by <tt>ls -1</tt>. That means, in the beginning there's only 1 cell in each row, and if adding additional columns in other rows, the delimiter ('|') is taken as-is. No difference if the table has a header line or not, or if that one cell is following a '|'.
+
+Examples:
+
+
+### 2 cells each
+
+table with header
+
+[[!table data="""
+1 | 2
+one | two
+a |b
+"""]]
+
+table without header
+
+[[!table header="no" data="""
+1 | 2
+one | two
+a |b
+"""]]
+
+### 2 cells, 3 later
+
+
+table with header
+
+[[!table data="""
+1 | 2
+one | two
+a |b | c
+"""]]
+
+table without header
+
+[[!table header="no" data="""
+1 | 2
+one | two
+a |b | c
+"""]]
+
+### 1 cell, 3 later
+
+
+table with header
+
+[[!table data="""
+1
+one | two
+a |b | c
+"""]]
+
+table without header
+
+[[!table header="no" data="""
+1
+one | two
+a |b | c
+"""]]
+
+### 1 cell (ended by delimiter), 3 later
+
+
+table with header
+
+[[!table data="""
+1|
+one | two
+a |b | c
+"""]]
+
+table without header
+
+[[!table header="no" data="""
+1|
+one | two
+a |b | c
+"""]]
+
+### 1 cell (line starts with delimiter), 3 later
+
+
+table with header
+
+[[!table data="""
+|1
+one | two
+a |b | c
+"""]]
+
+table without header
+
+[[!table header="no" data="""
+|1
+one | two
+a |b | c
+"""]]
+
+### 1 cell (line starts with SPC + delimiter), 3 later
+
+
+table with header
+
+[[!table data="""
+ |1
+one | two
+a |b | c
+"""]]
+
+table without header
+
+[[!table header="no" data="""
+ |1
+one | two
+a |b | c
+"""]]
+
+
+  -- EdePopede (poor man's signature)

apache config sniplet for usedirs migration
diff --git a/doc/tips/switching_to_usedirs/discussion.mdwn b/doc/tips/switching_to_usedirs/discussion.mdwn
index 79ada00..fe937c5 100644
--- a/doc/tips/switching_to_usedirs/discussion.mdwn
+++ b/doc/tips/switching_to_usedirs/discussion.mdwn
@@ -22,3 +22,17 @@ It seems to me that the only advantage is slightly tidier URLs, but with the dis
 
 The cleaner urls seem worth it to me. The `urlto()` function makes it easy
 for ikiwiki code to deal with the path changes. --[[Joey]]
+
+--------
+
+when migrating to usedirs, the following apache config sniplet might be useful (use inside the Directory section that manages your wiki):
+
+    RewriteEngine on
+    RewriteCond %{REQUEST_FILENAME} !-f
+    RewriteRule ^(.+)\.html$ /my_base_path/$1/ [R]
+
+that sniplet causes redirects from any non-existing .html file to the respective usedirs directory. (when serving from the host root url, drop the my_base_path part, otherwise adapt it to your needs).
+
+i recommend using this or a similar mechanism to keep your old urls reachable.
+
+--[[chrysn]]

Added a comment
diff --git a/doc/forum/Appropriate_way_to_share_low_quality_patches/comment_2_7cba5da2c344f9f01fd3365ed161b5ac._comment b/doc/forum/Appropriate_way_to_share_low_quality_patches/comment_2_7cba5da2c344f9f01fd3365ed161b5ac._comment
new file mode 100644
index 0000000..38c6081
--- /dev/null
+++ b/doc/forum/Appropriate_way_to_share_low_quality_patches/comment_2_7cba5da2c344f9f01fd3365ed161b5ac._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="https://id.koumbit.net/anarcat"
+ subject="comment 2"
+ date="2015-02-09T23:04:08Z"
+ content="""
+i'd say just share it normally.
+"""]]

fix broken link
diff --git a/doc/tips/convert_drupal_to_ikiwiki.mdwn b/doc/tips/convert_drupal_to_ikiwiki.mdwn
index 1adf8de..79d83e5 100644
--- a/doc/tips/convert_drupal_to_ikiwiki.mdwn
+++ b/doc/tips/convert_drupal_to_ikiwiki.mdwn
@@ -1,3 +1,3 @@
 [[anarcat]] wrote a
 [drupal2ikiwiki](http://anarc.at/services/wiki/drupal/drupal2ikiwiki.py)
-program to import his Drupal site. There's a [detailed article](http://anarc.at/services/wiki/drupal) explaining the justification behind the switch, the various approaches taken and more!
+program to import his Drupal site. There's a [detailed article](http://anarc.at/blog/2015-02-06-migrating-drupal-ikiwiki/) explaining the justification behind the switch, the various approaches taken and more!

indyauth support?
diff --git a/doc/todo/indyauth_support.mdwn b/doc/todo/indyauth_support.mdwn
new file mode 100644
index 0000000..51389ad
--- /dev/null
+++ b/doc/todo/indyauth_support.mdwn
@@ -0,0 +1,3 @@
+this looks pretty awesome: <https://indieauth.com/>
+
+anyone working on a plugin or has ideas on how to implement this? --[[anarcat]]

well, this'll probably work
diff --git a/doc/forum/IkiWiki_error_126_on_Slackware/comment_1_ed3cd6441c5ece94805ea24cb304d066._comment b/doc/forum/IkiWiki_error_126_on_Slackware/comment_1_ed3cd6441c5ece94805ea24cb304d066._comment
index 65771d4..dc9858c 100644
--- a/doc/forum/IkiWiki_error_126_on_Slackware/comment_1_ed3cd6441c5ece94805ea24cb304d066._comment
+++ b/doc/forum/IkiWiki_error_126_on_Slackware/comment_1_ed3cd6441c5ece94805ea24cb304d066._comment
@@ -8,5 +8,5 @@ This was a bug I introduced in 3.20141016. It's fixed in the
 you can apply the patch from
 [9f04f8c](http://source.ikiwiki.branchable.com/?p=source.git;a=commitdiff;h=9f04f8ccc58d8389efac84afe859b08edb8d4518).
 
-See also [[bugs/double_shebang_replacement___47__usr__47__bin__47__perl5.185.18]]
+See also <https://ikiwiki.info/bugs/double_shebang_replacement___47__usr__47__bin__47__perl5.185.18/>.
 """]]

try href this way
diff --git a/doc/forum/IkiWiki_error_126_on_Slackware/comment_1_ed3cd6441c5ece94805ea24cb304d066._comment b/doc/forum/IkiWiki_error_126_on_Slackware/comment_1_ed3cd6441c5ece94805ea24cb304d066._comment
index acb0058..65771d4 100644
--- a/doc/forum/IkiWiki_error_126_on_Slackware/comment_1_ed3cd6441c5ece94805ea24cb304d066._comment
+++ b/doc/forum/IkiWiki_error_126_on_Slackware/comment_1_ed3cd6441c5ece94805ea24cb304d066._comment
@@ -8,5 +8,5 @@ This was a bug I introduced in 3.20141016. It's fixed in the
 you can apply the patch from
 [9f04f8c](http://source.ikiwiki.branchable.com/?p=source.git;a=commitdiff;h=9f04f8ccc58d8389efac84afe859b08edb8d4518).
 
-See also [[bugs/double shebang replacement /usr/bin/perl5.185.18]].
+See also [[bugs/double_shebang_replacement___47__usr__47__bin__47__perl5.185.18]]
 """]]

note fix and a previous report
diff --git a/doc/forum/IkiWiki_error_126_on_Slackware/comment_1_ed3cd6441c5ece94805ea24cb304d066._comment b/doc/forum/IkiWiki_error_126_on_Slackware/comment_1_ed3cd6441c5ece94805ea24cb304d066._comment
new file mode 100644
index 0000000..acb0058
--- /dev/null
+++ b/doc/forum/IkiWiki_error_126_on_Slackware/comment_1_ed3cd6441c5ece94805ea24cb304d066._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="schmonz"
+ subject="""fixed in 3.20150107"""
+ date="2015-02-08T16:58:09Z"
+ content="""
+This was a bug I introduced in 3.20141016. It's fixed in the
+3.20150107 release. If you can't update current release, perhaps
+you can apply the patch from
+[9f04f8c](http://source.ikiwiki.branchable.com/?p=source.git;a=commitdiff;h=9f04f8ccc58d8389efac84afe859b08edb8d4518).
+
+See also [[bugs/double shebang replacement /usr/bin/perl5.185.18]].
+"""]]

diff --git a/doc/forum/IkiWiki_error_126_on_Slackware.mdwn b/doc/forum/IkiWiki_error_126_on_Slackware.mdwn
new file mode 100644
index 0000000..2e09de2
--- /dev/null
+++ b/doc/forum/IkiWiki_error_126_on_Slackware.mdwn
@@ -0,0 +1,5 @@
+./pm_filter /usr/local 3.20141016.1 /usr/local/share/perl5 < ikiwiki.in > ikiwiki.out
+/bin/sh: ./pm_filter: /usr/bin/perl5.18.15.18.1: bad interpreter: No such file or directory
+make: *** [ikiwiki.out] Error 126
+
+Kind of a newbie and I'm not sure what is happening here--when it invokes the perl interpreter is it somehow adding the version twice? Not sure what to do... I appreciate any help/advice.

Added a comment: Config
diff --git a/doc/forum/Appropriate_way_to_share_low_quality_patches/comment_1_53f3ed84fe9e436623cc9d242796d4d5._comment b/doc/forum/Appropriate_way_to_share_low_quality_patches/comment_1_53f3ed84fe9e436623cc9d242796d4d5._comment
new file mode 100644
index 0000000..b569e10
--- /dev/null
+++ b/doc/forum/Appropriate_way_to_share_low_quality_patches/comment_1_53f3ed84fe9e436623cc9d242796d4d5._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawkickHAzX_uVJMd_vFJjae6SLs2G38URPU"
+ nickname="Kalle"
+ subject="Config"
+ date="2015-02-07T12:48:14Z"
+ content="""
+Turns out making the features configurable was easy enough.
+
+/[[users/kjs]]
+"""]]

branches with low quality
diff --git a/doc/forum/Appropriate_way_to_share_low_quality_patches.mdwn b/doc/forum/Appropriate_way_to_share_low_quality_patches.mdwn
new file mode 100644
index 0000000..f3d2f07
--- /dev/null
+++ b/doc/forum/Appropriate_way_to_share_low_quality_patches.mdwn
@@ -0,0 +1,26 @@
+I've made the following ikiwiki tweaks which now reside in separate branches
+of my online git repo.
+
+* Album plugin: Image metadata - Populate album with metadata extracted from
+image using Image::ExifTool. Also generate tags and osm waypoint if gps data
+is available.
+* Album plugin: New albumpreview.tmpl with corresponding changes to  album.pm
+that creates a thumbnail that links to an album rather than an image. Useful
+for creating thumbnailed indexes of albums.
+* Img plugin: sharpen images when resampling. (also save interlaced jpg's)
+* My kalleswork.net-current branch contains further tweaks, themes and
+crazyness that's likely only of interest to me.
+ 
+These are all of very low quality as I've just hacked about with no knowledge
+of the codebase or indeed coding (even less Perl). In spite of this they now
+seem to work! They should all be options or have options in the config but
+I've not gotten around to figuring that out yet.
+
+I'd like to share them as a prod to someone with actual skills to look at them
+if they find the features interesting. I'm hesitant to place my repo in the
+[[git]] list and tagging the various feature off with [[templates/gitbranch/]]
+because of the pick axe coding going on. Should I do this regardless of quality
+or is there a better way to share it?
+
+/[[/users/kjs]]
+

mention jekyll-import
diff --git a/doc/convert.mdwn b/doc/convert.mdwn
index 00877ec..3bb5631 100644
--- a/doc/convert.mdwn
+++ b/doc/convert.mdwn
@@ -10,3 +10,5 @@ to handle such conversions.
 * [[tips/convert_drupal_to_ikiwiki]]
 
 In addition, [[JoshTriplett]] has written scripts to convert Twiki sites, see [his page](/users/JoshTriplett) for more information.
+
+Also consider using [jekyll-import](http://import.jekyllrb.com/), which imports into [Jekyll](jekyllrb.com), granted, but it already supports a bunch of CMSes and the markdown syntax of Jekyll may just be compatible with your ikiwiki.

diff --git a/doc/tips/convert_drupal_to_ikiwiki.mdwn b/doc/tips/convert_drupal_to_ikiwiki.mdwn
index a0e39cd..1adf8de 100644
--- a/doc/tips/convert_drupal_to_ikiwiki.mdwn
+++ b/doc/tips/convert_drupal_to_ikiwiki.mdwn
@@ -1,3 +1,3 @@
 [[anarcat]] wrote a
 [drupal2ikiwiki](http://anarc.at/services/wiki/drupal/drupal2ikiwiki.py)
-program to import his Drupal site.
+program to import his Drupal site. There's a [detailed article](http://anarc.at/services/wiki/drupal) explaining the justification behind the switch, the various approaches taken and more!

add TOC
diff --git a/doc/tips/dot_cgi.mdwn b/doc/tips/dot_cgi.mdwn
index 8865508..51d0c5e 100644
--- a/doc/tips/dot_cgi.mdwn
+++ b/doc/tips/dot_cgi.mdwn
@@ -13,6 +13,8 @@ run `.cgi`  programs from anywhere.
 These instructions are for Debian systems, but the basic
 configuration changes should work anywhere.
 
+[[!toc]]
+
 ## apache 2
 
 * Make sure the cgi module is loaded. (Ie, `a2enmod cgi`).

Link to anarcat's drupal importer.
diff --git a/doc/convert.mdwn b/doc/convert.mdwn
index b96ae7a..00877ec 100644
--- a/doc/convert.mdwn
+++ b/doc/convert.mdwn
@@ -7,5 +7,6 @@ to handle such conversions.
 * [[tips/convert_blogger_blogs_to_ikiwiki]]
 * [[tips/Movable_Type_to_ikiwiki]]
 * [[tips/convert_textpattern_to_ikiwiki]]
+* [[tips/convert_drupal_to_ikiwiki]]
 
 In addition, [[JoshTriplett]] has written scripts to convert Twiki sites, see [his page](/users/JoshTriplett) for more information.
diff --git a/doc/tips/convert_drupal_to_ikiwiki.mdwn b/doc/tips/convert_drupal_to_ikiwiki.mdwn
new file mode 100644
index 0000000..a0e39cd
--- /dev/null
+++ b/doc/tips/convert_drupal_to_ikiwiki.mdwn
@@ -0,0 +1,3 @@
+[[anarcat]] wrote a
+[drupal2ikiwiki](http://anarc.at/services/wiki/drupal/drupal2ikiwiki.py)
+program to import his Drupal site.

false alarm
diff --git a/doc/bugs/problems_sorting_after_mass_import.mdwn b/doc/bugs/problems_sorting_after_mass_import.mdwn
index 10ddd5e..34fa64f 100644
--- a/doc/bugs/problems_sorting_after_mass_import.mdwn
+++ b/doc/bugs/problems_sorting_after_mass_import.mdwn
@@ -10,6 +10,8 @@ the page itself says it was created 8 years ago. why is it on top? it's as if th
 
 how do i import dates properly? --[[anarcat]]
 
+Gaaah, nevermind, this is [[done]], i had redirection pages that were messing all this up. sorry for the noise.
+
 Related:
 
 * [[forum/Changing_when_a_page_is_posted/]] - suggests the meta directive, doesn't work for me

diff --git a/doc/bugs/problems_sorting_after_mass_import.mdwn b/doc/bugs/problems_sorting_after_mass_import.mdwn
index 09aa153..10ddd5e 100644
--- a/doc/bugs/problems_sorting_after_mass_import.mdwn
+++ b/doc/bugs/problems_sorting_after_mass_import.mdwn
@@ -9,3 +9,8 @@ at the time of writing, the current post is: <http://anarc.at/blog/2007-02-08-la
 the page itself says it was created 8 years ago. why is it on top? it's as if the `sort=meta(date)` parameter was ignored. if i try to preview the `blog` page, the results i get are basically random.
 
 how do i import dates properly? --[[anarcat]]
+
+Related:
+
+* [[forum/Changing_when_a_page_is_posted/]] - suggests the meta directive, doesn't work for me
+* [[tips/Importing_posts_from_Wordpress/]] - generates commits through git fast-import, also uses meta

diff --git a/doc/bugs/problems_sorting_after_mass_import.mdwn b/doc/bugs/problems_sorting_after_mass_import.mdwn
new file mode 100644
index 0000000..09aa153
--- /dev/null
+++ b/doc/bugs/problems_sorting_after_mass_import.mdwn
@@ -0,0 +1,11 @@
+i'm migrating my blog from drupal, and i wrote this (what i thought was) clever script to tap directly into the mysql db. so far it's working great, and the contents gets imported, but the problem is that the order of posts is all FUBAR.
+
+The blog is here: <http://anarc.at/blog/>
+
+the migration script is here: <http://anarc.at/services/wiki/drupal/drupal2ikiwiki.py>
+
+at the time of writing, the current post is: <http://anarc.at/blog/2007-02-08-la-menace-de-linternet-%C3%A0-deux-vitesses/>
+
+the page itself says it was created 8 years ago. why is it on top? it's as if the `sort=meta(date)` parameter was ignored. if i try to preview the `blog` page, the results i get are basically random.
+
+how do i import dates properly? --[[anarcat]]

try to see if date metas work
diff --git a/doc/sandbox.mdwn b/doc/sandbox.mdwn
index 1896d2c..21d9763 100644
--- a/doc/sandbox.mdwn
+++ b/doc/sandbox.mdwn
@@ -1,3 +1,5 @@
+[[!meta date="Thu Jun 16 22:04:33 2005" updated="Thu Dec 22 01:23:20 2011"]]
+
 This is the [[SandBox]], a page anyone can edit to try out ikiwiki
 (version [[!version  ]]).
 

Greek hello
diff --git a/doc/sandbox.mdwn b/doc/sandbox.mdwn
index bfc1bf4..1896d2c 100644
--- a/doc/sandbox.mdwn
+++ b/doc/sandbox.mdwn
@@ -127,3 +127,4 @@ Räksmörgås.
 
 Testing. Test. 試験として書き込みします。
 
+Καλημέρα!

Added a comment: Additional advice?
diff --git a/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_/comment_2_5156273724765f6eb1bccbb16d5f876a._comment b/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_/comment_2_5156273724765f6eb1bccbb16d5f876a._comment
new file mode 100644
index 0000000..150ad06
--- /dev/null
+++ b/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_/comment_2_5156273724765f6eb1bccbb16d5f876a._comment
@@ -0,0 +1,27 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawlobQ5j7hQVIGkwMWW3yKB_DWqthJcpnsQ"
+ nickname="Qi"
+ subject="Additional advice?"
+ date="2015-01-29T20:07:11Z"
+ content="""
+I manually modified `/usr/pkg/lib/perl5/vendor_perl/5.20.0/IkiWiki/CGI.pm` removing the three lines
+
+    # call decode_utf8 on >= 5.20 only if it's not already decoded,
+    # otherwise it balks, on < 5.20, always call it
+    if ($] < 5.02 || !Encode::is_utf8($octets)) {
+
+and adding a new line
+
+    if (!Encode::is_utf8($octets)) {
+
+Then I ran ikiwiki --setup mysite.setup and see the following messages:
+
+	...
+	Aborting
+	'git pull --prune origin' failed:  at /usr/pkg/lib/perl5/vendor_perl/5.20.0/IkiWiki/Plugin/git.pm line 220.
+	Cannot decode string with wide characters at /usr/pkg/lib/perl5/5.20.0/darwin-thread-multi-2level/Encode.pm line 175.
+
+
+Any ideas?
+
+"""]]

removed
diff --git a/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_/comment_2_10b12514d3929ed00f452d072a215c78._comment b/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_/comment_2_10b12514d3929ed00f452d072a215c78._comment
deleted file mode 100644
index e2b14ad..0000000
--- a/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_/comment_2_10b12514d3929ed00f452d072a215c78._comment
+++ /dev/null
@@ -1,25 +0,0 @@
-[[!comment format=mdwn
- username="https://www.google.com/accounts/o8/id?id=AItOawlobQ5j7hQVIGkwMWW3yKB_DWqthJcpnsQ"
- nickname="Qi"
- subject="Additional advice?"
- date="2015-01-29T20:01:14Z"
- content="""
-I manually modified `/lib/perl5/vendor_perl/5.20.0/IkiWiki/CGI.pm` removing the three lines 
-
-    # call decode_utf8 on >= 5.20 only if it's not already decoded,
-    # otherwise it balks, on < 5.20, always call it
-    if ($] < 5.02 || !Encode::is_utf8($octets)) {
-
-and adding a new line
-
-    if (!Encode::is_utf8($octets)) {
-
-Then I ran `ikiwiki --setup mysite.setup` and see the following messages:
-
-    ...
-    Aborting
-    'git pull --prune origin' failed:  at /usr/pkg/lib/perl5/vendor_perl/5.20.0/IkiWiki/Plugin/git.pm line 220.
-    Cannot decode string with wide characters at /usr/pkg/lib/perl5/5.20.0/darwin-thread-multi-2level/Encode.pm line 175.
-    
-Any ideas?
-"""]]

Added a comment: Additional advice?
diff --git a/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_/comment_2_10b12514d3929ed00f452d072a215c78._comment b/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_/comment_2_10b12514d3929ed00f452d072a215c78._comment
new file mode 100644
index 0000000..e2b14ad
--- /dev/null
+++ b/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_/comment_2_10b12514d3929ed00f452d072a215c78._comment
@@ -0,0 +1,25 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawlobQ5j7hQVIGkwMWW3yKB_DWqthJcpnsQ"
+ nickname="Qi"
+ subject="Additional advice?"
+ date="2015-01-29T20:01:14Z"
+ content="""
+I manually modified `/lib/perl5/vendor_perl/5.20.0/IkiWiki/CGI.pm` removing the three lines 
+
+    # call decode_utf8 on >= 5.20 only if it's not already decoded,
+    # otherwise it balks, on < 5.20, always call it
+    if ($] < 5.02 || !Encode::is_utf8($octets)) {
+
+and adding a new line
+
+    if (!Encode::is_utf8($octets)) {
+
+Then I ran `ikiwiki --setup mysite.setup` and see the following messages:
+
+    ...
+    Aborting
+    'git pull --prune origin' failed:  at /usr/pkg/lib/perl5/vendor_perl/5.20.0/IkiWiki/Plugin/git.pm line 220.
+    Cannot decode string with wide characters at /usr/pkg/lib/perl5/5.20.0/darwin-thread-multi-2level/Encode.pm line 175.
+    
+Any ideas?
+"""]]

Added a comment: potential patch
diff --git a/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_/comment_1_93859a66a7380299c8e166192fb86dc9._comment b/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_/comment_1_93859a66a7380299c8e166192fb86dc9._comment
new file mode 100644
index 0000000..71ce185
--- /dev/null
+++ b/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_/comment_1_93859a66a7380299c8e166192fb86dc9._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="smcv"
+ subject="potential patch"
+ date="2015-01-29T19:33:23Z"
+ content="""
+This sounds like an issue that I hoped we'd already fixed, but
+[Debian bug 776181](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776181) points
+out one other situation where it can happen. Could you try the patch from that bug and
+see whether that fixes it for you too?
+"""]]

diff --git a/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_.mdwn b/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_.mdwn
index 0f5adef..38b64b5 100644
--- a/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_.mdwn
+++ b/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_.mdwn
@@ -1,11 +1,10 @@
 I got the following error related to `Encode.pm` when I build my Ikiwiki instance 
 
-```
-$ ikiwiki --setup mysite.setup
-...
-'git pull --prune origin' failed:  at /usr/pkg/lib/perl5/vendor_perl/5.20.0/IkiWiki/Plugin/git.pm line 220.
-Cannot decode string with wide characters at /usr/pkg/lib/perl5/5.20.0/darwin-thread-multi-2level/Encode.pm line 175.
-```
+
+    $ ikiwiki --setup mysite.setup
+    'git pull --prune origin' failed:  at /usr/pkg/lib/perl5/vendor_perl/5.20.0/IkiWiki/Plugin/git.pm line 220.
+    Cannot decode string with wide characters at /usr/pkg/lib/perl5/5.20.0/darwin-thread-multi-2level/Encode.pm line 175.
+
 
 Any idea how to fix it?
 

diff --git a/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_.mdwn b/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_.mdwn
index d37fcb3..0f5adef 100644
--- a/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_.mdwn
+++ b/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_.mdwn
@@ -11,16 +11,14 @@ Any idea how to fix it?
 
 I installed ikiwiki via pkgsrc on OS X 10.10.2:
 
-```
-$ ikiwiki --version
-ikiwiki version 3.20141016
-$ uname -a
-Darwin qazwsx.local 14.1.0 Darwin Kernel Version 14.1.0: Mon Dec 22 23:10:38 PST 2014; root:xnu-2782.10.72~2/RELEASE_X86_64 x86_64
-$ which perl
-/usr/bin/perl
-$ perl --version
+	 $ ikiwiki --version
+	 ikiwiki version 3.20141016
+	 $ uname -a
+	 Darwin qazwsx.local 14.1.0 Darwin Kernel Version 14.1.0: Mon Dec 22 23:10:38 PST 2014; root:xnu-2782.10.72~2/RELEASE_X86_64 x86_64
+	 $ which perl
+	 /usr/bin/perl
+	 $ perl --version
 
-This is perl 5, version 18, subversion 2 (v5.18.2) built for darwin-thread-multi-2level
-(with 2 registered patches, see perl -V for more detail)
-...
-```
+	 This is perl 5, version 18, subversion 2 (v5.18.2) built for darwin-thread-multi-2level
+	 (with 2 registered patches, see perl -V for more detail)
+         ...

diff --git a/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_.mdwn b/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_.mdwn
index c7ce660..d37fcb3 100644
--- a/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_.mdwn
+++ b/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_.mdwn
@@ -10,6 +10,7 @@ Cannot decode string with wide characters at /usr/pkg/lib/perl5/5.20.0/darwin-th
 Any idea how to fix it?
 
 I installed ikiwiki via pkgsrc on OS X 10.10.2:
+
 ```
 $ ikiwiki --version
 ikiwiki version 3.20141016

diff --git a/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_.mdwn b/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_.mdwn
index 18e5a83..c7ce660 100644
--- a/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_.mdwn
+++ b/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_.mdwn
@@ -8,3 +8,18 @@ Cannot decode string with wide characters at /usr/pkg/lib/perl5/5.20.0/darwin-th
 ```
 
 Any idea how to fix it?
+
+I installed ikiwiki via pkgsrc on OS X 10.10.2:
+```
+$ ikiwiki --version
+ikiwiki version 3.20141016
+$ uname -a
+Darwin qazwsx.local 14.1.0 Darwin Kernel Version 14.1.0: Mon Dec 22 23:10:38 PST 2014; root:xnu-2782.10.72~2/RELEASE_X86_64 x86_64
+$ which perl
+/usr/bin/perl
+$ perl --version
+
+This is perl 5, version 18, subversion 2 (v5.18.2) built for darwin-thread-multi-2level
+(with 2 registered patches, see perl -V for more detail)
+...
+```

diff --git a/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_.mdwn b/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_.mdwn
new file mode 100644
index 0000000..18e5a83
--- /dev/null
+++ b/doc/forum/Build_time_error:_Cannot_decode_string_with_wide_characters_.mdwn
@@ -0,0 +1,10 @@
+I got the following error related to `Encode.pm` when I build my Ikiwiki instance 
+
+```
+$ ikiwiki --setup mysite.setup
+...
+'git pull --prune origin' failed:  at /usr/pkg/lib/perl5/vendor_perl/5.20.0/IkiWiki/Plugin/git.pm line 220.
+Cannot decode string with wide characters at /usr/pkg/lib/perl5/5.20.0/darwin-thread-multi-2level/Encode.pm line 175.
+```
+
+Any idea how to fix it?

missing timezone leads to excessive stat()
diff --git a/doc/bugs/without_timezone__44___excessive_statting_causes_slowness.mdwn b/doc/bugs/without_timezone__44___excessive_statting_causes_slowness.mdwn
new file mode 100644
index 0000000..3b70e13
--- /dev/null
+++ b/doc/bugs/without_timezone__44___excessive_statting_causes_slowness.mdwn
@@ -0,0 +1,9 @@
+If the TZ environment variable is unset *and* the 'timezone' entry in setup is unset, then libc defaults to /etc/localtime which is all well and good, but it causes it to stat() that file for every strftime or similar.  This results in somewhere in the region of 300k calls to stat(/etc/localtime) for my 600 page ikiwiki and introduces appreciable slowness into builds.
+
+If either of TZ or timezone is set, then instead it is believed and /etc/localtime is not repeatedly stat()d, even if TZ or timezone is set to ":/etc/localtime".
+
+A conversation with smcv on IRC suggested:
+
+> `it just needs "elsif (-e /etc/localtime) { $ENV{TZ} = ':/etc/localtime'; } else { $ENV{TZ} = 'GMT'; } or some such`
+
+relating to the processing of `$ENV{TZ}` and `$config{timezone}` in `Ikiwiki.pm`

question created -- situation with setup and rebuild/refresh options
diff --git a/doc/forum/refresh_and_setup.mdwn b/doc/forum/refresh_and_setup.mdwn
new file mode 100644
index 0000000..680a5de
--- /dev/null
+++ b/doc/forum/refresh_and_setup.mdwn
@@ -0,0 +1,58 @@
+I found the handling of options and terms regarding both actions highly confusing from the very beginning some weeks ago. so i created a bash function used as *iki $wikiname* that called *ikiwiki* with the needed parameters and the complete pathname of the apropriate configuration file. Only now that shell is gone and the function lost. So I had to find that command again (remember, I didn't used it for weeks).
+
+    ikiwiki --setup $setupfile
+
+Didn't work as expected, rebuilt the whole wiki.
+
+    ikiwiki -setup -refresh $setupfile
+
+Output was:
+
+    cannot read -refresh: No such file or directory
+    usage: ikiwiki [options] source dest
+           ikiwiki --setup configfile
+
+So it was clear: *first* refresh, *then* setup -- and so
+
+    ikiwiki -refresh -setup $setupfile
+
+finally did what I wanted.
+
+## situation
+
+1.) The manpage says:
+
+       --refresh
+              Refresh the wiki, updating any changed pages. This is the
+              default behavior so you don't normally need to specify it.
+       --setup setupfile
+              The default action when --setup is specified is to automatically
+              generate wrappers for a wiki based on data in a setup file, and
+              rebuild the wiki.  If you only want to build any changed pages,
+              you can use --refresh with --setup.
+
+Only, both *ikiwiki* and *ikiwiki $setupfile* spit out an error. So it seems i **MUST** use *--refresh* to do a refresh. but I also have to use *--setup $setupfile* because ikiwiki **NEEDS** a config file, but only one of those two options take one.
+
+2.) after building the wiki with the list of directories the install script says:
+
+    To modify settings, edit ~/ikiwiki/$wikiname.setup and then run:
+            ikiwiki -setup ~/ikiwiki/$wikiname.setup
+
+2.a) It is the only place where *-setup* is used. the error output and the manpage use *--setup*  
+2.b) It should also say how to rebuild the wiki by creating *only* the new and changed pages.
+
+3.) The file with the basic settings for the installation procedure is referred to as "setup" file. And so are the files with the settings for a particular wiki. Only the manpage uses the term "configuration" more than just a few times. 
+
+And maybe it would be possible to update a wiki if the program is called with only a config file as parameter. the mass-rebuild aproach doesn't work for me, a wiki in a user directory is not part of system stucture and so i don't use my root account for anything besides basic installation.
+
+## conclusion
+
+1.) The text for *--refresh* should be updated.  
+2.) Short and long options should be clearly distinguishable (and also if 1 or 2 hyphens may be used). So the line *--refresh* in the man page could e.g. read *-r --refresh*  
+3.) I'd suggest using "setup" for the file(s) shipped with the software thatare used to create (then so to be called) configuration files with the settings for particular wiki instances.
+
+I also adapted the install script so it doen's clutter my home directory. As for now it still creates *~/.ikiwiki* (useless for me, maybe there could be a setup option not to do it?) but all the rest goes into the same directory (setup file, and the config file and the directory for each instance).
+
+*P.S.: HOWTO sign?*
+
+--[[EdePopede]]

move the tl;dr summary to the top (plugins/highlight is recommended)
diff --git a/doc/todo/syntax_highlighting.mdwn b/doc/todo/syntax_highlighting.mdwn
index 3d12282..dd7c8a1 100644
--- a/doc/todo/syntax_highlighting.mdwn
+++ b/doc/todo/syntax_highlighting.mdwn
@@ -1,6 +1,11 @@
 There's been a lot of work on contrib syntax highlighting plugins. One should be
 picked and added to ikiwiki core.
 
+> I'm calling this [[done]] since I added the [[plugins/highlight]]
+> plugin. There are some unresolved issues touched on here,
+> but they either have the own other bug reports, or are documented
+> as semi-features in the docs to the plugin. --[[Joey]] 
+
 We want to support both converting whole source files into wiki
 pages, as well as doing syntax highlighting as a preprocessor directive 
 (which is either passed the text, or reads it from a file). But,
@@ -111,10 +116,3 @@ releases the 5 or 6 language definitions he has running on his web site, it migh
   Perhaps the thing to do here is to use the new `longname` parameter to
   the format hook, to give them all names that will group together at or
   near the end of the list. Ie: "Syntax: perl", "Source code: c", etc.
-
----
-
-I'm calling this [[done]] since I added the [[plugins/highlight]]
-plugin. There are some unresolved issues touched on here,
-but they either have the own other bug reports, or are documented
-as semi-features in the docs to the plugin. --[[Joey]] 

poll vote (Accept only password logins)
diff --git a/doc/news/openid.mdwn b/doc/news/openid.mdwn
index d40b0ee..8d701be 100644
--- a/doc/news/openid.mdwn
+++ b/doc/news/openid.mdwn
@@ -10,4 +10,4 @@ log back in, try out the OpenID signup process if you don't already have an
 OpenID, and see how OpenID works for you. And let me know your feelings about
 making such a switch. --[[Joey]]
 
-[[!poll 78 "Accept only OpenID for logins" 21 "Accept only password logins" 50 "Accept both"]]
+[[!poll 77 "Accept only OpenID for logins" 22 "Accept only password logins" 50 "Accept both"]]

poll vote (Accept only OpenID for logins)
diff --git a/doc/news/openid.mdwn b/doc/news/openid.mdwn
index a163186..d40b0ee 100644
--- a/doc/news/openid.mdwn
+++ b/doc/news/openid.mdwn
@@ -10,4 +10,4 @@ log back in, try out the OpenID signup process if you don't already have an
 OpenID, and see how OpenID works for you. And let me know your feelings about
 making such a switch. --[[Joey]]
 
-[[!poll 77 "Accept only OpenID for logins" 21 "Accept only password logins" 50 "Accept both"]]
+[[!poll 78 "Accept only OpenID for logins" 21 "Accept only password logins" 50 "Accept both"]]

diff --git a/doc/users/iuri.mdwn b/doc/users/iuri.mdwn
index 44fbce1..420c30a 100644
--- a/doc/users/iuri.mdwn
+++ b/doc/users/iuri.mdwn
@@ -1,9 +1,19 @@
-iuri _at_ hush _dot_ ai
+Contacts
+=
 
-[Neocities page](http://iuri.neocities.org)
+* iuri _at_ hush _dot_ ai
+* [Neocities contact page](http://iuri.neocities.org/contatos.html) (brazilian portuguese)
+* [Ikiwiki personal blog](http://iuri.tem.blog.br) (actually currently is an octopress blog but it is supposed to build from an ikiwiki generated git repository)
 
-[User page at wiki.hi.ato.br](https://wiki.hi.ato.br/users/iuri)
+Ikiwiki projects
+=
 
----
+I used/still_try to maintain these Ikiwiki projects:
 
-Internet should  **`s/media/iki/g`**
+* [Hacklab Independência](https://wiki.hi.ato.br) - Free software initiative
+* [Ninguém Tem Blog!](http://ninguem.tem.blog.br) - Ikiwiki (and other platforms) blog hosting
+
+Quote made for this page
+=
+
+> Internet should  **`s/media/iki/g`** period

diff --git a/doc/users/iuri.mdwn b/doc/users/iuri.mdwn
new file mode 100644
index 0000000..44fbce1
--- /dev/null
+++ b/doc/users/iuri.mdwn
@@ -0,0 +1,9 @@
+iuri _at_ hush _dot_ ai
+
+[Neocities page](http://iuri.neocities.org)
+
+[User page at wiki.hi.ato.br](https://wiki.hi.ato.br/users/iuri)
+
+---
+
+Internet should  **`s/media/iki/g`**

fixed formatting
diff --git a/doc/plugins/toc/discussion.mdwn b/doc/plugins/toc/discussion.mdwn
index 52712bb..e704eee 100644
--- a/doc/plugins/toc/discussion.mdwn
+++ b/doc/plugins/toc/discussion.mdwn
@@ -30,4 +30,4 @@ inlined pages?  --[[schmonz]]
 >> sorry I can't offer precise feedback right now, but it looks sane
 >> at a glance. --[[schmonz]]
 
-How could this be tampered to make another plugin that would enable partial listing so I could make multiple "subTOCs" in the same page? For instance I'd have a `[[!toc startlevel=1 levels=1]]` in the top of the page while after a level 1 heading I would have a `[[!toc startlevel=2]]` with the level 2 and below headers limited by the ones below this particular level 1 header --[[iuri]]
+How could this be tampered to make another plugin that would enable partial listing so I could make multiple "subTOCs" in the same page? For instance I'd have a `\[[!toc startlevel=1 levels=1]]` in the top of the page while after a level 1 heading I would have a `\[[!toc startlevel=2]]` with the level 2 and below headers limited by the ones below this particular level 1 header --[[iuri]]

added a question
diff --git a/doc/plugins/toc/discussion.mdwn b/doc/plugins/toc/discussion.mdwn
index 11c874f..52712bb 100644
--- a/doc/plugins/toc/discussion.mdwn
+++ b/doc/plugins/toc/discussion.mdwn
@@ -29,3 +29,5 @@ inlined pages?  --[[schmonz]]
 >> along the way and it stays falsish. Interested in your branch;
 >> sorry I can't offer precise feedback right now, but it looks sane
 >> at a glance. --[[schmonz]]
+
+How could this be tampered to make another plugin that would enable partial listing so I could make multiple "subTOCs" in the same page? For instance I'd have a `[[!toc startlevel=1 levels=1]]` in the top of the page while after a level 1 heading I would have a `[[!toc startlevel=2]]` with the level 2 and below headers limited by the ones below this particular level 1 header --[[iuri]]

providing the .po file so that it can be included
diff --git a/doc/todo/provide_the_ikiwiki_croatian_localization.mdwn b/doc/todo/provide_the_ikiwiki_croatian_localization.mdwn
new file mode 100644
index 0000000..536d4ca
--- /dev/null
+++ b/doc/todo/provide_the_ikiwiki_croatian_localization.mdwn
@@ -0,0 +1 @@
+I am zvonimir from croatia. i have created the localization for @ikiwiki

Note spam, already reverted by the real spalax.
diff --git a/doc/spam_fighting.mdwn b/doc/spam_fighting.mdwn
index f956940..c4b224b 100644
--- a/doc/spam_fighting.mdwn
+++ b/doc/spam_fighting.mdwn
@@ -34,4 +34,5 @@ e3376ce | 2014/08/19 | Nng_L (OpenID) | 58.186.127.104
 104c606 | 2014/08/19 | tlevine (OpenID) | 82.153.13.48
 4c7f247 and 4 more | 2015/01/08 | lis (OpenID) | 122.173.219.54
 eb526e9 and 5 more | 2015/01/10 | loveneet (OpenID) | 122.173.133.14
+ca4d8fc and 17 more | 2015/01/12-14 | spalax. (note the trailing dot) | 122.173.227.51 and 122.173.17.141
 """]]

Spam fighting
diff --git a/doc/spam_fighting/discussion.mdwn b/doc/spam_fighting/discussion.mdwn
new file mode 100644
index 0000000..6119c39
--- /dev/null
+++ b/doc/spam_fighting/discussion.mdwn
@@ -0,0 +1,3 @@
+An user ``spalax.`` has been hijacking [[my|spalax]] page, and started doing the same with [[anarcat's|http://source.ikiwiki.branchable.com/?p=source.git;a=blobdiff;f=doc/tips/convert_mediawiki_to_ikiwiki.mdwn;h=5eaf5b14c16a55ae8ae8838fe59759d9f2317e3c;hp=e8f6a26a1e8f6d27289e56835e2d6a97478cd5ad;hb=16f9fee1da6f3f102c953f61f79bcd8bdb28aaf3;hpb=5e2ffe57e4926a5082069533a2de4957f328d49a]] page (examples [[1|http://source.ikiwiki.branchable.com/?p=source.git;a=blobdiff;f=doc/plugins/contrib/sidebar2.mdwn;h=c4c46637784ef760d70d587cd5512fefac064941;hp=5c169bfd49f4f132860dee56f69c4a423d2ed7b5;hb=5e2ffe57e4926a5082069533a2de4957f328d49a;hpb=2c19d161310832e0e5fb64c86a408dd01fc2f88a]] [[2|http://source.ikiwiki.branchable.com/?p=source.git;a=blobdiff;f=doc/users/spalax..mdwn;h=a9a030c5a338b26bcde79411c4703292fc6cb114;hp=0000000000000000000000000000000000000000;hb=9b3c77c5dc50f6f67318bdfa456917b93472548d;hpb=42452ba377baa5f3be3e1d0b405fcb05954b5dee]] [[3|http://source.ikiwiki.branchable.com/?p=source.git;a=blobdiff;f=doc/bugs/empty_div_element.mdwn;h=84341accc241bdd345a930202d5c3589590d3881;hp=7e28730fd9689bfc8de34713bf02bf62067debcc;hb=ca4d8fc32e18a6dbd84882f0253e57ff389ca64d;hpb=460cc21af5d30d20f3aabbfa9026971cfc5cd7dd]]). I [[reverted|http://source.ikiwiki.branchable.com/?p=source.git;a=commit;h=544608aa5e926563f099f7f397aa0536a7b25c5d]] the modifications, but I do not have the rights to block the user.
+
+-- [[Louis|spalax]]

Revert spam
Reverted commits:
- from ca4d8fc32e18a6dbd84882f0253e57ff389ca64d (on Mon, 12 Jan 2015 07:20:48 +0100 (02:20 -0400))
- to 16f9fee1da6f3f102c953f61f79bcd8bdb28aaf3 (on Wed, 14 Jan 2015 07:14:31 +0100 (02:14 -0400))
diff --git a/doc/bugs/empty_div_element.mdwn b/doc/bugs/empty_div_element.mdwn
index 84341ac..7e28730 100644
--- a/doc/bugs/empty_div_element.mdwn
+++ b/doc/bugs/empty_div_element.mdwn
@@ -32,4 +32,4 @@ I tried looking for something like this, but I couldn't find it. Perhaps I just
 
 > This can easily be achieved by modifying [[templates]]. Simply copy the default page template to the template directory of your wiki, and modify it to add your empty divs.
 >
-> -- [[Louis|spalax.]]
+> -- [[Louis|spalax]]
diff --git a/doc/plugins/contrib/compile.mdwn b/doc/plugins/contrib/compile.mdwn
index 86bbdc9..564f7f6 100644
--- a/doc/plugins/contrib/compile.mdwn
+++ b/doc/plugins/contrib/compile.mdwn
@@ -1,5 +1,5 @@
 [[!meta author="spalax"]]
-[[!template id=plugin name=compile author="[[Louis|spalax.]]"]]
+[[!template id=plugin name=compile author="[[Louis|spalax]]"]]
 
 # Compile
 
diff --git a/doc/plugins/contrib/created_in_future.mdwn b/doc/plugins/contrib/created_in_future.mdwn
index 9f77a8a..95793e1 100644
--- a/doc/plugins/contrib/created_in_future.mdwn
+++ b/doc/plugins/contrib/created_in_future.mdwn
@@ -1,5 +1,5 @@
 [[!meta author="spalax"]]
-[[!template id=plugin name="created_in_future (deprecated)" author="[[Louis|spalax.]]"]]
+[[!template id=plugin name="created_in_future (deprecated)" author="[[Louis|spalax]]"]]
 
 # Created_in_future
 
diff --git a/doc/plugins/contrib/datetime_cmp.mdwn b/doc/plugins/contrib/datetime_cmp.mdwn
index 612fa3d..ba35b37 100644
--- a/doc/plugins/contrib/datetime_cmp.mdwn
+++ b/doc/plugins/contrib/datetime_cmp.mdwn
@@ -1,5 +1,5 @@
 [[!meta author="spalax"]]
-[[!template id=plugin name=datetime_cmp author="[[Louis|spalax.]]"]]
+[[!template id=plugin name=datetime_cmp author="[[Louis|spalax]]"]]
 [[!tag type/pagespec]]
 
 # Datetime_cmp
diff --git a/doc/plugins/contrib/jscalendar.mdwn b/doc/plugins/contrib/jscalendar.mdwn
index bf49b12..8123b31 100644
--- a/doc/plugins/contrib/jscalendar.mdwn
+++ b/doc/plugins/contrib/jscalendar.mdwn
@@ -1,5 +1,5 @@
 [[!meta author="spalax"]]
-[[!template id=plugin name=jscalendar author="[[Louis|spalax.]]"]]
+[[!template id=plugin name=jscalendar author="[[Louis|spalax]]"]]
 
 # Jscalendar
 
diff --git a/doc/plugins/contrib/monthcalendar.mdwn b/doc/plugins/contrib/monthcalendar.mdwn
index f7ee786..c21be0a 100644
--- a/doc/plugins/contrib/monthcalendar.mdwn
+++ b/doc/plugins/contrib/monthcalendar.mdwn
@@ -1,5 +1,5 @@
 [[!meta author="spalax"]]
-[[!template id=plugin name=monthcalendar author="[[Louis|spalax.]]"]]
+[[!template id=plugin name=monthcalendar author="[[Louis|spalax]]"]]
 
 # Monthcalendar
 
diff --git a/doc/plugins/contrib/parenttag.mdwn b/doc/plugins/contrib/parenttag.mdwn
index 52c7f32..5dc01c7 100644
--- a/doc/plugins/contrib/parenttag.mdwn
+++ b/doc/plugins/contrib/parenttag.mdwn
@@ -1,5 +1,5 @@
 [[!meta author="spalax"]]
-[[!template id=plugin name=parenttag author="[[Louis|spalax.]]"]]
+[[!template id=plugin name=parenttag author="[[Louis|spalax]]"]]
 [[!tag type/tags]]
 
 This plugin deals with subtags (e.g. `mathematics/calculus`). Whenever a page is tagged, it is automatically tagged with its subtags as well: the following directives are equivalent:
diff --git a/doc/plugins/contrib/poetry.mdwn b/doc/plugins/contrib/poetry.mdwn
index 7a8573b..aed2e42 100644
--- a/doc/plugins/contrib/poetry.mdwn
+++ b/doc/plugins/contrib/poetry.mdwn
@@ -1,5 +1,5 @@
 [[!meta author="spalax"]]
-[[!template id=plugin name=poetry author="[[Louis|spalax.]]"]]
+[[!template id=plugin name=poetry author="[[Louis|spalax]]"]]
 
 # Poetry
 
diff --git a/doc/plugins/contrib/sidebar2.mdwn b/doc/plugins/contrib/sidebar2.mdwn
index c4c4663..5c169bf 100644
--- a/doc/plugins/contrib/sidebar2.mdwn
+++ b/doc/plugins/contrib/sidebar2.mdwn
@@ -1,5 +1,5 @@
 [[!meta author="spalax"]]
-[[!template id=plugin name=sidebar2 author="[[Louis|spalax.]]"]]
+[[!template id=plugin name=sidebar2 author="[[Louis|spalax]]"]]
 [[!tag type/chrome]]
 
 *Claim:* The [[sidebar|plugins/sidebar]] plugin has nothing
diff --git a/doc/plugins/contrib/taskreport.mdwn b/doc/plugins/contrib/taskreport.mdwn
index 5173ec1..377c9ed 100644
--- a/doc/plugins/contrib/taskreport.mdwn
+++ b/doc/plugins/contrib/taskreport.mdwn
@@ -1,5 +1,5 @@
 [[!meta author="spalax"]]
-[[!template id=plugin name=taskreport author="[[Louis|spalax.]]"]]
+[[!template id=plugin name=taskreport author="[[Louis|spalax]]"]]
 
 # Taskreport
 
diff --git a/doc/tips/convert_mediawiki_to_ikiwiki.mdwn b/doc/tips/convert_mediawiki_to_ikiwiki.mdwn
index 5eaf5b1..e8f6a26 100644
--- a/doc/tips/convert_mediawiki_to_ikiwiki.mdwn
+++ b/doc/tips/convert_mediawiki_to_ikiwiki.mdwn
@@ -207,7 +207,7 @@ There's now support for mediawiki as a git remote:
 > gitmodule available in the right place for it to use.. perhaps you could
 > automate that? --[[Joey]]
 
-> > You mean a debian package? :) media2iki is actually a submodule, so you need to go through extra steps to install it. mwlib being the most annoying part... I have fixed my script so it looks for media2iki directly in the submodule and improved the install instructions in the README file, but I'm not sure I can do much more short of starting to package the whole thing... --[[spalax.]]
+> > You mean a debian package? :) media2iki is actually a submodule, so you need to go through extra steps to install it. mwlib being the most annoying part... I have fixed my script so it looks for media2iki directly in the submodule and improved the install instructions in the README file, but I'm not sure I can do much more short of starting to package the whole thing... --[[anarcat]]
 
 >>> You may have forgotten to push that, I don't see those changes.
 >>> Packaging the python library might be a good 1st step.
diff --git a/doc/users/spalax..mdwn b/doc/users/spalax..mdwn
deleted file mode 100644
index a9a030c..0000000
--- a/doc/users/spalax..mdwn
+++ /dev/null
@@ -1,20 +0,0 @@
-[[!meta title="Louis Paternault"]]
-
-User of IkiWiki (my [professional website](http://paternault.fr), among others).
-
-# Plugins
-
-I wrote and maintain a few plugins, which are available here: [[https://atelier.gresille.org/projects/gresille-ikiwiki]].
-
-[[!map pages="plugins/contrib/* and ! plugins/contrib/*/* and author(spalax)"]]
-
-# Wishlist
-
-I have a few things in mind. Their status is something between *I will implement it someday* to *maybe someone could need this* or *I will need it if I implement this killer website I have in mind*.
-
-* [[plugins/contrib/htaccessmanager]]: Create a cgi page to manage a htaccess file.
-
-
-# Contact
-
-Contact: `spalax at gresille dot org`.

diff --git a/doc/tips/convert_mediawiki_to_ikiwiki.mdwn b/doc/tips/convert_mediawiki_to_ikiwiki.mdwn
index e8f6a26..5eaf5b1 100644
--- a/doc/tips/convert_mediawiki_to_ikiwiki.mdwn
+++ b/doc/tips/convert_mediawiki_to_ikiwiki.mdwn
@@ -207,7 +207,7 @@ There's now support for mediawiki as a git remote:
 > gitmodule available in the right place for it to use.. perhaps you could
 > automate that? --[[Joey]]
 
-> > You mean a debian package? :) media2iki is actually a submodule, so you need to go through extra steps to install it. mwlib being the most annoying part... I have fixed my script so it looks for media2iki directly in the submodule and improved the install instructions in the README file, but I'm not sure I can do much more short of starting to package the whole thing... --[[anarcat]]
+> > You mean a debian package? :) media2iki is actually a submodule, so you need to go through extra steps to install it. mwlib being the most annoying part... I have fixed my script so it looks for media2iki directly in the submodule and improved the install instructions in the README file, but I'm not sure I can do much more short of starting to package the whole thing... --[[spalax.]]
 
 >>> You may have forgotten to push that, I don't see those changes.
 >>> Packaging the python library might be a good 1st step.

diff --git a/doc/plugins/contrib/sidebar2.mdwn b/doc/plugins/contrib/sidebar2.mdwn
index 5c169bf..c4c4663 100644
--- a/doc/plugins/contrib/sidebar2.mdwn
+++ b/doc/plugins/contrib/sidebar2.mdwn
@@ -1,5 +1,5 @@
 [[!meta author="spalax"]]
-[[!template id=plugin name=sidebar2 author="[[Louis|spalax]]"]]
+[[!template id=plugin name=sidebar2 author="[[Louis|spalax.]]"]]
 [[!tag type/chrome]]
 
 *Claim:* The [[sidebar|plugins/sidebar]] plugin has nothing

diff --git a/doc/plugins/contrib/jscalendar.mdwn b/doc/plugins/contrib/jscalendar.mdwn
index 8123b31..bf49b12 100644
--- a/doc/plugins/contrib/jscalendar.mdwn
+++ b/doc/plugins/contrib/jscalendar.mdwn
@@ -1,5 +1,5 @@
 [[!meta author="spalax"]]
-[[!template id=plugin name=jscalendar author="[[Louis|spalax]]"]]
+[[!template id=plugin name=jscalendar author="[[Louis|spalax.]]"]]
 
 # Jscalendar
 

diff --git a/doc/plugins/contrib/poetry.mdwn b/doc/plugins/contrib/poetry.mdwn
index aed2e42..7a8573b 100644
--- a/doc/plugins/contrib/poetry.mdwn
+++ b/doc/plugins/contrib/poetry.mdwn
@@ -1,5 +1,5 @@
 [[!meta author="spalax"]]
-[[!template id=plugin name=poetry author="[[Louis|spalax]]"]]
+[[!template id=plugin name=poetry author="[[Louis|spalax.]]"]]
 
 # Poetry
 

diff --git a/doc/plugins/contrib/parenttag.mdwn b/doc/plugins/contrib/parenttag.mdwn
index 5dc01c7..52c7f32 100644
--- a/doc/plugins/contrib/parenttag.mdwn
+++ b/doc/plugins/contrib/parenttag.mdwn
@@ -1,5 +1,5 @@
 [[!meta author="spalax"]]
-[[!template id=plugin name=parenttag author="[[Louis|spalax]]"]]
+[[!template id=plugin name=parenttag author="[[Louis|spalax.]]"]]
 [[!tag type/tags]]
 
 This plugin deals with subtags (e.g. `mathematics/calculus`). Whenever a page is tagged, it is automatically tagged with its subtags as well: the following directives are equivalent:

diff --git a/doc/plugins/contrib/monthcalendar.mdwn b/doc/plugins/contrib/monthcalendar.mdwn
index c21be0a..f7ee786 100644
--- a/doc/plugins/contrib/monthcalendar.mdwn
+++ b/doc/plugins/contrib/monthcalendar.mdwn
@@ -1,5 +1,5 @@
 [[!meta author="spalax"]]
-[[!template id=plugin name=monthcalendar author="[[Louis|spalax]]"]]
+[[!template id=plugin name=monthcalendar author="[[Louis|spalax.]]"]]
 
 # Monthcalendar
 

diff --git a/doc/plugins/contrib/datetime_cmp.mdwn b/doc/plugins/contrib/datetime_cmp.mdwn
index ba35b37..612fa3d 100644
--- a/doc/plugins/contrib/datetime_cmp.mdwn
+++ b/doc/plugins/contrib/datetime_cmp.mdwn
@@ -1,5 +1,5 @@
 [[!meta author="spalax"]]
-[[!template id=plugin name=datetime_cmp author="[[Louis|spalax]]"]]
+[[!template id=plugin name=datetime_cmp author="[[Louis|spalax.]]"]]
 [[!tag type/pagespec]]
 
 # Datetime_cmp

diff --git a/doc/plugins/contrib/created_in_future.mdwn b/doc/plugins/contrib/created_in_future.mdwn
index 95793e1..9f77a8a 100644
--- a/doc/plugins/contrib/created_in_future.mdwn
+++ b/doc/plugins/contrib/created_in_future.mdwn
@@ -1,5 +1,5 @@
 [[!meta author="spalax"]]
-[[!template id=plugin name="created_in_future (deprecated)" author="[[Louis|spalax]]"]]
+[[!template id=plugin name="created_in_future (deprecated)" author="[[Louis|spalax.]]"]]
 
 # Created_in_future
 

diff --git a/doc/plugins/contrib/compile.mdwn b/doc/plugins/contrib/compile.mdwn
index 564f7f6..86bbdc9 100644
--- a/doc/plugins/contrib/compile.mdwn
+++ b/doc/plugins/contrib/compile.mdwn
@@ -1,5 +1,5 @@
 [[!meta author="spalax"]]
-[[!template id=plugin name=compile author="[[Louis|spalax]]"]]
+[[!template id=plugin name=compile author="[[Louis|spalax.]]"]]
 
 # Compile
 

diff --git a/doc/plugins/contrib/taskreport.mdwn b/doc/plugins/contrib/taskreport.mdwn
index 377c9ed..5173ec1 100644
--- a/doc/plugins/contrib/taskreport.mdwn
+++ b/doc/plugins/contrib/taskreport.mdwn
@@ -1,5 +1,5 @@
 [[!meta author="spalax"]]
-[[!template id=plugin name=taskreport author="[[Louis|spalax]]"]]
+[[!template id=plugin name=taskreport author="[[Louis|spalax.]]"]]
 
 # Taskreport
 

diff --git a/doc/users/spalax..mdwn b/doc/users/spalax..mdwn
new file mode 100644
index 0000000..a9a030c
--- /dev/null
+++ b/doc/users/spalax..mdwn
@@ -0,0 +1,20 @@
+[[!meta title="Louis Paternault"]]
+
+User of IkiWiki (my [professional website](http://paternault.fr), among others).
+
+# Plugins
+
+I wrote and maintain a few plugins, which are available here: [[https://atelier.gresille.org/projects/gresille-ikiwiki]].
+
+[[!map pages="plugins/contrib/* and ! plugins/contrib/*/* and author(spalax)"]]
+
+# Wishlist
+
+I have a few things in mind. Their status is something between *I will implement it someday* to *maybe someone could need this* or *I will need it if I implement this killer website I have in mind*.
+
+* [[plugins/contrib/htaccessmanager]]: Create a cgi page to manage a htaccess file.
+
+
+# Contact
+
+Contact: `spalax at gresille dot org`.

diff --git a/doc/plugins/contrib/addtag.mdwn b/doc/plugins/contrib/addtag.mdwn
index 27b08b5..5b9461d 100644
--- a/doc/plugins/contrib/addtag.mdwn
+++ b/doc/plugins/contrib/addtag.mdwn
@@ -1,5 +1,5 @@
 [[!meta author="spalax"]]
-[[!template id=plugin name=addtag author="[[Louis|spalax.]]"]]
+[[!template id=plugin name=addtag author="[[Louis|spalax]]"]]
 [[!tag type/widget]]
 
 # Addtag

diff --git a/doc/plugins/contrib/addtag.mdwn b/doc/plugins/contrib/addtag.mdwn
index 1ce6290..27b08b5 100644
--- a/doc/plugins/contrib/addtag.mdwn
+++ b/doc/plugins/contrib/addtag.mdwn
@@ -1,4 +1,4 @@
-[[!meta author="spalax."]]
+[[!meta author="spalax"]]
 [[!template id=plugin name=addtag author="[[Louis|spalax.]]"]]
 [[!tag type/widget]]
 

removed
diff --git a/doc/bugs/spalax..mdwn b/doc/bugs/spalax..mdwn
deleted file mode 100644
index a9a030c..0000000
--- a/doc/bugs/spalax..mdwn
+++ /dev/null
@@ -1,20 +0,0 @@
-[[!meta title="Louis Paternault"]]
-
-User of IkiWiki (my [professional website](http://paternault.fr), among others).
-
-# Plugins
-
-I wrote and maintain a few plugins, which are available here: [[https://atelier.gresille.org/projects/gresille-ikiwiki]].
-
-[[!map pages="plugins/contrib/* and ! plugins/contrib/*/* and author(spalax)"]]
-
-# Wishlist
-
-I have a few things in mind. Their status is something between *I will implement it someday* to *maybe someone could need this* or *I will need it if I implement this killer website I have in mind*.
-
-* [[plugins/contrib/htaccessmanager]]: Create a cgi page to manage a htaccess file.
-
-
-# Contact
-
-Contact: `spalax at gresille dot org`.

diff --git a/doc/plugins/contrib/addtag.mdwn b/doc/plugins/contrib/addtag.mdwn
index 5b9461d..1ce6290 100644
--- a/doc/plugins/contrib/addtag.mdwn
+++ b/doc/plugins/contrib/addtag.mdwn
@@ -1,5 +1,5 @@
-[[!meta author="spalax"]]
-[[!template id=plugin name=addtag author="[[Louis|spalax]]"]]
+[[!meta author="spalax."]]
+[[!template id=plugin name=addtag author="[[Louis|spalax.]]"]]
 [[!tag type/widget]]
 
 # Addtag

diff --git a/doc/bugs/spalax..mdwn b/doc/bugs/spalax..mdwn
new file mode 100644
index 0000000..a9a030c
--- /dev/null
+++ b/doc/bugs/spalax..mdwn
@@ -0,0 +1,20 @@
+[[!meta title="Louis Paternault"]]
+
+User of IkiWiki (my [professional website](http://paternault.fr), among others).
+
+# Plugins
+
+I wrote and maintain a few plugins, which are available here: [[https://atelier.gresille.org/projects/gresille-ikiwiki]].
+
+[[!map pages="plugins/contrib/* and ! plugins/contrib/*/* and author(spalax)"]]
+
+# Wishlist
+
+I have a few things in mind. Their status is something between *I will implement it someday* to *maybe someone could need this* or *I will need it if I implement this killer website I have in mind*.
+
+* [[plugins/contrib/htaccessmanager]]: Create a cgi page to manage a htaccess file.
+
+
+# Contact
+
+Contact: `spalax at gresille dot org`.

diff --git a/doc/bugs/empty_div_element.mdwn b/doc/bugs/empty_div_element.mdwn
index 7e28730..84341ac 100644
--- a/doc/bugs/empty_div_element.mdwn
+++ b/doc/bugs/empty_div_element.mdwn
@@ -32,4 +32,4 @@ I tried looking for something like this, but I couldn't find it. Perhaps I just
 
 > This can easily be achieved by modifying [[templates]]. Simply copy the default page template to the template directory of your wiki, and modify it to add your empty divs.
 >
-> -- [[Louis|spalax]]
+> -- [[Louis|spalax.]]

Removed TODO item (done)
diff --git a/doc/users/spalax.mdwn b/doc/users/spalax.mdwn
index 4bf895c..a9a030c 100644
--- a/doc/users/spalax.mdwn
+++ b/doc/users/spalax.mdwn
@@ -13,7 +13,6 @@ I wrote and maintain a few plugins, which are available here: [[https://atelier.
 I have a few things in mind. Their status is something between *I will implement it someday* to *maybe someone could need this* or *I will need it if I implement this killer website I have in mind*.
 
 * [[plugins/contrib/htaccessmanager]]: Create a cgi page to manage a htaccess file.
-* Automatically add calendar pages (WIP: see the [[ikiwiki-calendar discussion|ikiwiki-calendar/discussion]]).
 
 
 # Contact

Added my professional website
diff --git a/doc/users/spalax.mdwn b/doc/users/spalax.mdwn
index d5867ca..4bf895c 100644
--- a/doc/users/spalax.mdwn
+++ b/doc/users/spalax.mdwn
@@ -1,6 +1,6 @@
 [[!meta title="Louis Paternault"]]
 
-User of IkiWiki.
+User of IkiWiki (my [professional website](http://paternault.fr), among others).
 
 # Plugins
 

Added a site using IkiWiki.
diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn
index 733edfd..d974f6b 100644
--- a/doc/ikiwikiusers.mdwn
+++ b/doc/ikiwikiusers.mdwn
@@ -206,3 +206,4 @@ Personal sites and blogs
 * Kalle Söderman: [Seen Architecture](http://img.kalleswork.net), [Stockholm Project](http://stockholm.kalleswork.net) - Mainly -image galleries using the album and osm plugins with a customized html5 theme.
 * [James Technotes](http://jamestechnotes.com), my [wiki](http://jamestechnotes.com) and [blog](http://jamestechnotes.com/blog).
 * [Amitai Schlair's site](http://www.schmonz.com/)
+* My ([[spalax]]) [professional website](http://paternault.fr)

despam
diff --git a/doc/blog.mdwn b/doc/blog.mdwn
index 9de244c..c4a379f 100644
--- a/doc/blog.mdwn
+++ b/doc/blog.mdwn
@@ -1,4 +1,4 @@
 Ikiwiki allows turning any page into a weblog, by using the
 [[ikiwiki/directive/inline]] [[ikiwiki/directive]]. For example:
-[.](http://www.mommyliciousmaternity.com/)
+
 	\[[!inline pages="blog/* and !*/Discussion" show="10" rootpage="blog"]]
diff --git a/doc/bugs.mdwn b/doc/bugs.mdwn
index b28ed57..f16a4f8 100644
--- a/doc/bugs.mdwn
+++ b/doc/bugs.mdwn
@@ -1,7 +1,8 @@
 If you've found a bug in ikiwiki, post about it here. [[TODO]] items go
 elsewhere. Link items to [[bugs/done]] when done.
 
-Also see the [Debian bugs](http://bugs.debian.org/ikiwiki)[.](http://www.mommyliciousmaternity.com/collections/plus-size-maternity-dresses)
+Also see the [Debian bugs](http://bugs.debian.org/ikiwiki).
+
 There are [[!pagecount pages="bugs/* and !bugs/done and !bugs/discussion and 
 !link(patch) and !link(bugs/done) and !bugs/*/*"
 feedpages="created_after(bugs/no_commit_mails_for_new_pages)"]] "open" bugs:
diff --git a/doc/bugs/done.mdwn b/doc/bugs/done.mdwn
index 41fa940..0a666ab 100644
--- a/doc/bugs/done.mdwn
+++ b/doc/bugs/done.mdwn
@@ -1,3 +1,3 @@
-recently fixed [[bugs]][.](http://www.mommyliciousmaternity.com/collections/plus-size-maternity-dresses)
+recently fixed [[bugs]]
 
 [[!inline pages="link(bugs/done) and !bugs and !*/Discussion" sort=mtime show=10]]
diff --git a/doc/plugins/attachment.mdwn b/doc/plugins/attachment.mdwn
index 7cf7da6..4fcd714 100644
--- a/doc/plugins/attachment.mdwn
+++ b/doc/plugins/attachment.mdwn
@@ -1,7 +1,8 @@
 [[!template id=plugin name=attachment core=0 author="[[Joey]]"]]
 [[!tag type/web]]
 
-This plugin allows files to be uploaded to the wiki over the web
+This plugin allows files to be uploaded to the wiki over the web.
+
 For each page `foo`, files in the subdirectory `foo/` are treated as
 attachments of that page. Attachments can be uploaded and managed as
 part of the interface for editing a page.
@@ -22,6 +23,5 @@ Bear in mind that if you let anyone upload a particular kind of file
 If you enable this plugin, be sure to lock it down, via the
 `allowed_attachments` setup file option. This is a special 
 [[enhanced_PageSpec|ikiwiki/pagespec/attachment]] using tests provided by
-the [[filecheck]][.](http://www.mommyliciousmaternity.com/collections/plus-size-maternity-dresses)
- plugin. That plugin will be automatically enabled when
+the [[filecheck]] plugin. That plugin will be automatically enabled when
 this plugin is enabled.
diff --git a/doc/spam_fighting.mdwn b/doc/spam_fighting.mdwn
index 619f354..f956940 100644
--- a/doc/spam_fighting.mdwn
+++ b/doc/spam_fighting.mdwn
@@ -32,9 +32,6 @@ c2924ce | 2014/01/02 | domtheo9110 | 182.253.51.174
 cd81b9f | 2014/01/03 | domtheo9110 | ?
 e3376ce | 2014/08/19 | Nng_L (OpenID) | 58.186.127.104
 104c606 | 2014/08/19 | tlevine (OpenID) | 82.153.13.48
-4c7f247 | 2015/01/08 | lis (OpenID) | 122.173.219.54
-246678f | 2015/01/08 | lis (OpenID) | 122.173.219.54
-504a6b8 | 2015/01/08 | lis (OpenID) | 122.173.219.54
-b500d89 | 2015/01/08 | lis (OpenID) | 122.173.219.54
-3ae8a75 | 2015/01/08 | lis (OpenID) | 122.173.219.54
+4c7f247 and 4 more | 2015/01/08 | lis (OpenID) | 122.173.219.54
+eb526e9 and 5 more | 2015/01/10 | loveneet (OpenID) | 122.173.133.14
 """]]

diff --git a/doc/plugins/attachment.mdwn b/doc/plugins/attachment.mdwn
index 29e945a..7cf7da6 100644
--- a/doc/plugins/attachment.mdwn
+++ b/doc/plugins/attachment.mdwn
@@ -1,8 +1,7 @@
 [[!template id=plugin name=attachment core=0 author="[[Joey]]"]]
 [[!tag type/web]]
 
-This plugin allows files to be uploaded to the wiki over the web[.](http://www.mommyliciousmaternity.com/collections/plus-size-maternity-dresses)
-
+This plugin allows files to be uploaded to the wiki over the web
 For each page `foo`, files in the subdirectory `foo/` are treated as
 attachments of that page. Attachments can be uploaded and managed as
 part of the interface for editing a page.
@@ -23,5 +22,6 @@ Bear in mind that if you let anyone upload a particular kind of file
 If you enable this plugin, be sure to lock it down, via the
 `allowed_attachments` setup file option. This is a special 
 [[enhanced_PageSpec|ikiwiki/pagespec/attachment]] using tests provided by
-the [[filecheck]] plugin. That plugin will be automatically enabled when
+the [[filecheck]][.](http://www.mommyliciousmaternity.com/collections/plus-size-maternity-dresses)
+ plugin. That plugin will be automatically enabled when
 this plugin is enabled.

diff --git a/doc/plugins/attachment.mdwn b/doc/plugins/attachment.mdwn
index 4fcd714..29e945a 100644
--- a/doc/plugins/attachment.mdwn
+++ b/doc/plugins/attachment.mdwn
@@ -1,7 +1,7 @@
 [[!template id=plugin name=attachment core=0 author="[[Joey]]"]]
 [[!tag type/web]]
 
-This plugin allows files to be uploaded to the wiki over the web.
+This plugin allows files to be uploaded to the wiki over the web[.](http://www.mommyliciousmaternity.com/collections/plus-size-maternity-dresses)
 
 For each page `foo`, files in the subdirectory `foo/` are treated as
 attachments of that page. Attachments can be uploaded and managed as

diff --git a/doc/bugs/done.mdwn b/doc/bugs/done.mdwn
index 0a666ab..41fa940 100644
--- a/doc/bugs/done.mdwn
+++ b/doc/bugs/done.mdwn
@@ -1,3 +1,3 @@
-recently fixed [[bugs]]
+recently fixed [[bugs]][.](http://www.mommyliciousmaternity.com/collections/plus-size-maternity-dresses)
 
 [[!inline pages="link(bugs/done) and !bugs and !*/Discussion" sort=mtime show=10]]

diff --git a/doc/bugs.mdwn b/doc/bugs.mdwn
index f16a4f8..b28ed57 100644
--- a/doc/bugs.mdwn
+++ b/doc/bugs.mdwn
@@ -1,8 +1,7 @@
 If you've found a bug in ikiwiki, post about it here. [[TODO]] items go
 elsewhere. Link items to [[bugs/done]] when done.
 
-Also see the [Debian bugs](http://bugs.debian.org/ikiwiki).
-
+Also see the [Debian bugs](http://bugs.debian.org/ikiwiki)[.](http://www.mommyliciousmaternity.com/collections/plus-size-maternity-dresses)
 There are [[!pagecount pages="bugs/* and !bugs/done and !bugs/discussion and 
 !link(patch) and !link(bugs/done) and !bugs/*/*"
 feedpages="created_after(bugs/no_commit_mails_for_new_pages)"]] "open" bugs:

diff --git a/doc/blog.mdwn b/doc/blog.mdwn
index 5c9237b..9de244c 100644
--- a/doc/blog.mdwn
+++ b/doc/blog.mdwn
@@ -1,4 +1,4 @@
 Ikiwiki allows turning any page into a weblog, by using the
 [[ikiwiki/directive/inline]] [[ikiwiki/directive]]. For example:
-http://www.mommyliciousmaternity.com/
+[.](http://www.mommyliciousmaternity.com/)
 	\[[!inline pages="blog/* and !*/Discussion" show="10" rootpage="blog"]]

diff --git a/doc/blog.mdwn b/doc/blog.mdwn
index c4a379f..5c9237b 100644
--- a/doc/blog.mdwn
+++ b/doc/blog.mdwn
@@ -1,4 +1,4 @@
 Ikiwiki allows turning any page into a weblog, by using the
 [[ikiwiki/directive/inline]] [[ikiwiki/directive]]. For example:
-
+http://www.mommyliciousmaternity.com/
 	\[[!inline pages="blog/* and !*/Discussion" show="10" rootpage="blog"]]

Docker image with ikiwiki pre-installed
diff --git a/doc/setup.mdwn b/doc/setup.mdwn
index bdbe323..c6005fb 100644
--- a/doc/setup.mdwn
+++ b/doc/setup.mdwn
@@ -7,6 +7,8 @@ This tutorial will walk you through setting up a wiki with ikiwiki.
 If you're using Debian or Ubuntu, ikiwiki is an <code><a href="http://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_basic_package_management_operations">apt-get</a> install ikiwiki</code> away.
 If you're not, see the [[download]] and [[install]] pages.
 
+You may also want to try out a [[Docker image|https://github.com/elecnix/ikiwiki-docker]] with ikiwiki pre-installed.
+
 ## Create your wiki
 
 All it takes to create a fully functional wiki using ikiwiki is running

Have committed anonymous-comments-via-vcs patch.
diff --git a/doc/plugins/comments/discussion.mdwn b/doc/plugins/comments/discussion.mdwn
index ad61ac8..0641ddc 100644
--- a/doc/plugins/comments/discussion.mdwn
+++ b/doc/plugins/comments/discussion.mdwn
@@ -253,3 +253,5 @@ way I've tried, and lets me render my (incredibly valuable ;-)
 imported blog comments with full fidelity. OK to commit?
 
 > Ship it. --[[smcv]]
+
+>> Thanks, have done. --[[schmonz]]

Use templatebody for the templates in the basewiki and docwiki
Now that ikiwiki.info has ikiwiki (>= 3.20140916) we can do this.
diff --git a/doc/templates/gitbranch.mdwn b/doc/templates/gitbranch.mdwn
index 853da92..4ea73c9 100644
--- a/doc/templates/gitbranch.mdwn
+++ b/doc/templates/gitbranch.mdwn
@@ -1,9 +1,11 @@
+[[!templatebody <<ENDBODY
 <div class="infobox">
 Available in a [[!taglink /git]] repository [[!taglink branch|/branches]].<br />
 Branch: <TMPL_IF browse><a href="<TMPL_VAR browse>"></TMPL_IF><TMPL_VAR branch><TMPL_IF browse></a></TMPL_IF><br />
 <TMPL_IF author>Author: <TMPL_VAR author><br /></TMPL_IF>
 </div>
-<TMPL_UNLESS branch>
+ENDBODY]]
+
 This template is used to create an infobox for a git branch. It uses
 these parameters:
 
@@ -13,4 +15,3 @@ these parameters:
   (e.g. github/master)</li>
 <li>author - the author of the branch</li>
 </ul>
-</TMPL_UNLESS>
diff --git a/doc/templates/links.mdwn b/doc/templates/links.mdwn
index 27f81e6..946694d 100644
--- a/doc/templates/links.mdwn
+++ b/doc/templates/links.mdwn
@@ -1,3 +1,4 @@
+[[!templatebody <<ENDBODY
 <div class="infobox">
 [[ikiwiki_logo|logo/ikiwiki.png]]  
 <ul>
@@ -12,3 +13,6 @@
 <li><a href="http://flattr.com/thing/39811/ikiwiki">Flattr ikiwiki</a></li>
 </ul>
 </div>
+ENDBODY]]
+
+This template contains the navigation links used on the front page.
diff --git a/doc/templates/note.mdwn b/doc/templates/note.mdwn
index 9ef5ad9..8de7374 100644
--- a/doc/templates/note.mdwn
+++ b/doc/templates/note.mdwn
@@ -1,11 +1,12 @@
+[[!templatebody <<ENDBODY
 <div class="notebox">
 <TMPL_VAR text>
 </div>
-<TMPL_UNLESS text>
+ENDBODY]]
+
 Use this template to insert a note into a page. The note will be styled to
 float to the right of other text on the page. This template has one
 parameter:
 <ul>
 <li>`text` - the text to display in the note
 </ul>
-</TMPL_UNLESS>
diff --git a/doc/templates/plugin.mdwn b/doc/templates/plugin.mdwn
index 322c494..d36dd5f 100644
--- a/doc/templates/plugin.mdwn
+++ b/doc/templates/plugin.mdwn
@@ -1,3 +1,4 @@
+[[!templatebody <<ENDBODY
 <span class="infobox">
 Plugin: <TMPL_VAR name><br />
 Author: <TMPL_VAR author><br />
@@ -8,7 +9,8 @@ Currently enabled: [[!if test="enabled(<TMPL_VAR name>)" then="yes" else="no"]]<
 </span>
 [[!if test="sourcepage(plugins/contrib/*)" then="""[[!meta title="<TMPL_VAR name> (third party plugin)"]]"""]]
 <TMPL_IF core>[[!tag plugins/type/core]]</TMPL_IF>
-<TMPL_UNLESS name>
+ENDBODY]]
+
 This template is used to create an infobox for an ikiwiki plugin. It uses
 these parameters:
 <ul>
@@ -16,4 +18,3 @@ these parameters:
 <li>author - the author of the plugin
 <li>core - set to a true value if the plugin is enabled by default
 </ul>
-</TMPL_UNLESS>
diff --git a/doc/templates/popup.mdwn b/doc/templates/popup.mdwn
index 92455eb..b721a95 100644
--- a/doc/templates/popup.mdwn
+++ b/doc/templates/popup.mdwn
@@ -1,4 +1,3 @@
-<TMPL_UNLESS mouseover>
 Use this template to create a popup window that is displayed when the mouse
 is over part of the page. This template has two parameters:
 <ul>
@@ -10,7 +9,9 @@ large for good usability.
 </ul>
 Note that browsers that do not support the CSS will display the popup
 inline in the page, inside square brackets.
-</TMPL_UNLESS>
+
+[[templatebody <<ENDBODY
 <span class="popup"><TMPL_VAR mouseover>
 <span class="paren">[</span><span class="balloon"><TMPL_VAR popup></span><span class="paren">]</span>
 </span>
+ENDBODY]]