Recent changes to this wiki:

Typos
diff --git a/doc/ikiwiki/directive/meta/discussion.mdwn b/doc/ikiwiki/directive/meta/discussion.mdwn
index c0efffd..5461d2e 100644
--- a/doc/ikiwiki/directive/meta/discussion.mdwn
+++ b/doc/ikiwiki/directive/meta/discussion.mdwn
@@ -81,4 +81,4 @@ Also, being able to use the language variable in templates would be very useful
 
 ----
 
-When `title` is set, is there a way to get the real `pagename` in templates (so that I can use `title_overridden` to render the pagename, as the last of the URL, in a breadcrumb-like part) ? -- [[BBB]]
+When `title` is set, is there a way to get the real `pagename` in templates (so that I can use `title_overridden` to render the pagename, as the last part of the page URL, in breadcrumbs) ? -- [[BBB]]

Add question about meta, title and pagename
diff --git a/doc/ikiwiki/directive/meta/discussion.mdwn b/doc/ikiwiki/directive/meta/discussion.mdwn
index 428f454..c0efffd 100644
--- a/doc/ikiwiki/directive/meta/discussion.mdwn
+++ b/doc/ikiwiki/directive/meta/discussion.mdwn
@@ -78,3 +78,7 @@ I guess patching [[/ikiwiki/directive/meta]] to document the fact this attribute
 The problem is that it does not generate the lang attribute in `<html>` and that's what's required for [hyphenation](https://developer.mozilla.org/en-US/docs/Web/CSS/hyphens) so this would be welcome too!
 
 Also, being able to use the language variable in templates would be very useful for various css tweaks. — [Hugo](https://hroy.eu)
+
+----
+
+When `title` is set, is there a way to get the real `pagename` in templates (so that I can use `title_overridden` to render the pagename, as the last of the URL, in a breadcrumb-like part) ? -- [[BBB]]

had a 500 here
diff --git a/doc/bugs/ikiwiki_explodes_when_git_rewrites_history.mdwn b/doc/bugs/ikiwiki_explodes_when_git_rewrites_history.mdwn
index 0e67bfb..fa83992 100644
--- a/doc/bugs/ikiwiki_explodes_when_git_rewrites_history.mdwn
+++ b/doc/bugs/ikiwiki_explodes_when_git_rewrites_history.mdwn
@@ -15,3 +15,5 @@ Notice how the error message from git isn't present. It's in the `error.log`:
 </pre>
 
 The workaround I have found was to remove the `indexdb` file, because that's [[apparently legit|tips/inside_dot_ikiwiki/]]. But it would be nice to have (1) a proper error message (it had to dig around the error.log to understand what's going on), (2) to have a proper fallback if the `git log` fails and (3) to recover with the newer commit ID when we fallback. --[[anarcat]]
+
+> FWIW, I had a `500 Internal Server Error` while submitting this bug at first. :)

small bug
diff --git a/doc/bugs/ikiwiki_explodes_when_git_rewrites_history.mdwn b/doc/bugs/ikiwiki_explodes_when_git_rewrites_history.mdwn
new file mode 100644
index 0000000..0e67bfb
--- /dev/null
+++ b/doc/bugs/ikiwiki_explodes_when_git_rewrites_history.mdwn
@@ -0,0 +1,17 @@
+Now I know it's "bad" to rewrite history in git, but sometimes, and especially with public sites such as a wiki, if confidential information gets transmitted in the wiki, it can be pretty important to remove it, and the only way to do this on a public git repo is by rewriting history.
+
+(This happened as part of my implementation of [[todo/git-annex support]] to be honest, but i think it applies to other situations as well.)
+
+The problem is that ikiwiki keeps track of the last commit it saw in `$srcdir/.ikiwiki/indexdb`. Then it uses this to infer which files changed. If history changed, this will fail with a fairly dramatic:
+
+<pre>
+Error: 'git log --pretty=raw --raw --abbrev=40 --always -c --no-renames --reverse -r f9330f40527ba1f7df6656490cacb9d5ae9e2cd6..HEAD -- .' failed:
+</pre>
+
+Notice how the error message from git isn't present. It's in the `error.log`:
+
+<pre>
+[Mon Mar 30 20:20:04.393466 2015] [cgi:error] [pid 21463] [client 2001:1928:1:9::1:54315] AH01215: fatal: Invalid revision range f9330f40527ba1f7df6656490cacb9d5ae9e2cd6, referer: http://anarc.at/ikiwiki.cgi?do=edit&page=services%2Fwiki
+</pre>
+
+The workaround I have found was to remove the `indexdb` file, because that's [[apparently legit|tips/inside_dot_ikiwiki/]]. But it would be nice to have (1) a proper error message (it had to dig around the error.log to understand what's going on), (2) to have a proper fallback if the `git log` fails and (3) to recover with the newer commit ID when we fallback. --[[anarcat]]

security review seems to say this is an okay change
diff --git a/doc/todo/git-annex_support.mdwn b/doc/todo/git-annex_support.mdwn
index a0b0a71..5e0a363 100644
--- a/doc/todo/git-annex_support.mdwn
+++ b/doc/todo/git-annex_support.mdwn
@@ -178,7 +178,20 @@ index 9d6f636..e0b4cf8 100644
                                         push @IkiWiki::underlayfiles, $f;
 </pre>
 
-Now obviously this patch is incomplete: I am not sure we actually avoid the attack, ie. i am not sure the check in `srcdir()` is sufficient to remove completely the check in `find_src_files()`. It does work, however: the files get picked up from the underlay and properly hardlinked into the target `public_html` directory! So with the above patch, then the following hook in `source.git/hooks/post-receive`:
+<del>Now obviously this patch is incomplete: I am not sure we actually avoid the attack, ie. i am not sure the check in `srcdir()` is sufficient to remove completely the check in `find_src_files()`.</del>
+
+After reviewing the code further, it seems that `find_src_files` in three places in ikiwiki:
+
+<pre>
+../IkiWiki/Render.pm:421:	find_src_files(1, \@files, \%pages);
+../IkiWiki/Render.pm:846:		($files, $pages)=find_src_files();
+../po/po2wiki:18:my ($files, $pages)=IkiWiki::find_src_files();
+</pre>
+
+The first occurence is in `IkiWiki::Render::process_changed_files`, where it is used mostly for populating `@IkiWiki::underlayfiles`, the only side effect of 
+`find_src_files`. The second occurence is in `IkiWiki::Render::refresh`. There things are a little more complicated (to say the least) and a lot of stuff happens. To put it in broad terms, first it does a `IkiWiki::Render::scan` and then a `IkiWiki::Render::render`. The last two call `srcfile()` appropriately (where i put an extra symlink check), except for  `will_render()` in `scan`, which I can't figure out right now and that seems to have a lot of global side effects. It still looks fairly safe at first glance. The `rcs_get_current_rev`, `refresh`, `scan` and `rendered` hooks are also called in there, but I assume those to be safe, since they are called with sanitized values already.
+
+The patch does work: the files get picked up from the underlay and properly hardlinked into the target `public_html` directory! So with the above patch, then the following hook in `source.git/hooks/post-receive`:
 
 <pre>
 #!/bin/sh

update for recent XSS
diff --git a/doc/security.mdwn b/doc/security.mdwn
index afefd1b..6488d7f 100644
--- a/doc/security.mdwn
+++ b/doc/security.mdwn
@@ -497,3 +497,12 @@ Raúl Benencia discovered an additional XSS exposure in the meta plugin.
 This hole was discovered on 16 May 2012 and fixed the same day with
 the release of ikiwiki 3.20120516. A fix was backported to Debian squeeze,
 as version 3.20100815.9. An upgrade is recommended for all sites.
+
+## XSS via openid selector
+
+Raghav Bisht discovered this XSS in the openid selector.
+
+The hole was reported on March 24th, a fix was developed on March 27th,
+and the fixed version was released on the 29th. A fix was backported
+to Debian wheezy as version 3.20141016.2. An upgrade is recommended for
+sites using CGI and openid.

respond
diff --git a/doc/bugs/Commonmark_support.mdwn b/doc/bugs/Commonmark_support.mdwn
index 5ee014b..b05f67f 100644
--- a/doc/bugs/Commonmark_support.mdwn
+++ b/doc/bugs/Commonmark_support.mdwn
@@ -1,3 +1,20 @@
 I suffer from the occasional markdown glitches using branchable.
 
 I've found that switching my own non-ikiwiki projects to https://github.com/jgm/CommonMark has helped sort them out for the most part.
+
+> ikiwiki does not implement Markdown on its own: it uses one of several
+> third-party libraries, with the current recommendation being
+> Discount. Out-of-process implementations like
+> [[plugins/contrib/pandoc]] are not suitable to be the default for
+> performance reasons.
+>
+> There seems to be a Perl binding for libcmark at
+> <https://github.com/nwellnhof/perl-commonmark>, but unfortunately
+> its README points out that the libcmark API is not stable,
+> which means libcmark and perl-commonmark would have to be upgraded
+> in lockstep: this makes them awkward to deal with in Linux
+> distributions. As a result I'm not going to look into this myself
+> until there is a stable API for Commonmark available in Debian.
+>
+> However, if you want to add optional Commonmark support to the
+> [[plugins/mdwn]] plugin, I'd review a patch. --[[smcv]]

close fixed bug
diff --git a/doc/bugs/XSS_Alert...__33____33____33__.mdwn b/doc/bugs/XSS_Alert...__33____33____33__.mdwn
index 2c14707..d103610 100644
--- a/doc/bugs/XSS_Alert...__33____33____33__.mdwn
+++ b/doc/bugs/XSS_Alert...__33____33____33__.mdwn
@@ -29,3 +29,12 @@ raghav007bisht@gmail.com
 > Thanks Raghav for reporting this issue. I've fixed it in ikiwiki.
 > 
 > --[[Joey]] 
+
+>> [[Fix released|done]] as [[news/version_3.20150329]].
+>>
+>> Please try to report security vulnerabilities in private first,
+>> to give maintainers a chance to fix them without making it easier
+>> for attackers to exploit the newly discovered vulnerability
+>> until the maintainer can respond ("[[!wikipedia responsible disclosure]]").
+>> In this particular case, I was away from my computer for a few days
+>> and was unable to make a release until I got back. --[[smcv]]

fix formatting
diff --git a/doc/bugs/XSS_Alert...__33____33____33__.mdwn b/doc/bugs/XSS_Alert...__33____33____33__.mdwn
index 436e3fa..2c14707 100644
--- a/doc/bugs/XSS_Alert...__33____33____33__.mdwn
+++ b/doc/bugs/XSS_Alert...__33____33____33__.mdwn
@@ -5,14 +5,16 @@ Vulnerable Links:
 webconverger.org/ikiwiki.cgi?action=verify&do=signin&openid_identifier=1
 
 How To Reproduce The Vulnerability :
+
 1. Go to this link : webconverger.org/ikiwiki.cgi?action=verify&do=signin&openid_identifier=1
 2. refresh the page and intercept the http request using "brup suite" then at parameter "openid_identifier=" put xss payload
 3. forward the request
 
 XSS Payload :
-1. "></script><script>prompt(909043)</script>
-2. "></script><script>prompt("XSS Alert...!!! : Hacked By Raghav Bisht")</script>
-3. "></script><script>prompt(document.cookie)</script>
+
+1. `"></script><script>prompt(909043)</script>`
+2. `"></script><script>prompt("XSS Alert...!!! : Hacked By Raghav Bisht")</script>`
+3. `"></script><script>prompt(document.cookie)</script>`
 
 NOTE : Proof of concept is attached.
 

rename bugs/XSS_Alert...__33____33____33__.html to bugs/XSS_Alert...__33____33____33__.mdwn
diff --git a/doc/bugs/XSS_Alert...__33____33____33__.html b/doc/bugs/XSS_Alert...__33____33____33__.html
deleted file mode 100644
index 436e3fa..0000000
--- a/doc/bugs/XSS_Alert...__33____33____33__.html
+++ /dev/null
@@ -1,29 +0,0 @@
-Respected Sir,
-Your website "webconverger.org" is vulnerable to XSS Attack.
-
-Vulnerable Links:
-webconverger.org/ikiwiki.cgi?action=verify&do=signin&openid_identifier=1
-
-How To Reproduce The Vulnerability :
-1. Go to this link : webconverger.org/ikiwiki.cgi?action=verify&do=signin&openid_identifier=1
-2. refresh the page and intercept the http request using "brup suite" then at parameter "openid_identifier=" put xss payload
-3. forward the request
-
-XSS Payload :
-1. "></script><script>prompt(909043)</script>
-2. "></script><script>prompt("XSS Alert...!!! : Hacked By Raghav Bisht")</script>
-3. "></script><script>prompt(document.cookie)</script>
-
-NOTE : Proof of concept is attached.
-
-
-Thank You...!!
-
-
-Your Faithfully,
-Raghav Bisht
-raghav007bisht@gmail.com
-
-> Thanks Raghav for reporting this issue. I've fixed it in ikiwiki.
-> 
-> --[[Joey]] 
diff --git a/doc/bugs/XSS_Alert...__33____33____33__.mdwn b/doc/bugs/XSS_Alert...__33____33____33__.mdwn
new file mode 100644
index 0000000..436e3fa
--- /dev/null
+++ b/doc/bugs/XSS_Alert...__33____33____33__.mdwn
@@ -0,0 +1,29 @@
+Respected Sir,
+Your website "webconverger.org" is vulnerable to XSS Attack.
+
+Vulnerable Links:
+webconverger.org/ikiwiki.cgi?action=verify&do=signin&openid_identifier=1
+
+How To Reproduce The Vulnerability :
+1. Go to this link : webconverger.org/ikiwiki.cgi?action=verify&do=signin&openid_identifier=1
+2. refresh the page and intercept the http request using "brup suite" then at parameter "openid_identifier=" put xss payload
+3. forward the request
+
+XSS Payload :
+1. "></script><script>prompt(909043)</script>
+2. "></script><script>prompt("XSS Alert...!!! : Hacked By Raghav Bisht")</script>
+3. "></script><script>prompt(document.cookie)</script>
+
+NOTE : Proof of concept is attached.
+
+
+Thank You...!!
+
+
+Your Faithfully,
+Raghav Bisht
+raghav007bisht@gmail.com
+
+> Thanks Raghav for reporting this issue. I've fixed it in ikiwiki.
+> 
+> --[[Joey]] 

also mention 3.20141016.2
diff --git a/doc/news/version_3.20150329.mdwn b/doc/news/version_3.20150329.mdwn
index 0ac19a8..983bd2e 100644
--- a/doc/news/version_3.20150329.mdwn
+++ b/doc/news/version_3.20150329.mdwn
@@ -1,4 +1,6 @@
-ikiwiki 3.20150329 released with [[!toggle text="these changes"]]
+ikiwiki 3.20150329 released with [[!toggle text="these changes"]]. This is a
+security update fixing a cross-site scripting vulnerability.
+
 [[!toggleable text="""
   [ [[Joey Hess|joey]] ]
 
@@ -25,3 +27,6 @@ ikiwiki 3.20150329 released with [[!toggle text="these changes"]]
   * Fix XSS in openid selector. Thanks, Raghav Bisht.
     (Closes: [[!debbug 781483]])
 """]]
+
+In addition, version 3.20141016.2 was released on the same day to backport
+the cross-site-scripting fix to Debian 8.

fix formatting
diff --git a/doc/news/version_3.20150329.mdwn b/doc/news/version_3.20150329.mdwn
index 787efd9..0ac19a8 100644
--- a/doc/news/version_3.20150329.mdwn
+++ b/doc/news/version_3.20150329.mdwn
@@ -1,9 +1,11 @@
 ikiwiki 3.20150329 released with [[!toggle text="these changes"]]
 [[!toggleable text="""
   [ [[Joey Hess|joey]] ]
+
   * Fix NULL ptr deref on ENOMEM in wrapper. (Thanks, igli)
 
   [ [[Simon McVittie|smcv]] ]
+
   * Really don't double-decode CGI submissions, even on Perl versions that
     bundle an old enough Encode.pm for that not to be a problem: the
     system might have a newer Encode.pm installed separately, like Fedora 20.
@@ -15,9 +17,11 @@ ikiwiki 3.20150329 released with [[!toggle text="these changes"]]
   * Consistently document command-line options as e.g. --refresh, not -refresh
 
   [ [[Amitai Schlair|schmonz]] ]
+
   * In VCS-committed anonymous comments, link to url.
 
   [ [[Joey Hess|joey]] ]
+
   * Fix XSS in openid selector. Thanks, Raghav Bisht.
     (Closes: [[!debbug 781483]])
 """]]

Add news for version 3.20150329
diff --git a/doc/news/version_3.20150329.mdwn b/doc/news/version_3.20150329.mdwn
new file mode 100644
index 0000000..787efd9
--- /dev/null
+++ b/doc/news/version_3.20150329.mdwn
@@ -0,0 +1,23 @@
+ikiwiki 3.20150329 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+  [ [[Joey Hess|joey]] ]
+  * Fix NULL ptr deref on ENOMEM in wrapper. (Thanks, igli)
+
+  [ [[Simon McVittie|smcv]] ]
+  * Really don't double-decode CGI submissions, even on Perl versions that
+    bundle an old enough Encode.pm for that not to be a problem: the
+    system might have a newer Encode.pm installed separately, like Fedora 20.
+    (Closes: [[!debbug 776181]]; thanks, Anders Kaseorg)
+  * If neither timezone nor TZ is set, set both to :/etc/localtime if
+    we're on a GNU system and that file exists, or GMT otherwise
+  * t/inline.t: accept translations of "Add a new post titled:"
+    (Closes: [[!debbug 779365]])
+  * Consistently document command-line options as e.g. --refresh, not -refresh
+
+  [ [[Amitai Schlair|schmonz]] ]
+  * In VCS-committed anonymous comments, link to url.
+
+  [ [[Joey Hess|joey]] ]
+  * Fix XSS in openid selector. Thanks, Raghav Bisht.
+    (Closes: [[!debbug 781483]])
+"""]]

ouf, works!
diff --git a/doc/todo/git-annex_support.mdwn b/doc/todo/git-annex_support.mdwn
index 3c0b228..a0b0a71 100644
--- a/doc/todo/git-annex_support.mdwn
+++ b/doc/todo/git-annex_support.mdwn
@@ -213,4 +213,4 @@ add_underlays:
 
 ... and the `ikiwiki-hosting` patch mentionned earlier to allow git-annex-shell to run at all. Also, the `--shared` option will [make git-annex use hardlinks itself between the two repos](https://git-annex.branchable.com/todo/wishlist:_use_hardlinks_for_local_clones/), so the files will be available for download as well. --[[anarcat]]
 
-> ...aaaand this doesn't work anymore. :( i could have sworn this was working minutes ago, but for some reason the annexed files get skipped again now. :( --[[anarcat]]
+> <del>...aaaand this doesn't work anymore. :( i could have sworn this was working minutes ago, but for some reason the annexed files get skipped again now. :(</del> Sorry for the noise, the annex repo wasn't in direct mode - the above works! --[[anarcat]]

fail
diff --git a/doc/todo/git-annex_support.mdwn b/doc/todo/git-annex_support.mdwn
index 7662aeb..3c0b228 100644
--- a/doc/todo/git-annex_support.mdwn
+++ b/doc/todo/git-annex_support.mdwn
@@ -212,3 +212,5 @@ add_underlays:
 </pre>
 
 ... and the `ikiwiki-hosting` patch mentionned earlier to allow git-annex-shell to run at all. Also, the `--shared` option will [make git-annex use hardlinks itself between the two repos](https://git-annex.branchable.com/todo/wishlist:_use_hardlinks_for_local_clones/), so the files will be available for download as well. --[[anarcat]]
+
+> ...aaaand this doesn't work anymore. :( i could have sworn this was working minutes ago, but for some reason the annexed files get skipped again now. :( --[[anarcat]]

diff --git a/doc/tips/Ikiwiki_with_git-annex__44___the_album_and_the_underlay_plugins/discussion.mdwn b/doc/tips/Ikiwiki_with_git-annex__44___the_album_and_the_underlay_plugins/discussion.mdwn
new file mode 100644
index 0000000..f698439
--- /dev/null
+++ b/doc/tips/Ikiwiki_with_git-annex__44___the_album_and_the_underlay_plugins/discussion.mdwn
@@ -0,0 +1 @@
+i don't understand how this works, but I think i made it work "the right way"(TM) in [[todo/git-annex_support]] now... please review and feedback! --[[anarcat]]

Added a comment: progress
diff --git a/doc/forum/ikiwiki_and_big_files/comment_6_3c1c73c9f7e6e8fad81957eeda7124d4._comment b/doc/forum/ikiwiki_and_big_files/comment_6_3c1c73c9f7e6e8fad81957eeda7124d4._comment
new file mode 100644
index 0000000..619d116
--- /dev/null
+++ b/doc/forum/ikiwiki_and_big_files/comment_6_3c1c73c9f7e6e8fad81957eeda7124d4._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="https://id.koumbit.net/anarcat"
+ subject="progress"
+ date="2015-03-28T16:31:52Z"
+ content="""
+i made some progress here, please review and test suggested changes in [[todo/git-annex_support]]. --[[anarcat]]
+"""]]

figure it out at last: would need review from smcv for symlink security
diff --git a/doc/todo/git-annex_support.mdwn b/doc/todo/git-annex_support.mdwn
index afec8c6..7662aeb 100644
--- a/doc/todo/git-annex_support.mdwn
+++ b/doc/todo/git-annex_support.mdwn
@@ -135,3 +135,80 @@ git annex move --to annex
 I have added this as a hook in `$HOME/source.git/hooks/post-receive` (don't forget to `chmod +x`).
 
 The problem with the above is that the underlay wouldn't work: for some reason it wouldn't copy those files in place properly. Maybe it's freaking out because it's a full copy of the repo... My solution was to make the source repository itself a direct repo, and then add it as a remote to the bare repo. --[[anarcat]]
+
+Back from the top
+=================
+
+Obviously, the final approach of making the `source` repository direct mode will fail because ikiwiki will try to commit files there from the web interface which will fail (at best) and (at worst) add big files into git-annex (or vice-versa, not sure what's worse actually).
+
+Also, I don't know how others here made the underlay work, but it didn't work for me. I think it's because in the "source" repository, there are (dead) symlinks for the annexed files. This overrides the underlay, because of [[security]] - although I am unclear as to why this is discarded so early. So in order to make the original idea above work properly (ie. having a separate git-annex repo in direct mode) work, we must coerce ikiwiki into tolerating symlinks in the srcdir a little more:
+
+<pre>
+diff --git a/IkiWiki.pm b/IkiWiki.pm
+index 1043ef4..949273c 100644
+--- a/IkiWiki.pm
++++ b/IkiWiki.pm
+@@ -916,11 +916,10 @@ sub srcfile_stat {
+        my $file=shift;
+        my $nothrow=shift;
+
+-       return "$config{srcdir}/$file", stat(_) if -e "$config{srcdir}/$file";
+-       foreach my $dir (@{$config{underlaydirs}}, $config{underlaydir}) {
+-               return "$dir/$file", stat(_) if -e "$dir/$file";
++       foreach my $dir ($config{srcdir}, @{$config{underlaydirs}}, $config{underlaydir}) {
++               return "$dir/$file", stat(_) if (-e "$dir/$file" && ! -l "$dir/$file");
+        }
+-       error("internal error: $file cannot be found in $config{srcdir} or underlay") unless $nothrow;
++       error("internal error: $file cannot be found in $config{srcdir} or underlays @{$config{underlaydirs}} $config{underlaydir}") unless $nothrow;
+        return;
+ }
+
+diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm
+index 9d6f636..e0b4cf8 100644
+--- a/IkiWiki/Render.pm
++++ b/IkiWiki/Render.pm
+@@ -337,7 +337,7 @@ sub find_src_files (;$$$) {
+
+                if ($underlay) {
+                        # avoid underlaydir override attacks; see security.mdwn
+-                       if (! -l "$abssrcdir/$f" && ! -e _) {
++                       if (1 || ! -l "$abssrcdir/$f" && ! -e _) {
+                                if (! $pages{$page}) {
+                                        push @files, $f;
+                                        push @IkiWiki::underlayfiles, $f;
+</pre>
+
+Now obviously this patch is incomplete: I am not sure we actually avoid the attack, ie. i am not sure the check in `srcdir()` is sufficient to remove completely the check in `find_src_files()`. It does work, however: the files get picked up from the underlay and properly hardlinked into the target `public_html` directory! So with the above patch, then the following hook in `source.git/hooks/post-receive`:
+
+<pre>
+#!/bin/sh
+
+OLD_GIT_DIR="$GIT_DIR"
+unset GIT_DIR
+echo "moving big files to annex repository..."
+git annex copy --to annex
+git annex sync annex
+</pre>
+
+(I am not sure anymore why GIT_DIR is necessary, but I remember it destroyed all files in my repo because git-annex synced against the `setup` branch in the parent directory. fun times.)
+
+Then the `annex` repo is just a direct clone of the source.git:
+
+<pre>
+cd /home/user
+git clone --shared source.git annex
+cd annex
+git annex direct
+cd ../source.git
+git remote add annex ../annex
+</pre>
+
+And we need the following config:
+
+<pre>
+hardlink: 1
+add_underlays:
+- /home/w-anarcat/annex
+</pre>
+
+... and the `ikiwiki-hosting` patch mentionned earlier to allow git-annex-shell to run at all. Also, the `--shared` option will [make git-annex use hardlinks itself between the two repos](https://git-annex.branchable.com/todo/wishlist:_use_hardlinks_for_local_clones/), so the files will be available for download as well. --[[anarcat]]

another attempt
diff --git a/doc/todo/git-annex_support.mdwn b/doc/todo/git-annex_support.mdwn
index 7821962..afec8c6 100644
--- a/doc/todo/git-annex_support.mdwn
+++ b/doc/todo/git-annex_support.mdwn
@@ -101,3 +101,37 @@ An alternative implementation, which remains to be detailed but is mentionned in
 Also note that ikiwiki-hosting has a [patch waiting](https://ikiwiki-hosting.branchable.com/todo/git-annex_support) to allow pushes to work with git-annex. This could potentially be expanded to sync content to the final checkout properly, avoiding some of the problems above (esp. wrt to non-annex bare repos).
 
 Combined with the [[underlay]] feature, this could work very nicely indeed... --[[anarcat]]
+
+Here's an attempt:
+
+<pre>
+cd /home/user
+git clone source.git source.annex
+cd source.annex
+git annex direct
+cd ../source.git
+git annex group . transfer
+git remote add annex ../source.annex
+git annex sync annex
+</pre>
+
+Make sure the `hardlink` setting is enabled, and add the annex as an underlay, in `ikiwiki.setup`:
+
+<pre>
+hardlink: 1
+add_underlays:
+- /home/w-anarcat/source.annex
+</pre>
+
+Then moving files to the underlay is as simple as running this command in the bare repo:
+
+<pre>
+#!/bin/sh
+
+echo "moving big files to annex repository..."
+git annex move --to annex
+</pre>
+
+I have added this as a hook in `$HOME/source.git/hooks/post-receive` (don't forget to `chmod +x`).
+
+The problem with the above is that the underlay wouldn't work: for some reason it wouldn't copy those files in place properly. Maybe it's freaking out because it's a full copy of the repo... My solution was to make the source repository itself a direct repo, and then add it as a remote to the bare repo. --[[anarcat]]

diff --git a/doc/todo/git-annex_support.mdwn b/doc/todo/git-annex_support.mdwn
index 2f63663..7821962 100644
--- a/doc/todo/git-annex_support.mdwn
+++ b/doc/todo/git-annex_support.mdwn
@@ -96,4 +96,8 @@ See the [[discussion]] for a followup on that. --[[anarcat]]
 Alternative implementation
 ==========================
 
-An alternative implementation, which remains to be detailed but is mentionned in [[forum/ikiwiki_and_big_files]], is to use the [[underlay]] feature combined with the `hardlink` option to deploy the git-annex'd files. Then git-annex is separate from the base ikiwiki git repo. --[[anarcat]]
+An alternative implementation, which remains to be detailed but is mentionned in [[forum/ikiwiki_and_big_files]], is to use the [[underlay]] feature combined with the `hardlink` option to deploy the git-annex'd files. Then git-annex is separate from the base ikiwiki git repo. See also [[tips/Ikiwiki_with_git-annex__44___the_album_and_the_underlay_plugins]] for an example.
+
+Also note that ikiwiki-hosting has a [patch waiting](https://ikiwiki-hosting.branchable.com/todo/git-annex_support) to allow pushes to work with git-annex. This could potentially be expanded to sync content to the final checkout properly, avoiding some of the problems above (esp. wrt to non-annex bare repos).
+
+Combined with the [[underlay]] feature, this could work very nicely indeed... --[[anarcat]]

Fix XSS in openid selector. Thanks, Raghav Bisht.
diff --git a/debian/changelog b/debian/changelog
index 80dec88..3003b4b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -13,6 +13,9 @@ ikiwiki (3.20150108) UNRELEASED; urgency=medium
   * t/inline.t: accept translations of "Add a new post titled:"
     (Closes: #779365)
 
+  [ Joey Hess ]
+  * Fix XSS in openid selector. Thanks, Raghav Bisht.
+
  -- Joey Hess <id@joeyh.name>  Sat, 24 Jan 2015 23:59:20 -0400
 
 ikiwiki (3.20150107) experimental; urgency=medium
diff --git a/doc/bugs/XSS_Alert...__33____33____33__.html b/doc/bugs/XSS_Alert...__33____33____33__.html
index 24a1a3a..436e3fa 100644
--- a/doc/bugs/XSS_Alert...__33____33____33__.html
+++ b/doc/bugs/XSS_Alert...__33____33____33__.html
@@ -23,3 +23,7 @@ Thank You...!!
 Your Faithfully,
 Raghav Bisht
 raghav007bisht@gmail.com
+
+> Thanks Raghav for reporting this issue. I've fixed it in ikiwiki.
+> 
+> --[[Joey]] 
diff --git a/templates/openid-selector.tmpl b/templates/openid-selector.tmpl
index b6be272..0fd8330 100644
--- a/templates/openid-selector.tmpl
+++ b/templates/openid-selector.tmpl
@@ -23,7 +23,7 @@ $(document).ready(function() {
 		</div>
 		<div id="openid_input_area">
 			<label for="openid_identifier" class="block">Enter your OpenID:</label>
-			<input id="openid_identifier" name="openid_identifier" type="text" value="<TMPL_VAR OPENID_URL>"/>
+			<input id="openid_identifier" name="openid_identifier" type="text" value="<TMPL_VAR ESCAPE=HTML OPENID_URL>"/>
 			<input id="openid_submit" type="submit" value="Login"/>
 		</div>
 		<TMPL_IF OPENID_ERROR>

diff --git a/doc/sandbox.mdwn b/doc/sandbox.mdwn
index 8d413d5..2331caf 100644
--- a/doc/sandbox.mdwn
+++ b/doc/sandbox.mdwn
@@ -18,6 +18,7 @@ pre formated text?
 > This is a blockquote.
 >
 > This is the first level of quoting.
+A block of text
 >
 > > This is a nested blockquote.
 >

diff --git a/doc/bugs/XSS_Alert...__33____33____33__.html b/doc/bugs/XSS_Alert...__33____33____33__.html
new file mode 100644
index 0000000..24a1a3a
--- /dev/null
+++ b/doc/bugs/XSS_Alert...__33____33____33__.html
@@ -0,0 +1,25 @@
+Respected Sir,
+Your website "webconverger.org" is vulnerable to XSS Attack.
+
+Vulnerable Links:
+webconverger.org/ikiwiki.cgi?action=verify&do=signin&openid_identifier=1
+
+How To Reproduce The Vulnerability :
+1. Go to this link : webconverger.org/ikiwiki.cgi?action=verify&do=signin&openid_identifier=1
+2. refresh the page and intercept the http request using "brup suite" then at parameter "openid_identifier=" put xss payload
+3. forward the request
+
+XSS Payload :
+1. "></script><script>prompt(909043)</script>
+2. "></script><script>prompt("XSS Alert...!!! : Hacked By Raghav Bisht")</script>
+3. "></script><script>prompt(document.cookie)</script>
+
+NOTE : Proof of concept is attached.
+
+
+Thank You...!!
+
+
+Your Faithfully,
+Raghav Bisht
+raghav007bisht@gmail.com

diff --git a/doc/users/Boris.mdwn b/doc/users/Boris.mdwn
index a6fa220..eee29a3 100644
--- a/doc/users/Boris.mdwn
+++ b/doc/users/Boris.mdwn
@@ -2,8 +2,8 @@
 
 Boris <a href="mailto:bvogeler@gmail.com">bvogeler@gmail.com</a> has been using ikiwiki for several years now as both a wiki engine for group organizing and documenting and as static site generator for a bunch of sites out there, one example would be [[nb-instrument.com|http://nb-instrument.com]].   
 
-So while apparently coming from the frontend, he never wanted to really learn any of the messy stuff that lingers around in this realm besides HTML and CSS and a little scripting where necessary.   
+So while apparently coming from the web-frontend, he never wanted to really learn any of the messy stuff that lingers around in this realm besides HTML and CSS and a little scripting where necessary.   
 
 He is well aware of the web being an amateurish, crappy place, while he thinks that the internet as such, still can be thought of and be used as "a natural resource" like Alan Kay pointed out.     
 
-To learn to write things from scratch he's currently looking at Yesod and alternative frameworks in Haskell and in Rust, learning Haskell (since it's beautiful) and later on Rust (since it wants to be future-wise) to dig into functional languages for building some future proof applications. Being a studied Marxist and working as a sound engineer, musician and producer, running a small studio in an artists run space, he actually is doing this to be able to show to his small kids how important the understanding of fundamentals is.
+To learn to write things from scratch he's currently looking at Yesod and other frameworks in Haskell and in Rust, learning Haskell (since it's beautiful) and later on Rust (since it wants to be wise) to dig into functional languages for building some future proof applications. As a studied Marxist and working as a sound engineer, musician and producer, running a small studio in an artists run space, he actually is doing this to be able to show to his kids how important the understanding of fundamentals is.

diff --git a/doc/users/Boris.mdwn b/doc/users/Boris.mdwn
index b7a4950..a6fa220 100644
--- a/doc/users/Boris.mdwn
+++ b/doc/users/Boris.mdwn
@@ -6,4 +6,4 @@ So while apparently coming from the frontend, he never wanted to really learn an
 
 He is well aware of the web being an amateurish, crappy place, while he thinks that the internet as such, still can be thought of and be used as "a natural resource" like Alan Kay pointed out.     
 
-To learn to write things from scratch he's currently looking at Yesod and alternative frameworks in Haskell and in Rust, learning Haskell (since it's beautiful) and later on Rust (since it wants to be wise) to dig into functional languages for building some future proof applications. Being a studied Marxist and working as a sound engineer, musician and producer, running a small studio in an artists run space, he actually is doing this to be able to show to his small kids how important the understanding of fundamentals is.
+To learn to write things from scratch he's currently looking at Yesod and alternative frameworks in Haskell and in Rust, learning Haskell (since it's beautiful) and later on Rust (since it wants to be future-wise) to dig into functional languages for building some future proof applications. Being a studied Marxist and working as a sound engineer, musician and producer, running a small studio in an artists run space, he actually is doing this to be able to show to his small kids how important the understanding of fundamentals is.

diff --git a/doc/users/Boris.mdwn b/doc/users/Boris.mdwn
index 1a6f586..b7a4950 100644
--- a/doc/users/Boris.mdwn
+++ b/doc/users/Boris.mdwn
@@ -6,4 +6,4 @@ So while apparently coming from the frontend, he never wanted to really learn an
 
 He is well aware of the web being an amateurish, crappy place, while he thinks that the internet as such, still can be thought of and be used as "a natural resource" like Alan Kay pointed out.     
 
-To learn to write things from scratch he's currently looking at Yesod and alternative frameworks in Haskell and in Rust, learning Haskell (since it's beautiful) and later on Rust (since it wants to be wise) to dig into functional languages for building some future proof applications. Being a studied Marxist and working as a sound engineer, musician and producer, running a small studio in an artists run space, he actually is doing this to be able to show to his small kids how importand the understanding of fundamentals is.
+To learn to write things from scratch he's currently looking at Yesod and alternative frameworks in Haskell and in Rust, learning Haskell (since it's beautiful) and later on Rust (since it wants to be wise) to dig into functional languages for building some future proof applications. Being a studied Marxist and working as a sound engineer, musician and producer, running a small studio in an artists run space, he actually is doing this to be able to show to his small kids how important the understanding of fundamentals is.

diff --git a/doc/users/Boris.mdwn b/doc/users/Boris.mdwn
index 2517f95..1a6f586 100644
--- a/doc/users/Boris.mdwn
+++ b/doc/users/Boris.mdwn
@@ -1,9 +1,9 @@
 [[!meta title="Boris Vogeler"]]
 
-Boris uses ikiwiki for several years now as both a wiki engine and, quite successfully, as static site generator, one example would be [[nb-instrument.com|http://nb-instrument.com]].   
+Boris <a href="mailto:bvogeler@gmail.com">bvogeler@gmail.com</a> has been using ikiwiki for several years now as both a wiki engine for group organizing and documenting and as static site generator for a bunch of sites out there, one example would be [[nb-instrument.com|http://nb-instrument.com]].   
 
-So while apparently coming from the frontend, he never wanted to really learn any of the messy stuff that lingers around in this realm besides HTML and CSS.   
+So while apparently coming from the frontend, he never wanted to really learn any of the messy stuff that lingers around in this realm besides HTML and CSS and a little scripting where necessary.   
 
-He is well aware of the web being an amateurish, crappy place, while he thinks that the internet as such, still can be thought of as "a natural resource" like Alan Kay pointed out.     
+He is well aware of the web being an amateurish, crappy place, while he thinks that the internet as such, still can be thought of and be used as "a natural resource" like Alan Kay pointed out.     
 
-To learn to write things from scratch he's currently looking at Yesod and alternative frameworks in Haskell and in Rust, learning Haskell (since it's beautiful) and later on Rust (since it wants to be wise) to dig deep into functional languages for building future proof applications. Working as a sound engineer, musician and producer, running a small studio in an artists run space, he actually is doing this to be able to show to his small kids how importand the understanding of fundamentals is.
+To learn to write things from scratch he's currently looking at Yesod and alternative frameworks in Haskell and in Rust, learning Haskell (since it's beautiful) and later on Rust (since it wants to be wise) to dig into functional languages for building some future proof applications. Being a studied Marxist and working as a sound engineer, musician and producer, running a small studio in an artists run space, he actually is doing this to be able to show to his small kids how importand the understanding of fundamentals is.

diff --git a/doc/plugins/po/discussion.mdwn b/doc/plugins/po/discussion.mdwn
index a123935..b282581 100644
--- a/doc/plugins/po/discussion.mdwn
+++ b/doc/plugins/po/discussion.mdwn
@@ -738,4 +738,4 @@ I tried everything I could think of being the cause.
 Could this be related to the templates used by inline not being localized?   
 Any hints wether I am currently running into some dead end with ikiwiki regarding template l10n here would be greatly appreciated.
 
-Besides: When using the map instead of the inline directive, regarding l10n all is working like it should, pitty is that for the kind of deployment I am heading for I will also need pages to be included with a custom template.
+Besides: When using the map instead of the inline directive, regarding l10n all is working like it should, pitty is that for the kind of deployment I am heading for I will also need pages to be included with a custom template. --[[Boris]]

diff --git a/doc/users/Boris.mdwn b/doc/users/Boris.mdwn
new file mode 100644
index 0000000..2517f95
--- /dev/null
+++ b/doc/users/Boris.mdwn
@@ -0,0 +1,9 @@
+[[!meta title="Boris Vogeler"]]
+
+Boris uses ikiwiki for several years now as both a wiki engine and, quite successfully, as static site generator, one example would be [[nb-instrument.com|http://nb-instrument.com]].   
+
+So while apparently coming from the frontend, he never wanted to really learn any of the messy stuff that lingers around in this realm besides HTML and CSS.   
+
+He is well aware of the web being an amateurish, crappy place, while he thinks that the internet as such, still can be thought of as "a natural resource" like Alan Kay pointed out.     
+
+To learn to write things from scratch he's currently looking at Yesod and alternative frameworks in Haskell and in Rust, learning Haskell (since it's beautiful) and later on Rust (since it wants to be wise) to dig deep into functional languages for building future proof applications. Working as a sound engineer, musician and producer, running a small studio in an artists run space, he actually is doing this to be able to show to his small kids how importand the understanding of fundamentals is.

Revert "hablar sobre sistemas operativos UNIVERSALES ES LO MEJOR"
This reverts commit 992f9953c3799a8ae493d9c5b9484975e97fa2c0.
diff --git a/doc/index.mdwn b/doc/index.mdwn
index 6e2a25f..e0e4016 100644
--- a/doc/index.mdwn
+++ b/doc/index.mdwn
@@ -7,7 +7,8 @@ There are many other [[features]], including support for
 [[blogging|blog]] and [[podcasting|podcast]], as well as a large
 array of [[plugins]].
 
-Los mejores sistemas operativos Universales.
+Alternatively, think of ikiwiki as a particularly flexible static
+site generator with some dynamic features.
 
 
 

don't trust snape
diff --git a/doc/spam_fighting.mdwn b/doc/spam_fighting.mdwn
index c4b224b..741ad49 100644
--- a/doc/spam_fighting.mdwn
+++ b/doc/spam_fighting.mdwn
@@ -35,4 +35,5 @@ e3376ce | 2014/08/19 | Nng_L (OpenID) | 58.186.127.104
 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
+992f995 | 2015/03/20 | snape (OpenID) | 187.209.217.54
 """]]

hablar sobre sistemas operativos UNIVERSALES ES LO MEJOR
diff --git a/doc/index.mdwn b/doc/index.mdwn
index e0e4016..6e2a25f 100644
--- a/doc/index.mdwn
+++ b/doc/index.mdwn
@@ -7,8 +7,7 @@ There are many other [[features]], including support for
 [[blogging|blog]] and [[podcasting|podcast]], as well as a large
 array of [[plugins]].
 
-Alternatively, think of ikiwiki as a particularly flexible static
-site generator with some dynamic features.
+Los mejores sistemas operativos Universales.
 
 
 

CamelCase
diff --git a/doc/sandbox.mdwn b/doc/sandbox.mdwn
index 21d9763..8d413d5 100644
--- a/doc/sandbox.mdwn
+++ b/doc/sandbox.mdwn
@@ -3,6 +3,8 @@
 This is the [[SandBox]], a page anyone can edit to try out ikiwiki
 (version [[!version  ]]).
 
+CamelCase ?
+
 What about [[this page]]?
 
 hello world (right back at ya)

ideas?
diff --git a/doc/spam_fighting/discussion.mdwn b/doc/spam_fighting/discussion.mdwn
index 6119c39..12760e0 100644
--- a/doc/spam_fighting/discussion.mdwn
+++ b/doc/spam_fighting/discussion.mdwn
@@ -1,3 +1,7 @@
 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]]
+
+----
+
+I wonder if there is a set of best practices to operate spam fighting on a ikiwiki blog somewhere. Through some digging, i found this page but it may be useful to link to other resources from here and document how it's done. I have found good information in the `setup` branch of this wiki, especially the `banned_user` list. I wonder if that list couldn't be shared somehow - or if it shouldn't be reported upstream at blogspam.net... --[[anarcat]]

diff --git a/doc/plugins/po/discussion.mdwn b/doc/plugins/po/discussion.mdwn
index 87c1366..a123935 100644
--- a/doc/plugins/po/discussion.mdwn
+++ b/doc/plugins/po/discussion.mdwn
@@ -738,4 +738,4 @@ I tried everything I could think of being the cause.
 Could this be related to the templates used by inline not being localized?   
 Any hints wether I am currently running into some dead end with ikiwiki regarding template l10n here would be greatly appreciated.
 
-Besides: When using the map instead of the inline directive all is working like it should, pitty is that for the kind of deployment I am heading for I will also need pages to be included.
+Besides: When using the map instead of the inline directive, regarding l10n all is working like it should, pitty is that for the kind of deployment I am heading for I will also need pages to be included with a custom template.

diff --git a/doc/plugins/po/discussion.mdwn b/doc/plugins/po/discussion.mdwn
index d908be5..87c1366 100644
--- a/doc/plugins/po/discussion.mdwn
+++ b/doc/plugins/po/discussion.mdwn
@@ -738,4 +738,4 @@ I tried everything I could think of being the cause.
 Could this be related to the templates used by inline not being localized?   
 Any hints wether I am currently running into some dead end with ikiwiki regarding template l10n here would be greatly appreciated.
 
-Besides: When using the map instead of the inline directive all is working like it should, pitty is that for the kind of deployment I am heading for I need also pages to be included.
+Besides: When using the map instead of the inline directive all is working like it should, pitty is that for the kind of deployment I am heading for I will also need pages to be included.

diff --git a/doc/plugins/po/discussion.mdwn b/doc/plugins/po/discussion.mdwn
index e92f628..d908be5 100644
--- a/doc/plugins/po/discussion.mdwn
+++ b/doc/plugins/po/discussion.mdwn
@@ -727,7 +727,7 @@ Now when inlining a bunch of pages, no matter what inline template I use all lin
 going to the master language, the slave being ignored on all levels I tried. 
 
 Trying to use currentlang() inside the inline directive to force the current setting in ikiwiki.setup - I get **no pages or links** to pages at all.   
-\[[!inline pages=\"man/* and currentlang() and !*/sidebar and !*/b and !*.*\" template=\"titlepage\" archive=\"yes\" quick=\"yes\" show=\"0\" sort=\"mtime\" reverse=\"no\"]]
+\[[!inline pages=\"man/* and currentlang() and !*/sidebar and !*/b and !*.*\" template=\"inlinepage\" archive=\"yes\" quick=\"yes\" show=\"0\" sort=\"mtime\" reverse=\"no\"]]
 
 Turning meta title on slave translation pages on and off - **no change**.   
 Turning usedirs on and off - **no change**.   
@@ -737,3 +737,5 @@ Trying the use of tags on the slave language pages - **tagged() doesn't match an
 I tried everything I could think of being the cause.
 Could this be related to the templates used by inline not being localized?   
 Any hints wether I am currently running into some dead end with ikiwiki regarding template l10n here would be greatly appreciated.
+
+Besides: When using the map instead of the inline directive all is working like it should, pitty is that for the kind of deployment I am heading for I need also pages to be included.

diff --git a/doc/plugins/po/discussion.mdwn b/doc/plugins/po/discussion.mdwn
index 20a5633..e92f628 100644
--- a/doc/plugins/po/discussion.mdwn
+++ b/doc/plugins/po/discussion.mdwn
@@ -729,10 +729,10 @@ going to the master language, the slave being ignored on all levels I tried.
 Trying to use currentlang() inside the inline directive to force the current setting in ikiwiki.setup - I get **no pages or links** to pages at all.   
 \[[!inline pages=\"man/* and currentlang() and !*/sidebar and !*/b and !*.*\" template=\"titlepage\" archive=\"yes\" quick=\"yes\" show=\"0\" sort=\"mtime\" reverse=\"no\"]]
 
-Turning meta title on slave translation pages on and off - **no change**.
-Turning usedirs on and off - **no change**.
-Testing with different inline templates - **no change**.
-Trying the use of tags on the slave language pages - **tagged() doesn't match any tagged pages**
+Turning meta title on slave translation pages on and off - **no change**.   
+Turning usedirs on and off - **no change**.   
+Testing with different inline templates - **no change**.   
+Trying the use of tags on the slave language pages - **tagged() doesn't match any tagged pages**.
 
 I tried everything I could think of being the cause.
 Could this be related to the templates used by inline not being localized?   

diff --git a/doc/plugins/po/discussion.mdwn b/doc/plugins/po/discussion.mdwn
index a913dc3..20a5633 100644
--- a/doc/plugins/po/discussion.mdwn
+++ b/doc/plugins/po/discussion.mdwn
@@ -732,6 +732,7 @@ Trying to use currentlang() inside the inline directive to force the current set
 Turning meta title on slave translation pages on and off - **no change**.
 Turning usedirs on and off - **no change**.
 Testing with different inline templates - **no change**.
+Trying the use of tags on the slave language pages - **tagged() doesn't match any tagged pages**
 
 I tried everything I could think of being the cause.
 Could this be related to the templates used by inline not being localized?   

diff --git a/doc/plugins/po/discussion.mdwn b/doc/plugins/po/discussion.mdwn
index 6eddd53..a913dc3 100644
--- a/doc/plugins/po/discussion.mdwn
+++ b/doc/plugins/po/discussion.mdwn
@@ -726,11 +726,13 @@ I am trying to wrap my head around l10n with ikiwiki. Set up a test site, l10n i
 Now when inlining a bunch of pages, no matter what inline template I use all links are
 going to the master language, the slave being ignored on all levels I tried. 
 
-Trying to use currentlang() inside the inline directive - I get no pages or links to pages at all.   
-    \[[!inline pages=\"man/* and currentlang() and !*/sidebar and !*/b and !*.*\" template=\"titlepage\" archive=\"yes\" quick=\"yes\" show=\"0\" sort=\"mtime\" reverse=\"no\"]]
+Trying to use currentlang() inside the inline directive to force the current setting in ikiwiki.setup - I get **no pages or links** to pages at all.   
+\[[!inline pages=\"man/* and currentlang() and !*/sidebar and !*/b and !*.*\" template=\"titlepage\" archive=\"yes\" quick=\"yes\" show=\"0\" sort=\"mtime\" reverse=\"no\"]]
 
-Turning meta title on slave translation pages on and off - no change.
-Turning usedirs on and off - no change.
+Turning meta title on slave translation pages on and off - **no change**.
+Turning usedirs on and off - **no change**.
+Testing with different inline templates - **no change**.
 
-Can this be related to the templates used by inline not being localized?   
+I tried everything I could think of being the cause.
+Could this be related to the templates used by inline not being localized?   
 Any hints wether I am currently running into some dead end with ikiwiki regarding template l10n here would be greatly appreciated.

diff --git a/doc/plugins/po/discussion.mdwn b/doc/plugins/po/discussion.mdwn
index b33abde..6eddd53 100644
--- a/doc/plugins/po/discussion.mdwn
+++ b/doc/plugins/po/discussion.mdwn
@@ -726,7 +726,7 @@ I am trying to wrap my head around l10n with ikiwiki. Set up a test site, l10n i
 Now when inlining a bunch of pages, no matter what inline template I use all links are
 going to the master language, the slave being ignored on all levels I tried. 
 
-Trying to use currentlang() inside the inline directive - I get no pages or links to pages at all.
+Trying to use currentlang() inside the inline directive - I get no pages or links to pages at all.   
     \[[!inline pages=\"man/* and currentlang() and !*/sidebar and !*/b and !*.*\" template=\"titlepage\" archive=\"yes\" quick=\"yes\" show=\"0\" sort=\"mtime\" reverse=\"no\"]]
 
 Turning meta title on slave translation pages on and off - no change.

diff --git a/doc/plugins/po/discussion.mdwn b/doc/plugins/po/discussion.mdwn
index 366e4d5..b33abde 100644
--- a/doc/plugins/po/discussion.mdwn
+++ b/doc/plugins/po/discussion.mdwn
@@ -722,7 +722,7 @@ that po might be replacing the only link on a page, in error?
 
 ----
 # Failing to have currentlang respected when using inline
-I am trying to wrap my head around l10n. Set up a test site, l10n is working fine. 
+I am trying to wrap my head around l10n with ikiwiki. Set up a test site, l10n is working fine. 
 Now when inlining a bunch of pages, no matter what inline template I use all links are
 going to the master language, the slave being ignored on all levels I tried. 
 
@@ -730,6 +730,7 @@ Trying to use currentlang() inside the inline directive - I get no pages or link
     \[[!inline pages=\"man/* and currentlang() and !*/sidebar and !*/b and !*.*\" template=\"titlepage\" archive=\"yes\" quick=\"yes\" show=\"0\" sort=\"mtime\" reverse=\"no\"]]
 
 Turning meta title on slave translation pages on and off - no change.
+Turning usedirs on and off - no change.
 
 Can this be related to the templates used by inline not being localized?   
 Any hints wether I am currently running into some dead end with ikiwiki regarding template l10n here would be greatly appreciated.

diff --git a/doc/plugins/po/discussion.mdwn b/doc/plugins/po/discussion.mdwn
index ab7c802..366e4d5 100644
--- a/doc/plugins/po/discussion.mdwn
+++ b/doc/plugins/po/discussion.mdwn
@@ -727,11 +727,9 @@ Now when inlining a bunch of pages, no matter what inline template I use all lin
 going to the master language, the slave being ignored on all levels I tried. 
 
 Trying to use currentlang() inside the inline directive - I get no pages or links to pages at all.
-
     \[[!inline pages=\"man/* and currentlang() and !*/sidebar and !*/b and !*.*\" template=\"titlepage\" archive=\"yes\" quick=\"yes\" show=\"0\" sort=\"mtime\" reverse=\"no\"]]
 
-Turning meta title on slave translation pages on and off, no change.
-
-Can this be related to the templetes used by inline not being localized?
+Turning meta title on slave translation pages on and off - no change.
 
-Any hints wether I am currently running into some dead end with ikiwiki here would be greatly appreciated.
+Can this be related to the templates used by inline not being localized?   
+Any hints wether I am currently running into some dead end with ikiwiki regarding template l10n here would be greatly appreciated.

diff --git a/doc/plugins/po/discussion.mdwn b/doc/plugins/po/discussion.mdwn
index 3a64c0f..ab7c802 100644
--- a/doc/plugins/po/discussion.mdwn
+++ b/doc/plugins/po/discussion.mdwn
@@ -721,13 +721,16 @@ that po might be replacing the only link on a page, in error?
 >>>> Cherry-picked --[[Joey]] 
 
 ----
-# Failing to have currentlang being respected when using inline
+# Failing to have currentlang respected when using inline
 I am trying to wrap my head around l10n. Set up a test site, l10n is working fine. 
 Now when inlining a bunch of pages, no matter what inline template I use all links are
 going to the master language, the slave being ignored on all levels I tried. 
 
 Trying to use currentlang() inside the inline directive - I get no pages or links to pages at all.
-Turning meta title on slave translation pages on and of, no change.
+
+    \[[!inline pages=\"man/* and currentlang() and !*/sidebar and !*/b and !*.*\" template=\"titlepage\" archive=\"yes\" quick=\"yes\" show=\"0\" sort=\"mtime\" reverse=\"no\"]]
+
+Turning meta title on slave translation pages on and off, no change.
 
 Can this be related to the templetes used by inline not being localized?
 

diff --git a/doc/plugins/po/discussion.mdwn b/doc/plugins/po/discussion.mdwn
index 50998e8..3a64c0f 100644
--- a/doc/plugins/po/discussion.mdwn
+++ b/doc/plugins/po/discussion.mdwn
@@ -719,3 +719,16 @@ that po might be replacing the only link on a page, in error?
 
 >>> Commit 3c2bffe21b91684 in my po branch does this. --[[intrigeri]]
 >>>> Cherry-picked --[[Joey]] 
+
+----
+# Failing to have currentlang being respected when using inline
+I am trying to wrap my head around l10n. Set up a test site, l10n is working fine. 
+Now when inlining a bunch of pages, no matter what inline template I use all links are
+going to the master language, the slave being ignored on all levels I tried. 
+
+Trying to use currentlang() inside the inline directive - I get no pages or links to pages at all.
+Turning meta title on slave translation pages on and of, no change.
+
+Can this be related to the templetes used by inline not being localized?
+
+Any hints wether I am currently running into some dead end with ikiwiki here would be greatly appreciated.

diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn
index d974f6b..24c1af8 100644
--- a/doc/ikiwikiusers.mdwn
+++ b/doc/ikiwikiusers.mdwn
@@ -147,7 +147,6 @@ Personal sites and blogs
 * [[Simon_McVittie|smcv]]'s [website](http://www.pseudorandom.co.uk/) and
   [blog](http://smcv.pseudorandom.co.uk/)
 * Svend's [website](http://ciffer.net/~svend/) and [blog](http://ciffer.net/~svend/blog/)
-* [muammar's site](http://muammar.me)
 * [Per Bothner's blog](http://per.bothner.com/blog/)
 * [Bernd Zeimetz (bzed)](http://bzed.de/)
 * [Gaudenz Steinlin](http://gaudenz.durcheinandertal.ch)

the sessions.db file might need cleaning
diff --git a/doc/bugs/sessions.db_grows_big.mdwn b/doc/bugs/sessions.db_grows_big.mdwn
new file mode 100644
index 0000000..6c06be4
--- /dev/null
+++ b/doc/bugs/sessions.db_grows_big.mdwn
@@ -0,0 +1,7 @@
+The `$srcdir/.ikiwiki/sessions.db` file gets big. Does anything clean it?
+
+    -rw-------  1 jon jon  81M Mar 10 15:41 sessions.db
+
+That's 155,990 records, with the earliest having an atime of
+Sat, 29 Nov 2008 17:33:43 GMT… — [[Jon]]
+

Added a comment
diff --git a/doc/forum/Git_push_failure/comment_5_87b05d66a30ab52f22c6167b2bad0654._comment b/doc/forum/Git_push_failure/comment_5_87b05d66a30ab52f22c6167b2bad0654._comment
new file mode 100644
index 0000000..e5095be
--- /dev/null
+++ b/doc/forum/Git_push_failure/comment_5_87b05d66a30ab52f22c6167b2bad0654._comment
@@ -0,0 +1,15 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawlobQ5j7hQVIGkwMWW3yKB_DWqthJcpnsQ"
+ nickname="Qi"
+ subject="comment 5"
+ date="2015-03-10T15:40:34Z"
+ content="""
+After fixing cgi config
+
+    git_wrapper: '/home/qazwsx/space-pages/repo.git/hooks/post-update'
+    cgi_wrapper: '/home/qazwsx/public_html/space-pages/ikiwiki.cgi'
+
+, rebuilding, modifying some .md file, git commit & push, it now works.
+
+The git wrapper is the executable that lives in your git repository, and is used to accept git pushes. The cgi wrapper is the executable that is visible by your web server, and is run by the web server when requests come in from the web
+"""]]

that job is happily previous
diff --git a/doc/users/schmonz.mdwn b/doc/users/schmonz.mdwn
index 04b3254..fac5c94 100644
--- a/doc/users/schmonz.mdwn
+++ b/doc/users/schmonz.mdwn
@@ -19,9 +19,9 @@ pages="!*/Discussion and ((link(users/schmonz) and plugins/* and !plugins/openid
 
 ## Non-public
 
-* At work, team documentation and project planning: product and sprint
-  backlogs, burndown charts, release plans/procedures/announcements,
-  aggregating feeds of shared interest, etc.
 * On my laptop, personal to-do and scratch space
 * [A small personal site](http://podcast.schmonz.com/) (happily hosted at
   [Branchable](http://www.branchable.com/))
+* At a previous job, team documentation and project planning: product and sprint
+  backlogs, burndown charts, release plans/procedures/announcements,
+  aggregating feeds of shared interest, etc.

Added a comment
diff --git a/doc/forum/Git_push_failure/comment_4_add17d4171ad631369dad84a673f5e09._comment b/doc/forum/Git_push_failure/comment_4_add17d4171ad631369dad84a673f5e09._comment
new file mode 100644
index 0000000..b97f63b
--- /dev/null
+++ b/doc/forum/Git_push_failure/comment_4_add17d4171ad631369dad84a673f5e09._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="smcv"
+ subject="comment 4"
+ date="2015-03-10T08:56:46Z"
+ content="""
+It looks as though either your git hook is running ikiwiki with '--cgi', or you have
+`cgi: true` (or equivalent Perl) in the setup file, or you generated the git hook using
+`ikiwiki ... --cgi --wrappers` or similar. This is not correct: `cgi: true` does not
+mean \"enable CGI\", it means \"always run in CGI mode\", which is not what is desired.
+"""]]

Added a comment
diff --git a/doc/forum/Git_push_failure/comment_3_b55a749dcfc22a5c01a590836cf3af02._comment b/doc/forum/Git_push_failure/comment_3_b55a749dcfc22a5c01a590836cf3af02._comment
new file mode 100644
index 0000000..8ca964c
--- /dev/null
+++ b/doc/forum/Git_push_failure/comment_3_b55a749dcfc22a5c01a590836cf3af02._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawlobQ5j7hQVIGkwMWW3yKB_DWqthJcpnsQ"
+ nickname="Qi"
+ subject="comment 3"
+ date="2015-03-10T06:09:10Z"
+ content="""
+See [here](http://pastebin.com/sBZvFYNp) for the complete console output when I ran `git push`.
+"""]]

removed
diff --git a/doc/forum/Git_commit_error.mdwn b/doc/forum/Git_commit_error.mdwn
deleted file mode 100644
index 285c8a9..0000000
--- a/doc/forum/Git_commit_error.mdwn
+++ /dev/null
@@ -1,21 +0,0 @@
-The title should have been "Git push error".
-
-Every time when Git push from the source dir, it failes at "Died at /usr/share/perl5/IkiWiki/CGI.pm line 491." which is completely cryptic to me.  Then it start to issue the content of `index.md` where each line starts with `remote: `
-
-
-    source$ git push
-    Counting objects: 33, done.
-    Delta compression using up to 4 threads.
-    Compressing objects: 100% (32/32), done.
-    Writing objects: 100% (33/33), 11.62 KiB | 0 bytes/s, done.
-    Total 33 (delta 15), 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"
-    remote:  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-    remote: <html xmlns="http://www.w3.org/1999/xhtml">
-
-Any ideas?
-
-

Added a comment
diff --git a/doc/forum/Git_push_failure/comment_2_5e53d75ebf410ee2c3365595c7ecf246._comment b/doc/forum/Git_push_failure/comment_2_5e53d75ebf410ee2c3365595c7ecf246._comment
new file mode 100644
index 0000000..2439f57
--- /dev/null
+++ b/doc/forum/Git_push_failure/comment_2_5e53d75ebf410ee2c3365595c7ecf246._comment
@@ -0,0 +1,107 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawlobQ5j7hQVIGkwMWW3yKB_DWqthJcpnsQ"
+ nickname="Qi"
+ subject="comment 2"
+ date="2015-03-10T06:01:06Z"
+ content="""
+Building manually seems to generate a functioning output web site.  I can't see any obvious error in the result or the console output when running ikiwiki.
+
+The complete console output for running `git push` from the source dir is:
+    Counting objects: 33, done.
+    Delta compression using up to 4 threads.
+    Compressing objects: 100% (32/32), done.
+    Writing objects: 100% (33/33), 11.62 KiB | 0 bytes/s, done.
+    Total 33 (delta 15), 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\"
+    remote:  \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">
+    remote: <html xmlns=\"http://www.w3.org/1999/xhtml\">
+    remote: 
+    remote: <head>
+    remote: 
+    remote: 
+    remote: <base href=\"/~qazwsx/pages/\" />
+    remote: 
+    remote: 
+    remote: <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />
+    remote: <title>Error</title>
+    remote: 
+    remote: <link rel=\"stylesheet\" href=\"/~qazwsx/pages/style.css\" type=\"text/css\" />
+    remote: 
+    remote: <link rel=\"stylesheet\" href=\"/~qazwsx/pages/local.css\" type=\"text/css\" />
+    remote: 
+    remote: 
+    remote: 
+    remote: 
+    remote: 
+    remote: </head>
+    remote: <body>
+    remote: 
+    remote: <div class=\"page\">
+    remote: 
+    remote: <div class=\"pageheader\">
+    remote: <div class=\"header\">
+    remote: <span>
+    remote: <span class=\"parentlinks\">
+    remote: 
+    remote: <a href=\"/~qazwsx/pages/\">Qazwsx XXX's Home Page</a><font color=\"gray\"> / </font>
+    remote: 
+    remote: </span>
+    remote: <span class=\"title\">
+    remote: Error
+    remote: 
+    remote: </span>
+    remote: </span>
+    remote: 
+    remote: 
+    remote: 
+    remote: </div>
+    remote: 
+    remote: <!-- do not use action bar (the gray bar under the title) -->
+    remote: <!--  -->
+    remote: <!-- <div class=\"actions\"> -->
+    remote: <!-- <ul> -->
+    remote: <!--  -->
+    remote: <!--  -->
+    remote: <!-- <!--<li><a href=\"./recentchanges/\">RecentChanges</a></li>-->
+    remote: <!--  -->
+    remote: <!--  -->
+    remote: <!--  -->
+    remote: <!--  -->
+    remote: <!--  -->
+    remote: <!--  -->
+    remote: <!--  -->
+    remote: <!--  -->
+    remote: <!-- </ul> -->
+    remote: <!-- </div> -->
+    remote: <!--  -->
+    remote: 
+    remote: 
+    remote: 
+    remote: </div>
+    remote: 
+    remote: 
+    remote: 
+    remote: <div id=\"pagebody\">
+    remote: 
+    remote: <div id=\"content\">
+    remote: <p class=\"error\">Error: \"do\" parameter missing
+    remote: </p>
+    remote: </div>
+    remote: 
+    remote: 
+    remote: 
+    remote: </div>
+    remote: 
+    remote: <div id=\"footer\" class=\"pagefooter\">
+    remote: 
+    remote: <!-- from Qazwsx XXX's Home Page -->
+    remote: </div>
+    remote: 
+    remote: </div>
+    remote: 
+    remote: </body>
+    remote: </html>
+"""]]

diff --git a/doc/forum/Git_commit_error.mdwn b/doc/forum/Git_commit_error.mdwn
index 97d16b5..285c8a9 100644
--- a/doc/forum/Git_commit_error.mdwn
+++ b/doc/forum/Git_commit_error.mdwn
@@ -1,3 +1,5 @@
+The title should have been "Git push error".
+
 Every time when Git push from the source dir, it failes at "Died at /usr/share/perl5/IkiWiki/CGI.pm line 491." which is completely cryptic to me.  Then it start to issue the content of `index.md` where each line starts with `remote: `
 
 
@@ -15,3 +17,5 @@ Every time when Git push from the source dir, it failes at "Died at /usr/share/p
     remote: <html xmlns="http://www.w3.org/1999/xhtml">
 
 Any ideas?
+
+

diff --git a/doc/forum/Git_commit_error.mdwn b/doc/forum/Git_commit_error.mdwn
new file mode 100644
index 0000000..97d16b5
--- /dev/null
+++ b/doc/forum/Git_commit_error.mdwn
@@ -0,0 +1,17 @@
+Every time when Git push from the source dir, it failes at "Died at /usr/share/perl5/IkiWiki/CGI.pm line 491." which is completely cryptic to me.  Then it start to issue the content of `index.md` where each line starts with `remote: `
+
+
+    source$ git push
+    Counting objects: 33, done.
+    Delta compression using up to 4 threads.
+    Compressing objects: 100% (32/32), done.
+    Writing objects: 100% (33/33), 11.62 KiB | 0 bytes/s, done.
+    Total 33 (delta 15), 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"
+    remote:  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+    remote: <html xmlns="http://www.w3.org/1999/xhtml">
+
+Any ideas?

removed
diff --git a/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line.mdwn b/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line.mdwn
deleted file mode 100644
index 9a3fded..0000000
--- a/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line.mdwn
+++ /dev/null
@@ -1,28 +0,0 @@
-When doing `ikiwiki --setup mysite.setup`, I got the following error
-
-
-    $ ikiwiki --version
-    ikiwiki version 3.20150107
-    18:04:37 $ ikiwiki --setup mysite.setup
-    build Ikiwiki instance...
-    Use of uninitialized value in string eq at /usr/share/perl5/IkiWiki.pm line 650.
-    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
-    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
-    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
-    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
-    generating wrappers..
-    Use of uninitialized value in string eq at /usr/share/perl5/IkiWiki.pm line 650.
-    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
-    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
-    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
-    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
-    successfully generated /home/qi/public_html/pages/ikiwiki.cgi
-    rebuilding wiki..
-    
-
-Any idea how to fix it?  I'm on Ubuntu.
-
-    $ 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)

removed
diff --git a/doc/bugs/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line___42__.mdwn b/doc/bugs/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line___42__.mdwn
deleted file mode 100644
index a7668b9..0000000
--- a/doc/bugs/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line___42__.mdwn
+++ /dev/null
@@ -1,28 +0,0 @@
-When doing `ikiwiki --setup mysite.setup`, I got the following error
-
-
-    $ ikiwiki --version
-    ikiwiki version 3.20150107
-    18:04:37 $ ikiwiki --setup mysite.setup
-    build Ikiwiki instance...
-    Use of uninitialized value in string eq at /usr/share/perl5/IkiWiki.pm line 650.
-    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
-    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
-    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
-    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
-    generating wrappers..
-    Use of uninitialized value in string eq at /usr/share/perl5/IkiWiki.pm line 650.
-    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
-    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
-    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
-    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
-    successfully generated /home/qi/public_html/pages/ikiwiki.cgi
-    rebuilding wiki..
-    
-
-Any idea how to fix it?  I'm on Ubuntu and installed newest Ikiwiki from https://packages.debian.org/experimental/all/ikiwiki/download
-
-    $ 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)

response
diff --git a/doc/forum/How_to_allow_.markdown_and_.md_at_the_same_time_as_valid_extensions_for_source_files__63__.mdwn b/doc/forum/How_to_allow_.markdown_and_.md_at_the_same_time_as_valid_extensions_for_source_files__63__.mdwn
index d5f1449..79fbcfe 100644
--- a/doc/forum/How_to_allow_.markdown_and_.md_at_the_same_time_as_valid_extensions_for_source_files__63__.mdwn
+++ b/doc/forum/How_to_allow_.markdown_and_.md_at_the_same_time_as_valid_extensions_for_source_files__63__.mdwn
@@ -1 +1,24 @@
 How to allow .markdown and .md (at the same time) as valid extensions for source files? The default is .mdwn.
+
+> Add `md` to your `add_plugins`, set `libdir` if not already set,
+> put the following in `${libdir}/IkiWiki/Plugin/md.pm`, and rebuild:
+
+    #!/usr/bin/perl
+    package IkiWiki::Plugin::md;
+    
+    use warnings;
+    use strict;
+    use IkiWiki 3.00;
+    
+    my @ADDITIONAL_EXTENSIONS = qw(md markdown);
+    
+    sub import {
+        IkiWiki::loadplugin('mdwn');
+        foreach my $ext (@ADDITIONAL_EXTENSIONS) {
+            hook(type => "htmlize", id => $ext, call => \&IkiWiki::Plugin::mdwn::htmlize, longname => "Markdown (.$ext)");
+        }
+    }
+    
+    1
+
+> --[[schmonz]]

fix name
diff --git a/doc/plugins/contrib/asciidoc.mdwn b/doc/plugins/contrib/asciidoc.mdwn
index c804b5c..fe25e27 100644
--- a/doc/plugins/contrib/asciidoc.mdwn
+++ b/doc/plugins/contrib/asciidoc.mdwn
@@ -1,4 +1,4 @@
-[[!template id=plugin name=addtag author="Karl Mowson, GEychaner"]]
+[[!template id=plugin name=asciidoc author="Karl Mowson, GEychaner"]]
 [[!tag type/format]]
 
 I have [completely overhauled](https://groups.google.com/forum/#!topic/asciidoc/vwS1Vijv4hQ) the Asciidoc plugin for ikiwiki that was created by [[Karl Mowson|http://www.mowson.org/karl/colophon/]].  The source can be downloaded from my [[Dropbox|http://dl.dropbox.com/u/11256359/asciidoc.pm]].

diff --git a/doc/plugins/contrib/asciidoc.mdwn b/doc/plugins/contrib/asciidoc.mdwn
index 4b837dd..c804b5c 100644
--- a/doc/plugins/contrib/asciidoc.mdwn
+++ b/doc/plugins/contrib/asciidoc.mdwn
@@ -1,7 +1,7 @@
 [[!template id=plugin name=addtag author="Karl Mowson, GEychaner"]]
 [[!tag type/format]]
 
-I have completely overhauled the Asciidoc plugin for ikiwiki that was created by [[Karl Mowson|http://www.mowson.org/karl/colophon/]].  The source can be downloaded from my [[Dropbox|http://dl.dropbox.com/u/11256359/asciidoc.pm]].
+I have [completely overhauled](https://groups.google.com/forum/#!topic/asciidoc/vwS1Vijv4hQ) the Asciidoc plugin for ikiwiki that was created by [[Karl Mowson|http://www.mowson.org/karl/colophon/]].  The source can be downloaded from my [[Dropbox|http://dl.dropbox.com/u/11256359/asciidoc.pm]].
 
 ### Features
 

add authors and plugin type
diff --git a/doc/plugins/contrib/asciidoc.mdwn b/doc/plugins/contrib/asciidoc.mdwn
index 57d6fd9..4b837dd 100644
--- a/doc/plugins/contrib/asciidoc.mdwn
+++ b/doc/plugins/contrib/asciidoc.mdwn
@@ -1,3 +1,6 @@
+[[!template id=plugin name=addtag author="Karl Mowson, GEychaner"]]
+[[!tag type/format]]
+
 I have completely overhauled the Asciidoc plugin for ikiwiki that was created by [[Karl Mowson|http://www.mowson.org/karl/colophon/]].  The source can be downloaded from my [[Dropbox|http://dl.dropbox.com/u/11256359/asciidoc.pm]].
 
 ### Features

rename forum/Asciidoc_plugin.mdwn to plugins/contrib/asciidoc.mdwn
diff --git a/doc/forum/Asciidoc_plugin.mdwn b/doc/forum/Asciidoc_plugin.mdwn
deleted file mode 100644
index 57d6fd9..0000000
--- a/doc/forum/Asciidoc_plugin.mdwn
+++ /dev/null
@@ -1,14 +0,0 @@
-I have completely overhauled the Asciidoc plugin for ikiwiki that was created by [[Karl Mowson|http://www.mowson.org/karl/colophon/]].  The source can be downloaded from my [[Dropbox|http://dl.dropbox.com/u/11256359/asciidoc.pm]].
-
-### Features
-
-* Uses a filter hook to escape WikiLinks and Directives using Asciidoc `+++` passthrough macros, to avoid them being processed by Asciidoc. This behavior is configurable in the wiki setup file.
-* Adds a preprocessor directive 'asciidoc' which allows extra Asciidoc command-line options to be passed on a per-page basis. Each parameter name is the option name (the leading `--` will be inserted automatically), and the parameter value is the option value. Currently, only 'conf-file' and 'doctype' are allowed (or even useful).
-* Sets the page title from the first line in the Asciidoc file using a meta directive. This behavior is configurable in the wiki setup file.
-* Searches for an Asciidoc configuration file named the same as the wiki if none is specified in the setup file.
-* Asciidoc configuration files are stored in the wiki. They should be named `._conf` to avoid publishing them.
-
-### Problems
-
-* Escaping Directives is not optimal. It prevents markup from being used in Directives, and the passthrough macros have to include extra spaces to avoid having directives that return an empty string collapse to `++++++`. In addition, I had to borrow the regexps from the Ikiwiki source code; it would be nice if this were available as part of the API.
-* Handling of Asciidoc errors is suboptimal; they are simply inserted into the returned page.  This could be fixed in Perl 5.12 by using the run_forked() in IPC::Cmd.
diff --git a/doc/plugins/contrib/asciidoc.mdwn b/doc/plugins/contrib/asciidoc.mdwn
new file mode 100644
index 0000000..57d6fd9
--- /dev/null
+++ b/doc/plugins/contrib/asciidoc.mdwn
@@ -0,0 +1,14 @@
+I have completely overhauled the Asciidoc plugin for ikiwiki that was created by [[Karl Mowson|http://www.mowson.org/karl/colophon/]].  The source can be downloaded from my [[Dropbox|http://dl.dropbox.com/u/11256359/asciidoc.pm]].
+
+### Features
+
+* Uses a filter hook to escape WikiLinks and Directives using Asciidoc `+++` passthrough macros, to avoid them being processed by Asciidoc. This behavior is configurable in the wiki setup file.
+* Adds a preprocessor directive 'asciidoc' which allows extra Asciidoc command-line options to be passed on a per-page basis. Each parameter name is the option name (the leading `--` will be inserted automatically), and the parameter value is the option value. Currently, only 'conf-file' and 'doctype' are allowed (or even useful).
+* Sets the page title from the first line in the Asciidoc file using a meta directive. This behavior is configurable in the wiki setup file.
+* Searches for an Asciidoc configuration file named the same as the wiki if none is specified in the setup file.
+* Asciidoc configuration files are stored in the wiki. They should be named `._conf` to avoid publishing them.
+
+### Problems
+
+* Escaping Directives is not optimal. It prevents markup from being used in Directives, and the passthrough macros have to include extra spaces to avoid having directives that return an empty string collapse to `++++++`. In addition, I had to borrow the regexps from the Ikiwiki source code; it would be nice if this were available as part of the API.
+* Handling of Asciidoc errors is suboptimal; they are simply inserted into the returned page.  This could be fixed in Perl 5.12 by using the run_forked() in IPC::Cmd.

diff --git a/doc/bugs/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line___42__.mdwn b/doc/bugs/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line___42__.mdwn
index 9a3fded..a7668b9 100644
--- a/doc/bugs/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line___42__.mdwn
+++ b/doc/bugs/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line___42__.mdwn
@@ -20,7 +20,7 @@ When doing `ikiwiki --setup mysite.setup`, I got the following error
     rebuilding wiki..
     
 
-Any idea how to fix it?  I'm on Ubuntu.
+Any idea how to fix it?  I'm on Ubuntu and installed newest Ikiwiki from https://packages.debian.org/experimental/all/ikiwiki/download
 
     $ perl --version
     

diff --git a/doc/bugs/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line___42__.mdwn b/doc/bugs/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line___42__.mdwn
new file mode 100644
index 0000000..9a3fded
--- /dev/null
+++ b/doc/bugs/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line___42__.mdwn
@@ -0,0 +1,28 @@
+When doing `ikiwiki --setup mysite.setup`, I got the following error
+
+
+    $ ikiwiki --version
+    ikiwiki version 3.20150107
+    18:04:37 $ ikiwiki --setup mysite.setup
+    build Ikiwiki instance...
+    Use of uninitialized value in string eq at /usr/share/perl5/IkiWiki.pm line 650.
+    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
+    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
+    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
+    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
+    generating wrappers..
+    Use of uninitialized value in string eq at /usr/share/perl5/IkiWiki.pm line 650.
+    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
+    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
+    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
+    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
+    successfully generated /home/qi/public_html/pages/ikiwiki.cgi
+    rebuilding wiki..
+    
+
+Any idea how to fix it?  I'm on Ubuntu.
+
+    $ 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)

diff --git a/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line.mdwn b/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line.mdwn
new file mode 100644
index 0000000..9a3fded
--- /dev/null
+++ b/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line.mdwn
@@ -0,0 +1,28 @@
+When doing `ikiwiki --setup mysite.setup`, I got the following error
+
+
+    $ ikiwiki --version
+    ikiwiki version 3.20150107
+    18:04:37 $ ikiwiki --setup mysite.setup
+    build Ikiwiki instance...
+    Use of uninitialized value in string eq at /usr/share/perl5/IkiWiki.pm line 650.
+    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
+    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
+    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
+    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
+    generating wrappers..
+    Use of uninitialized value in string eq at /usr/share/perl5/IkiWiki.pm line 650.
+    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
+    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
+    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
+    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
+    successfully generated /home/qi/public_html/pages/ikiwiki.cgi
+    rebuilding wiki..
+    
+
+Any idea how to fix it?  I'm on Ubuntu.
+
+    $ 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)

removed
diff --git a/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line_593.mdwn b/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line_593.mdwn
deleted file mode 100644
index 9a3fded..0000000
--- a/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line_593.mdwn
+++ /dev/null
@@ -1,28 +0,0 @@
-When doing `ikiwiki --setup mysite.setup`, I got the following error
-
-
-    $ ikiwiki --version
-    ikiwiki version 3.20150107
-    18:04:37 $ ikiwiki --setup mysite.setup
-    build Ikiwiki instance...
-    Use of uninitialized value in string eq at /usr/share/perl5/IkiWiki.pm line 650.
-    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
-    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
-    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
-    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
-    generating wrappers..
-    Use of uninitialized value in string eq at /usr/share/perl5/IkiWiki.pm line 650.
-    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
-    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
-    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
-    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
-    successfully generated /home/qi/public_html/pages/ikiwiki.cgi
-    rebuilding wiki..
-    
-
-Any idea how to fix it?  I'm on Ubuntu.
-
-    $ 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)

diff --git a/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line_593.mdwn b/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line_593.mdwn
index 278357c..9a3fded 100644
--- a/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line_593.mdwn
+++ b/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line_593.mdwn
@@ -18,15 +18,7 @@ When doing `ikiwiki --setup mysite.setup`, I got the following error
     Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
     successfully generated /home/qi/public_html/pages/ikiwiki.cgi
     rebuilding wiki..
-    skipping bad filename build/known_hosts~
-    skipping bad filename build/config~
-    skipping bad filename build/ikiwiki/deploy-wolfram-pages.sh~
-    skipping bad filename build/ikiwiki/wolfram-pages-mengmaclap.setup~
-    skipping bad filename build/ikiwiki/wolfram-pages-meng2maclap.setup~
-    skipping bad filename build/ikiwiki/build-mengmaclap.sh~
-    skipping bad filename build/ikiwiki/build-meng2maclap.sh~
-    skipping bad filename build/ikiwiki/crontab-mengmac.txt~
-    skipping bad filename build/ikiwiki/wolfram-homepage.setup~
+    
 
 Any idea how to fix it?  I'm on Ubuntu.
 

diff --git a/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line_593.mdwn b/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line_593.mdwn
index 23143df..278357c 100644
--- a/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line_593.mdwn
+++ b/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line_593.mdwn
@@ -16,7 +16,7 @@ When doing `ikiwiki --setup mysite.setup`, I got the following error
     Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
     Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
     Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
-    successfully generated /home/lumeng/public_html/wolfram-pages/ikiwiki.cgi
+    successfully generated /home/qi/public_html/pages/ikiwiki.cgi
     rebuilding wiki..
     skipping bad filename build/known_hosts~
     skipping bad filename build/config~

diff --git a/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line_593.mdwn b/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line_593.mdwn
index e640483..23143df 100644
--- a/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line_593.mdwn
+++ b/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line_593.mdwn
@@ -3,7 +3,7 @@ When doing `ikiwiki --setup mysite.setup`, I got the following error
 
     $ ikiwiki --version
     ikiwiki version 3.20150107
-    18:04:37 lumeng@mengmaclaplx:~/Dropbox/WorkSpace-Dropbox/repositories/wolfram-pages/build$ ./build-mengmaclaplx.sh
+    18:04:37 $ ikiwiki --setup mysite.setup
     build Ikiwiki instance...
     Use of uninitialized value in string eq at /usr/share/perl5/IkiWiki.pm line 650.
     Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.

diff --git a/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line_593.mdwn b/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line_593.mdwn
index 986bd87..e640483 100644
--- a/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line_593.mdwn
+++ b/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line_593.mdwn
@@ -1,22 +1,36 @@
 When doing `ikiwiki --setup mysite.setup`, I got the following error
 
-```
-build Ikiwiki instance...
-Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 593.
-Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 593.
-Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 593.
-Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 593.
-generating wrappers..
-Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 593.
-Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 593.
-Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 593.
-Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 593.
-successfully generated /home/lumeng/public_html/wolfram-pages/ikiwiki.cgi
-rebuilding wiki..
-skipping bad filename build/known_hosts~
-skipping bad filename build/config~
-```
 
-Any idea how to fix it?
+    $ ikiwiki --version
+    ikiwiki version 3.20150107
+    18:04:37 lumeng@mengmaclaplx:~/Dropbox/WorkSpace-Dropbox/repositories/wolfram-pages/build$ ./build-mengmaclaplx.sh
+    build Ikiwiki instance...
+    Use of uninitialized value in string eq at /usr/share/perl5/IkiWiki.pm line 650.
+    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
+    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
+    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
+    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
+    generating wrappers..
+    Use of uninitialized value in string eq at /usr/share/perl5/IkiWiki.pm line 650.
+    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
+    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 669.
+    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
+    Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 674.
+    successfully generated /home/lumeng/public_html/wolfram-pages/ikiwiki.cgi
+    rebuilding wiki..
+    skipping bad filename build/known_hosts~
+    skipping bad filename build/config~
+    skipping bad filename build/ikiwiki/deploy-wolfram-pages.sh~
+    skipping bad filename build/ikiwiki/wolfram-pages-mengmaclap.setup~
+    skipping bad filename build/ikiwiki/wolfram-pages-meng2maclap.setup~
+    skipping bad filename build/ikiwiki/build-mengmaclap.sh~
+    skipping bad filename build/ikiwiki/build-meng2maclap.sh~
+    skipping bad filename build/ikiwiki/crontab-mengmac.txt~
+    skipping bad filename build/ikiwiki/wolfram-homepage.setup~
 
-Ubuntu, ikiwiki version 3.20130904.1ubuntu1.
+Any idea how to fix it?  I'm on Ubuntu.
+
+    $ 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)

diff --git a/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line_593.mdwn b/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line_593.mdwn
new file mode 100644
index 0000000..986bd87
--- /dev/null
+++ b/doc/forum/Uninitialized_value_in_string_ne_at___47__usr__47__share__47__perl5__47__Ikwiki.pm_line_593.mdwn
@@ -0,0 +1,22 @@
+When doing `ikiwiki --setup mysite.setup`, I got the following error
+
+```
+build Ikiwiki instance...
+Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 593.
+Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 593.
+Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 593.
+Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 593.
+generating wrappers..
+Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 593.
+Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 593.
+Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 593.
+Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 593.
+successfully generated /home/lumeng/public_html/wolfram-pages/ikiwiki.cgi
+rebuilding wiki..
+skipping bad filename build/known_hosts~
+skipping bad filename build/config~
+```
+
+Any idea how to fix it?
+
+Ubuntu, ikiwiki version 3.20130904.1ubuntu1.

request
diff --git a/doc/bugs/Commonmark_support.mdwn b/doc/bugs/Commonmark_support.mdwn
new file mode 100644
index 0000000..5ee014b
--- /dev/null
+++ b/doc/bugs/Commonmark_support.mdwn
@@ -0,0 +1,3 @@
+I suffer from the occasional markdown glitches using branchable.
+
+I've found that switching my own non-ikiwiki projects to https://github.com/jgm/CommonMark has helped sort them out for the most part.

diff --git a/doc/index.mdwn b/doc/index.mdwn
index f4073aa..e0e4016 100644
--- a/doc/index.mdwn
+++ b/doc/index.mdwn
@@ -1,3 +1,5 @@
+[[!template id=links]]
+
 Ikiwiki is a **wiki compiler**. It converts wiki pages into HTML pages
 suitable for publishing on a website. Ikiwiki stores pages and history in a
 [[revision_control_system|rcs]] such as [[Subversion|rcs/svn]] or [[rcs/Git]].
@@ -8,7 +10,7 @@ array of [[plugins]].
 Alternatively, think of ikiwiki as a particularly flexible static
 site generator with some dynamic features.
 
-[[!template id=links]]
+
 
 ## using ikiwiki
 
@@ -31,3 +33,5 @@ can be submitted and tracked using this wiki.
 
 Ikiwiki is developed by [[Joey]] and many contributors,
 and is [[FreeSoftware]].
+
+

diff --git a/doc/todo/CGI-only_mode.mdwn b/doc/todo/CGI-only_mode.mdwn
new file mode 100644
index 0000000..ce87e6f
--- /dev/null
+++ b/doc/todo/CGI-only_mode.mdwn
@@ -0,0 +1,18 @@
+[[!tag wishlist]]I would quite like to be able to run ikiwiki in a "CGI-only" mode, where
+every wikilink was routed via the cgi, and such "normal" page visits were rendered on the
+fly by the CGI, a bit like edit-preview mode.
+
+The reason I'd like this is I would like to have a number of parallel ikiwiki instances
+running alongside my prime one, based on the same source repository; but with different
+setup parameters (such as possibly different overlay or template directories, etc.).
+
+I would still need to have multiple copies of the source repository (= separate `.ikiwiki`
+directories, seperate locks); but I could use `git-relink` or shallow clones or various
+other methods to limit the disk-space impact of that; what I want to avoid is multiple
+*destination* directories, especially for what might be relatively throw-away experiments.
+
+I imagine if this was possible, it would be hella-slow, but it would still be useful I
+think (and might even help to highlight some of the pain points for future optimisation
+efforts).
+
+ — [[Jon]]

Added a comment: Working configuration for nginx
diff --git a/doc/forum/nginx:_404_plugin_not_working/comment_6_2eb7884cc1d83d1ccb59ee3ef2d5ef77._comment b/doc/forum/nginx:_404_plugin_not_working/comment_6_2eb7884cc1d83d1ccb59ee3ef2d5ef77._comment
new file mode 100644
index 0000000..63ecb0a
--- /dev/null
+++ b/doc/forum/nginx:_404_plugin_not_working/comment_6_2eb7884cc1d83d1ccb59ee3ef2d5ef77._comment
@@ -0,0 +1,28 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawlTS8BlL-OtDvQwLk1ohkRAmfCb_U5yOvQ"
+ nickname="Roland"
+ subject="Working configuration for nginx"
+ date="2015-03-03T11:23:51Z"
+ content="""
+This works fine for me with nginx:
+
+    location /wiki {
+        error_page 404 @ikiwiki404;
+    }
+
+    # Another definition for ikiwiki.cgi, only reachable by error_page 404.
+    location @ikiwiki404 {
+        fastcgi_pass  unix:/var/run/fcgiwrap.socket;
+        fastcgi_index ikiwiki.cgi;
+        fastcgi_param SCRIPT_FILENAME   /srv/www/htdocs/wiki/ikiwiki.cgi;
+        fastcgi_param DOCUMENT_ROOT      /srv/www/htdocs/wiki;
+
+        # For 404 plugin
+        fastcgi_param QUERY_STRING \"\";
+        fastcgi_param REQUEST_METHOD \"get\";
+        fastcgi_param REDIRECT_STATUS 404;
+        fastcgi_param REDIRECT_URL $uri;
+
+        include /etc/nginx/fastcgi_params;
+    }
+"""]]

Added information about how to use httpauth with ngnx
diff --git a/doc/plugins/httpauth.mdwn b/doc/plugins/httpauth.mdwn
index 2fae077..58a0859 100644
--- a/doc/plugins/httpauth.mdwn
+++ b/doc/plugins/httpauth.mdwn
@@ -35,3 +35,12 @@ configure `httpauth_pagespec` in the setup file. This makes Edit
 links on pages that match the [[ikiwiki/PageSpec]] automatically use
 the `cgiauthurl`, and prevents matching pages from being edited by
 users authentication via other methods.
+
+## Using httpauth with nginx
+
+You have to pass the $remote_user variable to the CGI:
+
+    location /ikiwiki.cgi {
+        fastcgi_param REMOTE_USER $remote_user;
+        ....
+    }

request
diff --git a/doc/todo/maximum_page_length.mdwn b/doc/todo/maximum_page_length.mdwn
new file mode 100644
index 0000000..a158126
--- /dev/null
+++ b/doc/todo/maximum_page_length.mdwn
@@ -0,0 +1,14 @@
+It would be useful if ikiwiki could reject adding file with names
+longer than some limit, like 255 bytes. I've had some git-annex users
+complain that some files ended up longer than that, which won't work on
+some OS's and filesystems.
+
+255 might be a good default value, even.
+
+This would apply to pages created following broken wikilinks and using
+blogpost forms, as well as to uploaded attachments, and perhaps aggregated
+pages. In the wikilink case, I guess ikiwiki would need to reject it as
+too long; in the other cases it could simply pick a shorter version of
+the proposed filename.
+
+--[[Joey]] 

Update my user page
diff --git a/doc/users/fr33domlover.mdwn b/doc/users/fr33domlover.mdwn
index 562802b..20ccbe0 100644
--- a/doc/users/fr33domlover.mdwn
+++ b/doc/users/fr33domlover.mdwn
@@ -1,10 +1 @@
-There isn't much to say, I'm just a person of the common kind,
-trying to make this world a bit better for the next generations.
-
-I run a website, you're welcome to visit.
-
-* Clearnet: <http://www.partager.null> (requires [OpenNIC])
-* I2P: <http://partager.i2p>
-* Tor: <http://75dae7c76okcrloz.onion>
-
-[OpenNIC]: https://www.opennicproject.org/
+<http://rel4tion.org/people/fr33domlover/>

Standardize on --long-option instead of -long-option
[[forum/refresh_and_setup]] indicates some confusion between --setup
and -setup. Both work, but it's clearer if we stick to one in
documentation and code.
A 2012 commit to [[plugins/theme]] claims that "-setup" is required
and "--setup" won't work, but I cannot find any evidence in ikiwiki's
source code that this has ever been the case.
diff --git a/IkiWiki/Plugin/websetup.pm b/IkiWiki/Plugin/websetup.pm
index f95017c..d3cbff0 100644
--- a/IkiWiki/Plugin/websetup.pm
+++ b/IkiWiki/Plugin/websetup.pm
@@ -460,12 +460,12 @@ sub showform ($$) {
 
 			my @command;
 			if ($form->submitted eq 'Rebuild Wiki') {
-				@command=("ikiwiki", "-setup", $config{setupfile},
-                                        "-rebuild", "-v");
+				@command=("ikiwiki", "--setup", $config{setupfile},
+                                        "--rebuild", "-v");
 			}
 			else {
-				@command=("ikiwiki", "-setup", $config{setupfile},
-					"-refresh", "-wrappers", "-v");
+				@command=("ikiwiki", "--setup", $config{setupfile},
+					"--refresh", "--wrappers", "-v");
 			}
 
 			close STDERR;
diff --git a/IkiWiki/Setup/Automator.pm b/IkiWiki/Setup/Automator.pm
index 6714387..a8b04d9 100644
--- a/IkiWiki/Setup/Automator.pm
+++ b/IkiWiki/Setup/Automator.pm
@@ -206,7 +206,7 @@ sub import (@) {
 			prettydir($config{$key})."\n";
 	}
 	print "To modify settings, edit ".prettydir($config{dumpsetup})." and then run:\n";
-	print "	ikiwiki -setup ".prettydir($config{dumpsetup})."\n";
+	print "	ikiwiki --setup ".prettydir($config{dumpsetup})."\n";
 	exit 0;
 }
 
diff --git a/Makefile.PL b/Makefile.PL
index 5b0eb74..bee9dfa 100755
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -44,7 +44,7 @@ PROBABLE_INST_LIB=$(shell \\
 	chmod +x $@
 
 ikiwiki.setup:
-	HOME=/home/me $(PERL) -Iblib/lib $(extramodules) $(tflag) ikiwiki.in -dumpsetup ikiwiki.setup
+	HOME=/home/me $(PERL) -Iblib/lib $(extramodules) $(tflag) ikiwiki.in --dumpsetup ikiwiki.setup
 
 extra_build: perl_shebangs $(outprogs) ikiwiki.setup docwiki sysconfdir
 	./mdwn2man ikiwiki 1 doc/usage.mdwn > ikiwiki.man
@@ -59,7 +59,7 @@ extra_build: perl_shebangs $(outprogs) ikiwiki.setup docwiki sysconfdir
 	rm -f ikiwiki.spec.bkp
 	
 docwiki:
-	$(PERL) -Iblib/lib $(extramodules) $(tflag) ikiwiki.in -setup docwiki.setup -refresh
+	$(PERL) -Iblib/lib $(extramodules) $(tflag) ikiwiki.in --setup docwiki.setup --refresh
 
 perl_shebangs:
 ifneq "$(PERL)" "/usr/bin/perl"
@@ -83,7 +83,7 @@ sysconfdir:
 	$(PERL) -pi -e "s|\"/etc/ikiwiki|\"$(SYSCONFDIR)|g" $(sysconfdir_scripts)
 	
 extra_clean: perl_shebangs_clean
-	$(PERL) -Iblib/lib $(extramodules) $(tflag) ikiwiki.in -setup docwiki.setup -clean
+	$(PERL) -Iblib/lib $(extramodules) $(tflag) ikiwiki.in --setup docwiki.setup --clean
 	rm -f *.man $(outprogs) ikiwiki.setup plugins/*.pyc
 	$(MAKE) -C po clean
 
diff --git a/auto-blog.setup b/auto-blog.setup
index 5617daf..8bc0021 100644
--- a/auto-blog.setup
+++ b/auto-blog.setup
@@ -5,7 +5,7 @@
 # check it into revision control, generate a setup file for the new
 # wiki, and set everything up.
 #
-# Just run: ikiwiki -setup /etc/ikiwiki/auto-blog.setup
+# Just run: ikiwiki --setup /etc/ikiwiki/auto-blog.setup
 #
 # By default, it asks a few questions, and confines itself to the user's home
 # directory. You can edit it to change what it asks questions about, or to
diff --git a/auto.setup b/auto.setup
index afb54b3..843b419 100644
--- a/auto.setup
+++ b/auto.setup
@@ -4,7 +4,7 @@
 # This setup file causes ikiwiki to create a wiki, check it into revision
 # control, generate a setup file for the new wiki, and set everything up.
 #
-# Just run: ikiwiki -setup /etc/ikiwiki/auto.setup
+# Just run: ikiwiki --setup /etc/ikiwiki/auto.setup
 #
 # By default, it asks a few questions, and confines itself to the user's home
 # directory. You can edit it to change what it asks questions about, or to
diff --git a/debian/NEWS b/debian/NEWS
index b10a0f6..d09b4d9 100644
--- a/debian/NEWS
+++ b/debian/NEWS
@@ -111,7 +111,7 @@ ikiwiki (3.13) unstable; urgency=low
 
   The `ikiwiki-transition deduplinks` command introduced in the
   last release was buggy. If you followed the NEWS file instructions
-  and ran it, you should run `ikiwiki -setup` to rebuild your wiki
+  and ran it, you should run `ikiwiki --setup` to rebuild your wiki
   to fix the problem.
 
  -- Joey Hess <joeyh@debian.org>  Fri, 22 May 2009 13:04:02 -0400
@@ -209,7 +209,7 @@ ikiwiki (2.49) unstable; urgency=low
   Also, wikis that use the search plugin will need to be rebuilt,
   since the search form has changed. This will not be done automatically,
   but can be done by running `ikiwiki-mass-upgrade` as root, or
-  running `ikiwiki -setup` on individual setup files.
+  running `ikiwiki --setup` on individual setup files.
 
  -- Joey Hess <joeyh@debian.org>  Wed, 04 Jun 2008 00:29:28 -0400
 
diff --git a/debian/postinst b/debian/postinst
index 76ad115..0a876ae 100755
--- a/debian/postinst
+++ b/debian/postinst
@@ -10,5 +10,5 @@ if [ "$1" = configure ] && \
    dpkg --compare-versions "$2" lt "$firstcompat"; then
 	ikiwiki-mass-rebuild
 else
-	ikiwiki-mass-rebuild -refresh -wrappers
+	ikiwiki-mass-rebuild --refresh --wrappers
 fi
diff --git a/doc/examples/blog.mdwn b/doc/examples/blog.mdwn
index 5f8f6c3..afef42c 100644
--- a/doc/examples/blog.mdwn
+++ b/doc/examples/blog.mdwn
@@ -3,7 +3,7 @@ your wiki to quickly get started blogging with ikiwiki.
 
 Or, run this command to set up a blog with ikiwiki.
 
-	% ikiwiki -setup /etc/ikiwiki/auto-blog.setup
+	% ikiwiki --setup /etc/ikiwiki/auto-blog.setup
 
 Some additional configuration you might want to do, if not using
 `auto-blog.setup`:
diff --git a/doc/ikiwiki-calendar.mdwn b/doc/ikiwiki-calendar.mdwn
index fd32446..43db484 100644
--- a/doc/ikiwiki-calendar.mdwn
+++ b/doc/ikiwiki-calendar.mdwn
@@ -50,7 +50,7 @@ the pages, `calendarmonth.tmpl` and `calendaryear.tmpl`.
 
 Most of the goals of this command can be replaced by setting up
 `calendar_autocreate` setup option (of plugin [[plugins/calendar]]), and
-running `ikiwiki -setup you.setup`. The only thing that `ikiwiki-calendar` can
+running `ikiwiki --setup you.setup`. The only thing that `ikiwiki-calendar` can
 do and that `ikiwiki` cannot is forcing page generation (using `-f` switch).
 
 # AUTHOR
diff --git a/doc/plugins/amazon_s3.mdwn b/doc/plugins/amazon_s3.mdwn
index 7fe60cb..52c05f9 100644
--- a/doc/plugins/amazon_s3.mdwn
+++ b/doc/plugins/amazon_s3.mdwn
@@ -48,11 +48,11 @@ The `hardlink` config file setting is not compatible with this plugin.
 
 ## data transfer notes
 
-If you run 'ikiwiki -setup my.setup' to force a rebuild of your wiki, the
+If you run 'ikiwiki --setup my.setup' to force a rebuild of your wiki, the
 entire thing will be re-uploaded to Amazon S3. This will take time, and
 cost you money, so it should be avoided as much as possible.
 
-If you run 'ikiwiki -setup my.setup -refresh', ikiwiki will only upload the
+If you run 'ikiwiki --setup my.setup --refresh', ikiwiki will only upload the
 modified pages that it refreshes. Faster and cheaper. Still, if you have
 very large pages (for example, a page that inlines hundreds of other pages
 .. or is just very large), the complete page contents will be re-uploaded
@@ -64,5 +64,5 @@ it will be re-uploaded, rather than copied.
 
 ## deleting a bucket
 
-You can use "ikiwiki -setup my.setup --delete-bucket" to delete anything
+You can use "ikiwiki --setup my.setup --delete-bucket" to delete anything
 that's in the configured bucket, and remove the bucket.
diff --git a/doc/plugins/theme.mdwn b/doc/plugins/theme.mdwn
index 5261df1..bcc36aa 100644
--- a/doc/plugins/theme.mdwn
+++ b/doc/plugins/theme.mdwn
@@ -8,7 +8,8 @@ inside `/usr/share/ikiwiki/themes/`. See [[themes]] for an overview
 of the themes included in ikiwiki and the [[theme market]] for third party themes.
 
 You can set the theme via the **theme** option in your config file (after
-enabling the plugin). Refresh the wiki (with `ikiwiki -setup <file>`, `--setup` won't work, they are not interchangable) after changing it to see the changes.
+enabling the plugin). Refresh the wiki (with `ikiwiki --setup <file>`)
+after changing it to see the changes.
 
 Hints for theme builders
 ------------------------
diff --git a/doc/rcs/git.mdwn b/doc/rcs/git.mdwn
index c82adbd..fa7a037 100644
--- a/doc/rcs/git.mdwn
+++ b/doc/rcs/git.mdwn
@@ -108,13 +108,13 @@ is the normal behaviour of ikiwiki, set the configuration of the local wiki:
       git_wrapper => "/working/dir/.git/hooks/post-commit",
 
 Then just committing should refresh the private ikiwiki on the local
-host.  Now just run `ikiwiki -setup localwiki.setup -gettime` and
-you should be good to go. (You only need the slow `-gettime` option
+host.  Now just run `ikiwiki --setup localwiki.setup --gettime` and

(Diff truncated)
clarify that --setup changes the default verb
diff --git a/doc/usage.mdwn b/doc/usage.mdwn
index 13a901c..4bfe231 100644
--- a/doc/usage.mdwn
+++ b/doc/usage.mdwn
@@ -6,7 +6,7 @@ ikiwiki - a wiki compiler
 
 ikiwiki [options] source destination
 
-ikiwiki --setup setupfile
+ikiwiki --setup setupfile [options]
 
 # DESCRIPTION
 
@@ -14,8 +14,9 @@ ikiwiki --setup setupfile
 `source` in the [[ikiwiki/Markdown]] language (or others), and writes it out to
 `destination`.
 
-Note that most options can be shortened to single letters, and boolean
-flags such as --verbose can be negated with --no-verbose.
+Note that most options can be shortened to single letters, boolean
+flags such as --verbose can be negated with --no-verbose, and
+options such as --verbose can also be spelled like -verbose.
 
 # MODE OPTIONS
 
@@ -23,7 +24,9 @@ These options control the mode that ikiwiki operates in.
 
 * --refresh
 
-  Refresh the wiki, updating any changed pages.
+  Refresh the wiki, updating any changed pages. This is the default
+  behavior if no other mode action is specified (but note that --setup is
+  a mode action, and has different default behavior).
 
 * --rebuild
 
@@ -31,8 +34,8 @@ These options control the mode that ikiwiki operates in.
 
 * --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.
+  Load options from the given setup file. If no other mode action is specified,
+  generate wrappers and rebuild the wiki, as if --rebuild --wrappers were used.
   If you only want to build any changed pages, you can use --refresh with
   --setup.
 
@@ -360,10 +363,20 @@ also be configured using a setup file.
 
 * ikiwiki --setup my.setup --refresh --wrappers
 
-  Refresh the wiki, including regnerating all wrapper programs,
+  Refresh the wiki, including regenerating all wrapper programs,
   but do not rebuild all pages. Useful if you have changed something
   in the setup file that does not need a full wiki rebuild to update
-  all pages, but that you want to immediatly take effect.
+  all pages, but that you want to immediately take effect.
+
+* ikiwiki --rebuild srcdir destdir
+
+  Use srcdir as source and build HTML in destdir, without using a
+  setup file.
+
+* ikiwiki srcdir destdir
+
+  Use srcdir as source to update changed pages' HTML in destdir,
+  without using a setup file.
 
 # ENVIRONMENT
 

Added a comment
diff --git a/doc/forum/refresh_and_setup/comment_2_e2476f834f9bc8fe753783e209321d4e._comment b/doc/forum/refresh_and_setup/comment_2_e2476f834f9bc8fe753783e209321d4e._comment
new file mode 100644
index 0000000..792b151
--- /dev/null
+++ b/doc/forum/refresh_and_setup/comment_2_e2476f834f9bc8fe753783e209321d4e._comment
@@ -0,0 +1,56 @@
+[[!comment format=mdwn
+ username="smcv"
+ subject="comment 2"
+ date="2015-03-01T15:13:08Z"
+ content="""
+>     ikiwiki --setup $setupfile
+> 
+> Didn't work as expected, rebuilt the whole wiki.
+
+The default action is to rebuild if `--setup` is used, or refresh otherwise.
+
+>     ikiwiki -setup -refresh $setupfile
+> 
+> Output was:
+> 
+>     cannot read -refresh: No such file or directory
+
+Well, no, you told ikiwiki to use a setup file named `-refresh`. That's not
+going to work, unless you happen to have such a file. The man page does say
+
+>        --setup setupfile
+
+implying that an argument is expected and required. Either of these would be OK,
+for instance:
+
+    ikiwiki -refresh -setup setupfile
+    ikiwiki --setup setupfile --refresh
+
+> 2.a) It is the only place where *-setup* is used. the error output and the manpage use *--setup*  
+
+Perl's command-line parser accepts either.
+
+> 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.
+
+That's because the one used for the auto-installation (which is not mandatory: you can
+write the entire setup file yourself if you prefer, like ikiwiki-hosting does) is a
+special case of the one used for a configured wiki./
+
+> And maybe it would be possible to update a wiki if the program is called with only a config file as parameter.
+
+ikiwiki needs either:
+
+* two non-option arguments, a srcdir *and* a destdir (and probably lots of other options
+  in practice); or
+
+* a setup file (which can specify most things supported by the command line) and
+  no non-option arguments
+
+Both ways are meant to work; the srcdir/destdir syntax is for very simple 
+cases (e.g. building static documentation) and the setup file is for
+more complicated cases (entire websites).
+
+Treating two non-option arguments as srcdir/destdir, but a single
+non-option argument as a setup file, seems more confusing to me
+than the current situation.
+"""]]

close bug
diff --git a/doc/bugs/without_timezone__44___excessive_statting_causes_slowness.mdwn b/doc/bugs/without_timezone__44___excessive_statting_causes_slowness.mdwn
index 3b70e13..6be12f2 100644
--- a/doc/bugs/without_timezone__44___excessive_statting_causes_slowness.mdwn
+++ b/doc/bugs/without_timezone__44___excessive_statting_causes_slowness.mdwn
@@ -7,3 +7,5 @@ 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`
+
+> should be [[done]] in the next version >= 3.20150301 --[[smcv]]

diff --git a/doc/bugs/Spam:_recent_changes_discussion.mdwn b/doc/bugs/Spam:_recent_changes_discussion.mdwn
index f036374..a59a3df 100644
--- a/doc/bugs/Spam:_recent_changes_discussion.mdwn
+++ b/doc/bugs/Spam:_recent_changes_discussion.mdwn
@@ -40,3 +40,6 @@ The content is changing frequently without being checked into the git repository
 > system log.
 >
 > --[[smcv]]
+
+>> Whoever runs this wiki seems to have fixed it and enabled authentication now,
+>> so I'm going to consider this [[done]]. --[[smcv]]

more info needed; suggestions
diff --git a/doc/bugs/wrong_rendering_of_templatebody.mdwn b/doc/bugs/wrong_rendering_of_templatebody.mdwn
index 91c86d2..c4c04be 100644
--- a/doc/bugs/wrong_rendering_of_templatebody.mdwn
+++ b/doc/bugs/wrong_rendering_of_templatebody.mdwn
@@ -3,6 +3,16 @@ 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.
 
+> Not directly relevant to this bug, but if you want the latest ikiwiki release
+> for a Debian derivative, you can fetch it from Debian unstable (normally)
+> or Debian experimental (during the Debian release freeze, e.g. now) -
+> the correct way is to get the (signed) source package with `dget`
+> or similar, check the GPG signature (which should be from me or Joey), and
+> rebuild it for your distribution. Just getting the binary `.deb` from Debian
+> is a little more risky, depending how far your distribution has diverged from
+> Debian, but in the case of ikiwiki it should usually work fine in practice.
+> --[[smcv]]
+
 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
@@ -11,6 +21,20 @@ 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.
 
+> Where did you install the newer ikiwiki? `/usr/local`? Somewhere else?
+>
+> It sounds to me as though manual re-generation is using ikiwiki ≥ 3.20140916
+> with the `templatebody` directive enabled, but the git hook is using
+> ikiwiki < 3.20140916 and/or has the `templatebody` disabled. This might
+> result from having a different `PERL5LIB` environment variable in
+> the two situations, for instance.
+>
+> It might help to debug this if you edit your older and newer ikiwiki's
+> `IkiWiki.pm`, `IkiWiki/Render.pm` and/or `IkiWiki/Plugin/templatebody.pm`
+> so they do `print STDERR "loaded (old/new) (whatever).pm"` at some fairly
+> early stage - I would suggest `getsetup()`, `refresh()` and `import()`
+> respectively. --[[smcv]]
+
 [[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.

Added a comment: looks like Debian#776181
diff --git a/doc/forum/Cannot_run_ikiwiki_due_to_Encode.pm/comment_2_9bda4fba2a28c0a10e3564d2c4fada15._comment b/doc/forum/Cannot_run_ikiwiki_due_to_Encode.pm/comment_2_9bda4fba2a28c0a10e3564d2c4fada15._comment
new file mode 100644
index 0000000..e0d2d4c
--- /dev/null
+++ b/doc/forum/Cannot_run_ikiwiki_due_to_Encode.pm/comment_2_9bda4fba2a28c0a10e3564d2c4fada15._comment
@@ -0,0 +1,16 @@
+[[!comment format=mdwn
+ username="smcv"
+ subject="looks like Debian#776181"
+ date="2015-03-01T12:55:20Z"
+ content="""
+This looks like [Debian bug #776181](https://bugs.debian.org/776181), although I'm
+surprised you're seeing it on such an old version of Encode. What version of IkiWiki
+is this?
+
+Please try reverting the change you made to Encode.pm, and making the change to IkiWiki
+shown on that bug report instead. (If you don't know how to read diffs, the short version
+is: delete the lines prefixed with \"-\", add the lines prefixed with \"+\".)
+
+I've made the same change in ikiwiki git master, so this should be fixed in the
+next release (>= 3.20150301).
+"""]]

fix fenced code block syntax for comprehensibility
ikiwiki.info does not support ``` as a fence for code blocks, only ~~~,
and it only works at the beginning of a new paragraph.
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
index 752141c..7d8a1a7 100644
--- 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
@@ -5,11 +5,12 @@
  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 .= '';
-```
+~~~
 """]]

Added a comment
diff --git a/doc/forum/Git_push_failure/comment_1_066ee9abbb752579983871228d804d51._comment b/doc/forum/Git_push_failure/comment_1_066ee9abbb752579983871228d804d51._comment
new file mode 100644
index 0000000..917450d
--- /dev/null
+++ b/doc/forum/Git_push_failure/comment_1_066ee9abbb752579983871228d804d51._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="cbaines"
+ subject="comment 1"
+ date="2015-03-01T10:45:47Z"
+ content="""
+From looking at line 491 of CGI.pm, the returned content should include some information about the error that occurred, is this the case?
+
+Otherwise, what happens when you try to build the wiki manually?
+"""]]

Fix usage to not incorrectly state that the refresh option is on by default
As far as I can tell, it was off by default since when it was introduced in
ffc0be87d7eca4de4dbc91d740d36b7b40bfa911, and unless I have read the history
wrong, has never been enabled by default.
diff --git a/doc/usage.mdwn b/doc/usage.mdwn
index 427a51f..13a901c 100644
--- a/doc/usage.mdwn
+++ b/doc/usage.mdwn
@@ -23,8 +23,7 @@ These options control the mode that ikiwiki operates in.
 
 * --refresh
 
-  Refresh the wiki, updating any changed pages. This is the default
-  behavior so you don't normally need to specify it.
+  Refresh the wiki, updating any changed pages.
 
 * --rebuild
 

Added a comment: refresh option
diff --git a/doc/forum/refresh_and_setup/comment_1_ed2981398ef19aeee17618b42ba51dc0._comment b/doc/forum/refresh_and_setup/comment_1_ed2981398ef19aeee17618b42ba51dc0._comment
new file mode 100644
index 0000000..0a85bce
--- /dev/null
+++ b/doc/forum/refresh_and_setup/comment_1_ed2981398ef19aeee17618b42ba51dc0._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="cbaines"
+ subject="refresh option"
+ date="2015-02-28T19:15:18Z"
+ content="""
+I can't quite work out why the usage/man page is incorrect. It looks like it has been incorrect since it was added in this commit [ffc0be87d7eca4de4dbc91d740d36b7b40bfa911](http://source.ikiwiki.branchable.com/?p=source.git;a=commit;h=ffc0be87d7eca4de4dbc91d740d36b7b40bfa911).
+"""]]

Add comment to the osm plugin icon patch page
diff --git a/doc/todo/osm_plugin_icon_patch.mdwn b/doc/todo/osm_plugin_icon_patch.mdwn
index f7d7a2a..58df0ee 100644
--- a/doc/todo/osm_plugin_icon_patch.mdwn
+++ b/doc/todo/osm_plugin_icon_patch.mdwn
@@ -31,3 +31,14 @@ Currently, the documented icon parameter to the waypoint directive is not used.
 > I suspect this should have been inserting something into the GeoJSON instead?
 >
 > --[[smcv]]
+
+>> I have now fixed the indentation issues.
+>>
+>> I have changed the comment relating to the icon parameter, but I don't
+>> really understand how ikiwiki handles sanitisation, so I have not changed
+>> anything else for this.
+>>
+>> As for the Perl variable interpolation, see this
+>> [documentation](http://docs.openlayers.org/library/feature_styling.html#attribute-replacement-syntax).
+>>
+>> -- [[cbaines]]

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.
+"""]]