Recent changes to this wiki:

Added a comment: Change the `page.tmpl` template
diff --git a/doc/forum/How_to_configure_the_position_of_the_automatically_created_links__63__/comment_1_173687ee3dfdd9d949c1fa6d9b3cce4c._comment b/doc/forum/How_to_configure_the_position_of_the_automatically_created_links__63__/comment_1_173687ee3dfdd9d949c1fa6d9b3cce4c._comment
new file mode 100644
index 0000000..c8c7b65
--- /dev/null
+++ b/doc/forum/How_to_configure_the_position_of_the_automatically_created_links__63__/comment_1_173687ee3dfdd9d949c1fa6d9b3cce4c._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="spalax"
+ subject="Change the `page.tmpl` template"
+ date="2015-08-28T15:23:54Z"
+ content="""
+You can change the [page.tmpl](http://source.ikiwiki.branchable.com/?p=source.git;a=blob;f=templates/page.tmpl) template (look for `BACKLINKS` in it). To overwrite the default `page.tmpl`, copy it in, say, a `templates` folder in your repository, and change the setup file to use this folder as a template folder.
+
+-- [[Louis|spalax]]
+"""]]

diff --git a/doc/forum/How_to_configure_the_position_of_the_automatically_created_links__63__.mdwn b/doc/forum/How_to_configure_the_position_of_the_automatically_created_links__63__.mdwn
new file mode 100644
index 0000000..95572be
--- /dev/null
+++ b/doc/forum/How_to_configure_the_position_of_the_automatically_created_links__63__.mdwn
@@ -0,0 +1,5 @@
+Ikiwiki creates on every page automatically a specific link list at the bottom of the page. 
+
+How can I move this list to the top or to the left? How can I have it both on the top and on the bottom of the page?
+
+Since I want to change it globally I tried to find an option in local.css but didn't find anything related.

bug
diff --git a/doc/bugs/po_plugin_config_crasher.mdwn b/doc/bugs/po_plugin_config_crasher.mdwn
new file mode 100644
index 0000000..a0014a3
--- /dev/null
+++ b/doc/bugs/po_plugin_config_crasher.mdwn
@@ -0,0 +1,11 @@
+Saw a site using the po plugin crash with:
+
+	syntax error in pagespec "\"page(./tips/*)"
+
+I suspect the relevant configuration is this:
+
+	po_translatable_pages: /index or /hugo or /hugo/keys or /about or /archive or /tips
+	  or /talks or /imprint or /copyright or /blog or /posts  or /law or /quotes or /quotes/*
+
+Config problems in ikiwiki.setup should really not cause the whole site
+build to crash; this can make it hard to recover. --[[Joey]]

diff --git a/doc/users/kjs.mdwn b/doc/users/kjs.mdwn
index 325d748..0519cf9 100644
--- a/doc/users/kjs.mdwn
+++ b/doc/users/kjs.mdwn
@@ -36,8 +36,7 @@ link to the album. Useful for visual index of albums.
 * Extract GPS data and populate a [[plugins/osm]] waypoint if available.
 * Add span around osm icon to allow for styling.
 
-For my public websites above the image metadata is "manually" ie shell script
-populated but I'll eventually start using automatic metadata for new images.
+For my public websites above have been using the tweaked img plugin for many months now. It works well except when deleting images, this seems to require a removal of the indexdb and a rebuild... not very convenient.
 
 A simple test wiki with downloadable setup and data can be found at:
 <http://src.kalleswork.net/masterbranch/>

Added a comment
diff --git a/doc/forum/Inline__44___sort_and_show_-_is_it_possible_to_achieve_equivalent_to_tail_command/comment_2_3e5d32aab68e21b3c4b6145e61b0b744._comment b/doc/forum/Inline__44___sort_and_show_-_is_it_possible_to_achieve_equivalent_to_tail_command/comment_2_3e5d32aab68e21b3c4b6145e61b0b744._comment
new file mode 100644
index 0000000..42331b1
--- /dev/null
+++ b/doc/forum/Inline__44___sort_and_show_-_is_it_possible_to_achieve_equivalent_to_tail_command/comment_2_3e5d32aab68e21b3c4b6145e61b0b744._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ username="kjs"
+ subject="comment 2"
+ date="2015-08-16T20:09:33Z"
+ content="""
+I could do a patch if I could program... The img plugin stuff is more a working accident of mine ;)
+
+For now I've reverted to showing all albums in reverse chronological order. Atleast then people aren't confused by different ordering of the homepage inline and the actual album.
+
+I'll see if I can have a look at the show last patch as you suggest, but that won't happen shortly.
+
+Regards
+
+"""]]

Added a comment
diff --git a/doc/forum/Inline__44___sort_and_show_-_is_it_possible_to_achieve_equivalent_to_tail_command/comment_1_e62f3ae89da8c66e94d37bd148fbebbd._comment b/doc/forum/Inline__44___sort_and_show_-_is_it_possible_to_achieve_equivalent_to_tail_command/comment_1_e62f3ae89da8c66e94d37bd148fbebbd._comment
new file mode 100644
index 0000000..d9fdabc
--- /dev/null
+++ b/doc/forum/Inline__44___sort_and_show_-_is_it_possible_to_achieve_equivalent_to_tail_command/comment_1_e62f3ae89da8c66e94d37bd148fbebbd._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ username="smcv"
+ subject="comment 1"
+ date="2015-08-15T12:33:11Z"
+ content="""
+I don't think this is currently possible: `show` takes the first *n*
+pages after sorting.
+
+Care to contribute a patch adding `show=\"last 10\"`? Then you could do
+
+    \[[inline pages=\"...\" sort=\"-age\" show=\"last 10\"]]
+
+and I think that would have the result you want.
+"""]]

diff --git a/doc/forum/Inline__44___sort_and_show_-_is_it_possible_to_achieve_equivalent_to_tail_command.mdwn b/doc/forum/Inline__44___sort_and_show_-_is_it_possible_to_achieve_equivalent_to_tail_command.mdwn
new file mode 100644
index 0000000..9418f67
--- /dev/null
+++ b/doc/forum/Inline__44___sort_and_show_-_is_it_possible_to_achieve_equivalent_to_tail_command.mdwn
@@ -0,0 +1,10 @@
+As per above. I'm using a inline to show most recent pages using meta(date). I want to limit the number of items to 20 but here is the catch I want to maintain chronological order. Kind of like using `sort -n | tail`.
+
+Showing the `n` oldest pages in chronological order starting with the first is easy just combine sort and show. Same thing goes for showing the `n` most recent pages in reverse chronological order.
+
+Can't figure out if what I want to do is doable.
+
+A bit of background:
+I'm using my [[tweaked img plugin|kjs]] to populate meta data from images. The meta date is set according to the image exif data. On the homepage I show thumbnails of the 20 most recent images. This is a site of family photos (why I can't share the link here) and such and it's a bit confusing to show all sequences in reverse. I.e first image shows all the presents opened then they repackage themselves and end up with ribbons.
+
+-[[kjs]]

diff --git a/doc/sandbox.mdwn b/doc/sandbox.mdwn
index 795d103..0eb26a3 100644
--- a/doc/sandbox.mdwn
+++ b/doc/sandbox.mdwn
@@ -30,6 +30,7 @@ A block of text
 >> Without a space works too.
 >>> to three levels
 
+This is pretty sweet
 
 Azerty
 ** Qsdf **

Added a comment
diff --git a/doc/forum/__34__S.__34___gets_replace_by___34__a.__34___in_my_ikiwiki/comment_3_a12366764c50df62a4734c73418b592e._comment b/doc/forum/__34__S.__34___gets_replace_by___34__a.__34___in_my_ikiwiki/comment_3_a12366764c50df62a4734c73418b592e._comment
new file mode 100644
index 0000000..895cf76
--- /dev/null
+++ b/doc/forum/__34__S.__34___gets_replace_by___34__a.__34___in_my_ikiwiki/comment_3_a12366764c50df62a4734c73418b592e._comment
@@ -0,0 +1,13 @@
+[[!comment format=mdwn
+ username="smcv"
+ subject="comment 3"
+ date="2015-08-12T16:08:10Z"
+ content="""
+There is a `MKD_NOALPHALIST` option to discount (assuming that's the Markdown implementation you're using), but it isn't clear which way should be preferred in general.
+
+With that option off, people complain that they can't have alphabetical sub-lists (Google for \"markdown alpha list\" to see this feature request in various places).
+
+With that option on, you get unexpected results for things like your example. It's also liable to break initials (`S. J. McVittie is an ikiwiki contributor`) or the French abbreviation for Monsieur (`M. Poirot is a famous French-speaking detective`).
+
+The original Markdown didn't have lettered lists; neither does CommonMark, although it's a feature request in CommonMark.
+"""]]

Added a comment: Markdown is weird like that
diff --git a/doc/forum/__34__S.__34___gets_replace_by___34__a.__34___in_my_ikiwiki/comment_2_73c0052ee7852b2bdc9e92ba6136f20e._comment b/doc/forum/__34__S.__34___gets_replace_by___34__a.__34___in_my_ikiwiki/comment_2_73c0052ee7852b2bdc9e92ba6136f20e._comment
new file mode 100644
index 0000000..23a4f97
--- /dev/null
+++ b/doc/forum/__34__S.__34___gets_replace_by___34__a.__34___in_my_ikiwiki/comment_2_73c0052ee7852b2bdc9e92ba6136f20e._comment
@@ -0,0 +1,37 @@
+[[!comment format=mdwn
+ username="smcv"
+ subject="Markdown is weird like that"
+ date="2015-08-12T15:51:38Z"
+ content="""
+Is it right at the beginning of a line, such that Markdown interprets it as a numbered list item for an HTML `<ol>`?
+
+~~~
+a. One
+b. Two
+c. Three
+
+a. One
+a. Two
+a. Three
+
+S. One
+X. Two
+Z. Three
+~~~
+
+are all interpreted as
+
+a. One
+b. Two
+c. Three
+
+If this is what's going on, you can use:
+
+`p\. 49`
+
+to get:
+
+p\. 49
+
+or adjust your spacing so it isn't the first thing on a line.
+"""]]

Added a comment
diff --git a/doc/forum/__34__S.__34___gets_replace_by___34__a.__34___in_my_ikiwiki/comment_1_1a842bc7d56e9b40a43cb64c8a76e776._comment b/doc/forum/__34__S.__34___gets_replace_by___34__a.__34___in_my_ikiwiki/comment_1_1a842bc7d56e9b40a43cb64c8a76e776._comment
new file mode 100644
index 0000000..dacbe7f
--- /dev/null
+++ b/doc/forum/__34__S.__34___gets_replace_by___34__a.__34___in_my_ikiwiki/comment_1_1a842bc7d56e9b40a43cb64c8a76e776._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="openmedi"
+ subject="comment 1"
+ date="2015-08-12T15:44:58Z"
+ content="""
+As we can see (and this is lucky in hindsight): The problem doesn't show on the ikiwiki.info site itself. So maybe I did indeed something wrong. Hm.
+"""]]

diff --git a/doc/forum/__34__S.__34___gets_replace_by___34__a.__34___in_my_ikiwiki.mdwn b/doc/forum/__34__S.__34___gets_replace_by___34__a.__34___in_my_ikiwiki.mdwn
new file mode 100644
index 0000000..1f22f09
--- /dev/null
+++ b/doc/forum/__34__S.__34___gets_replace_by___34__a.__34___in_my_ikiwiki.mdwn
@@ -0,0 +1,7 @@
+I assume this is a bug:
+
+When when writing the string "S." on a page, it gets replace with "a." for some reason. I am using "ikiwiki version 3.20150614" form pkgsrc on OS X 10.10.4.
+
+If this is not a bug: Where would I be able to change that behaviour?
+
+P.S.: "S." is the short form of the German "Seite" (en: "p." and "page") and is used frquently in citations, so it's kind of important…

test
diff --git a/doc/sandbox.mdwn b/doc/sandbox.mdwn
index b9f68de..795d103 100644
--- a/doc/sandbox.mdwn
+++ b/doc/sandbox.mdwn
@@ -1,5 +1,4 @@
-[[!osm ]]
-[[!waypoint  lat="45°30N" lon="73°40W" name="My city" tag="city"]]
+[[!template  id=test45 text="""Here is the text to insert into my note."""]]
 
 
 [[!meta date="Thu Jun 16 22:04:33 2005" updated="Thu Dec 22 01:23:20 2011"]]

diff --git a/doc/templates/test45.mdwn b/doc/templates/test45.mdwn
new file mode 100644
index 0000000..bbac541
--- /dev/null
+++ b/doc/templates/test45.mdwn
@@ -0,0 +1,12 @@
+[[!templatebody <<ENDBODY
+<div class="notebox">
+<TMPL_VAR text> (This is a note, made using the test45 template.)
+</div>
+ENDBODY]]
+
+Use this template to insert a note into a page. This template is a duplicate of note, but with test45 text appended to it. The note will be styled to
+float to the right of other text on the page. This template has one
+parameter:
+<ul>
+<li>`text` - the text to display in the note
+</ul>

format
diff --git a/doc/bugs/img_test_failure_on_nix.mdwn b/doc/bugs/img_test_failure_on_nix.mdwn
index e132119..5e439f7 100644
--- a/doc/bugs/img_test_failure_on_nix.mdwn
+++ b/doc/bugs/img_test_failure_on_nix.mdwn
@@ -1,17 +1,17 @@
 Peter Simons wrote:
 > I'm getting the following test suite failure in Nix, probably because
 > some Perl dependency was updated to a newer version recently:
-> 
->	#   Failed test at t/img.t line 79.
->	#          got: 'no image'
->	#     expected: '12x12'
-> 
->	#   Failed test at t/img.t line 80.
->	#          got: 'no image'
->	#     expected: '16x2'
->	# Looks like you failed 2 tests of 19.
->	t/img.t ........................ 
->	Dubious, test returned 2 (wstat 512, 0x200)
->	Failed 2/19 subtests 
-> 
+ 
+	#   Failed test at t/img.t line 79.
+	#          got: 'no image'
+	#     expected: '12x12'
+ 
+	#   Failed test at t/img.t line 80.
+	#          got: 'no image'
+	#     expected: '16x2'
+	# Looks like you failed 2 tests of 19.
+	t/img.t ........................ 
+	Dubious, test returned 2 (wstat 512, 0x200)
+	Failed 2/19 subtests 
+ 
 > Do you have any idea how to fix this issue?

forward an email about a bug to the bug tracker
diff --git a/doc/bugs/img_test_failure_on_nix.mdwn b/doc/bugs/img_test_failure_on_nix.mdwn
new file mode 100644
index 0000000..e132119
--- /dev/null
+++ b/doc/bugs/img_test_failure_on_nix.mdwn
@@ -0,0 +1,17 @@
+Peter Simons wrote:
+> I'm getting the following test suite failure in Nix, probably because
+> some Perl dependency was updated to a newer version recently:
+> 
+>	#   Failed test at t/img.t line 79.
+>	#          got: 'no image'
+>	#     expected: '12x12'
+> 
+>	#   Failed test at t/img.t line 80.
+>	#          got: 'no image'
+>	#     expected: '16x2'
+>	# Looks like you failed 2 tests of 19.
+>	t/img.t ........................ 
+>	Dubious, test returned 2 (wstat 512, 0x200)
+>	Failed 2/19 subtests 
+> 
+> Do you have any idea how to fix this issue?

Added a comment
diff --git a/doc/forum/Language_variable/comment_1_caea1154542404ffa1ce1c5344208fd4._comment b/doc/forum/Language_variable/comment_1_caea1154542404ffa1ce1c5344208fd4._comment
new file mode 100644
index 0000000..c608cd8
--- /dev/null
+++ b/doc/forum/Language_variable/comment_1_caea1154542404ffa1ce1c5344208fd4._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="fboulogne@247e5cb9cf56b3ff602b5e50ee07bb3985b88808"
+ nickname="fboulogne"
+ subject="comment 1"
+ date="2015-08-01T02:15:27Z"
+ content="""
+I totally agree on this need. It's also very important for the accessibility (especially handicapped people who need a specific software.)
+"""]]

style
diff --git a/doc/bugs/feed_does_not_validate.mdwn b/doc/bugs/feed_does_not_validate.mdwn
index 2d5b3a3..315ff97 100644
--- a/doc/bugs/feed_does_not_validate.mdwn
+++ b/doc/bugs/feed_does_not_validate.mdwn
@@ -1,7 +1,7 @@
-https://validator.w3.org/feed/check.cgi?url=http%3A%2F%2Fanarc.at%2Ftag%2Fdrupal-planet%2Findex.rss says that my RSS feed doesn't validate.
+[this validator](https://validator.w3.org/feed/check.cgi?url=http%3A%2F%2Fanarc.at%2Ftag%2Fdrupal-planet%2Findex.rss) says that my RSS feed doesn't validate.
 
 the link to "comments" should be a full URL and there's a "self" tag missing.
 
-coming from: https://www.drupal.org/node/1843576
+coming from [this bug report](https://www.drupal.org/node/1843576)
 
 -- [[anarcat]]

diff --git a/doc/bugs/feed_does_not_validate.mdwn b/doc/bugs/feed_does_not_validate.mdwn
new file mode 100644
index 0000000..2d5b3a3
--- /dev/null
+++ b/doc/bugs/feed_does_not_validate.mdwn
@@ -0,0 +1,7 @@
+https://validator.w3.org/feed/check.cgi?url=http%3A%2F%2Fanarc.at%2Ftag%2Fdrupal-planet%2Findex.rss says that my RSS feed doesn't validate.
+
+the link to "comments" should be a full URL and there's a "self" tag missing.
+
+coming from: https://www.drupal.org/node/1843576
+
+-- [[anarcat]]

diff --git a/doc/forum/Language_variable.mdwn b/doc/forum/Language_variable.mdwn
index c656bfd..7eb2577 100644
--- a/doc/forum/Language_variable.mdwn
+++ b/doc/forum/Language_variable.mdwn
@@ -19,7 +19,7 @@ words correctly, resulting in poor line breaking/wrapping.
 
 Right now, correct me if I'm wrong, but I need to write
 
-    [[!meta language="en"]]
+    bracket bracket !meta language="en"]]
 
 somewhere inside a post in order to tell ikiwiki which language the
 post is written in. This will result in the post's HTML as:

diff --git a/doc/forum/Language_variable.mdwn b/doc/forum/Language_variable.mdwn
new file mode 100644
index 0000000..c656bfd
--- /dev/null
+++ b/doc/forum/Language_variable.mdwn
@@ -0,0 +1,78 @@
+(I don't know whether this is about a bug or about a feature request, so apologies if this post is in the wrong place.)
+
+# Rationale:
+
+It seems to me that the way ikiwiki handles language information at
+the moment isn't optimal.
+
+For instance, if I want to apply different CSS properties depending on
+the language, I can't. (This matters for some typographic rules that
+differ depending on the language.)
+
+Also, without proper language declarations, the browser cannot hyphen
+words correctly, resulting in poor line breaking/wrapping.
+
+
+# The problem:
+
+## How it's done now:
+
+Right now, correct me if I'm wrong, but I need to write
+
+    [[!meta language="en"]]
+
+somewhere inside a post in order to tell ikiwiki which language the
+post is written in. This will result in the post's HTML as:
+
+    <meta name="language" content="en" />
+
+
+This isn't sufficient.
+
+## What isn't done
+
+### 1. the blog's lang
+
+There's no way to tell ikiwiki the overall, or main language of the
+blog at the moment (again, that's as far as I can see from reading
+documentations, forums, etc.)
+
+This setting would be nice, in order to add have something like
+
+    <html lang="en">
+
+on all pages.
+
+
+### 2. the post's lang
+
+Then, if a specific post has the meta language property explicitly
+defined, it should override the language declaration set as default.
+
+### 3. template variable
+
+Right now, there's no
+
+    <TMPL_VAR LANGUAGE>
+
+from what I can tell by testing. As a result, I cannot give specific
+css properties or the like.
+
+
+# Fast way to resolve this
+
+The easiest way to resolve this is to create a TMPL_VAR LANGUAGE so
+that at least people who care can use this variable and improve their templates.
+
+
+----
+
+This really is the most needed feature for me as a writer in both
+English and French that I miss the most with ikiwiki. I have looked
+around in the source code on <https://github.com/joeyh/ikiwiki> but I
+couldn't figure out where this is happening...
+
+
+I hope you also care :-)
+
+Thanks,

link to comment moderation and whine
diff --git a/doc/todo/anti-spam_protection.mdwn b/doc/todo/anti-spam_protection.mdwn
index e39d4c1..f0c6c19 100644
--- a/doc/todo/anti-spam_protection.mdwn
+++ b/doc/todo/anti-spam_protection.mdwn
@@ -28,3 +28,9 @@ There is a [[plugins/blogspam]] plugin that uses the blogspam.org service
 to check for common spam signatures. --[[Joey]] 
 
 [[done]]
+
+----
+
+I am sorry to say that neither those solutions are sufficient for a site that allows anonymous comments. blogspam lets thousands of commits through here, as i described in [[todo/commandline_comment_moderation]]. Now, maybe I didn't configure blogspam correctly, I am not sure. I just enabled the plugin and set `blogspam_pagespec: postcomment(blog/*) or */discussion`. I have also imported the blocklist from this wiki's ikiwiki.setup, generated from [[spam_fighting]]. I have had to add around 10 IPs to that list already.
+
+It seems to me a list of blocked URLs or blocked IPs as mentionned above would be an interesting solution. blogspam is great, but the API doesn't seem to support reporting IPs or bad content back, which seems to be a major problem in working around false negatives. I'm tempted to just remove the `done` tag above, because this is clearly not fixed for me here... --[[anarcat]]

some workarounds
diff --git a/doc/todo/commandline_comment_moderation.mdwn b/doc/todo/commandline_comment_moderation.mdwn
index 8cce512..0a3ff62 100644
--- a/doc/todo/commandline_comment_moderation.mdwn
+++ b/doc/todo/commandline_comment_moderation.mdwn
@@ -2,4 +2,43 @@ So I have enabled the [[moderatedcomments]] plugin on my wiki. and good thing th
 
 It's pretty hard to figure out the ham and the spam in there. One thing I was hoping was to use the power of the commandline to filter through all that stuff. Now, it seems there's only a "ikiwiki-comment" tool now, and nothing to examine the moderated comments.
 
-It seems to me it would be great to have some tool to filter through that... --[[anarcat]]
+It seems to me it would be great to have some tool to filter through that...
+
+
+So it turns out it was over 3000 comments. The vast majority of those (every one but 42 comments) were from the IP `46.161.41.34` which i recommend null-routing everywhere. I used the following shell magic to figure that out:
+
+<pre>
+# locate the transient directory
+cd $source/.ikiwiki/transient
+# count the number of comments
+find . -name '*._comment_pending' | wc
+# number of comments per IP
+find . -name '*._comment_pending' | xargs grep -h ip= | sort | uniq -c | sort -n
+# generate a banlist for insertion in `banusers`, assuming all the pending comments are spam
+find . -name '*._comment_pending' | xargs grep -h ip= | sort -u| sed 's/ ip="//;s/"//;s/^/- ip(/;s/$/)/'
+# remove comments from a bad guy
+find . -name '*._comment_pending' | xargs grep -l 'ip="46.161.41.34"'| xargs rm
+# flush all pending comments
+find . -name '*._comment_pending' -delete
+</pre>
+
+The remaining 42 comments I reviewed throught the web interface, then flushed using the above command. My final addition to the banlist is:
+
+<pre>
+- ip(159.224.160.225)
+- ip(176.10.104.227)
+- ip(176.10.104.234)
+- ip(188.143.233.211)
+- ip(193.201.227.41)
+- ip(195.154.181.152)
+- ip(213.238.175.29)
+- ip(31.184.238.11)
+- ip(37.57.231.112)
+- ip(37.57.231.204)
+- ip(46.161.41.34)
+- ip(46.161.41.199)
+- ip(95.130.13.111)
+- ip(95.181.178.142)
+</pre>
+
+ --[[anarcat]]

diff --git a/doc/todo/commandline_comment_moderation.mdwn b/doc/todo/commandline_comment_moderation.mdwn
new file mode 100644
index 0000000..8cce512
--- /dev/null
+++ b/doc/todo/commandline_comment_moderation.mdwn
@@ -0,0 +1,5 @@
+So I have enabled the [[moderatedcomments]] plugin on my wiki. and good thing that! around 1000 spammy comments showed up in the last 3 months! Awful!
+
+It's pretty hard to figure out the ham and the spam in there. One thing I was hoping was to use the power of the commandline to filter through all that stuff. Now, it seems there's only a "ikiwiki-comment" tool now, and nothing to examine the moderated comments.
+
+It seems to me it would be great to have some tool to filter through that... --[[anarcat]]

diff --git a/doc/examples/blog/posts/second_post.mdwn b/doc/examples/blog/posts/second_post.mdwn
new file mode 100644
index 0000000..5cc6c38
--- /dev/null
+++ b/doc/examples/blog/posts/second_post.mdwn
@@ -0,0 +1 @@
+This is the second post to this example blog. To add new posts, just add files to the posts/ subdirectory, or use the web form.

diff --git a/doc/bugs/Please_add_copyright_notice_in_embedded_JS.mdwn b/doc/bugs/Please_add_copyright_notice_in_embedded_JS.mdwn
new file mode 100644
index 0000000..b224170
--- /dev/null
+++ b/doc/bugs/Please_add_copyright_notice_in_embedded_JS.mdwn
@@ -0,0 +1,5 @@
+Hello,
+
+We got a report that http://www.gnu.org/software/hurd/ "embeds apparently non-free JS". This is because the embedded ikiwiki.js javascript file does not wear a copyright notice, to tell which licence this file is shipped under.  Could you add such a copyright notice?
+
+Thanks

Bug fix
diff --git a/doc/bugs/Error_with_external_plugins.mdwn b/doc/bugs/Error_with_external_plugins.mdwn
index ae7592d..065439d 100644
--- a/doc/bugs/Error_with_external_plugins.mdwn
+++ b/doc/bugs/Error_with_external_plugins.mdwn
@@ -81,3 +81,10 @@ Regards,
 >> I know Python better than I know Perl, so I can try to fix this.
 >> 
 >> -- [[Louis|spalax]]
+
+>>> [[!template id=gitbranch author="[[Louis|spalax]]" branch=spalax/paternal/rpcbug
+>>>   browse=https://github.com/paternal/ikiwiki/tree/paternal/rpcbug]]
+>>> [I fixed this bug](https://github.com/paternal/ikiwiki/commit/32da347566a7559ca1ef145880efe961dbcc012f) in a branch on my Ikiwiki clone.
+>>> Please review :)
+>>> 
+>>> -- [[Louis|spalax]]

diff --git a/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn b/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
index f47c508..5683228 100644
--- a/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
+++ b/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
@@ -27,5 +27,5 @@ The rebuild of an old site containing math is missing the following lines:
 
 ----------------------
 
-I finally noticed that the `page.tmpl` was messed up. It seams that the upgrade deleted the relevant `mathjax` line. Adding this makes it work again. Thanks!
+I finally noticed that the `page.tmpl` was messed up. It seams that the upgrade deleted the relevant `mathjax` line. Adding this makes it work again. [[Thanks|done]]! 
 

rename done/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn to bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
diff --git a/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn b/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
new file mode 100644
index 0000000..f47c508
--- /dev/null
+++ b/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
@@ -0,0 +1,31 @@
+After my upgrade from ubuntu 14.04 to 15.04 mathjax stopped working in my ikiwiki. Math is displayed correctly for pages created before the upgrade. For new pages or if I change an old page, math is not rendered but the LaTeX source code is printed (with \[ \] as deliminiters instead of $$ $$). 
+
+Any idea what may be wrong here and how to fix it?
+
+> Mathjax does not seem to be supported by default by Ikiwiki. So the first question is: how did you enable mathjax?
+>
+> Maybe you can also save the html of an old page, change something in it to make it rebuilt, and diff the resulting html with the old one, to see what changed.
+>
+> -- [[Louis|spalax]]
+
+I installed mathjax via the pandoc-iki plugin as described [here](http://stackoverflow.com/a/8444409/406686)
+
+The rebuild of an old site containing math is missing the following lines:
+
+
+     <script src="/mathjax/MathJax.js?config=TeX-AMS_HTML-full" type="text/javascript"></script>
+     </head>
+     <body>
+     <noscript>
+     <div style="color:#CC0000; text-align:center">
+     <b>Warning: <a href="http://www.mathjax.org/">MathJax</a>
+     requires JavaScript to process the mathematics on this page.<br>
+     If your browser supports JavaScript, be sure it is enabled.</b>
+     </div>
+     <hr>
+     </noscript>
+
+----------------------
+
+I finally noticed that the `page.tmpl` was messed up. It seams that the upgrade deleted the relevant `mathjax` line. Adding this makes it work again. Thanks!
+
diff --git a/doc/done/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn b/doc/done/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
deleted file mode 100644
index f47c508..0000000
--- a/doc/done/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
+++ /dev/null
@@ -1,31 +0,0 @@
-After my upgrade from ubuntu 14.04 to 15.04 mathjax stopped working in my ikiwiki. Math is displayed correctly for pages created before the upgrade. For new pages or if I change an old page, math is not rendered but the LaTeX source code is printed (with \[ \] as deliminiters instead of $$ $$). 
-
-Any idea what may be wrong here and how to fix it?
-
-> Mathjax does not seem to be supported by default by Ikiwiki. So the first question is: how did you enable mathjax?
->
-> Maybe you can also save the html of an old page, change something in it to make it rebuilt, and diff the resulting html with the old one, to see what changed.
->
-> -- [[Louis|spalax]]
-
-I installed mathjax via the pandoc-iki plugin as described [here](http://stackoverflow.com/a/8444409/406686)
-
-The rebuild of an old site containing math is missing the following lines:
-
-
-     <script src="/mathjax/MathJax.js?config=TeX-AMS_HTML-full" type="text/javascript"></script>
-     </head>
-     <body>
-     <noscript>
-     <div style="color:#CC0000; text-align:center">
-     <b>Warning: <a href="http://www.mathjax.org/">MathJax</a>
-     requires JavaScript to process the mathematics on this page.<br>
-     If your browser supports JavaScript, be sure it is enabled.</b>
-     </div>
-     <hr>
-     </noscript>
-
-----------------------
-
-I finally noticed that the `page.tmpl` was messed up. It seams that the upgrade deleted the relevant `mathjax` line. Adding this makes it work again. Thanks!
-

rename bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn to done/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
diff --git a/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn b/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
deleted file mode 100644
index f47c508..0000000
--- a/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
+++ /dev/null
@@ -1,31 +0,0 @@
-After my upgrade from ubuntu 14.04 to 15.04 mathjax stopped working in my ikiwiki. Math is displayed correctly for pages created before the upgrade. For new pages or if I change an old page, math is not rendered but the LaTeX source code is printed (with \[ \] as deliminiters instead of $$ $$). 
-
-Any idea what may be wrong here and how to fix it?
-
-> Mathjax does not seem to be supported by default by Ikiwiki. So the first question is: how did you enable mathjax?
->
-> Maybe you can also save the html of an old page, change something in it to make it rebuilt, and diff the resulting html with the old one, to see what changed.
->
-> -- [[Louis|spalax]]
-
-I installed mathjax via the pandoc-iki plugin as described [here](http://stackoverflow.com/a/8444409/406686)
-
-The rebuild of an old site containing math is missing the following lines:
-
-
-     <script src="/mathjax/MathJax.js?config=TeX-AMS_HTML-full" type="text/javascript"></script>
-     </head>
-     <body>
-     <noscript>
-     <div style="color:#CC0000; text-align:center">
-     <b>Warning: <a href="http://www.mathjax.org/">MathJax</a>
-     requires JavaScript to process the mathematics on this page.<br>
-     If your browser supports JavaScript, be sure it is enabled.</b>
-     </div>
-     <hr>
-     </noscript>
-
-----------------------
-
-I finally noticed that the `page.tmpl` was messed up. It seams that the upgrade deleted the relevant `mathjax` line. Adding this makes it work again. Thanks!
-
diff --git a/doc/done/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn b/doc/done/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
new file mode 100644
index 0000000..f47c508
--- /dev/null
+++ b/doc/done/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
@@ -0,0 +1,31 @@
+After my upgrade from ubuntu 14.04 to 15.04 mathjax stopped working in my ikiwiki. Math is displayed correctly for pages created before the upgrade. For new pages or if I change an old page, math is not rendered but the LaTeX source code is printed (with \[ \] as deliminiters instead of $$ $$). 
+
+Any idea what may be wrong here and how to fix it?
+
+> Mathjax does not seem to be supported by default by Ikiwiki. So the first question is: how did you enable mathjax?
+>
+> Maybe you can also save the html of an old page, change something in it to make it rebuilt, and diff the resulting html with the old one, to see what changed.
+>
+> -- [[Louis|spalax]]
+
+I installed mathjax via the pandoc-iki plugin as described [here](http://stackoverflow.com/a/8444409/406686)
+
+The rebuild of an old site containing math is missing the following lines:
+
+
+     <script src="/mathjax/MathJax.js?config=TeX-AMS_HTML-full" type="text/javascript"></script>
+     </head>
+     <body>
+     <noscript>
+     <div style="color:#CC0000; text-align:center">
+     <b>Warning: <a href="http://www.mathjax.org/">MathJax</a>
+     requires JavaScript to process the mathematics on this page.<br>
+     If your browser supports JavaScript, be sure it is enabled.</b>
+     </div>
+     <hr>
+     </noscript>
+
+----------------------
+
+I finally noticed that the `page.tmpl` was messed up. It seams that the upgrade deleted the relevant `mathjax` line. Adding this makes it work again. Thanks!
+

diff --git a/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn b/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
index bd58eb2..f47c508 100644
--- a/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
+++ b/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
@@ -25,3 +25,7 @@ The rebuild of an old site containing math is missing the following lines:
      <hr>
      </noscript>
 
+----------------------
+
+I finally noticed that the `page.tmpl` was messed up. It seams that the upgrade deleted the relevant `mathjax` line. Adding this makes it work again. Thanks!
+

diff --git a/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn b/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
index e129b6f..bd58eb2 100644
--- a/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
+++ b/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
@@ -8,7 +8,7 @@ Any idea what may be wrong here and how to fix it?
 >
 > -- [[Louis|spalax]]
 
-I installed mathjax as described [here](http://stackoverflow.com/a/8444409/406686)
+I installed mathjax via the pandoc-iki plugin as described [here](http://stackoverflow.com/a/8444409/406686)
 
 The rebuild of an old site containing math is missing the following lines:
 

diff --git a/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn b/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
index 45a2f2e..e129b6f 100644
--- a/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
+++ b/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
@@ -8,7 +8,7 @@ Any idea what may be wrong here and how to fix it?
 >
 > -- [[Louis|spalax]]
 
-I installed mathjax as described here http://stackoverflow.com/a/8444409/406686. 
+I installed mathjax as described [here](http://stackoverflow.com/a/8444409/406686)
 
 The rebuild of an old site containing math is missing the following lines:
 

diff --git a/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn b/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
index acc1d91..45a2f2e 100644
--- a/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
+++ b/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
@@ -12,16 +12,16 @@ I installed mathjax as described here http://stackoverflow.com/a/8444409/406686.
 
 The rebuild of an old site containing math is missing the following lines:
 
-<code>
-<script src="/mathjax/MathJax.js?config=TeX-AMS_HTML-full" type="text/javascript"></script>
-</head>
-<body>
-<noscript>
-<div style="color:#CC0000; text-align:center">
-<b>Warning: <a href="http://www.mathjax.org/">MathJax</a>
-requires JavaScript to process the mathematics on this page.<br>
-If your browser supports JavaScript, be sure it is enabled.</b>
-</div>
-<hr>
-</noscript>
-</code>
+
+     <script src="/mathjax/MathJax.js?config=TeX-AMS_HTML-full" type="text/javascript"></script>
+     </head>
+     <body>
+     <noscript>
+     <div style="color:#CC0000; text-align:center">
+     <b>Warning: <a href="http://www.mathjax.org/">MathJax</a>
+     requires JavaScript to process the mathematics on this page.<br>
+     If your browser supports JavaScript, be sure it is enabled.</b>
+     </div>
+     <hr>
+     </noscript>
+

diff --git a/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn b/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
index e3b304b..acc1d91 100644
--- a/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
+++ b/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
@@ -12,6 +12,7 @@ I installed mathjax as described here http://stackoverflow.com/a/8444409/406686.
 
 The rebuild of an old site containing math is missing the following lines:
 
+<code>
 <script src="/mathjax/MathJax.js?config=TeX-AMS_HTML-full" type="text/javascript"></script>
 </head>
 <body>
@@ -23,3 +24,4 @@ If your browser supports JavaScript, be sure it is enabled.</b>
 </div>
 <hr>
 </noscript>
+</code>

diff --git a/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn b/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
index 3e946af..e3b304b 100644
--- a/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
+++ b/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
@@ -7,3 +7,19 @@ Any idea what may be wrong here and how to fix it?
 > Maybe you can also save the html of an old page, change something in it to make it rebuilt, and diff the resulting html with the old one, to see what changed.
 >
 > -- [[Louis|spalax]]
+
+I installed mathjax as described here http://stackoverflow.com/a/8444409/406686. 
+
+The rebuild of an old site containing math is missing the following lines:
+
+<script src="/mathjax/MathJax.js?config=TeX-AMS_HTML-full" type="text/javascript"></script>
+</head>
+<body>
+<noscript>
+<div style="color:#CC0000; text-align:center">
+<b>Warning: <a href="http://www.mathjax.org/">MathJax</a>
+requires JavaScript to process the mathematics on this page.<br>
+If your browser supports JavaScript, be sure it is enabled.</b>
+</div>
+<hr>
+</noscript>

Hints on debugging mathjax error
diff --git a/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn b/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
index 3298431..3e946af 100644
--- a/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
+++ b/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
@@ -1,3 +1,9 @@
 After my upgrade from ubuntu 14.04 to 15.04 mathjax stopped working in my ikiwiki. Math is displayed correctly for pages created before the upgrade. For new pages or if I change an old page, math is not rendered but the LaTeX source code is printed (with \[ \] as deliminiters instead of $$ $$). 
 
 Any idea what may be wrong here and how to fix it?
+
+> Mathjax does not seem to be supported by default by Ikiwiki. So the first question is: how did you enable mathjax?
+>
+> Maybe you can also save the html of an old page, change something in it to make it rebuilt, and diff the resulting html with the old one, to see what changed.
+>
+> -- [[Louis|spalax]]

diff --git a/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn b/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
new file mode 100644
index 0000000..3298431
--- /dev/null
+++ b/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn
@@ -0,0 +1,3 @@
+After my upgrade from ubuntu 14.04 to 15.04 mathjax stopped working in my ikiwiki. Math is displayed correctly for pages created before the upgrade. For new pages or if I change an old page, math is not rendered but the LaTeX source code is printed (with \[ \] as deliminiters instead of $$ $$). 
+
+Any idea what may be wrong here and how to fix it?

diff --git a/doc/bugs/Uploading_attachment_fails.mdwn b/doc/bugs/Uploading_attachment_fails.mdwn
index 66af0fb..f3a9ccf 100644
--- a/doc/bugs/Uploading_attachment_fails.mdwn
+++ b/doc/bugs/Uploading_attachment_fails.mdwn
@@ -20,4 +20,4 @@ Died at `/usr/share/perl5/IkiWiki/CGI.pm line 497`.
 > To work around this, you might be able to `apt-get remove libcgi-pm-perl` and use the
 > older version of CGI.pm that is shipped with Perl. --[[smcv]]
 
-Thanks, I just opened a bug r[eport on launchpad](https://bugs.launchpad.net/ubuntu/+source/ikiwiki/+bug/1470391). For the workaround. How do I use the older version of CGI.pm? Is this done automatically if I remove libcgi-pm-perl?
+Thanks, I just opened a bug r[eport on launchpad](https://bugs.launchpad.net/ubuntu/+source/ikiwiki/+bug/1470391).

diff --git a/doc/bugs/Uploading_attachment_fails.mdwn b/doc/bugs/Uploading_attachment_fails.mdwn
index 61ef83c..66af0fb 100644
--- a/doc/bugs/Uploading_attachment_fails.mdwn
+++ b/doc/bugs/Uploading_attachment_fails.mdwn
@@ -19,3 +19,5 @@ Died at `/usr/share/perl5/IkiWiki/CGI.pm line 497`.
 >
 > To work around this, you might be able to `apt-get remove libcgi-pm-perl` and use the
 > older version of CGI.pm that is shipped with Perl. --[[smcv]]
+
+Thanks, I just opened a bug r[eport on launchpad](https://bugs.launchpad.net/ubuntu/+source/ikiwiki/+bug/1470391). For the workaround. How do I use the older version of CGI.pm? Is this done automatically if I remove libcgi-pm-perl?

diff --git a/doc/bugs/continuously_getting_merge_errors.mdwn b/doc/bugs/continuously_getting_merge_errors.mdwn
new file mode 100644
index 0000000..ebfd5e2
--- /dev/null
+++ b/doc/bugs/continuously_getting_merge_errors.mdwn
@@ -0,0 +1,32 @@
+links:
+
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=775310
+http://ikiwiki.info/forum/Your_local_changes_to_the_following_files_would_be_overwritten_by_merge:/
+
+phil is kindly running ikiwiki on hands.com as http://rhombus-tech.net
+we continuously run into "merge" issues which need recovering on a
+near monthly basis.
+
+i have a local checkout of the repository: i often need to upload images via
+that, doing the usual "git pull", followed by "git commit -a", followed by
+"git push", adding an HTML page that is edited by vim as well as the images.
+
+i also often need to "recover" the wiki - for example by renaming pages that
+users have erroneously added, deleting pages that they should not have made,
+moving pages from locations that they should not have added or that i decide
+should be restructured.
+
+these are the operations where everything usually gets completely fscked.
+
+the really weird thing is that when i know that things are out-of-sync,
+a "git pull" gives a *completely different* head branch from the one shown
+through the RecentChanges log!
+
+phil has often had to recover an entire set of files that are completely out
+of sync, that never enter the "git pull" stream onto my laptop, and are not
+visible on the wiki itself either.
+
+this is all incredibly strange and mysterious, but it basically means that
+ikiwiki is not particularly robust and reliable for everyday use.  i'd very
+much like it to be!
+

probably already fixed, but not in Ubuntu
diff --git a/doc/bugs/Uploading_attachment_fails.mdwn b/doc/bugs/Uploading_attachment_fails.mdwn
index bce80c3..61ef83c 100644
--- a/doc/bugs/Uploading_attachment_fails.mdwn
+++ b/doc/bugs/Uploading_attachment_fails.mdwn
@@ -7,3 +7,15 @@ ikiwiki version 3.20141016.2
 gives this:
 
 Died at `/usr/share/perl5/IkiWiki/CGI.pm line 497`.
+
+> I think this is probably [[!debbug 786587]], which ikiwiki has worked around since 3.20150610
+> ([[!debbug 786586]]). If so, then it is [[already fixed|done]], but not in the version
+> you have. You could report an Ubuntu bug asking for
+> [ikiwiki commit 7a52c87](http://source.ikiwiki.branchable.com/?p=source.git;a=commit;h=7a52c87a8c745577a50d6c9d134f62f9c5b26b0a)
+> or
+> [CGI.pm commit e4500cf](https://github.com/leejo/CGI.pm/commit/e4500cfb2de27660398c09bc860d1d9e499cb372)
+> to be backported, although in practice bugs in universe packages are unlikely to get fixed
+> in an Ubuntu stable release.
+>
+> To work around this, you might be able to `apt-get remove libcgi-pm-perl` and use the
+> older version of CGI.pm that is shipped with Perl. --[[smcv]]

RPC bug: Code formatting
diff --git a/doc/bugs/Error_with_external_plugins/debug.mdwn b/doc/bugs/Error_with_external_plugins/debug.mdwn
index 2a8b95b..b927e44 100644
--- a/doc/bugs/Error_with_external_plugins/debug.mdwn
+++ b/doc/bugs/Error_with_external_plugins/debug.mdwn
@@ -1,7737 +1,7737 @@
-Trace of the `proxy.py` package during ikiwiki build.
+Trace of the `proxy.py` package during ikiwiki build. Look for the `preprocess` call and response for interesting stuff.
 
-> rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki...
-> rpcbug:handle_rpc:199: received procedure call from ikiwiki: [<?xml version="1.0" encoding="utf-8"?><methodCall><methodName>import</methodName><params></params></methodCall>
-> ]
-> rpcbug:_importme:330: importing...
-> rpcbug:_importme:333: hooking rpcbug/getsetup into getsetup chain...
-> rpcbug:send_rpc:161: calling ikiwiki procedure `hook': ["<?xml version='1.0'?>\n<methodCall>\n<methodName>hook</methodName>\n<params>\n<param>\n<value><string>call</string></value>\n</param>\n<param>\n<value><string>getsetup</string></value>\n</param>\n<param>\n<value><string>type</string></value>\n</param>\n<param>\n<value><string>getsetup</string></value>\n</param>\n<param>\n<value><string>id</string></value>\n</param>\n<param>\n<value><string>rpcbug</string></value>\n</param>\n<param>\n<value><string>last</string></value>\n</param>\n<param>\n<value><boolean>0</boolean></value>\n</param>\n</params>\n</methodCall>\n"]
-> rpcbug:send_rpc:169: reading response from ikiwiki...
-> rpcbug:send_rpc:178: read response to procedure hook from ikiwiki: ['<?xml version="1.0" encoding="utf-8"?><methodResponse><params><param><value><string>1</string></value></param></params></methodResponse>\n']
-> rpcbug:send_rpc:187: parsed data from response to procedure hook: ['1']
-> rpcbug:_importme:333: hooking rpcbug/preprocess into preprocess chain...
-> rpcbug:send_rpc:161: calling ikiwiki procedure `hook': ["<?xml version='1.0'?>\n<methodCall>\n<methodName>hook</methodName>\n<params>\n<param>\n<value><string>call</string></value>\n</param>\n<param>\n<value><string>preprocess</string></value>\n</param>\n<param>\n<value><string>type</string></value>\n</param>\n<param>\n<value><string>preprocess</string></value>\n</param>\n<param>\n<value><string>id</string></value>\n</param>\n<param>\n<value><string>rpcbug</string></value>\n</param>\n<param>\n<value><string>last</string></value>\n</param>\n<param>\n<value><boolean>0</boolean></value>\n</param>\n</params>\n</methodCall>\n"]
-> rpcbug:send_rpc:169: reading response from ikiwiki...
-> rpcbug:send_rpc:178: read response to procedure hook from ikiwiki: ['<?xml version="1.0" encoding="utf-8"?><methodResponse><params><param><value><string>1</string></value></param></params></methodResponse>\n']
-> rpcbug:send_rpc:187: parsed data from response to procedure hook: ['1']
-> rpcbug:_importme:333: hooking rpcbug/format into format chain...
-> rpcbug:send_rpc:161: calling ikiwiki procedure `hook': ["<?xml version='1.0'?>\n<methodCall>\n<methodName>hook</methodName>\n<params>\n<param>\n<value><string>call</string></value>\n</param>\n<param>\n<value><string>format</string></value>\n</param>\n<param>\n<value><string>type</string></value>\n</param>\n<param>\n<value><string>format</string></value>\n</param>\n<param>\n<value><string>id</string></value>\n</param>\n<param>\n<value><string>rpcbug</string></value>\n</param>\n<param>\n<value><string>last</string></value>\n</param>\n<param>\n<value><boolean>0</boolean></value>\n</param>\n</params>\n</methodCall>\n"]
-> rpcbug:send_rpc:169: reading response from ikiwiki...
-> rpcbug:send_rpc:178: read response to procedure hook from ikiwiki: ['<?xml version="1.0" encoding="utf-8"?><methodResponse><params><param><value><string>1</string></value></param></params></methodResponse>\n']
-> rpcbug:send_rpc:187: parsed data from response to procedure hook: ['1']
-> rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [<?xml version='1.0'?>
-> <methodResponse>
-> <params>
-> <param>
-> <value><struct>
-> <member>
-> <name>null</name>
-> <value><string></string></value>
-> </member>
-> </struct></value>
-> </param>
-> </params>
-> </methodResponse>
-> ]
-> rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki...
-> Omission du fichier au nom incorrect wiki.setup~
-> Omission du fichier au nom incorrect index.mdwn~
-> Omission du fichier au nom incorrect README.md~
-> Omission du fichier au nom incorrect foo.mdwn~
-> Omission du fichier au nom incorrect plugins/evariste~
-> Omission du fichier au nom incorrect plugins/rpcbug~
-> rpcbug:handle_rpc:199: received procedure call from ikiwiki: [<?xml version="1.0" encoding="utf-8"?><methodCall><methodName>preprocess</methodName><params><param><value><string>page</string></value></param><param><value><string>foo</string></value></param><param><value><string>destpage</string></value></param><param><value><string>foo</string></value></param><param><value><string>preview</string></value></param><param><value><string>0</string></value></param></params></methodCall>
-> ]
-> rpcbug:send_rpc:161: calling ikiwiki procedure `srcfile': ["<?xml version='1.0'?>\n<methodCall>\n<methodName>srcfile</methodName>\n<params>\n<param>\n<value><string>foo</string></value>\n</param>\n</params>\n</methodCall>\n"]
-> rpcbug:send_rpc:169: reading response from ikiwiki...
-> rpcbug:send_rpc:178: read response to procedure srcfile from ikiwiki: ['<?xml version="1.0" encoding="utf-8"?><methodCall><methodName>preprocess</methodName><params><param><value><string>page</string></value></param><param><value><string>foo</string></value></param><param><value><string>destpage</string></value></param><param><value><string>foo</string></value></param><param><value><string>preview</string></value></param><param><value><string>0</string></value></param></params></methodCall>\n']
-> rpcbug:send_rpc:187: parsed data from response to procedure srcfile: ['page']
-> rpcbug:send_rpc:161: calling ikiwiki procedure `srcfile': ["<?xml version='1.0'?>\n<methodCall>\n<methodName>srcfile</methodName>\n<params>\n<param>\n<value><string>README.md</string></value>\n</param>\n</params>\n</methodCall>\n"]
-> rpcbug:send_rpc:169: reading response from ikiwiki...
-> rpcbug:send_rpc:178: read response to procedure srcfile from ikiwiki: ['<?xml version="1.0" encoding="utf-8"?><methodResponse><params><param><value><string>/home/louis/projets/ikiwiki/rpcbug/README.md</string></value></param></params></methodResponse>\n']
-> rpcbug:send_rpc:187: parsed data from response to procedure srcfile: ['/home/louis/projets/ikiwiki/rpcbug/README.md']
-> rpcbug:hook_proxy:262: preprocess hook `preprocess' returned: ['<br/>* Calling `srcfile(foo)`: page<br/>* Calling `srcfile(README.md)`: /home/louis/projets/ikiwiki/rpcbug/README.md']
-> rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [<?xml version='1.0'?>
-> <methodResponse>
-> <params>
-> <param>
-> <value><string>&lt;br/&gt;* Calling `srcfile(foo)`: page&lt;br/&gt;* Calling `srcfile(README.md)`: /home/louis/projets/ikiwiki/rpcbug/README.md</string></value>
-> </param>
-> </params>
-> </methodResponse>
-> ]
-> rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki...
-> rpcbug:handle_rpc:199: received procedure call from ikiwiki: [<?xml version="1.0" encoding="utf-8"?><methodCall><methodName>format</methodName><params><param><value><string>page</string></value></param><param><value><string>foo</string></value></param><param><value><string>content</string></value></param><param><value><string>&lt;!DOCTYPE html&gt;
-> &lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
-> &lt;head&gt;
-> 
-> &lt;meta charset=&quot;utf-8&quot; /&gt;
-> &lt;title&gt;foo&lt;/title&gt;
-> &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot; /&gt;
-> 
-> &lt;link rel=&quot;stylesheet&quot; href=&quot;../style.css&quot; type=&quot;text/css&quot; /&gt;
-> 
-> &lt;link rel=&quot;stylesheet&quot; href=&quot;../local.css&quot; type=&quot;text/css&quot; /&gt;
-> 
-> 
-> 
-> 
-> &lt;link rel=&quot;alternate&quot; type=&quot;application/x-wiki&quot; title=&quot;Edit this page&quot; href=&quot;/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;amp;page=foo&quot; /&gt;
-> 
-> 
-> 
-> 
-> 
-> 
-> 
-> &lt;/head&gt;
-> &lt;body&gt;
-> 
-> &lt;article class=&quot;page&quot;&gt;
-> 
-> &lt;section class=&quot;pageheader&quot;&gt;
-> &lt;header class=&quot;header&quot;&gt;
-> &lt;span&gt;
-> &lt;span class=&quot;parentlinks&quot;&gt;
-> 
-> &lt;a href=&quot;../&quot;&gt;RPC Bug&lt;/a&gt;/ 
-> 
-> &lt;/span&gt;
-> &lt;span class=&quot;title&quot;&gt;
-> foo
-> 
-> &lt;/span&gt;
-> &lt;/span&gt;
-> 
-> 
-> 
-> &lt;/header&gt;
-> 
-> 
-> &lt;nav class=&quot;actions&quot;&gt;
-> &lt;ul&gt;
-> 
-> &lt;li&gt;&lt;a href=&quot;/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;amp;page=foo&quot; rel=&quot;nofollow&quot;&gt;Edit&lt;/a&gt;&lt;/li&gt;
-> 
-> 
-> &lt;li&gt;&lt;a href=&quot;../recentchanges/&quot;&gt;RecentChanges&lt;/a&gt;&lt;/li&gt;
-> 
-> 
-> 
-> 
-> &lt;li&gt;&lt;a href=&quot;/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs&quot;&gt;Preferences&lt;/a&gt;&lt;/li&gt;
-> 
-> 
-> 
-> 
-> 
-> &lt;/ul&gt;
-> &lt;/nav&gt;
-> 
-> 
-> 
-> 
-> 
-> 
-> 
-> 
-> &lt;/section&gt;
-> 
-> 
-> 
-> 
-> 
-> &lt;div id=&quot;pagebody&quot;&gt;
-> 
-> &lt;section id=&quot;content&quot; role=&quot;main&quot;&gt;
-> &lt;p&gt;[[!rpcbug &lt;span class=&quot;error&quot;&gt;Erreur: internal error: foo cannot be found in /home/louis/projets/ikiwiki/rpcbug or underlay&lt;/span&gt;]]&lt;/p&gt;
-> 
-> &lt;p&gt;&lt;br /&gt;&lt;em&gt; Calling &lt;code&gt;srcfile(foo)&lt;/code&gt;: page&lt;br /&gt;&lt;/em&gt; Calling &lt;code&gt;srcfile(README.md)&lt;/code&gt;: /home/louis/projets/ikiwiki/rpcbug/README.md&lt;/p&gt;
-> 
-> &lt;/section&gt;
-> 
-> 
-> 
-> 
-> 
-> 
-> 
-> &lt;/div&gt;
-> 
-> &lt;footer id=&quot;footer&quot; class=&quot;pagefooter&quot; role=&quot;contentinfo&quot;&gt;
-> 
-> &lt;nav id=&quot;pageinfo&quot;&gt;
-> 
-> 
-> 
-> 
-> 
-> 
-> &lt;nav id=&quot;backlinks&quot;&gt;
-> Links:
-> 
-> &lt;a href=&quot;../&quot;&gt;index&lt;/a&gt;
-> 
-> 
-> &lt;/nav&gt;
-> 
-> 
-> 
-> 
-> 
-> 
-> &lt;div class=&quot;pagedate&quot;&gt;
-> Last edited &lt;time datetime=&quot;2015-06-28T18:16:57Z&quot;&gt;28/06/2015&lt;/time&gt;
-> &lt;!-- Created &lt;time datetime=&quot;2015-06-15T01:35:13Z&quot; pubdate=&quot;pubdate&quot;&gt;15/06/2015&lt;/time&gt; --&gt;
-> &lt;/div&gt;
-> 
-> &lt;/nav&gt;
-> 
-> 
-> &lt;!-- from RPC Bug --&gt;
-> &lt;/footer&gt;
-> 
-> &lt;/article&gt;

(Diff truncated)
RPC bug: using built-in debug mode instead of my own debug functions
Second time in less than a week than I rewrite something that already
exists. I should sleep or think more...
diff --git a/doc/bugs/Error_with_external_plugins.mdwn b/doc/bugs/Error_with_external_plugins.mdwn
index 739af40..ae7592d 100644
--- a/doc/bugs/Error_with_external_plugins.mdwn
+++ b/doc/bugs/Error_with_external_plugins.mdwn
@@ -36,11 +36,11 @@ I hope someone will understand the problem better than I do, because I have no i
 Regards,    
 -- [[Louis|spalax]]
 
-> I wrote a plugin to monitor what is exchanged between the plugin and Ikiwiki. I ran this with [this version](https://github.com/paternal/ikiwiki-rpcbug/tree/b4ba34a8edd1b97989965af69eddac050bc0a8ba) of my minimal bug example.
+> I used the debug feature provided with `proxy.py` and rebuilt the wiki. I ran this with [this version](https://github.com/paternal/ikiwiki-rpcbug/tree/b4ba34a8edd1b97989965af69eddac050bc0a8ba) of my minimal bug example.
 > 
 > * The bug happens in function [preprocess](https://github.com/paternal/ikiwiki-rpcbug/blob/b4ba34a8edd1b97989965af69eddac050bc0a8ba/plugins/rpcbug#L12-17) (in call to [srcfile](https://github.com/paternal/ikiwiki-rpcbug/blob/b4ba34a8edd1b97989965af69eddac050bc0a8ba/plugins/rpcbug#L15), to be more precise).
 > * The directive causing the bug is called on page [foo](https://github.com/paternal/ikiwiki-rpcbug/blob/b4ba34a8edd1b97989965af69eddac050bc0a8ba/foo.mdwn).
-> * Communication between Ikiwiki and the plugin is [[here|tee]].
+> * Communication between Ikiwiki and the plugin is [[here|debug]].
 > * The resulting HTML (for page `foo`) looks like:
 > 
 > > \[[!rpcbug Erreur: internal error: foo cannot be found in /home/louis/projets/ikiwiki/rpcbug or underlay]]
diff --git a/doc/bugs/Error_with_external_plugins/debug.mdwn b/doc/bugs/Error_with_external_plugins/debug.mdwn
new file mode 100644
index 0000000..2a8b95b
--- /dev/null
+++ b/doc/bugs/Error_with_external_plugins/debug.mdwn
@@ -0,0 +1,7737 @@
+Trace of the `proxy.py` package during ikiwiki build.
+
+> rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki...
+> rpcbug:handle_rpc:199: received procedure call from ikiwiki: [<?xml version="1.0" encoding="utf-8"?><methodCall><methodName>import</methodName><params></params></methodCall>
+> ]
+> rpcbug:_importme:330: importing...
+> rpcbug:_importme:333: hooking rpcbug/getsetup into getsetup chain...
+> rpcbug:send_rpc:161: calling ikiwiki procedure `hook': ["<?xml version='1.0'?>\n<methodCall>\n<methodName>hook</methodName>\n<params>\n<param>\n<value><string>call</string></value>\n</param>\n<param>\n<value><string>getsetup</string></value>\n</param>\n<param>\n<value><string>type</string></value>\n</param>\n<param>\n<value><string>getsetup</string></value>\n</param>\n<param>\n<value><string>id</string></value>\n</param>\n<param>\n<value><string>rpcbug</string></value>\n</param>\n<param>\n<value><string>last</string></value>\n</param>\n<param>\n<value><boolean>0</boolean></value>\n</param>\n</params>\n</methodCall>\n"]
+> rpcbug:send_rpc:169: reading response from ikiwiki...
+> rpcbug:send_rpc:178: read response to procedure hook from ikiwiki: ['<?xml version="1.0" encoding="utf-8"?><methodResponse><params><param><value><string>1</string></value></param></params></methodResponse>\n']
+> rpcbug:send_rpc:187: parsed data from response to procedure hook: ['1']
+> rpcbug:_importme:333: hooking rpcbug/preprocess into preprocess chain...
+> rpcbug:send_rpc:161: calling ikiwiki procedure `hook': ["<?xml version='1.0'?>\n<methodCall>\n<methodName>hook</methodName>\n<params>\n<param>\n<value><string>call</string></value>\n</param>\n<param>\n<value><string>preprocess</string></value>\n</param>\n<param>\n<value><string>type</string></value>\n</param>\n<param>\n<value><string>preprocess</string></value>\n</param>\n<param>\n<value><string>id</string></value>\n</param>\n<param>\n<value><string>rpcbug</string></value>\n</param>\n<param>\n<value><string>last</string></value>\n</param>\n<param>\n<value><boolean>0</boolean></value>\n</param>\n</params>\n</methodCall>\n"]
+> rpcbug:send_rpc:169: reading response from ikiwiki...
+> rpcbug:send_rpc:178: read response to procedure hook from ikiwiki: ['<?xml version="1.0" encoding="utf-8"?><methodResponse><params><param><value><string>1</string></value></param></params></methodResponse>\n']
+> rpcbug:send_rpc:187: parsed data from response to procedure hook: ['1']
+> rpcbug:_importme:333: hooking rpcbug/format into format chain...
+> rpcbug:send_rpc:161: calling ikiwiki procedure `hook': ["<?xml version='1.0'?>\n<methodCall>\n<methodName>hook</methodName>\n<params>\n<param>\n<value><string>call</string></value>\n</param>\n<param>\n<value><string>format</string></value>\n</param>\n<param>\n<value><string>type</string></value>\n</param>\n<param>\n<value><string>format</string></value>\n</param>\n<param>\n<value><string>id</string></value>\n</param>\n<param>\n<value><string>rpcbug</string></value>\n</param>\n<param>\n<value><string>last</string></value>\n</param>\n<param>\n<value><boolean>0</boolean></value>\n</param>\n</params>\n</methodCall>\n"]
+> rpcbug:send_rpc:169: reading response from ikiwiki...
+> rpcbug:send_rpc:178: read response to procedure hook from ikiwiki: ['<?xml version="1.0" encoding="utf-8"?><methodResponse><params><param><value><string>1</string></value></param></params></methodResponse>\n']
+> rpcbug:send_rpc:187: parsed data from response to procedure hook: ['1']
+> rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [<?xml version='1.0'?>
+> <methodResponse>
+> <params>
+> <param>
+> <value><struct>
+> <member>
+> <name>null</name>
+> <value><string></string></value>
+> </member>
+> </struct></value>
+> </param>
+> </params>
+> </methodResponse>
+> ]
+> rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki...
+> Omission du fichier au nom incorrect wiki.setup~
+> Omission du fichier au nom incorrect index.mdwn~
+> Omission du fichier au nom incorrect README.md~
+> Omission du fichier au nom incorrect foo.mdwn~
+> Omission du fichier au nom incorrect plugins/evariste~
+> Omission du fichier au nom incorrect plugins/rpcbug~
+> rpcbug:handle_rpc:199: received procedure call from ikiwiki: [<?xml version="1.0" encoding="utf-8"?><methodCall><methodName>preprocess</methodName><params><param><value><string>page</string></value></param><param><value><string>foo</string></value></param><param><value><string>destpage</string></value></param><param><value><string>foo</string></value></param><param><value><string>preview</string></value></param><param><value><string>0</string></value></param></params></methodCall>
+> ]
+> rpcbug:send_rpc:161: calling ikiwiki procedure `srcfile': ["<?xml version='1.0'?>\n<methodCall>\n<methodName>srcfile</methodName>\n<params>\n<param>\n<value><string>foo</string></value>\n</param>\n</params>\n</methodCall>\n"]
+> rpcbug:send_rpc:169: reading response from ikiwiki...
+> rpcbug:send_rpc:178: read response to procedure srcfile from ikiwiki: ['<?xml version="1.0" encoding="utf-8"?><methodCall><methodName>preprocess</methodName><params><param><value><string>page</string></value></param><param><value><string>foo</string></value></param><param><value><string>destpage</string></value></param><param><value><string>foo</string></value></param><param><value><string>preview</string></value></param><param><value><string>0</string></value></param></params></methodCall>\n']
+> rpcbug:send_rpc:187: parsed data from response to procedure srcfile: ['page']
+> rpcbug:send_rpc:161: calling ikiwiki procedure `srcfile': ["<?xml version='1.0'?>\n<methodCall>\n<methodName>srcfile</methodName>\n<params>\n<param>\n<value><string>README.md</string></value>\n</param>\n</params>\n</methodCall>\n"]
+> rpcbug:send_rpc:169: reading response from ikiwiki...
+> rpcbug:send_rpc:178: read response to procedure srcfile from ikiwiki: ['<?xml version="1.0" encoding="utf-8"?><methodResponse><params><param><value><string>/home/louis/projets/ikiwiki/rpcbug/README.md</string></value></param></params></methodResponse>\n']
+> rpcbug:send_rpc:187: parsed data from response to procedure srcfile: ['/home/louis/projets/ikiwiki/rpcbug/README.md']
+> rpcbug:hook_proxy:262: preprocess hook `preprocess' returned: ['<br/>* Calling `srcfile(foo)`: page<br/>* Calling `srcfile(README.md)`: /home/louis/projets/ikiwiki/rpcbug/README.md']
+> rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [<?xml version='1.0'?>
+> <methodResponse>
+> <params>
+> <param>
+> <value><string>&lt;br/&gt;* Calling `srcfile(foo)`: page&lt;br/&gt;* Calling `srcfile(README.md)`: /home/louis/projets/ikiwiki/rpcbug/README.md</string></value>
+> </param>
+> </params>
+> </methodResponse>
+> ]
+> rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki...
+> rpcbug:handle_rpc:199: received procedure call from ikiwiki: [<?xml version="1.0" encoding="utf-8"?><methodCall><methodName>format</methodName><params><param><value><string>page</string></value></param><param><value><string>foo</string></value></param><param><value><string>content</string></value></param><param><value><string>&lt;!DOCTYPE html&gt;
+> &lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
+> &lt;head&gt;
+> 
+> &lt;meta charset=&quot;utf-8&quot; /&gt;
+> &lt;title&gt;foo&lt;/title&gt;
+> &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot; /&gt;
+> 
+> &lt;link rel=&quot;stylesheet&quot; href=&quot;../style.css&quot; type=&quot;text/css&quot; /&gt;
+> 
+> &lt;link rel=&quot;stylesheet&quot; href=&quot;../local.css&quot; type=&quot;text/css&quot; /&gt;
+> 
+> 
+> 
+> 
+> &lt;link rel=&quot;alternate&quot; type=&quot;application/x-wiki&quot; title=&quot;Edit this page&quot; href=&quot;/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;amp;page=foo&quot; /&gt;
+> 
+> 
+> 
+> 
+> 
+> 
+> 
+> &lt;/head&gt;
+> &lt;body&gt;
+> 
+> &lt;article class=&quot;page&quot;&gt;
+> 
+> &lt;section class=&quot;pageheader&quot;&gt;
+> &lt;header class=&quot;header&quot;&gt;
+> &lt;span&gt;
+> &lt;span class=&quot;parentlinks&quot;&gt;
+> 
+> &lt;a href=&quot;../&quot;&gt;RPC Bug&lt;/a&gt;/ 
+> 
+> &lt;/span&gt;
+> &lt;span class=&quot;title&quot;&gt;
+> foo
+> 
+> &lt;/span&gt;
+> &lt;/span&gt;
+> 
+> 
+> 
+> &lt;/header&gt;
+> 
+> 
+> &lt;nav class=&quot;actions&quot;&gt;
+> &lt;ul&gt;
+> 
+> &lt;li&gt;&lt;a href=&quot;/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;amp;page=foo&quot; rel=&quot;nofollow&quot;&gt;Edit&lt;/a&gt;&lt;/li&gt;
+> 
+> 
+> &lt;li&gt;&lt;a href=&quot;../recentchanges/&quot;&gt;RecentChanges&lt;/a&gt;&lt;/li&gt;
+> 
+> 
+> 
+> 
+> &lt;li&gt;&lt;a href=&quot;/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs&quot;&gt;Preferences&lt;/a&gt;&lt;/li&gt;
+> 
+> 
+> 
+> 
+> 
+> &lt;/ul&gt;
+> &lt;/nav&gt;
+> 
+> 
+> 
+> 
+> 
+> 
+> 
+> 
+> &lt;/section&gt;
+> 
+> 
+> 
+> 
+> 
+> &lt;div id=&quot;pagebody&quot;&gt;
+> 
+> &lt;section id=&quot;content&quot; role=&quot;main&quot;&gt;
+> &lt;p&gt;[[!rpcbug &lt;span class=&quot;error&quot;&gt;Erreur: internal error: foo cannot be found in /home/louis/projets/ikiwiki/rpcbug or underlay&lt;/span&gt;]]&lt;/p&gt;
+> 
+> &lt;p&gt;&lt;br /&gt;&lt;em&gt; Calling &lt;code&gt;srcfile(foo)&lt;/code&gt;: page&lt;br /&gt;&lt;/em&gt; Calling &lt;code&gt;srcfile(README.md)&lt;/code&gt;: /home/louis/projets/ikiwiki/rpcbug/README.md&lt;/p&gt;
+> 
+> &lt;/section&gt;
+> 
+> 
+> 
+> 
+> 
+> 
+> 
+> &lt;/div&gt;
+> 
+> &lt;footer id=&quot;footer&quot; class=&quot;pagefooter&quot; role=&quot;contentinfo&quot;&gt;
+> 
+> &lt;nav id=&quot;pageinfo&quot;&gt;
+> 
+> 
+> 
+> 
+> 
+> 
+> &lt;nav id=&quot;backlinks&quot;&gt;
+> Links:
+> 
+> &lt;a href=&quot;../&quot;&gt;index&lt;/a&gt;
+> 
+> 
+> &lt;/nav&gt;

(Diff truncated)
diff --git a/doc/bugs/Uploading_attachment_fails.mdwn b/doc/bugs/Uploading_attachment_fails.mdwn
index 9302944..bce80c3 100644
--- a/doc/bugs/Uploading_attachment_fails.mdwn
+++ b/doc/bugs/Uploading_attachment_fails.mdwn
@@ -1,4 +1,4 @@
-I just upgraded from ubuntu 14.04 to ubuntu 15.04. Since then uploading attachments using the attachment plugin doesn't work anymore in ikiwiki. Any idea what may be wrong here and how to fix it?
+I just upgraded from ubuntu 14.04 to ubuntu 15.04. Since then uploading attachments using the attachment plugin doesn't work anymore in ikiwiki. It prints a "failed!" message. Any idea what may be wrong here and how to fix it?
 
 ikiwiki version 3.20141016.2
 

diff --git a/doc/bugs/Uploading_attachment_fails.mdwn b/doc/bugs/Uploading_attachment_fails.mdwn
new file mode 100644
index 0000000..9302944
--- /dev/null
+++ b/doc/bugs/Uploading_attachment_fails.mdwn
@@ -0,0 +1,9 @@
+I just upgraded from ubuntu 14.04 to ubuntu 15.04. Since then uploading attachments using the attachment plugin doesn't work anymore in ikiwiki. Any idea what may be wrong here and how to fix it?
+
+ikiwiki version 3.20141016.2
+
+`/var/log/apache2/error.log`
+
+gives this:
+
+Died at `/usr/share/perl5/IkiWiki/CGI.pm line 497`.

Added a comment
diff --git a/doc/forum/Moving_everything_so_far_into_a_folder/comment_2_0a6ebc8364239dc8c5760eb2ca290ae9._comment b/doc/forum/Moving_everything_so_far_into_a_folder/comment_2_0a6ebc8364239dc8c5760eb2ca290ae9._comment
new file mode 100644
index 0000000..cad6aa5
--- /dev/null
+++ b/doc/forum/Moving_everything_so_far_into_a_folder/comment_2_0a6ebc8364239dc8c5760eb2ca290ae9._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="openmedi"
+ subject="comment 2"
+ date="2015-06-30T09:50:31Z"
+ content="""
+This would work, but there's another problem (of convenience): Since the notes directory is my working directory for notes, I would like to move the notes (this the main reason for trying to do this), so I don't have to see them all the time. I would like to be able to refer to the files in the future, without having to see them. But, I guess, this is not so easily done. But if someone has an idea for a \"native\" ikiwiki solution I'd be very grateful.
+"""]]

diff --git a/doc/bugs/Error_with_external_plugins.mdwn b/doc/bugs/Error_with_external_plugins.mdwn
index 35245ac..739af40 100644
--- a/doc/bugs/Error_with_external_plugins.mdwn
+++ b/doc/bugs/Error_with_external_plugins.mdwn
@@ -76,8 +76,7 @@ Regards,
 >> 
 >> Thus, I think that the bug is in the `proxy.py` python file. On receiving a
 >> `methodCall` (instead of a `methodResponse`) as an answer to a `methodCall`
->> request, `proxy.py` should notice the type of request, and raise an exception,
->> to exit any pending function execution, and call the requested function.
+>> request, `proxy.py` should notice the type of request, and call the requested function.
 >> 
 >> I know Python better than I know Perl, so I can try to fix this.
 >> 

diff --git a/doc/bugs/Error_with_external_plugins.mdwn b/doc/bugs/Error_with_external_plugins.mdwn
index f287369..35245ac 100644
--- a/doc/bugs/Error_with_external_plugins.mdwn
+++ b/doc/bugs/Error_with_external_plugins.mdwn
@@ -62,3 +62,23 @@ Regards,
 > the plugin that something went wrong.
 > 
 > -- [[Louis|spalax]]
+
+>> Update: This can actually be a [proxy](https://github.com/joeyh/ikiwiki/blob/9c910a76e70111c50ba8cbb518277f809fc1d09d/plugins/proxy.py) error. Indeed:
+>> 
+>> - Ikiwiki sends a `methodCall` message to the plugin (which is a call to the
+>>   `preprocess` function);
+>> - the plugin sends a `methodCall` message to ikiwiki (which is a call to the
+>>   `srcfile` function);
+>> - Ikiwiki answers with a `methodCall` message:
+>>   - Ikiwiki answers this because the function call failed, and it is already
+>>     processing the next directive;
+>>   - the plugin thinks that it is its request answer, and misinterprets it.
+>> 
+>> Thus, I think that the bug is in the `proxy.py` python file. On receiving a
+>> `methodCall` (instead of a `methodResponse`) as an answer to a `methodCall`
+>> request, `proxy.py` should notice the type of request, and raise an exception,
+>> to exit any pending function execution, and call the requested function.
+>> 
+>> I know Python better than I know Perl, so I can try to fix this.
+>> 
+>> -- [[Louis|spalax]]

Fix recommendation about rel attribute for style sheets
diff --git a/doc/bugs/meta_plugin_should_not_add_alternate_stylesheets_and_title_by_default.mdwn b/doc/bugs/meta_plugin_should_not_add_alternate_stylesheets_and_title_by_default.mdwn
index 11dbfee..314597c 100644
--- a/doc/bugs/meta_plugin_should_not_add_alternate_stylesheets_and_title_by_default.mdwn
+++ b/doc/bugs/meta_plugin_should_not_add_alternate_stylesheets_and_title_by_default.mdwn
@@ -28,7 +28,7 @@ I think that to match better the description of that feature, and to be
 easier to comprehend in its default setting, the meta plugin should by
 default:
 
-  - Set `rel="alternate stylesheet"`.
+  - Set `rel="stylesheet"`.
   - Not set any `title`.
 
 If we agree on this proposal, I'm willing to provide a patch.

Escaping directives
diff --git a/doc/bugs/Error_with_external_plugins/tee.mdwn b/doc/bugs/Error_with_external_plugins/tee.mdwn
index 460b64f..3361453 100644
--- a/doc/bugs/Error_with_external_plugins/tee.mdwn
+++ b/doc/bugs/Error_with_external_plugins/tee.mdwn
@@ -226,7 +226,7 @@ starting with `<-` are transmitted from the plugin to Ikiwiki.
     -> &lt;div id=&quot;pagebody&quot;&gt;
     -> 
     -> &lt;section id=&quot;content&quot; role=&quot;main&quot;&gt;
-    -> &lt;p&gt;[[!rpcbug &lt;span class=&quot;error&quot;&gt;Erreur: internal error: foo cannot be found in /home/louis/projets/ikiwiki/rpcbug or underlay&lt;/span&gt;]]&lt;/p&gt;
+    -> &lt;p&gt;\[[!rpcbug &lt;span class=&quot;error&quot;&gt;Erreur: internal error: foo cannot be found in /home/louis/projets/ikiwiki/rpcbug or underlay&lt;/span&gt;]]&lt;/p&gt;
     -> 
     -> &lt;p&gt;&lt;br /&gt;&lt;em&gt; Calling &lt;code&gt;srcfile(foo)&lt;/code&gt;: page&lt;br /&gt;&lt;/em&gt; Calling &lt;code&gt;srcfile(README.md)&lt;/code&gt;: /home/louis/projets/ikiwiki/rpcbug/README.md&lt;/p&gt;
     -> 
@@ -365,7 +365,7 @@ starting with `<-` are transmitted from the plugin to Ikiwiki.
     <- &lt;div id="pagebody"&gt;
     <- 
     <- &lt;section id="content" role="main"&gt;
-    <- &lt;p&gt;[[!rpcbug &lt;span class="error"&gt;Erreur: internal error: foo cannot be found in /home/louis/projets/ikiwiki/rpcbug or underlay&lt;/span&gt;]]&lt;/p&gt;
+    <- &lt;p&gt;\[[!rpcbug &lt;span class="error"&gt;Erreur: internal error: foo cannot be found in /home/louis/projets/ikiwiki/rpcbug or underlay&lt;/span&gt;]]&lt;/p&gt;
     <- 
     <- &lt;p&gt;&lt;br /&gt;&lt;em&gt; Calling &lt;code&gt;srcfile(foo)&lt;/code&gt;: page&lt;br /&gt;&lt;/em&gt; Calling &lt;code&gt;srcfile(README.md)&lt;/code&gt;: /home/louis/projets/ikiwiki/rpcbug/README.md&lt;/p&gt;
     <- 
@@ -2580,80 +2580,80 @@ starting with `<-` are transmitted from the plugin to Ikiwiki.
     -> 
     -> &lt;p&gt;Some examples of using shortcuts include:&lt;/p&gt;
     -> 
-    -> &lt;pre&gt;&lt;code&gt;[[!google  foo]]
-    -> [[!wikipedia  War_of_1812]]
-    -> [[!debbug  12345]]
-    -> Check the [[!google  ikiwiki desc=&quot;google search for %s&quot;]].
+    -> &lt;pre&gt;&lt;code&gt;\[[!google  foo]]
+    -> \[[!wikipedia  War_of_1812]]
+    -> \[[!debbug  12345]]
+    -> Check the \[[!google  ikiwiki desc=&quot;google search for %s&quot;]].
     -> &lt;/code&gt;&lt;/pre&gt;
     -> 
     -> &lt;p&gt;This page controls what shortcut links the wiki supports.&lt;/p&gt;
     -> 
     -> &lt;ul&gt;
-    -> &lt;li&gt;[[!shortcut  name=google url=&quot;https://encrypted.google.com/search?q=%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=archive url=&quot;http://web.archive.org/*/%S&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=gmap url=&quot;https://maps.google.com/maps?q=%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=gmsg url=&quot;https://groups.google.com/groups?selm=%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=wikipedia url=&quot;https://en.wikipedia.org/wiki/%W&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=wikitravel url=&quot;https://wikitravel.org/en/%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=wiktionary url=&quot;https://en.wiktionary.org/wiki/%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=debbug url=&quot;http://bugs.debian.org/%S&quot; desc=&quot;Debian bug #%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=deblist url=&quot;https://lists.debian.org/debian-%s&quot; desc=&quot;debian-%s@lists.debian.org&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=debpkg url=&quot;http://packages.debian.org/%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=debpkgsid url=&quot;http://packages.debian.org/sid/%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=debpts url=&quot;http://packages.qa.debian.org/%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=debmsg url=&quot;https://lists.debian.org/msgid-search/%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=debrt url=&quot;https://rt.debian.org/Ticket/Display.html?id=%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=debss url=&quot;http://snapshot.debian.org/package/%s/&quot;]]
+    -> &lt;li&gt;\[[!shortcut  name=google url=&quot;https://encrypted.google.com/search?q=%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=archive url=&quot;http://web.archive.org/*/%S&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=gmap url=&quot;https://maps.google.com/maps?q=%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=gmsg url=&quot;https://groups.google.com/groups?selm=%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=wikipedia url=&quot;https://en.wikipedia.org/wiki/%W&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=wikitravel url=&quot;https://wikitravel.org/en/%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=wiktionary url=&quot;https://en.wiktionary.org/wiki/%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=debbug url=&quot;http://bugs.debian.org/%S&quot; desc=&quot;Debian bug #%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=deblist url=&quot;https://lists.debian.org/debian-%s&quot; desc=&quot;debian-%s@lists.debian.org&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=debpkg url=&quot;http://packages.debian.org/%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=debpkgsid url=&quot;http://packages.debian.org/sid/%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=debpts url=&quot;http://packages.qa.debian.org/%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=debmsg url=&quot;https://lists.debian.org/msgid-search/%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=debrt url=&quot;https://rt.debian.org/Ticket/Display.html?id=%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=debss url=&quot;http://snapshot.debian.org/package/%s/&quot;]]
     -> 
     -> &lt;ul&gt;
-    -> &lt;li&gt;Usage: &lt;code&gt;[[!debss  package]]&lt;/code&gt; or &lt;code&gt;[[!debss  package/version]]&lt;/code&gt;.  See &lt;a href=&quot;http://snapshot.debian.org/&quot;&gt;http://snapshot.debian.org/&lt;/a&gt; for details.&lt;/li&gt;
+    -> &lt;li&gt;Usage: &lt;code&gt;\[[!debss  package]]&lt;/code&gt; or &lt;code&gt;\[[!debss  package/version]]&lt;/code&gt;.  See &lt;a href=&quot;http://snapshot.debian.org/&quot;&gt;http://snapshot.debian.org/&lt;/a&gt; for details.&lt;/li&gt;
     -> &lt;/ul&gt;
     -> &lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=debwiki url=&quot;https://wiki.debian.org/%S&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=fdobug url=&quot;https://bugs.freedesktop.org/show_bug.cgi?id=%s&quot; desc=&quot;freedesktop.org bug #%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=fdolist url=&quot;http://lists.freedesktop.org/mailman/listinfo/%s&quot; desc=&quot;%s@lists.freedesktop.org&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=gnomebug url=&quot;https://bugzilla.gnome.org/show_bug.cgi?id=%s&quot; desc=&quot;GNOME bug #%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=linuxbug url=&quot;https://bugzilla.kernel.org/show_bug.cgi?id=%s&quot; desc=&quot;Linux bug #%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=mozbug url=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=%s&quot; desc=&quot;Mozilla bug #%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=gnulist url=&quot;https://lists.gnu.org/mailman/listinfo/%s&quot; desc=&quot;%s@gnu.org&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=marcmsg url=&quot;http://marc.info/?i=%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=marclist url=&quot;http://marc.info/?l=%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=gmane url=&quot;http://dir.gmane.org/gmane.%s&quot; desc=&quot;gmane.%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=gmanemsg url=&quot;http://mid.gmane.org/%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=cpan url=&quot;http://search.cpan.org/search?mode=dist&amp;amp;query=%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=ctan url=&quot;http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=hoogle url=&quot;http://haskell.org/hoogle/?q=%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=iki url=&quot;http://ikiwiki.info/%S/&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=ljuser url=&quot;http://%s.livejournal.com/&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=rfc url=&quot;https://www.ietf.org/rfc/rfc%s.txt&quot; desc=&quot;RFC %s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=c2 url=&quot;http://c2.com/cgi/wiki?%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=meatballwiki url=&quot;http://www.usemod.com/cgi-bin/mb.pl?%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=emacswiki url=&quot;http://www.emacswiki.org/cgi-bin/wiki/%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=haskellwiki url=&quot;http://haskell.org/haskellwiki/%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=dict url=&quot;http://www.dict.org/bin/Dict?Form=Dict1&amp;amp;Strategy=&lt;em&gt;&amp;amp;Database=&lt;/em&gt;&amp;amp;Query=%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=imdb url=&quot;http://imdb.com/find?q=%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=gpg url=&quot;http://pgpkeys.mit.edu:11371/pks/lookup?op=vindex&amp;amp;exact=on&amp;amp;search=0x%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=perldoc url=&quot;http://perldoc.perl.org/search.html?q=%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=whois url=&quot;http://reports.internic.net/cgi/whois?whois_nic=%s&amp;amp;type=domain&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=cve url=&quot;https://cve.mitre.org/cgi-bin/cvename.cgi?name=%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=flickr url=&quot;https://secure.flickr.com/photos/%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=man url=&quot;http://manpages.debian.org/%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=ohloh url=&quot;https://www.ohloh.net/p/%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=cpanrt url=&quot;https://rt.cpan.org/Ticket/Display.html?id=%s&quot; desc=&quot;CPAN RT#%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=novellbug url=&quot;https://bugzilla.novell.com/show_bug.cgi?id=%s&quot; desc=&quot;bug %s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=ubupkg url=&quot;http://packages.ubuntu.com/%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=mozillazinekb url=&quot;http://kb.mozillazine.org/%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=freebsdwiki url=&quot;http://wiki.freebsd.org/%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=hackage url=&quot;http://hackage.haskell.org/package/%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=pkgsrc url=&quot;http://pkgsrc.se/%S&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=doi url=&quot;http://dx.doi.org/%s&quot; desc=&quot;doi:%s&quot;]]&lt;/li&gt;
-    -> &lt;li&gt;[[!shortcut  name=arxiv url=&quot;http://arxiv.org/abs/%s&quot; desc=&quot;arXiv:%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=debwiki url=&quot;https://wiki.debian.org/%S&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=fdobug url=&quot;https://bugs.freedesktop.org/show_bug.cgi?id=%s&quot; desc=&quot;freedesktop.org bug #%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=fdolist url=&quot;http://lists.freedesktop.org/mailman/listinfo/%s&quot; desc=&quot;%s@lists.freedesktop.org&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=gnomebug url=&quot;https://bugzilla.gnome.org/show_bug.cgi?id=%s&quot; desc=&quot;GNOME bug #%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=linuxbug url=&quot;https://bugzilla.kernel.org/show_bug.cgi?id=%s&quot; desc=&quot;Linux bug #%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=mozbug url=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=%s&quot; desc=&quot;Mozilla bug #%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=gnulist url=&quot;https://lists.gnu.org/mailman/listinfo/%s&quot; desc=&quot;%s@gnu.org&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=marcmsg url=&quot;http://marc.info/?i=%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=marclist url=&quot;http://marc.info/?l=%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=gmane url=&quot;http://dir.gmane.org/gmane.%s&quot; desc=&quot;gmane.%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=gmanemsg url=&quot;http://mid.gmane.org/%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=cpan url=&quot;http://search.cpan.org/search?mode=dist&amp;amp;query=%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=ctan url=&quot;http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=hoogle url=&quot;http://haskell.org/hoogle/?q=%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=iki url=&quot;http://ikiwiki.info/%S/&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=ljuser url=&quot;http://%s.livejournal.com/&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=rfc url=&quot;https://www.ietf.org/rfc/rfc%s.txt&quot; desc=&quot;RFC %s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=c2 url=&quot;http://c2.com/cgi/wiki?%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=meatballwiki url=&quot;http://www.usemod.com/cgi-bin/mb.pl?%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=emacswiki url=&quot;http://www.emacswiki.org/cgi-bin/wiki/%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=haskellwiki url=&quot;http://haskell.org/haskellwiki/%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=dict url=&quot;http://www.dict.org/bin/Dict?Form=Dict1&amp;amp;Strategy=&lt;em&gt;&amp;amp;Database=&lt;/em&gt;&amp;amp;Query=%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=imdb url=&quot;http://imdb.com/find?q=%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=gpg url=&quot;http://pgpkeys.mit.edu:11371/pks/lookup?op=vindex&amp;amp;exact=on&amp;amp;search=0x%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=perldoc url=&quot;http://perldoc.perl.org/search.html?q=%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=whois url=&quot;http://reports.internic.net/cgi/whois?whois_nic=%s&amp;amp;type=domain&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=cve url=&quot;https://cve.mitre.org/cgi-bin/cvename.cgi?name=%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=flickr url=&quot;https://secure.flickr.com/photos/%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=man url=&quot;http://manpages.debian.org/%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=ohloh url=&quot;https://www.ohloh.net/p/%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=cpanrt url=&quot;https://rt.cpan.org/Ticket/Display.html?id=%s&quot; desc=&quot;CPAN RT#%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=novellbug url=&quot;https://bugzilla.novell.com/show_bug.cgi?id=%s&quot; desc=&quot;bug %s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=ubupkg url=&quot;http://packages.ubuntu.com/%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=mozillazinekb url=&quot;http://kb.mozillazine.org/%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=freebsdwiki url=&quot;http://wiki.freebsd.org/%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=hackage url=&quot;http://hackage.haskell.org/package/%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=pkgsrc url=&quot;http://pkgsrc.se/%S&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=doi url=&quot;http://dx.doi.org/%s&quot; desc=&quot;doi:%s&quot;]]&lt;/li&gt;
+    -> &lt;li&gt;\[[!shortcut  name=arxiv url=&quot;http://arxiv.org/abs/%s&quot; desc=&quot;arXiv:%s&quot;]]&lt;/li&gt;
     -> &lt;/ul&gt;
     -> 
     -> 
     -> &lt;p&gt;To add a new shortcut, use the &lt;code&gt;shortcut&lt;/code&gt;
     -> &lt;a href=&quot;../ikiwiki/directive/&quot;&gt;directive&lt;/a&gt;. In the url, &quot;%s&quot; is replaced with the
-    -> text passed to the named shortcut, after [[!wikipedia  url_encoding]]
+    -> text passed to the named shortcut, after \[[!wikipedia  url_encoding]]
     -> it, and &apos;%S&apos; is replaced with the raw, non-encoded text.
     -> Additionally, &lt;code&gt;%W&lt;/code&gt; is replaced with the text encoded just right for
     -> Wikipedia. The optional &lt;code&gt;desc&lt;/code&gt; parameter controls the description of
@@ -2808,80 +2808,80 @@ starting with `<-` are transmitted from the plugin to Ikiwiki.
     <- 
     <- &lt;p&gt;Some examples of using shortcuts include:&lt;/p&gt;
     <- 
-    <- &lt;pre&gt;&lt;code&gt;[[!google  foo]]
-    <- [[!wikipedia  War_of_1812]]
-    <- [[!debbug  12345]]
-    <- Check the [[!google  ikiwiki desc="google search for %s"]].
+    <- &lt;pre&gt;&lt;code&gt;\[[!google  foo]]
+    <- \[[!wikipedia  War_of_1812]]
+    <- \[[!debbug  12345]]
+    <- Check the \[[!google  ikiwiki desc="google search for %s"]].
     <- &lt;/code&gt;&lt;/pre&gt;
     <- 
     <- &lt;p&gt;This page controls what shortcut links the wiki supports.&lt;/p&gt;
     <- 
     <- &lt;ul&gt;
-    <- &lt;li&gt;[[!shortcut  name=google url="https://encrypted.google.com/search?q=%s"]]&lt;/li&gt;
-    <- &lt;li&gt;[[!shortcut  name=archive url="http://web.archive.org/*/%S"]]&lt;/li&gt;
-    <- &lt;li&gt;[[!shortcut  name=gmap url="https://maps.google.com/maps?q=%s"]]&lt;/li&gt;
-    <- &lt;li&gt;[[!shortcut  name=gmsg url="https://groups.google.com/groups?selm=%s"]]&lt;/li&gt;
-    <- &lt;li&gt;[[!shortcut  name=wikipedia url="https://en.wikipedia.org/wiki/%W"]]&lt;/li&gt;
-    <- &lt;li&gt;[[!shortcut  name=wikitravel url="https://wikitravel.org/en/%s"]]&lt;/li&gt;
-    <- &lt;li&gt;[[!shortcut  name=wiktionary url="https://en.wiktionary.org/wiki/%s"]]&lt;/li&gt;
-    <- &lt;li&gt;[[!shortcut  name=debbug url="http://bugs.debian.org/%S" desc="Debian bug #%s"]]&lt;/li&gt;
-    <- &lt;li&gt;[[!shortcut  name=deblist url="https://lists.debian.org/debian-%s" desc="debian-%s@lists.debian.org"]]&lt;/li&gt;
-    <- &lt;li&gt;[[!shortcut  name=debpkg url="http://packages.debian.org/%s"]]&lt;/li&gt;
-    <- &lt;li&gt;[[!shortcut  name=debpkgsid url="http://packages.debian.org/sid/%s"]]&lt;/li&gt;
-    <- &lt;li&gt;[[!shortcut  name=debpts url="http://packages.qa.debian.org/%s"]]&lt;/li&gt;
-    <- &lt;li&gt;[[!shortcut  name=debmsg url="https://lists.debian.org/msgid-search/%s"]]&lt;/li&gt;
-    <- &lt;li&gt;[[!shortcut  name=debrt url="https://rt.debian.org/Ticket/Display.html?id=%s"]]&lt;/li&gt;
-    <- &lt;li&gt;[[!shortcut  name=debss url="http://snapshot.debian.org/package/%s/"]]
+    <- &lt;li&gt;\[[!shortcut  name=google url="https://encrypted.google.com/search?q=%s"]]&lt;/li&gt;
+    <- &lt;li&gt;\[[!shortcut  name=archive url="http://web.archive.org/*/%S"]]&lt;/li&gt;
+    <- &lt;li&gt;\[[!shortcut  name=gmap url="https://maps.google.com/maps?q=%s"]]&lt;/li&gt;
+    <- &lt;li&gt;\[[!shortcut  name=gmsg url="https://groups.google.com/groups?selm=%s"]]&lt;/li&gt;
+    <- &lt;li&gt;\[[!shortcut  name=wikipedia url="https://en.wikipedia.org/wiki/%W"]]&lt;/li&gt;

(Diff truncated)
More info about the (possible) bug in the external plugin (RPC communication)
diff --git a/doc/bugs/Error_with_external_plugins.mdwn b/doc/bugs/Error_with_external_plugins.mdwn
index 06323b7..f287369 100644
--- a/doc/bugs/Error_with_external_plugins.mdwn
+++ b/doc/bugs/Error_with_external_plugins.mdwn
@@ -35,3 +35,30 @@ I hope someone will understand the problem better than I do, because I have no i
 
 Regards,    
 -- [[Louis|spalax]]
+
+> I wrote a plugin to monitor what is exchanged between the plugin and Ikiwiki. I ran this with [this version](https://github.com/paternal/ikiwiki-rpcbug/tree/b4ba34a8edd1b97989965af69eddac050bc0a8ba) of my minimal bug example.
+> 
+> * The bug happens in function [preprocess](https://github.com/paternal/ikiwiki-rpcbug/blob/b4ba34a8edd1b97989965af69eddac050bc0a8ba/plugins/rpcbug#L12-17) (in call to [srcfile](https://github.com/paternal/ikiwiki-rpcbug/blob/b4ba34a8edd1b97989965af69eddac050bc0a8ba/plugins/rpcbug#L15), to be more precise).
+> * The directive causing the bug is called on page [foo](https://github.com/paternal/ikiwiki-rpcbug/blob/b4ba34a8edd1b97989965af69eddac050bc0a8ba/foo.mdwn).
+> * Communication between Ikiwiki and the plugin is [[here|tee]].
+> * The resulting HTML (for page `foo`) looks like:
+> 
+> > \[[!rpcbug Erreur: internal error: foo cannot be found in /home/louis/projets/ikiwiki/rpcbug or underlay]]
+> >
+> >
+> > Calling srcfile(foo): page    
+> > Calling srcfile(README.md): /home/louis/projets/ikiwiki/rpcbug/README.md
+> 
+> My analysis:
+> 
+> * The call to `srcfile(foo)` fails (because Ikiwiki thinks that page `foo` does not exist).
+> * Ikiwiki thinks that processing of the directive is finished, whereas the plugin still waits for the answer of Ikiwiki.
+> * Ikiwiki asks the plugin to render a new directive, but the plugin interprets the request as the return value for its previous request. Thus, the plugin thinks that `srcfile(foo)` is `page` (this `page` being a misinterpretation of the Ikiwiki request).
+> 
+> So, I think that this might be an error in the
+> [`rpc_call`](https://github.com/joeyh/ikiwiki/blob/9476e2ac7ad2f53643fa2fca6ba35fcc55ab058e/IkiWiki/Plugin/external.pm#L46-147)
+> function of the `external` plugin: when the called method fails, it should
+> return something (or raise an exception, if this is possible in RPC) to notify
+> the plugin that something went wrong.
+> 
+> -- [[Louis|spalax]]
diff --git a/doc/bugs/Error_with_external_plugins/tee.mdwn b/doc/bugs/Error_with_external_plugins/tee.mdwn
new file mode 100644
index 0000000..460b64f
--- /dev/null
+++ b/doc/bugs/Error_with_external_plugins/tee.mdwn
@@ -0,0 +1,7734 @@
+Lines starting with `->` are lines transmitted by Ikiwiki to the plugin; lines
+starting with `<-` are transmitted from the plugin to Ikiwiki.
+
+    -> <?xml version="1.0" encoding="utf-8"?><methodCall><methodName>import</methodName><params></params></methodCall>
+    <- <?xml version='1.0'?>
+    <- <methodCall>
+    <- <methodName>hook</methodName>
+    <- <params>
+    <- <param>
+    <- <value><string>last</string></value>
+    <- </param>
+    <- <param>
+    <- <value><boolean>0</boolean></value>
+    <- </param>
+    <- <param>
+    <- <value><string>type</string></value>
+    <- </param>
+    <- <param>
+    <- <value><string>getsetup</string></value>
+    <- </param>
+    <- <param>
+    <- <value><string>id</string></value>
+    <- </param>
+    <- <param>
+    <- <value><string>rpcbug</string></value>
+    <- </param>
+    <- <param>
+    <- <value><string>call</string></value>
+    <- </param>
+    <- <param>
+    <- <value><string>getsetup</string></value>
+    <- </param>
+    <- </params>
+    <- </methodCall>
+    -> <?xml version="1.0" encoding="utf-8"?><methodResponse><params><param><value><string>1</string></value></param></params></methodResponse>
+    <- <?xml version='1.0'?>
+    <- <methodCall>
+    <- <methodName>hook</methodName>
+    <- <params>
+    <- <param>
+    <- <value><string>last</string></value>
+    <- </param>
+    <- <param>
+    <- <value><boolean>0</boolean></value>
+    <- </param>
+    <- <param>
+    <- <value><string>type</string></value>
+    <- </param>
+    <- <param>
+    <- <value><string>preprocess</string></value>
+    <- </param>
+    <- <param>
+    <- <value><string>id</string></value>
+    <- </param>
+    <- <param>
+    <- <value><string>rpcbug</string></value>
+    <- </param>
+    <- <param>
+    <- <value><string>call</string></value>
+    <- </param>
+    <- <param>
+    <- <value><string>preprocess</string></value>
+    <- </param>
+    <- </params>
+    <- </methodCall>
+    -> <?xml version="1.0" encoding="utf-8"?><methodResponse><params><param><value><string>1</string></value></param></params></methodResponse>
+    <- <?xml version='1.0'?>
+    <- <methodCall>
+    <- <methodName>hook</methodName>
+    <- <params>
+    <- <param>
+    <- <value><string>last</string></value>
+    <- </param>
+    <- <param>
+    <- <value><boolean>0</boolean></value>
+    <- </param>
+    <- <param>
+    <- <value><string>type</string></value>
+    <- </param>
+    <- <param>
+    <- <value><string>format</string></value>
+    <- </param>
+    <- <param>
+    <- <value><string>id</string></value>
+    <- </param>
+    <- <param>
+    <- <value><string>rpcbug</string></value>
+    <- </param>
+    <- <param>
+    <- <value><string>call</string></value>
+    <- </param>
+    <- <param>
+    <- <value><string>format</string></value>
+    <- </param>
+    <- </params>
+    <- </methodCall>
+    -> <?xml version="1.0" encoding="utf-8"?><methodResponse><params><param><value><string>1</string></value></param></params></methodResponse>
+    <- <?xml version='1.0'?>
+    <- <methodResponse>
+    <- <params>
+    <- <param>
+    <- <value><struct>
+    <- <member>
+    <- <name>null</name>
+    <- <value><string></string></value>
+    <- </member>
+    <- </struct></value>
+    <- </param>
+    <- </params>
+    <- </methodResponse>
+    Omission du fichier au nom incorrect wiki.setup~
+    Omission du fichier au nom incorrect index.mdwn~
+    Omission du fichier au nom incorrect README.md~
+    Omission du fichier au nom incorrect foo.mdwn~
+    Omission du fichier au nom incorrect plugins/evariste~
+    Omission du fichier au nom incorrect plugins/rpcbug~
+    -> <?xml version="1.0" encoding="utf-8"?><methodCall><methodName>preprocess</methodName><params><param><value><string>page</string></value></param><param><value><string>foo</string></value></param><param><value><string>destpage</string></value></param><param><value><string>foo</string></value></param><param><value><string>preview</string></value></param><param><value><string>0</string></value></param></params></methodCall>
+    <- <?xml version='1.0'?>
+    <- <methodCall>
+    <- <methodName>srcfile</methodName>
+    <- <params>
+    <- <param>
+    <- <value><string>foo</string></value>
+    <- </param>
+    <- </params>
+    <- </methodCall>
+    -> <?xml version="1.0" encoding="utf-8"?><methodCall><methodName>preprocess</methodName><params><param><value><string>page</string></value></param><param><value><string>foo</string></value></param><param><value><string>destpage</string></value></param><param><value><string>foo</string></value></param><param><value><string>preview</string></value></param><param><value><string>0</string></value></param></params></methodCall>
+    <- <?xml version='1.0'?>
+    <- <methodCall>
+    <- <methodName>srcfile</methodName>
+    <- <params>
+    <- <param>
+    <- <value><string>README.md</string></value>
+    <- </param>
+    <- </params>
+    <- </methodCall>
+    -> <?xml version="1.0" encoding="utf-8"?><methodResponse><params><param><value><string>/home/louis/projets/ikiwiki/rpcbug/README.md</string></value></param></params></methodResponse>
+    <- <?xml version='1.0'?>
+    <- <methodResponse>
+    <- <params>
+    <- <param>
+    <- <value><string>&lt;br/&gt;* Calling `srcfile(foo)`: page&lt;br/&gt;* Calling `srcfile(README.md)`: /home/louis/projets/ikiwiki/rpcbug/README.md</string></value>
+    <- </param>
+    <- </params>
+    <- </methodResponse>
+    -> <?xml version="1.0" encoding="utf-8"?><methodCall><methodName>format</methodName><params><param><value><string>page</string></value></param><param><value><string>foo</string></value></param><param><value><string>content</string></value></param><param><value><string>&lt;!DOCTYPE html&gt;
+    -> &lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
+    -> &lt;head&gt;
+    -> 
+    -> &lt;meta charset=&quot;utf-8&quot; /&gt;
+    -> &lt;title&gt;foo&lt;/title&gt;
+    -> &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot; /&gt;
+    -> 
+    -> &lt;link rel=&quot;stylesheet&quot; href=&quot;../style.css&quot; type=&quot;text/css&quot; /&gt;
+    -> 
+    -> &lt;link rel=&quot;stylesheet&quot; href=&quot;../local.css&quot; type=&quot;text/css&quot; /&gt;
+    -> 
+    -> 
+    -> 

(Diff truncated)
typo
diff --git a/doc/tips/Hosting_Ikiwiki_and_master_git_repository_on_different_machines.mdwn b/doc/tips/Hosting_Ikiwiki_and_master_git_repository_on_different_machines.mdwn
index 49ae172..6af4f96 100644
--- a/doc/tips/Hosting_Ikiwiki_and_master_git_repository_on_different_machines.mdwn
+++ b/doc/tips/Hosting_Ikiwiki_and_master_git_repository_on_different_machines.mdwn
@@ -75,7 +75,7 @@ repository.
 ## Configuring the wiki on the wiki machine so that it uses the repository of the git machine
 
 - Configure ssh so that it uses the ssh key `id_SITE` to connect to the git
-  michine: add the following lines to file `~/.ssh/config` on the ikiwiki
+  machine: add the following lines to file `~/.ssh/config` on the ikiwiki
   machine:
 
         Host server.name.of.the.git.machine

Added a comment: Does the exclude feature work at all?
diff --git a/doc/forum/Need_something_more_powerful_than_Exclude/comment_7_e5d9fbf7e50476ce3a494541dd41d4d9._comment b/doc/forum/Need_something_more_powerful_than_Exclude/comment_7_e5d9fbf7e50476ce3a494541dd41d4d9._comment
new file mode 100644
index 0000000..91ad02d
--- /dev/null
+++ b/doc/forum/Need_something_more_powerful_than_Exclude/comment_7_e5d9fbf7e50476ce3a494541dd41d4d9._comment
@@ -0,0 +1,47 @@
+[[!comment format=mdwn
+ username="https://launchpad.net/~beaufils"
+ nickname="beaufils"
+ subject="Does the exclude feature work at all?"
+ date="2015-06-22T10:49:53Z"
+ content="""
+I am not sure if that is a bug or a feature, but it is annoying, definitively related to this post:
+
+    $ ikiwiki --version
+    ikiwiki version 3.20141016.2
+
+    $ mkdir src ; echo A >src/get ; echo A >src/noget
+
+    $ ikiwiki src out                          
+    $ cat out/noget 
+    A
+
+    # Let's ask ikiwiki to forget noget
+    $ ikiwiki src out --exclude noget          
+    $ cat out/noget 
+    A
+
+    # No? Maybe with --rebuild?
+    $ ikiwiki src out --exclude noget --rebuild
+    $ cat out/noget 
+    A
+
+    # So let's remove it manually and try again
+    $ rm out/noget 
+
+    $ ikiwiki src out --exclude noget          
+    $ cat out/noget
+    cat: out/noget: No such file or directory
+
+    # Hum are we sure it worked?
+    $ ikiwiki src out --exclude noget --rebuild
+    $ cat out/noget
+    A
+
+    # Nope :-(
+
+I am really confused with the exclude feature and the way ikiwiki lookup files. Finally I tend to think this is a bug.
+
+Is there a way to make ikiwiki consider that a file in the `srcdir` should not be present in the `destdir` and thus removed if present?
+
+--[[bbb]]
+"""]]

removed
diff --git a/doc/forum/Need_something_more_powerful_than_Exclude/comment_7_20cbbe48ab7abe63ea28ab4b051440a2._comment b/doc/forum/Need_something_more_powerful_than_Exclude/comment_7_20cbbe48ab7abe63ea28ab4b051440a2._comment
deleted file mode 100644
index 4153b5b..0000000
--- a/doc/forum/Need_something_more_powerful_than_Exclude/comment_7_20cbbe48ab7abe63ea28ab4b051440a2._comment
+++ /dev/null
@@ -1,37 +0,0 @@
-[[!comment format=mdwn
- username="https://launchpad.net/~beaufils"
- nickname="beaufils"
- subject="*Bug* is still there and I have the same need"
- date="2015-06-22T10:16:59Z"
- content="""
-I am not sure if that is a bug or a feature, but it is annoying and definitively related to this post: 
-
-    $ echo A >src/get
-    $ echo A >src/noget
-    
-    $ ikiwiki src out
-    $ cat out/noget 
-    A
-    
-    $ ikiwiki src out --exclude noget
-    $ cat out/noget 
-    A
-    
-    $ ikiwiki src out --exclude noget --rebuild
-    $ cat out/noget 
-    A
-    
-    $ rm out/noget 
-    rm : remove file «out/noget» ? y
-    
-    $ ikiwiki src out --exclude noget 
-    $ cat out/noget
-    cat: cannot access out/noget: No such file or director
-
-I am really confused with the exclude feature.
-
-Is there a way to make ikiwiki consider that a file in the `srcdir` should not be present in the `destdir` and thus removed if present?
-
--- [[bbb]]
-
-"""]]

add links to me (in order to follow the bugs)
diff --git a/doc/bugs/dumpsetup_does_not_save_wikistatedir.mdwn b/doc/bugs/dumpsetup_does_not_save_wikistatedir.mdwn
index 8b83b16..cf7bc63 100644
--- a/doc/bugs/dumpsetup_does_not_save_wikistatedir.mdwn
+++ b/doc/bugs/dumpsetup_does_not_save_wikistatedir.mdwn
@@ -1,3 +1,5 @@
 Calling ikiwiki with a bunch of options, including the `--dumpsetup somefile.setup` option creates `somefile.setup` for later reuse with the `--setup` option. The wiki state dir however is not saved in the setup file, it has no `wikistatedir` at all.
 
 Strange since same [[kind of bugs|bugs/dumpsetup_does_not_save_destdir]] have been fixed for `destdir`.
+
+--[[bbb]]

Added a comment: *Bug* is still there and I have the same need
diff --git a/doc/forum/Need_something_more_powerful_than_Exclude/comment_7_20cbbe48ab7abe63ea28ab4b051440a2._comment b/doc/forum/Need_something_more_powerful_than_Exclude/comment_7_20cbbe48ab7abe63ea28ab4b051440a2._comment
new file mode 100644
index 0000000..4153b5b
--- /dev/null
+++ b/doc/forum/Need_something_more_powerful_than_Exclude/comment_7_20cbbe48ab7abe63ea28ab4b051440a2._comment
@@ -0,0 +1,37 @@
+[[!comment format=mdwn
+ username="https://launchpad.net/~beaufils"
+ nickname="beaufils"
+ subject="*Bug* is still there and I have the same need"
+ date="2015-06-22T10:16:59Z"
+ content="""
+I am not sure if that is a bug or a feature, but it is annoying and definitively related to this post: 
+
+    $ echo A >src/get
+    $ echo A >src/noget
+    
+    $ ikiwiki src out
+    $ cat out/noget 
+    A
+    
+    $ ikiwiki src out --exclude noget
+    $ cat out/noget 
+    A
+    
+    $ ikiwiki src out --exclude noget --rebuild
+    $ cat out/noget 
+    A
+    
+    $ rm out/noget 
+    rm : remove file «out/noget» ? y
+    
+    $ ikiwiki src out --exclude noget 
+    $ cat out/noget
+    cat: cannot access out/noget: No such file or director
+
+I am really confused with the exclude feature.
+
+Is there a way to make ikiwiki consider that a file in the `srcdir` should not be present in the `destdir` and thus removed if present?
+
+-- [[bbb]]
+
+"""]]

removed
diff --git a/doc/forum/Need_something_more_powerful_than_Exclude/comment_7_5f3691db1b945dbca1dbef6167037524._comment b/doc/forum/Need_something_more_powerful_than_Exclude/comment_7_5f3691db1b945dbca1dbef6167037524._comment
deleted file mode 100644
index 068c92f..0000000
--- a/doc/forum/Need_something_more_powerful_than_Exclude/comment_7_5f3691db1b945dbca1dbef6167037524._comment
+++ /dev/null
@@ -1,10 +0,0 @@
-[[!comment format=mdwn
- username="https://launchpad.net/~beaufils"
- nickname="beaufils"
- subject="Bug still there and same need"
- date="2015-06-19T23:37:05Z"
- content="""
-The bug with `index.db` seems still there for me in 3.20141016.2.
-
-BTW I am still trying to find an easier way to completely ignore files (something more powerful than exclude), unfortunately all I tried failed (I surely do not understand, nor master the whole ikiwiki source code enough).
-"""]]

Added a comment
diff --git a/doc/forum/Moving_everything_so_far_into_a_folder/comment_1_bf2c1d5fb58a3aa0f28fa07f1e41d247._comment b/doc/forum/Moving_everything_so_far_into_a_folder/comment_1_bf2c1d5fb58a3aa0f28fa07f1e41d247._comment
new file mode 100644
index 0000000..476de5e
--- /dev/null
+++ b/doc/forum/Moving_everything_so_far_into_a_folder/comment_1_bf2c1d5fb58a3aa0f28fa07f1e41d247._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="http://kerravonsen.dreamwidth.org/"
+ subject="comment 1"
+ date="2015-06-21T23:35:42Z"
+ content="""
+This sounds like a job for mod_rewrite rather than ikiwiki itself.
+"""]]

diff --git a/doc/forum/Moving_everything_so_far_into_a_folder.mdwn b/doc/forum/Moving_everything_so_far_into_a_folder.mdwn
index fd0e3f6..3b17276 100644
--- a/doc/forum/Moving_everything_so_far_into_a_folder.mdwn
+++ b/doc/forum/Moving_everything_so_far_into_a_folder.mdwn
@@ -1 +1 @@
-I kind of want to start anew with my wiki, but I also don't want the stuff that I've written inaccessible. Right now I have one folder, where all my wiki files live and I'd like to move everything into a subfolder e.g.: let's say my stuff lives in ```~/notes/ ``` I would like to move the notes to ```~/notes/old``` without breaking any of the wiki links. Looking at [[subpage/linkingrules]] it seems to me that it should work out of the box, but this is not the case. When I try to move a page to ```~/notes/old```the file is accesible as a wikipage (http://example.com/old/note) but the old links don't work. The wiki thinks the site is missing and does not look for it in subfolders. Or so it seems. Anyway. If anyone has an idea to get this to work the right way, that is: to move all current pages to a subfolder without breaking links, I'd be very happy to know.
+I kind of want to start anew with my wiki, but I also don't want the stuff that I've written inaccessible. Right now I have one folder, where all my wiki files live and I'd like to move everything into a subfolder e.g.: let's say my stuff lives in ```~/notes/ ``` I would like to move the notes to ```~/notes/old``` without breaking any of the wiki links. Looking at [linkingrules](http://ikiwiki.info/ikiwiki/subpage/linkingrules/) it seems to me that it should work out of the box, but this is not the case. When I try to move a page to ```~/notes/old``` the file is accesible as a wikipage (http://example.com/old/note) but the old links to that page don't work anymore. The wiki thinks the site is missing or something and does not look for it in subfolders. Or so it seems. Anyway. If anyone has an idea to get this to work the right way, that is: to move all current pages to a subfolder without breaking links, I'd be very happy to know.

diff --git a/doc/forum/Moving_everything_so_far_into_a_folder.mdwn b/doc/forum/Moving_everything_so_far_into_a_folder.mdwn
index 1a5622a..fd0e3f6 100644
--- a/doc/forum/Moving_everything_so_far_into_a_folder.mdwn
+++ b/doc/forum/Moving_everything_so_far_into_a_folder.mdwn
@@ -1 +1 @@
-I kind of want to start anew with my wiki, but I also don't want the stuff that I've written inaccessible. Right now I have one folder, where all my wiki files live and I'd like to move everything into a subfolder e.g.: let's say my stuff lives in ```~/notes/ ``` I would like to move the notes to ```~/notes/old``` without breaking any of the wiki links. Looking at [[linkingrules]] it seems to me that it should work out of the box, but this is not the case. When I try to move a page to ```~/notes/old```the file is accesible as a wikipage (http://example.com/old/note) but the old links don't work. The wiki thinks the site is missing and does not look for it in subfolders. Or so it seems. Anyway. If anyone has an idea to get this to work the right way, that is: to move all current pages to a subfolder without breaking links, I'd be very happy to know.
+I kind of want to start anew with my wiki, but I also don't want the stuff that I've written inaccessible. Right now I have one folder, where all my wiki files live and I'd like to move everything into a subfolder e.g.: let's say my stuff lives in ```~/notes/ ``` I would like to move the notes to ```~/notes/old``` without breaking any of the wiki links. Looking at [[subpage/linkingrules]] it seems to me that it should work out of the box, but this is not the case. When I try to move a page to ```~/notes/old```the file is accesible as a wikipage (http://example.com/old/note) but the old links don't work. The wiki thinks the site is missing and does not look for it in subfolders. Or so it seems. Anyway. If anyone has an idea to get this to work the right way, that is: to move all current pages to a subfolder without breaking links, I'd be very happy to know.

diff --git a/doc/forum/Moving_everything_so_far_into_a_folder.mdwn b/doc/forum/Moving_everything_so_far_into_a_folder.mdwn
new file mode 100644
index 0000000..1a5622a
--- /dev/null
+++ b/doc/forum/Moving_everything_so_far_into_a_folder.mdwn
@@ -0,0 +1 @@
+I kind of want to start anew with my wiki, but I also don't want the stuff that I've written inaccessible. Right now I have one folder, where all my wiki files live and I'd like to move everything into a subfolder e.g.: let's say my stuff lives in ```~/notes/ ``` I would like to move the notes to ```~/notes/old``` without breaking any of the wiki links. Looking at [[linkingrules]] it seems to me that it should work out of the box, but this is not the case. When I try to move a page to ```~/notes/old```the file is accesible as a wikipage (http://example.com/old/note) but the old links don't work. The wiki thinks the site is missing and does not look for it in subfolders. Or so it seems. Anyway. If anyone has an idea to get this to work the right way, that is: to move all current pages to a subfolder without breaking links, I'd be very happy to know.

removed
diff --git a/doc/plugins/contrib/rimg.mdwn b/doc/plugins/contrib/rimg.mdwn
deleted file mode 100644
index 59d87cf..0000000
--- a/doc/plugins/contrib/rimg.mdwn
+++ /dev/null
@@ -1,15 +0,0 @@
-[[!meta author="spalax"]]
-[[!template id=plugin name=rimg author="[[Louis|spalax]]"]]
-[[!tag type/widget]]
-
-This plugin provides the ``rimg`` [[ikiwiki/directive]].
-While ikiwiki supports including images by using the
-[[ikiwiki/directive/img]] directive, those images must
-be present in the wiki. This plugins allows to include remote images by giving
-their URL.
-
-For instance, the following directive displays the Ikiwiki favicon:
-
-    \[[!rimg http://ikiwiki.info/favicon.ico alt="Favicon" caption="IkiWiki favicon" link="http://ikiwiki.info"]]
-
-Note that this is a stripped down version of [[the img plugin|http://ikiwiki.info/plugins/img]].

Aknowlege irrelevance of my new `rimg` plugin
diff --git a/doc/plugins/img/discussion.mdwn b/doc/plugins/img/discussion.mdwn
index 2cae741..bc525a5 100644
--- a/doc/plugins/img/discussion.mdwn
+++ b/doc/plugins/img/discussion.mdwn
@@ -30,3 +30,9 @@ Is it possible to give an external image URL, must the image be local? One use c
 >> for Markdown. I don't think ikiwiki directives should duplicate markup
 >> formats' features unless it makes a significant difference to functionality
 >> or usability. --[[smcv]]
+
+>>> I totally agree. I never think about using HTML in my markdown documents,
+>>> and I did not know the `!\[Alt text](image url)`. Anyway, this plugin took
+>>> me less than one hour to write and publish; I will delete it soon.
+>>>
+>>> Anyway, thanks for your answer. --[[Louis|spalax]]

no, wikilinks don't inline remote images; but HTML, Markdown etc. do
diff --git a/doc/plugins/img/discussion.mdwn b/doc/plugins/img/discussion.mdwn
index 5ab1963..2cae741 100644
--- a/doc/plugins/img/discussion.mdwn
+++ b/doc/plugins/img/discussion.mdwn
@@ -23,5 +23,10 @@ Is it possible to give an external image URL, must the image be local? One use c
 
 > Eventually wrote my own plugin: [[plugins/contrib/rimg]]. --[[Louis|spalax]]
 
->> What's wrong with using a wikilink, \[[https://img.shields.io/github/stars/joeyh/ikiwiki.svg]]?
->> --[[smcv]]
+>> All the markup formats supported by ikiwiki can do raw HTML (possibly
+>> filtered), so you can use `<img>` for basic remote images; or you can
+>> use your chosen markup format's image syntax, like
+>> !\[some stars](https://img.shields.io/github/stars/joeyh/ikiwiki.svg)
+>> for Markdown. I don't think ikiwiki directives should duplicate markup
+>> formats' features unless it makes a significant difference to functionality
+>> or usability. --[[smcv]]

wikilinks can already point to remote images?
diff --git a/doc/plugins/img/discussion.mdwn b/doc/plugins/img/discussion.mdwn
index 8d9423b..5ab1963 100644
--- a/doc/plugins/img/discussion.mdwn
+++ b/doc/plugins/img/discussion.mdwn
@@ -22,3 +22,6 @@ progressive display. --[[kjs]]
 Is it possible to give an external image URL, must the image be local? One use case would be displaying *badges*, like [[the number of stars|https://img.shields.io/github/stars/joeyh/ikiwiki.svg]] of a [[github project|http://github.com/joeyh/ikiwiki]], but ``\[[!img https://img.shields.io/github/stars/joeyh/ikiwiki.svg]]`` does not work: [[!img https://img.shields.io/github/stars/joeyh/ikiwiki.svg]]. --[[Louis|spalax]]
 
 > Eventually wrote my own plugin: [[plugins/contrib/rimg]]. --[[Louis|spalax]]
+
+>> What's wrong with using a wikilink, \[[https://img.shields.io/github/stars/joeyh/ikiwiki.svg]]?
+>> --[[smcv]]

Link to a new plugin solving my question.
diff --git a/doc/plugins/img/discussion.mdwn b/doc/plugins/img/discussion.mdwn
index 4927695..8d9423b 100644
--- a/doc/plugins/img/discussion.mdwn
+++ b/doc/plugins/img/discussion.mdwn
@@ -19,4 +19,6 @@ progressive display. --[[kjs]]
 
 ---
 
-Is it possible to give an external image URL, must the image be local? One use case would be displaying *badges*, like [[the number of stars|https://img.shields.io/github/stars/joeyh/ikiwiki.svg]] of a [[github project|http://github.com/joeyh/ikiwiki]], but ``\[[!img https://img.shields.io/github/stars/joeyh/ikiwiki.svg]]`` does not work: [[!img https://img.shields.io/github/stars/joeyh/ikiwiki.svg]].
+Is it possible to give an external image URL, must the image be local? One use case would be displaying *badges*, like [[the number of stars|https://img.shields.io/github/stars/joeyh/ikiwiki.svg]] of a [[github project|http://github.com/joeyh/ikiwiki]], but ``\[[!img https://img.shields.io/github/stars/joeyh/ikiwiki.svg]]`` does not work: [[!img https://img.shields.io/github/stars/joeyh/ikiwiki.svg]]. --[[Louis|spalax]]
+
+> Eventually wrote my own plugin: [[plugins/contrib/rimg]]. --[[Louis|spalax]]

New plugin: rimg
diff --git a/doc/plugins/contrib/rimg.mdwn b/doc/plugins/contrib/rimg.mdwn
new file mode 100644
index 0000000..59d87cf
--- /dev/null
+++ b/doc/plugins/contrib/rimg.mdwn
@@ -0,0 +1,15 @@
+[[!meta author="spalax"]]
+[[!template id=plugin name=rimg author="[[Louis|spalax]]"]]
+[[!tag type/widget]]
+
+This plugin provides the ``rimg`` [[ikiwiki/directive]].
+While ikiwiki supports including images by using the
+[[ikiwiki/directive/img]] directive, those images must
+be present in the wiki. This plugins allows to include remote images by giving
+their URL.
+
+For instance, the following directive displays the Ikiwiki favicon:
+
+    \[[!rimg http://ikiwiki.info/favicon.ico alt="Favicon" caption="IkiWiki favicon" link="http://ikiwiki.info"]]
+
+Note that this is a stripped down version of [[the img plugin|http://ikiwiki.info/plugins/img]].

typo
diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn
index 95f4a39..b6d0611 100644
--- a/doc/plugins/write.mdwn
+++ b/doc/plugins/write.mdwn
@@ -741,7 +741,7 @@ Ordinary [[WikiLinks|ikiwiki/WikiLink]] appear in `%links`, but not in
 
 ### `%pagesources`
 
-The `%pagesources` has can be used to look up the source filename
+The `%pagesources` hash can be used to look up the source filename
 of a page. So the key is the page name, and the value is the source
 filename. Do not modify this hash.
 

Added a comment: Bug still there and same need
diff --git a/doc/forum/Need_something_more_powerful_than_Exclude/comment_7_5f3691db1b945dbca1dbef6167037524._comment b/doc/forum/Need_something_more_powerful_than_Exclude/comment_7_5f3691db1b945dbca1dbef6167037524._comment
new file mode 100644
index 0000000..068c92f
--- /dev/null
+++ b/doc/forum/Need_something_more_powerful_than_Exclude/comment_7_5f3691db1b945dbca1dbef6167037524._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="https://launchpad.net/~beaufils"
+ nickname="beaufils"
+ subject="Bug still there and same need"
+ date="2015-06-19T23:37:05Z"
+ content="""
+The bug with `index.db` seems still there for me in 3.20141016.2.
+
+BTW I am still trying to find an easier way to completely ignore files (something more powerful than exclude), unfortunately all I tried failed (I surely do not understand, nor master the whole ikiwiki source code enough).
+"""]]

More information about but
diff --git a/doc/bugs/Error_with_external_plugins.mdwn b/doc/bugs/Error_with_external_plugins.mdwn
index 5648678..06323b7 100644
--- a/doc/bugs/Error_with_external_plugins.mdwn
+++ b/doc/bugs/Error_with_external_plugins.mdwn
@@ -29,7 +29,9 @@ Page `foo` contains the directive ``[[!rpcbug]]`` (`rpcbug` being the name of th
 
 What I do not understand is that disabling the `format` function (by commenting [[line 46 of the plugin|https://github.com/paternal/ikiwiki-rpcbug/blob/master/plugins/rpcbug#L46]]) solves the problem. Half of an explaination is that I think that when the the ``proxy.rpc`` function is called, the RPC communication is messed up in such a way that the `format` function is not called, and the return value of `preprocess` is considered to be the whole html code of the resulting page.
 
+> I understood that: as the first rpc call messes up the communication, more rpc calls are messed up, but if there is only one rpc call, not that much is broken. -- [[Louis|spalax]]
+
 I hope someone will understand the problem better than I do, because I have no idea about how to solve this.
 
 Regards,    
--- Louis
+-- [[Louis|spalax]]

Question about the img plugin
diff --git a/doc/plugins/img/discussion.mdwn b/doc/plugins/img/discussion.mdwn
index c87469d..4927695 100644
--- a/doc/plugins/img/discussion.mdwn
+++ b/doc/plugins/img/discussion.mdwn
@@ -16,3 +16,7 @@ It would be handy if the `class` and `id` tags were passed through to the surrou
 I have created a patch that allows the image to be sharpened when resampled.
 There is also an additional option to interlace the image using plane for
 progressive display. --[[kjs]]
+
+---
+
+Is it possible to give an external image URL, must the image be local? One use case would be displaying *badges*, like [[the number of stars|https://img.shields.io/github/stars/joeyh/ikiwiki.svg]] of a [[github project|http://github.com/joeyh/ikiwiki]], but ``\[[!img https://img.shields.io/github/stars/joeyh/ikiwiki.svg]]`` does not work: [[!img https://img.shields.io/github/stars/joeyh/ikiwiki.svg]].

Initial report.
diff --git a/doc/bugs/dumpsetup_does_not_save_wikistatedir.mdwn b/doc/bugs/dumpsetup_does_not_save_wikistatedir.mdwn
new file mode 100644
index 0000000..8b83b16
--- /dev/null
+++ b/doc/bugs/dumpsetup_does_not_save_wikistatedir.mdwn
@@ -0,0 +1,3 @@
+Calling ikiwiki with a bunch of options, including the `--dumpsetup somefile.setup` option creates `somefile.setup` for later reuse with the `--setup` option. The wiki state dir however is not saved in the setup file, it has no `wikistatedir` at all.
+
+Strange since same [[kind of bugs|bugs/dumpsetup_does_not_save_destdir]] have been fixed for `destdir`.

Potential bug with external plugins
diff --git a/doc/bugs/Error_with_external_plugins.mdwn b/doc/bugs/Error_with_external_plugins.mdwn
new file mode 100644
index 0000000..5648678
--- /dev/null
+++ b/doc/bugs/Error_with_external_plugins.mdwn
@@ -0,0 +1,35 @@
+Hello,
+I stumbled upon this bug when writing a Python plugin. I think this is a ikiwiki bug, since I do not think my plugin does anything wrong.
+
+# Example
+
+I set up an example wiki, containing the setup file and the plugin, [[on github|https://github.com/paternal/ikiwiki-rpcbug]].
+
+1. Clone the repository
+
+        git clone https://github.com/paternal/ikiwiki-rpcbug.git
+
+2. Change to the right directory
+
+        cd ikiwiki-rpcbug
+
+2. Add the right ikiwiki directory to PYTHONPATH
+
+        export PYTHONPATH="$PYTHONPATH:$(dirname $(dpkg -L ikiwiki | grep proxy))"
+
+3. Build the wiki
+
+        ikiwiki --setup wiki.setup --rebuild
+
+4. The problem is in page [[http://localhost/~USERNAME/ikiwiki_bug_rpc/foo/]] (for instance, [[http://localhost/~USERNAME/ikiwiki_bug_rpc]] is fine.
+
+# Problem
+
+Page `foo` contains the directive ``[[!rpcbug]]`` (`rpcbug` being the name of the plugin). Calling [[``proxy.rpc("srcfile", "bar")``|https://github.com/paternal/ikiwiki-rpcbug/blob/master/plugins/rpcbug#L15]] in the preprocess function seems to mess up the RPC communication between ikiwiki and the plugin, and the result is that the generate `foo/index.html` page is a text file containing the return value of the `preprocess` call.
+
+What I do not understand is that disabling the `format` function (by commenting [[line 46 of the plugin|https://github.com/paternal/ikiwiki-rpcbug/blob/master/plugins/rpcbug#L46]]) solves the problem. Half of an explaination is that I think that when the the ``proxy.rpc`` function is called, the RPC communication is messed up in such a way that the `format` function is not called, and the return value of `preprocess` is considered to be the whole html code of the resulting page.
+
+I hope someone will understand the problem better than I do, because I have no idea about how to solve this.
+
+Regards,    
+-- Louis

announce 3.20150614
diff --git a/doc/news/version_3.20140916.mdwn b/doc/news/version_3.20140916.mdwn
deleted file mode 100644
index 1cf09e6..0000000
--- a/doc/news/version_3.20140916.mdwn
+++ /dev/null
@@ -1,34 +0,0 @@
-ikiwiki 3.20140916 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
-   * Don't double-decode CGI submissions with Encode.pm &gt;= 2.53,
-     fixing "Error: Cannot decode string with wide characters".
-     Thanks, [[Antoine Beaupré|anarcat]]
-   * Avoid making trails depend on everything in the wiki by giving them
-     a better way to sort the pages
-   * Don't let users post comments that won't be displayed
-   * Fix encoding of Unicode strings in Python plugins.
-     Thanks, [[chrysn]]
-   * Improve performance and correctness of the \[[!if]] directive
-   * Let \[[!inline rootpage=foo postform=no]] disable the posting form
-   * Switch default \[[!man]] shortcut to manpages.debian.org. Closes: #[700322](http://bugs.debian.org/700322)
-   * Add UUID and TIME variables to edittemplate. Closes: #[752827](http://bugs.debian.org/752827)
-     Thanks, Jonathon Anderson
-   * Display pages in linkmaps as their pagetitle (no underscore escapes).
-     Thanks, [[chrysn]]
-   * Fix aspect ratio when scaling small images, and add support for
-     converting SVG and PDF graphics to PNG.
-     Thanks, [[chrysn]]
-     - suggest ghostscript (required for PDF-to-PNG thumbnailing)
-       and libmagickcore-extra (required for SVG-to-PNG thumbnailing)
-     - build-depend on ghostscript so the test for scalable images can be run
-   * In the CGI wrapper, incorporate $config{ENV} into the environment
-     before executing Perl code, so that PERL5LIB can point to a
-     non-system-wide installation of IkiWiki.
-     Thanks, Lafayette Chamber Singers Webmaster
-   * filecheck: accept MIME types not containing ';'
-   * autoindex: index files in underlays if the resulting pages aren't
-     going to be committed. Closes: #[611068](http://bugs.debian.org/611068)
-   * Add \[[!templatebody]] directive so template pages don't have to be
-     simultaneously a valid template and valid HTML
-   * Add [[smcv]] to Uploaders and release to Debian"""]]
-[[!meta date="2014-09-16 11:16:52 +0100"]]
diff --git a/doc/news/version_3.20150614.mdwn b/doc/news/version_3.20150614.mdwn
new file mode 100644
index 0000000..1b08f5a
--- /dev/null
+++ b/doc/news/version_3.20150614.mdwn
@@ -0,0 +1,8 @@
+ikiwiki 3.20150614 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+   * inline: change default sort order from age to "age title" for
+     determinism, partially fixing deterministic build for git-annex,
+     ikiwiki-hosting etc. (Closes: #[785757](http://bugs.debian.org/785757))
+   * img: avoid ImageMagick misinterpreting filenames containing a colon
+   * img test: set old timestamp on source file that will change, so that
+     the test will pass even if it takes less than 1 second"""]]
\ No newline at end of file

img: stop ImageMagick trying to be clever if filenames contain a colon
$im->Read() takes a filename-like argument with several sets of special
syntax. Most of the possible metacharacters are escaped by the
default `wiki_file_chars` (and in any case not particularly disruptive),
but the colon ":" is not.
It seems the way to force ImageMagick to treat colons within the
filename as literal is to prepend a colon, so do that.
diff --git a/IkiWiki/Plugin/img.pm b/IkiWiki/Plugin/img.pm
index 17a58ca..169f5e7 100644
--- a/IkiWiki/Plugin/img.pm
+++ b/IkiWiki/Plugin/img.pm
@@ -76,7 +76,7 @@ sub preprocess (@) {
 	my $im = Image::Magick->new();
 	my $imglink;
 	my $imgdatalink;
-	my $r = $im->Read("$srcfile\[$pagenumber]");
+	my $r = $im->Read(":$srcfile\[$pagenumber]");
 	error sprintf(gettext("failed to read %s: %s"), $file, $r) if $r;
 
 	if (! defined $im->Get("width") || ! defined $im->Get("height")) {
diff --git a/debian/changelog b/debian/changelog
index d29819f..2b79e51 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
 ikiwiki (3.20150611) UNRELEASED; urgency=medium
 
   * inline: change default sort order from age to "age title" for determinism
+  * img: avoid ImageMagick misinterpreting filenames containing a colon
 
  -- Simon McVittie <smcv@debian.org>  Thu, 11 Jun 2015 08:32:35 +0100
 
diff --git a/doc/bugs/Colons___8216__:__8217___should_not_be_allowed_in_image_filenames.mdwn b/doc/bugs/Colons___8216__:__8217___should_not_be_allowed_in_image_filenames.mdwn
index 3ecde81..0524a9a 100644
--- a/doc/bugs/Colons___8216__:__8217___should_not_be_allowed_in_image_filenames.mdwn
+++ b/doc/bugs/Colons___8216__:__8217___should_not_be_allowed_in_image_filenames.mdwn
@@ -9,4 +9,28 @@ However, `Image::Magick` doesn't seem to like page selection for filenames conta
     $ identify 'screenshot_2015-06-06_18-37-53.png[0]'
     screenshot_2015-06-06_18-37-53.png[0]=>screenshot_2015-06-06_18-37-53.png PNG 453x122 453x122+0+0 8-bit sRGB 11.2KB 0.000u 0:00.000
 
-This might be an imagemagick bug, but it's also possible that colons are interpreted somehow.  Anyway, to render such images properly in ikiwiki I had to remove the colons.  An easy fix is to remove ‘:’ from `wiki_file_chars`, but this can break existing installations.  A better solution would be to make `IkiWiki::Plugin::img` croak on such image filenames (which anyway are currently not rendered, but `Image::Magick`'s error message is quite cryptic).
+This might be an imagemagick bug, but it's also possible that colons
+are interpreted somehow.
+
+> Yes they are: ImageMagick has syntax to force the file to be
+> interpreted as a particular format, like gif:foobar.img to
+> read foobar.img as a GIF, or to use unusual I/O patterns, like
+> fd:5. --[[smcv]]
+
+Anyway, to render such images properly in ikiwiki I had to remove
+the colons.  An easy fix is to remove ‘:’ from `wiki_file_chars`,
+but this can break existing installations.
+
+> I think we should remove `:` from the default `wiki_file_chars`
+> either as soon as we have a way to handle backwards compatibility,
+> or in ikiwiki 4; but you're right that it's a compat problem,
+> so we can't just do that as a solution. --s
+
+A better solution would be to make `IkiWiki::Plugin::img` croak on
+such image filenames (which anyway are currently not rendered, but
+`Image::Magick`'s error message is quite cryptic).
+
+> Better still would be to fix the bug by escaping the filename
+> so ImageMagick treats it as just a filename. It seems the way
+> to do that is to call `Read(":hello:world.png")` instead of
+> `Read("hello:world.png")`, which I have now [[done]]. --s
diff --git a/t/img.t b/t/img.t
index 6c29573..7e7753a 100755
--- a/t/img.t
+++ b/t/img.t
@@ -24,6 +24,11 @@ my $SVGS_WORK = defined $magick->QueryFormat("svg");
 ok(! system("rm -rf t/tmp; mkdir -p t/tmp/in"));
 
 ok(! system("cp t/img/redsquare.png t/tmp/in/redsquare.png"));
+# colons in filenames are a corner case for img
+ok(! system("cp t/img/redsquare.png t/tmp/in/hello:world.png"));
+ok(! system("cp t/img/redsquare.png t/tmp/in/a:b:c.png"));
+ok(! system("cp t/img/redsquare.png t/tmp/in/a:b:c:d.png"));
+ok(! system("cp t/img/redsquare.png t/tmp/in/a:b:c:d:e:f:g:h:i:j.png"));
 
 if ($SVGS_WORK) {
 	writefile("emptysquare.svg", "t/tmp/in",
@@ -42,6 +47,9 @@ writefile("imgconversions.mdwn", "t/tmp/in", <<EOF
 [[!img redsquare.png]]
 [[!img redsquare.png size=10x]]
 [[!img redsquare.png size=30x50]] expecting 30x30
+[[!img hello:world.png size=x8]] expecting 8x8
+[[!img a:b:c.png size=x4]]
+[[!img a:b:c:d:e:f:g:h:i:j.png size=x6]]
 $maybe_svg_img
 [[!img twopages.pdf size=12x]]
 [[!img twopages.pdf size=16x pagenumber=1]]
@@ -57,7 +65,7 @@ ok(! system($command));
 sub size($) {
 	my $filename = shift;
 	my $im = Image::Magick->new();
-	my $r = $im->Read($filename);
+	my $r = $im->Read(":$filename");
 	return "no image" if $r;
 	my $w = $im->Get("width");
 	my $h = $im->Get("height");
@@ -78,6 +86,10 @@ if ($SVGS_WORK) {
 
 is(size("$outpath/12x-twopages.png"), "12x12");
 is(size("$outpath/16x-p1-twopages.png"), "16x2");
+ok($outhtml =~ /width="8" height="8".*expecting 8x8/);
+is(size("$outpath/x8-hello:world.png"), "8x8");
+is(size("$outpath/x4-a:b:c.png"), "4x4");
+is(size("$outpath/x6-a:b:c:d:e:f:g:h:i:j.png"), "6x6");
 
 # now let's remove them again
 
@@ -90,6 +102,9 @@ if (1) { # for easier testing
 	ok(! -e "$outpath/10x-simple-svg.png");
 	ok(! -e "$outpath/10x-simple-pdf.png");
 	ok(! -e "$outpath/10x-p1-simple-pdf.png");
+	ok(! -e "$outpath/x8-hello:world.png");
+	ok(! -e "$outpath/x4-a:b:c.png");
+	ok(! -e "$outpath/x6-a:b:c:d:e:f:g:h:i:j.png");
 
 	# cleanup
 	ok(! system("rm -rf t/tmp"));

new questions (sharing settings easily)
diff --git a/doc/forum/Best_way_to_share_settings_between_repositories.mdwn b/doc/forum/Best_way_to_share_settings_between_repositories.mdwn
new file mode 100644
index 0000000..0b0590e
--- /dev/null
+++ b/doc/forum/Best_way_to_share_settings_between_repositories.mdwn
@@ -0,0 +1,9 @@
+I like the idea of having some common configuration (let's say of plugins) in my main server (with cgi and websetup enabled) as well as on other repositories clones and copies. In the ideal situations only some dir settings should be different (src, dest, lib, etc.) in the different setup files.
+
+Managing two setup files (one for the server and one for the laptop) is however a pain since each time a change is made on the server (through websetup for instance) one has to manually integrated it (after being made aware of it) on each clone setup file and vice-versa.
+
+What is a good way to share such settings (without having to copy them twice or more) ?
+
+I tried to discuss that same point in [[laptop_wiki_with_git discussion|tips/laptop_wiki_with_git/discussion]].
+
+--[[bbb]]

new todo: hebrew l10n
diff --git a/doc/todo/hebrew_l10n.mdwn b/doc/todo/hebrew_l10n.mdwn
new file mode 100644
index 0000000..2e29178
--- /dev/null
+++ b/doc/todo/hebrew_l10n.mdwn
@@ -0,0 +1,10 @@
+Ikiwiki already has localizations for several languages, but not for Hebrew.
+Hebrew is also special, being a right-to-left language (same is true for Arabic
+and several others). I hope the page template localizations can handle the
+layout direction issues and make the whole wiki HTML to be right-to-left.
+
+Anyway, I started preparing a Hebrew localization. Just wanted to say it here
+to avoid duplication, and to let the developers/maintainers know in case it
+matters.
+
+--[[fr33domlover]]

inline: change default sort order from age to "age title" for determinism
diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm
index 3009419..416df1e 100644
--- a/IkiWiki/Plugin/inline.pm
+++ b/IkiWiki/Plugin/inline.pm
@@ -160,16 +160,17 @@ sub preprocess_inline (@) {
 		# Running in scan mode: only do the essentials
 
 		if (yesno($params{trail}) && IkiWiki::Plugin::trail->can("preprocess_trailitems")) {
-			# default to sorting age, the same as inline itself,
-			# but let the params override that
-			IkiWiki::Plugin::trail::preprocess_trailitems(sort => 'age', %params);
+			# default to sorting by age with fallback to title,
+			# the same as inline itself, but let the params
+			# override that
+			IkiWiki::Plugin::trail::preprocess_trailitems(sort => 'age title', %params);
 		}
 
 		return;
 	}
 
 	if (yesno($params{trail}) && IkiWiki::Plugin::trail->can("preprocess_trailitems")) {
-		scalar IkiWiki::Plugin::trail::preprocess_trailitems(sort => 'age', %params);
+		scalar IkiWiki::Plugin::trail::preprocess_trailitems(sort => 'age title', %params);
 	}
 
 	my $raw=yesno($params{raw});
@@ -245,7 +246,7 @@ sub preprocess_inline (@) {
 		@list = pagespec_match_list($params{page}, $params{pages},
 			deptype => deptype($quick ? "presence" : "content"),
 			filter => sub { $_[0] eq $params{page} },
-			sort => exists $params{sort} ? $params{sort} : "age",
+			sort => exists $params{sort} ? $params{sort} : "age title",
 			reverse => yesno($params{reverse}),
 			($num ? (num => $num) : ()),
 		);
diff --git a/debian/changelog b/debian/changelog
index 5744a09..d29819f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+ikiwiki (3.20150611) UNRELEASED; urgency=medium
+
+  * inline: change default sort order from age to "age title" for determinism
+
+ -- Simon McVittie <smcv@debian.org>  Thu, 11 Jun 2015 08:32:35 +0100
+
 ikiwiki (3.20150610) unstable; urgency=low
 
   [ Joey Hess ]
diff --git a/doc/ikiwiki/directive/inline.mdwn b/doc/ikiwiki/directive/inline.mdwn
index a4632a5..32fecd1 100644
--- a/doc/ikiwiki/directive/inline.mdwn
+++ b/doc/ikiwiki/directive/inline.mdwn
@@ -94,7 +94,9 @@ Here are some less often needed parameters:
   markup around it, as if it were a literal part of the source of the 
   inlining page.
 * `sort` - Controls how inlined pages are [[sorted|pagespec/sorting]].
-  The default is to sort the newest created pages first.
+  The default is to sort the newest created pages first, and if pages
+  were created in the same commit, sort them by the name of the page
+  (equivalent to `sort="age title"`).
 * `reverse` - If set to "yes", causes the sort order to be reversed.
 * `feedshow` - Specify the maximum number of matching pages to include in
   the rss/atom feeds. The default is the same as the `show` value above.

announce 3.20150610
diff --git a/doc/news/version_3.20140815.mdwn b/doc/news/version_3.20140815.mdwn
deleted file mode 100644
index 5fb2da6..0000000
--- a/doc/news/version_3.20140815.mdwn
+++ /dev/null
@@ -1,11 +0,0 @@
-ikiwiki 3.20140815 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
-   * Add google back to openid selector. Apparently this has gotten a stay
-     of execution until April 2015. (It may continue to work until 2017.)
-   * highlight: Add compatibility with highlight 3.18, while still supporting
-     3.9+. Closes: #[757679](http://bugs.debian.org/757679)
-     Thanks, David Bremner
-   * highlight: Add support for multiple language definition directories
-     Closes: #[757680](http://bugs.debian.org/757680)
-     Thanks, David Bremner"""]]
-[[!meta date="2014-08-15 13:20:58 -0400"]]
diff --git a/doc/news/version_3.20140831.mdwn b/doc/news/version_3.20140831.mdwn
deleted file mode 100644
index daf9e33..0000000
--- a/doc/news/version_3.20140831.mdwn
+++ /dev/null
@@ -1,4 +0,0 @@
-ikiwiki 3.20140831 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
-   * Make --no-gettime work in initial build. Closes: #[755075](http://bugs.debian.org/755075)"""]]
-[[!meta date="2014-08-31 14:21:36 -0700"]]
diff --git a/doc/news/version_3.20150610.mdwn b/doc/news/version_3.20150610.mdwn
new file mode 100644
index 0000000..c73d69e
--- /dev/null
+++ b/doc/news/version_3.20150610.mdwn
@@ -0,0 +1,46 @@
+News for ikiwiki 3.20150610:
+
+   The new [[plugins/emailauth]] plugin allows users to authenticate using an email
+   address, without otherwise creating an account.
+   The [[plugins/openid]] plugin now enables emailauth by default. Please include
+   emailauth in the `disable_plugins` setting if this is not desired.
+   Conversely, if emailauth is required on a wiki that does not enable
+   openid, you can list it in the `enable_plugins` setting.
+
+ikiwiki 3.20150610 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+ * [ [[Joey Hess|joey]] ]
+   * New [[plugins/emailauth]] plugin lets users log in, without any registration,
+     by simply clicking on a link in an email.
+   * Re-remove google from [[plugins/openid]] selector; their openid provider is
+     gone for good.
+   * Make the openid selector display "Password" instead of "Other"
+     when appropriate, so users are more likely to click on it when
+     they don't have an openid.
+   * Converted openid-selector into a more generic loginselector helper
+     plugin.
+   * passwordauth: Don't allow registering accounts that look like openids.
+   * Make cgiurl output deterministic, not hash order. Closes: #[785738](https://bugs.debian.org/785738)
+     Thanks, Daniel Kahn Gillmor
+ * [ [[Simon McVittie|smcv]] ]
+   * Do not enable emailauth by default, to avoid surprises on httpauth-only
+     sites. Enable it by default in openid instead, since it is essentially
+     a replacement for OpenIDs.
+   * Make the attachment plugin work with CGI.pm 4.x (Closes: #[786586](https://bugs.debian.org/786586);
+     workaround for #[786587](https://bugs.debian.org/786587) in libcgi-pm-perl)
+   * Add a public-domain email icon from tango-icon-theme
+   * Populate pagectime from either mtime or inode change time,
+     whichever is older, again for more reproducible builds
+   * debian: build the docwiki with LC\_ALL=C.UTF-8 and TZ=UTC
+   * debian/copyright: consolidate permissive licenses
+   * debian/copyright: turn comments on provenance into Comment
+   * [[plugins/brokenlinks]]: sort the pages that link to the missing page, for
+     better reproducibility
+   * Add \[[!meta date]] to news items and tips, since the git checkout
+     and build process can leave the checkout date in the tarball
+     release, leading to unstable sorting
+   * Sort backlinks deterministically, by falling back to sorting by href
+     if the link text is identical
+   * Add a `$config{deterministic}` option and use it for the docwiki
+   * [[plugins/haiku]]: if deterministic build is requested, return a hard-coded haiku
+   * [[plugins/polygen]]: if deterministic build is requested, use a well-known random seed"""]]

Templates render bugfix appear to be working.
diff --git a/doc/templates/discussion.mdwn b/doc/templates/discussion.mdwn
index bf262ee..030a842 100644
--- a/doc/templates/discussion.mdwn
+++ b/doc/templates/discussion.mdwn
@@ -61,3 +61,7 @@ album and img plugins. --[[kjs]]
 >> [commit 5fd863b5](http://source.ikiwiki.branchable.com/?p=source.git;a=commitdiff;h=5fd863b5b05449669ec56c6798d836e3302386e2)
 >> to your Render.pm. A follow-up commit partially restores the optimization,
 >> only for rebuilds. --[[smcv]]
+
+>>> I've applied both your patches and as far as I can tell it's now working
+>>> as expected. Templates get rendered even if rebuild is triggered by
+>>> comments on another page. --[[kjs]]

Force a deterministic sort order for more pages
diff --git a/doc/users/sabr/sub1.mdwn b/doc/users/sabr/sub1.mdwn
index 85bfe26..e5a3f34 100644
--- a/doc/users/sabr/sub1.mdwn
+++ b/doc/users/sabr/sub1.mdwn
@@ -1 +1,2 @@
 one sabr sub
+[[!meta date="2008-04-17 03:08:36 -0400"]]
diff --git a/doc/users/sabr/sub2.mdwn b/doc/users/sabr/sub2.mdwn
index f63487d..9abee47 100644
--- a/doc/users/sabr/sub2.mdwn
+++ b/doc/users/sabr/sub2.mdwn
@@ -1 +1,2 @@
 two sabr sub
+[[!meta date="2008-04-17 03:08:58 -0400"]]

Close the openid vs. password poll
The result has pretty clearly been: we're keeping both.
diff --git a/doc/news/openid.mdwn b/doc/news/openid.mdwn
index b448c38..a4eb2f9 100644
--- a/doc/news/openid.mdwn
+++ b/doc/news/openid.mdwn
@@ -10,6 +10,6 @@ log back in, try out the OpenID signup process if you don't already have an
 OpenID, and see how OpenID works for you. And let me know your feelings about
 making such a switch. --[[Joey]]
 
-[[!poll 77 "Accept only OpenID for logins" 22 "Accept only password logins" 50 "Accept both"]]
+[[!poll open=no 77 "Accept only OpenID for logins" 22 "Accept only password logins" 50 "Accept both"]]
 
 [[!meta date="2006-11-20 21:08:23 +0000"]]

Add [[!meta date]] to news items and tips
The git checkout and build process can leave the checkout
date in the tarball release, leading to unstable sorting.
I tried to use `git restore-mtime`, but that doesn't work for
ikiwiki, because dgit interferes with it.
diff --git a/debian/changelog b/debian/changelog
index 896975e..526aa12 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -28,6 +28,9 @@ ikiwiki (3.20150330) UNRELEASED; urgency=medium
   * debian/copyright: turn comments on provenance into Comment
   * brokenlinks: sort the pages that link to the missing page, for
     better reproducibility
+  * Add [[!meta date]] to news items and tips, since the git checkout
+    and build process can leave the checkout date in the tarball
+    release, leading to unstable sorting
 
  -- Joey Hess <id@joeyh.name>  Tue, 28 Apr 2015 12:24:08 -0400
 
diff --git a/doc/news/Article_on_Ikiwiki_as_a_BTS.mdwn b/doc/news/Article_on_Ikiwiki_as_a_BTS.mdwn
index a5029f1..42a0f93 100644
--- a/doc/news/Article_on_Ikiwiki_as_a_BTS.mdwn
+++ b/doc/news/Article_on_Ikiwiki_as_a_BTS.mdwn
@@ -1 +1,3 @@
-[Integrated issue tracking with Ikiwiki](http://www.linuxworld.com/news/2007/040607-integrated-issue-tracking-ikiwiki.html) by Joey Hess is now available on LinuxWorld.com.  (LinuxWorld's author contract also allows this article to become part of the project's documentation.)  Learn how to use Ikiwiki inlining and PageSpecs for lightweight workflow.  Joey also explains how having the BTS and docs in the project's revision control system can help users of distributed revision control systems keep bug tracking info in sync with code changes.
\ No newline at end of file
+[[!meta date="2007-04-06 21:29:16 +0000"]]
+
+[Integrated issue tracking with Ikiwiki](http://www.linuxworld.com/news/2007/040607-integrated-issue-tracking-ikiwiki.html) by Joey Hess is now available on LinuxWorld.com.  (LinuxWorld's author contract also allows this article to become part of the project's documentation.)  Learn how to use Ikiwiki inlining and PageSpecs for lightweight workflow.  Joey also explains how having the BTS and docs in the project's revision control system can help users of distributed revision control systems keep bug tracking info in sync with code changes.
diff --git a/doc/news/code_swarm.mdwn b/doc/news/code_swarm.mdwn
index 09b6852..5a97988 100644
--- a/doc/news/code_swarm.mdwn
+++ b/doc/news/code_swarm.mdwn
@@ -1,3 +1,5 @@
+[[!meta date="2008-07-11 09:58:19 -0400"]]
+
 I've produced a [code_swarm](http://vis.cs.ucdavis.edu/~ogawa/codeswarm/)
 visualization of the first 2+ years of ikiwiki's commit history. 
 
diff --git a/doc/news/consultant_list.mdwn b/doc/news/consultant_list.mdwn
index 1adf2ed..f6140d4 100644
--- a/doc/news/consultant_list.mdwn
+++ b/doc/news/consultant_list.mdwn
@@ -1,3 +1,5 @@
+[[!meta date="2008-06-12 16:34:18 -0400"]]
+
 I was asked a good question today: How can a company find someone to work
 on ikiwiki? To help answer this question, I've set up a [[consultants]] page.
 If you might be interested in being paid to work on ikiwiki, please add your
diff --git a/doc/news/donations.mdwn b/doc/news/donations.mdwn
index 5fea32c..765afe0 100644
--- a/doc/news/donations.mdwn
+++ b/doc/news/donations.mdwn
@@ -1 +1,3 @@
-After looking up and noticing that another 8 hours had passed, replying to people and hacking, I've added a [[TipJar]] page, in case anyone feels like tossing me a few bucks for ikiwiki. TIA! --[[Joey]]
\ No newline at end of file
+[[!meta date="2006-12-29 07:05:57 +0000"]]
+
+After looking up and noticing that another 8 hours had passed, replying to people and hacking, I've added a [[TipJar]] page, in case anyone feels like tossing me a few bucks for ikiwiki. TIA! --[[Joey]]
diff --git a/doc/news/git_push_to_this_wiki.mdwn b/doc/news/git_push_to_this_wiki.mdwn
index 4b3fcbe..ea3350b 100644
--- a/doc/news/git_push_to_this_wiki.mdwn
+++ b/doc/news/git_push_to_this_wiki.mdwn
@@ -1,3 +1,5 @@
+[[!meta date="2008-10-24 16:08:36 -0400"]]
+
 Now you can use [[git]] to clone this wiki, and push your changes back,
 thanks to ikiwiki's new support for [[tips/untrusted_git_push]]. Enjoy
 working on the wiki while offline! --[[Joey]]
diff --git a/doc/news/ikiwiki-hosting.mdwn b/doc/news/ikiwiki-hosting.mdwn
index 092530a..13c21d1 100644
--- a/doc/news/ikiwiki-hosting.mdwn
+++ b/doc/news/ikiwiki-hosting.mdwn
@@ -1,3 +1,5 @@
+[[!meta date="2010-08-05 17:44:47 -0400"]]
+
 ikiwiki-hosting is an interface on top of Ikiwiki to allow easy management
 of lots of ikiwiki sites. I developed it for
 [Branchable](http://www.branchable.com/), an Ikiwiki hosting provider.
diff --git a/doc/news/ikiwiki_accepted_for_Summer_of_Code.mdwn b/doc/news/ikiwiki_accepted_for_Summer_of_Code.mdwn
index 0aa9d88..0b593e8 100644
--- a/doc/news/ikiwiki_accepted_for_Summer_of_Code.mdwn
+++ b/doc/news/ikiwiki_accepted_for_Summer_of_Code.mdwn
@@ -1,5 +1,7 @@
+[[!meta date="2007-03-15 10:55:18 +0000"]]
+
 Google has accepted ikiwiki as a mentoring organization for [Summer of Code 2007](http://code.google.com/soc).
 
 See our [[Summer_of_Code|soc]] page for projects.
 
---[[JoshTriplett]]
\ No newline at end of file
+--[[JoshTriplett]]
diff --git a/doc/news/ikiwiki_screencast.mdwn b/doc/news/ikiwiki_screencast.mdwn
index 4291082..d9c69d4 100644
--- a/doc/news/ikiwiki_screencast.mdwn
+++ b/doc/news/ikiwiki_screencast.mdwn
@@ -1,3 +1,5 @@
+[[!meta date="2007-11-26 19:14:22 -0500"]]
+
 I've put together a short screencast that covers approximatly the first
 half of the [[setup]] document, and includes a demo of setting up a blog
 using ikiwiki.
diff --git a/doc/news/ikiwiki_version_3.0.mdwn b/doc/news/ikiwiki_version_3.0.mdwn
index 7ca636c..c2555e3 100644
--- a/doc/news/ikiwiki_version_3.0.mdwn
+++ b/doc/news/ikiwiki_version_3.0.mdwn
@@ -1,3 +1,5 @@
+[[!meta date="2008-12-31 15:30:41 -0500"]]
+
 Ikiwiki has reached version 3.0 and entered a new phase in its
 [[development_cycle|roadmap]].
 
diff --git a/doc/news/irc_channel.mdwn b/doc/news/irc_channel.mdwn
index 248fd3c..81fbf60 100644
--- a/doc/news/irc_channel.mdwn
+++ b/doc/news/irc_channel.mdwn
@@ -1,3 +1,5 @@
+[[!meta date="2007-02-20 10:11:01 +0000"]]
+
 Ikiwiki now has an IRC channel: `#ikiwiki` on irc.oftc.net
 
 The channel features live commit messages for CIA for changes to both
diff --git a/doc/news/moved_to_git.mdwn b/doc/news/moved_to_git.mdwn
index 8a1fa11..0f819cf 100644
--- a/doc/news/moved_to_git.mdwn
+++ b/doc/news/moved_to_git.mdwn
@@ -1,3 +1,5 @@
+[[!meta date="2007-10-24 22:21:06 -0400"]]
+
 I've started using git as ikiwiki's main repository. See [[download]] for
 repository locations.
 
diff --git a/doc/news/new_domain_name.mdwn b/doc/news/new_domain_name.mdwn
index 395c3b6..1bad394 100644
--- a/doc/news/new_domain_name.mdwn
+++ b/doc/news/new_domain_name.mdwn
@@ -1 +1,3 @@
-Ikiwiki has its own domain now, ikiwiki.info. Update your links.
\ No newline at end of file
+Ikiwiki has its own domain now, ikiwiki.info. Update your links.
+
+[[!meta date="2007-02-18 20:24:26 +0000"]]
diff --git a/doc/news/no_more_email_notifications.mdwn b/doc/news/no_more_email_notifications.mdwn
index 685a0d3..18a7055 100644
--- a/doc/news/no_more_email_notifications.mdwn
+++ b/doc/news/no_more_email_notifications.mdwn
@@ -12,3 +12,5 @@ Statically building the RecentChanges also has performance implications,
 I'll keep an eye on [[server_speed]]..
 
 --[[Joey]]
+
+[[!meta date="2008-01-29 18:48:01 -0500"]]
diff --git a/doc/news/openid.mdwn b/doc/news/openid.mdwn
index 8d701be..b448c38 100644
--- a/doc/news/openid.mdwn
+++ b/doc/news/openid.mdwn
@@ -11,3 +11,5 @@ OpenID, and see how OpenID works for you. And let me know your feelings about
 making such a switch. --[[Joey]]
 
 [[!poll 77 "Accept only OpenID for logins" 22 "Accept only password logins" 50 "Accept both"]]
+
+[[!meta date="2006-11-20 21:08:23 +0000"]]
diff --git a/doc/news/server_move.mdwn b/doc/news/server_move.mdwn
index 49d0257..7173f24 100644
--- a/doc/news/server_move.mdwn
+++ b/doc/news/server_move.mdwn
@@ -7,3 +7,5 @@ hasn't caught up yet. I'll keep the old server up for a while too and merge
 any changes across since git makes that bog-easy.
 
 Please report any problems..
+
+[[!meta date="2008-03-19 23:07:13 -0400"]]
diff --git a/doc/news/server_move_2009.mdwn b/doc/news/server_move_2009.mdwn
index 8be5deb..57d6fd2 100644
--- a/doc/news/server_move_2009.mdwn
+++ b/doc/news/server_move_2009.mdwn
@@ -4,3 +4,5 @@ The ikiwiki.info domain has been moved to a new server. If you can see
 this, your DNS has already caught up and you are using the new server.
 By the way, the new server should be somewhat faster.
 --[[Joey]]
+
+[[!meta date="2009-12-12 15:19:42 -0500"]]
diff --git a/doc/news/server_speed.mdwn b/doc/news/server_speed.mdwn
index 60ce59d..e467eeb 100644
--- a/doc/news/server_speed.mdwn
+++ b/doc/news/server_speed.mdwn
@@ -7,3 +7,5 @@ If you have specifics on performance issues, you might mention them on the
 [[discussion]] page.
 
 Ikiwiki is now hosted at [Branchable](http://branchable.com/).
+
+[[!meta date="2007-02-20 10:40:02 +0000"]]
diff --git a/doc/news/stylesheets.mdwn b/doc/news/stylesheets.mdwn
index a5f0946..86b0ea9 100644
--- a/doc/news/stylesheets.mdwn
+++ b/doc/news/stylesheets.mdwn
@@ -14,3 +14,5 @@ I'm also always looking for minimalistic yet refined additions to the default
 style sheet, and always appreciate suggestions for it.
 
 --[[Joey]]
+
+[[!meta date="2006-09-23 00:12:21 +0000"]]
diff --git a/doc/news/version_3.20140815.mdwn b/doc/news/version_3.20140815.mdwn
index 6ec3c73..5fb2da6 100644

(Diff truncated)
disable another gitorious repository in ./gitremotes
diff --git a/doc/git.mdwn b/doc/git.mdwn
index a156a4a..dd066c3 100644
--- a/doc/git.mdwn
+++ b/doc/git.mdwn
@@ -68,7 +68,7 @@ think about merging them. This is recommended. :-)
   ([browse](http://git.debian.org/?p=users/jo-guest/ikiwiki.git;a=summary))
 * [[timonator]] (unavailable) `git://github.com/timo/ikiwiki.git`
 * [[sajolida]] `http://un.poivron.org/~sajolida/ikiwiki.git/`
-* nezmer `git://gitorious.org/ikiwiki-nezmer/ikiwiki-nezmer.git`
+* nezmer (unavailable) `git://gitorious.org/ikiwiki-nezmer/ikiwiki-nezmer.git`
 * [[yds]] `git://github.com/yds/ikiwiki.git`
 * [[pelle]] `git://github.com/hemmop/ikiwiki.git`
 * [[chrismgray]] `git://github.com/chrismgray/ikiwiki.git`

Replace email authentication icon with one that is more instantly recognizable
diff --git a/debian/copyright b/debian/copyright
index 35fadf5..e14398a 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -275,6 +275,15 @@ Files: themes/monochrome/*
 Copyright: © 2012 Jon Dowland
 License: GPL-2+
 
+Files:
+ icons/internet-mail.svg
+ doc/wikiicons/email.png
+Comment:
+ icon by Jakub Steiner and Andreas Nilsson, taken from
+ tango-icon-theme 0.8.90.
+Copyright: none
+License: public-domain
+
 License: BSD-2-clause
  Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following conditions
@@ -341,3 +350,39 @@ License: LGPL-2.1+
  .
  On Debian systems, the complete text of the GNU Lesser General
  Public License can be found in `/usr/share/common-licenses/LGPL-2.1'.
+
+License: public-domain
+ Public Domain Dedication
+ .
+ Copyright-Only Dedication (based on United States law) or Public Domain
+ Certification
+ .
+ The person or persons who have associated work with this document (the
+ "Dedicator" or "Certifier") hereby either (a) certifies that, to the best
+ of his knowledge, the work of authorship identified is in the public
+ domain of the country from which the work is published, or (b)
+ hereby dedicates whatever copyright the dedicators holds in the work
+ of authorship identified below (the "Work") to the public domain. A
+ certifier, moreover, dedicates any copyright interest he may have in
+ the associated work, and for these purposes, is described as a
+ "dedicator" below.
+ .
+ A certifier has taken reasonable steps to verify the copyright
+ status of this work. Certifier recognizes that his good faith efforts
+ may not shield him from liability if in fact the work certified is not
+ in the public domain.
+ .
+ Dedicator makes this dedication for the benefit of the public at
+ large and to the detriment of the Dedicator's heirs and successors.
+ Dedicator intends this dedication to be an overt act of relinquishment
+ in perpetuity of all present and future rights under copyright law,
+ whether vested or contingent, in the Work. Dedicator understands that
+ such relinquishment of all rights includes the relinquishment of all
+ rights to enforce (by lawsuit or otherwise) those copyrights in the
+ Work.
+ .
+ Dedicator recognizes that, once placed in the public domain, the Work
+ may be freely reproduced, distributed, transmitted, used, modified,
+ built upon, or otherwise exploited by anyone for any purpose, commercial
+ or non-commercial, and in any way, including by methods that have not
+ yet been invented or conceived.
diff --git a/doc/wikiicons/email.png b/doc/wikiicons/email.png
index 1b16bef..859251f 100644
Binary files a/doc/wikiicons/email.png and b/doc/wikiicons/email.png differ
diff --git a/icons/internet-mail.svg b/icons/internet-mail.svg
new file mode 100644
index 0000000..8d5ea8c
--- /dev/null
+++ b/icons/internet-mail.svg
@@ -0,0 +1,440 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   sodipodi:docname="internet-mail.svg"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/apps"
+   inkscape:version="0.46"
+   sodipodi:version="0.32"
+   id="svg5816"
+   height="48px"
+   width="48px"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective73" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient6719"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5060">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop5062" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5064" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient6717"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="0"
+         id="stop5050" />
+      <stop
+         id="stop5056"
+         offset="0.5"
+         style="stop-color:black;stop-opacity:1;" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5052" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5048"
+       id="linearGradient6715"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507" />
+    <linearGradient
+       id="linearGradient28260">
+      <stop
+         style="stop-color:#9aa29a;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop28262" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop28264" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient28254">
+      <stop
+         id="stop28256"
+         offset="0.0000000"
+         style="stop-color:#9aa29a;stop-opacity:1.0000000;" />
+      <stop
+         id="stop28258"
+         offset="1.0000000"
+         style="stop-color:none" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2274">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.12871288;"
+         offset="0.0000000"
+         id="stop2276" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop2278" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9749">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop9751" />
+      <stop
+         style="stop-color:#ededed;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop9753" />
+    </linearGradient>

(Diff truncated)
follow up: optimization partially restored
diff --git a/doc/bugs/template_creation_error.mdwn b/doc/bugs/template_creation_error.mdwn
index 81b8a5c..9d6915b 100644
--- a/doc/bugs/template_creation_error.mdwn
+++ b/doc/bugs/template_creation_error.mdwn
@@ -239,7 +239,9 @@ same logic as IkiWiki itself. I don't think that's serious. --[[smcv]]
 >>>> during the render phase, namely when a page that is rendered
 >>>> due to dependencies uses a template that no other page being
 >>>> rendered in this pass was using. I've reverted this optimization,
->>>> to fix [[wrong rendering of templatebody]]. --[[smcv]]
+>>>> to fix [[wrong rendering of templatebody]], and applied a more
+>>>> limited version which only optimizes rebuilds (the worst case
+>>>> of this memory consumption). --[[smcv]]
 >>>
 >>> `%scanned` is likely to be no larger than `%rendered`, which
 >>> we already track, and whose useful lifetime does not overlap
@@ -270,6 +272,11 @@ same logic as IkiWiki itself. I don't think that's serious. --[[smcv]]
 >>>> decide whether to scan the template page, but would be generally more
 >>>> robust for future plugin writing.
 >>>>
+>>>>> At the moment templatebody really does need to re-scan templates in
+>>>>> the render phase, unfortunately. Not scanning in the render phase
+>>>>> seems to be precisely how [[wrong rendering of templatebody]]
+>>>>> happened. --s
+>>>>
 >>>> **addendum**: if the new phase state is used to create warnings/errors
 >>>> about improper ikiwiki api use of plugins (which is something i'd
 >>>> advocate), that should likewise warn if `add_link` actually adds a link in
diff --git a/doc/bugs/wrong_rendering_of_templatebody.mdwn b/doc/bugs/wrong_rendering_of_templatebody.mdwn
index 93a687a..1a9377b 100644
--- a/doc/bugs/wrong_rendering_of_templatebody.mdwn
+++ b/doc/bugs/wrong_rendering_of_templatebody.mdwn
@@ -21,9 +21,9 @@ description) and ignores the body itself (which is inside \[[!templatebody]]).
 > With a hint from [[kjs]] on [[templates/discussion]], I was able to reproduce
 > this bug. It seems to have been caused by an optimization: please try applying
 > [commit 5fd863b5](http://source.ikiwiki.branchable.com/?p=source.git;a=commitdiff;h=5fd863b5b05449669ec56c6798d836e3302386e2)
-> to your Render.pm. I'll try to work out a way to have the optimization
-> without the correctness impact, but for now, reverting the optimization,
-> which I have [[done]], seems like the way forward. --[[smcv]]
+> to your Render.pm. A follow-up commit partially brings back the optimization
+> (only for rebuilds). So I think this is [[done]]? (remove that link if
+> not) --[[smcv]]
 
 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.
diff --git a/doc/templates/discussion.mdwn b/doc/templates/discussion.mdwn
index 612cced..bf262ee 100644
--- a/doc/templates/discussion.mdwn
+++ b/doc/templates/discussion.mdwn
@@ -59,6 +59,5 @@ album and img plugins. --[[kjs]]
 >> Thanks, that was the hint I needed to be able to reproduce this bug. It seems
 >> to have been caused by an optimization: please try applying
 >> [commit 5fd863b5](http://source.ikiwiki.branchable.com/?p=source.git;a=commitdiff;h=5fd863b5b05449669ec56c6798d836e3302386e2)
->> to your Render.pm. I'll try to work out a way to have the optimization
->> without the correctness impact, but for now, reverting the optimization
->> seems like the way forward. --s
+>> to your Render.pm. A follow-up commit partially restores the optimization,
+>> only for rebuilds. --[[smcv]]

de-optimized to fix a bug
diff --git a/doc/bugs/template_creation_error.mdwn b/doc/bugs/template_creation_error.mdwn
index 33a863e..81b8a5c 100644
--- a/doc/bugs/template_creation_error.mdwn
+++ b/doc/bugs/template_creation_error.mdwn
@@ -234,6 +234,13 @@ same logic as IkiWiki itself. I don't think that's serious. --[[smcv]]
 >>> drop the contents of `%scanned` and rely on a single boolean
 >>> flag instead.
 >>>
+>>>> This is not actually good enough for the templatebody
+>>>> directive, which does in fact need to scan certain pages
+>>>> during the render phase, namely when a page that is rendered
+>>>> due to dependencies uses a template that no other page being
+>>>> rendered in this pass was using. I've reverted this optimization,
+>>>> to fix [[wrong rendering of templatebody]]. --[[smcv]]
+>>>
 >>> `%scanned` is likely to be no larger than `%rendered`, which
 >>> we already track, and whose useful lifetime does not overlap
 >>> with `%scanned` now. I was tempted to merge them both and call

hopefully fixed in master
diff --git a/doc/bugs/wrong_rendering_of_templatebody.mdwn b/doc/bugs/wrong_rendering_of_templatebody.mdwn
index 20d9060..93a687a 100644
--- a/doc/bugs/wrong_rendering_of_templatebody.mdwn
+++ b/doc/bugs/wrong_rendering_of_templatebody.mdwn
@@ -18,6 +18,13 @@ 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]]).
 
+> With a hint from [[kjs]] on [[templates/discussion]], I was able to reproduce
+> this bug. It seems to have been caused by an optimization: please try applying
+> [commit 5fd863b5](http://source.ikiwiki.branchable.com/?p=source.git;a=commitdiff;h=5fd863b5b05449669ec56c6798d836e3302386e2)
+> to your Render.pm. I'll try to work out a way to have the optimization
+> without the correctness impact, but for now, reverting the optimization,
+> which I have [[done]], seems like the way forward. --[[smcv]]
+
 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.
 

respond to various things
diff --git a/doc/templates/discussion.mdwn b/doc/templates/discussion.mdwn
index ae8cca9..612cced 100644
--- a/doc/templates/discussion.mdwn
+++ b/doc/templates/discussion.mdwn
@@ -11,6 +11,8 @@ note and popups are templates? But they're not in the templates directory, and i
 > > I intend do (mis)use links for a horizontal navigation. Or may I be better off altering page.tmpl?
 > > --z3ttacht
 
+----
+
 Is there a list of the TMPL_VAR-Variables that are defined by ikiwiki?
 
 What I'm trying to achieve is to print the URL of every page on the page itself and therefore I would need the corresponding value in the Template.
@@ -21,11 +23,26 @@ Am I missing something?  --[[jwalzer]]
 > the moment), a [[plugin|plugins/write]] to add one would be about 10
 > lines of perl - you'd just need to define a `pagetemplate` hook. --[[smcv]]
 
+----
+
 Is there a list of all the available variables somewhere, or do I just grep the source for TMPL_VAR?  And is there a way to refer to a variable inside of a wiki page or does it have to be done from a template?  Thanks. -- [[AdamShand]]
 
 I pulled a list of variables and posted it, its in the history for [[templates]] under my name. [[justint]]
 
-I am trying to override `page.tmpl` by providing `templates/page.tmpl` in my `srcdir`- this works, but now `templates/page.tmpl` is created in my `destdir` as well! Is this expected? Is there a way to avoid this? --chenz
+----
+
+I am trying to override `page.tmpl` by providing `templates/page.tmpl` in my `srcdir`- this works, but now `templates/page.tmpl` is created in my `destdir` as well! Is this expected? --chenz
+
+> Yes. Every file found in the wiki is treated as either a page (passed through the whole
+> rendering pipeline to HTML) or an attachment (copied as-is). --[[smcv]]
+
+Is there a way to avoid this? --chenz
+
+> With the page in your wiki's git repository: not currently.
+> You can define a `templatedir` in your setup file and put your overridden page.tmpl
+> there instead. --s
+
+----
 
 I'm seeing some curious behaviour with `$srcdir/templates/` templates not being found when
 pushing from a remote computer. Touching the relevant file on the server and
@@ -34,6 +51,14 @@ pushing from a remote computer. Touching the relevant file on the server and
 might be causing this? I'm running a custom branch of ikiwiki master from a
 couple of weeks ago so could be my own doing but my changes are mainly to the
 album and img plugins. --[[kjs]]
+
 > Seems like the issue is rather that the templates aren't found/triggered
 > when the page render is set off by dependencies rather than direct editing
 > of the page. Not the remove local issue mentioned above. --[[kjs]]
+
+>> Thanks, that was the hint I needed to be able to reproduce this bug. It seems
+>> to have been caused by an optimization: please try applying
+>> [commit 5fd863b5](http://source.ikiwiki.branchable.com/?p=source.git;a=commitdiff;h=5fd863b5b05449669ec56c6798d836e3302386e2)
+>> to your Render.pm. I'll try to work out a way to have the optimization
+>> without the correctness impact, but for now, reverting the optimization
+>> seems like the way forward. --s

diff --git a/doc/templates/discussion.mdwn b/doc/templates/discussion.mdwn
index b118c15..ae8cca9 100644
--- a/doc/templates/discussion.mdwn
+++ b/doc/templates/discussion.mdwn
@@ -34,3 +34,6 @@ pushing from a remote computer. Touching the relevant file on the server and
 might be causing this? I'm running a custom branch of ikiwiki master from a
 couple of weeks ago so could be my own doing but my changes are mainly to the
 album and img plugins. --[[kjs]]
+> Seems like the issue is rather that the templates aren't found/triggered
+> when the page render is set off by dependencies rather than direct editing
+> of the page. Not the remove local issue mentioned above. --[[kjs]]

Revert "removed"
We like our pages and we would prefer to keep them.
This reverts commit 508bda205911058377f36fd4924b1e3f33914c71.
diff --git a/doc/forum.mdwn b/doc/forum.mdwn
new file mode 100644
index 0000000..62b62a4
--- /dev/null
+++ b/doc/forum.mdwn
@@ -0,0 +1,11 @@
+This is a place for questions and discussions that don't have a Discussion
+page fitting enough. Users of ikiwiki can ask questions here.
+
+Note that for more formal bug reports or todo items, you can also edit the
+[[bugs]] and [[todo]] pages.
+
+
+## Current topics ##
+
+[[!inline pages="forum/*  and !forum/discussion and !forum/*/*" 
+archive=yes rootpage="forum" postformtext="Add a new thread titled:" show=0]]

Templates not found when pushing from remote computer
diff --git a/doc/templates/discussion.mdwn b/doc/templates/discussion.mdwn
index dddab48..b118c15 100644
--- a/doc/templates/discussion.mdwn
+++ b/doc/templates/discussion.mdwn
@@ -26,3 +26,11 @@ Is there a list of all the available variables somewhere, or do I just grep the
 I pulled a list of variables and posted it, its in the history for [[templates]] under my name. [[justint]]
 
 I am trying to override `page.tmpl` by providing `templates/page.tmpl` in my `srcdir`- this works, but now `templates/page.tmpl` is created in my `destdir` as well! Is this expected? Is there a way to avoid this? --chenz
+
+I'm seeing some curious behaviour with `$srcdir/templates/` templates not being found when
+pushing from a remote computer. Touching the relevant file on the server and
+`ikiwiki --setup wiki.setup --refresh -v` sorts it out. I have done `--refresh
+--wrappers` just to be sure the hooks aren't out of date. Anyone knows what
+might be causing this? I'm running a custom branch of ikiwiki master from a
+couple of weeks ago so could be my own doing but my changes are mainly to the
+album and img plugins. --[[kjs]]

diff --git a/doc/bugs/Colons___8216__:__8217___should_not_be_allowed_in_image_filenames.mdwn b/doc/bugs/Colons___8216__:__8217___should_not_be_allowed_in_image_filenames.mdwn
new file mode 100644
index 0000000..3ecde81
--- /dev/null
+++ b/doc/bugs/Colons___8216__:__8217___should_not_be_allowed_in_image_filenames.mdwn
@@ -0,0 +1,12 @@
+`IkiWiki::Plugin::img` appends `[$pagenumber]` to the filename to deal with multipage documents such as PDFs.
+However, `Image::Magick` doesn't seem to like page selection for filenames containing a colon.  This is also the case for imagemagick binaries:
+
+    $ identify 'screenshot_2015-06-06_18:37:53.png'
+    screenshot_2015-06-06_18:37:53.png PNG 453x122 453x122+0+0 8-bit sRGB 11.2KB 0.000u 0:00.000
+    $ identify 'screenshot_2015-06-06_18:37:53.png[0]'
+    identify: no decode delegate for this image format `37' @ error/constitute.c/ReadImage/501.
+    $ mv 'screenshot_2015-06-06_18:37:53.png' 'screenshot_2015-06-06_18-37-53.png'
+    $ identify 'screenshot_2015-06-06_18-37-53.png[0]'
+    screenshot_2015-06-06_18-37-53.png[0]=>screenshot_2015-06-06_18-37-53.png PNG 453x122 453x122+0+0 8-bit sRGB 11.2KB 0.000u 0:00.000
+
+This might be an imagemagick bug, but it's also possible that colons are interpreted somehow.  Anyway, to render such images properly in ikiwiki I had to remove the colons.  An easy fix is to remove ‘:’ from `wiki_file_chars`, but this can break existing installations.  A better solution would be to make `IkiWiki::Plugin::img` croak on such image filenames (which anyway are currently not rendered, but `Image::Magick`'s error message is quite cryptic).

removed
diff --git a/doc/forum.mdwn b/doc/forum.mdwn
deleted file mode 100644
index 62b62a4..0000000
--- a/doc/forum.mdwn
+++ /dev/null
@@ -1,11 +0,0 @@
-This is a place for questions and discussions that don't have a Discussion
-page fitting enough. Users of ikiwiki can ask questions here.
-
-Note that for more formal bug reports or todo items, you can also edit the
-[[bugs]] and [[todo]] pages.
-
-
-## Current topics ##
-
-[[!inline pages="forum/*  and !forum/discussion and !forum/*/*" 
-archive=yes rootpage="forum" postformtext="Add a new thread titled:" show=0]]

Added a comment: Cheap VPS
diff --git a/doc/forum/how_to_setup_ikiwiki_on_a_remote_host/comment_1_c4580e3340401d0979ef87034dc22ae3._comment b/doc/forum/how_to_setup_ikiwiki_on_a_remote_host/comment_1_c4580e3340401d0979ef87034dc22ae3._comment
new file mode 100644
index 0000000..b71afb3
--- /dev/null
+++ b/doc/forum/how_to_setup_ikiwiki_on_a_remote_host/comment_1_c4580e3340401d0979ef87034dc22ae3._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="alexjj@97b75209148c043997fe05b4341a629090820035"
+ nickname="alexjj"
+ subject="Cheap VPS"
+ date="2015-06-05T17:51:53Z"
+ content="""
+Get a cheap VPS from [lowendspirit](http://lowendspirit.com/). 3 euro/year!
+
+It's perfect for running ikiwiki and some other services for a personal site. 
+
+Note: You only get ipv6 and NAT ipv4, but the forums explains how you can setup domains and things to get a website working. I have one with ikiwiki and it's great.
+"""]]

mutiple setup not possible
diff --git a/doc/tips/laptop_wiki_with_git/discussion.mdwn b/doc/tips/laptop_wiki_with_git/discussion.mdwn
index 16e4813..b44285d 100644
--- a/doc/tips/laptop_wiki_with_git/discussion.mdwn
+++ b/doc/tips/laptop_wiki_with_git/discussion.mdwn
@@ -23,3 +23,7 @@ Managing two setup files (one for the server and one for the laptop) is however
 One solution is to allow multiple use of `--setup` on the command line : the first is the main setup file (the one from the server, e.g. `main.setup`) and the second is the specificities of the laptop clone (e.g `laptop.setup`). In such a situation ikiwiki is called with `ikiwiki --setup main.setup` on the server and `ikiwiki --setup main.setup --setup laptop.setup` on the laptop (merging both configuration data in order).
 
 This solution seems to work, but are there any bad side effects which I miss doing that (I thought that in IkiWiki code only one setupfile is keeped) ? --[[bbb]]
+
+Unfortunatley that does not fully work, as soon as `cgi_wrapper` is defined in setup file since each time ikiwiki reads a setup file it adds (not replace) a wrapper in `$config{wrappers}`.
+
+I am still trying to find an idea to share config data through server and laptop. --[[bbb]]

Question about multiple setup file use
diff --git a/doc/tips/laptop_wiki_with_git/discussion.mdwn b/doc/tips/laptop_wiki_with_git/discussion.mdwn
index 297a2a6..16e4813 100644
--- a/doc/tips/laptop_wiki_with_git/discussion.mdwn
+++ b/doc/tips/laptop_wiki_with_git/discussion.mdwn
@@ -13,3 +13,13 @@ Or, was this last remark about rebuilding after pulling meant to apply to rebuil
 
 I have followed this idea too, however after pushing to the server running gitk in the scrdir shows that the remotes/origin/master branch is newer than the master. Is this normal? Have I reset the master branch to remotes/origin/master then every time when someone pushed something (and run ikiwiki -setup afterwards?)
 [[Micheal]]
+
+-----
+
+I like the idea of having some common configuration (let's say of plugins) in the server as well as on the laptop clone. In the ideal situations only some dir should be different (src, dest, lib, etc.) in the two setup files.
+
+Managing two setup files (one for the server and one for the laptop) is however a pain since each time a change is made on the server (through websetup for instance) one has to manually integrated it (after being made aware of it) on the laptop setup file and vice-versa
+
+One solution is to allow multiple use of `--setup` on the command line : the first is the main setup file (the one from the server, e.g. `main.setup`) and the second is the specificities of the laptop clone (e.g `laptop.setup`). In such a situation ikiwiki is called with `ikiwiki --setup main.setup` on the server and `ikiwiki --setup main.setup --setup laptop.setup` on the laptop (merging both configuration data in order).
+
+This solution seems to work, but are there any bad side effects which I miss doing that (I thought that in IkiWiki code only one setupfile is keeped) ? --[[bbb]]

added opengraph plugin
diff --git a/doc/users/desci.mdwn b/doc/users/desci.mdwn
index 677b941..47335b9 100644
--- a/doc/users/desci.mdwn
+++ b/doc/users/desci.mdwn
@@ -1,4 +1,4 @@
-Sites I am using Ikiwiki with the [[bootstrap theme|/theme_market]]:
+Sites I am using Ikiwiki with the [[bootstrap 3 theme|/theme_market]]:
 
 * <https://hi.ato.br>
 * <https://capoeira.li/blog>
@@ -7,3 +7,7 @@ Sites I am using Ikiwiki with the [[bootstrap theme|/theme_market]]:
 * <http://iuri.tem.blog.br>
 * <http://mim.tem.blog.br>
 * <http://piratas.xyz>
+
+---
+
+A plugin to add facebook spyware to your ikiwiki: [[plugins/contrib/opengraph/]]

removed old sites and added new
diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn
index 7fa405e..47a1369 100644
--- a/doc/ikiwikiusers.mdwn
+++ b/doc/ikiwikiusers.mdwn
@@ -101,6 +101,8 @@ Projects & Organizations
 * [[hplusroadmap|http://diyhpl.us/wiki/]] - a community for open source hardware, do-it-yourself biohacking and practical transhumanism
 * [[OpenAFS|http://wiki.openafs.org]] - an open-source, cross-platform distributed file system
 * [Copyleft.org](http://copyleft.org/)
+* [Hacklab Independência](https://hi.ato.br) - radical tech collective
+* [Piratas XYZ](http://piratas.xyz) - one of [pirate party of brazil](http://partidopirata.org)'s sites
 
 Personal sites and blogs
 ========================
@@ -193,8 +195,6 @@ Personal sites and blogs
 * [Puckspage]( http://www.puckspage.org/ ) Political and personal blog in German. The name comes from the elf out of midsummer nights dream.  
 * [[LucaCapello]]'s [homepage](http://luca.pca.it)
 * [[Martín Ferrari's homepage|http://tincho.org/]] and [[blog|http://blog.tincho.org/]]
-* [WikiAtoBR](http://wiki.hi.ato.br) Open, free and annoymous wiki. No need for account registering and login. It is Brazilian so it is in Portuguese.
-* [Manifesto](http://manifesto.hi.ato.br) Open, free and annoymous blog. No need for account registering and login. It is Brazilian so it is in Portuguese.
  * [Z is for Zombies](http://blog.zouish.org/) — personal blog/site of Francesca Ciceri
 * Julien Lefrique's [homepage](http://julien.lefrique.name/), hosted on [GitHub pages](https://github.com/jlefrique/jlefrique.github.com) with CGI disabled
 * [Anarcat's homepage](http://anarcat.ath.cx/) - with a custom [[theme|theme_market]]
@@ -207,3 +207,9 @@ Personal sites and blogs
 * [Amitai Schlair's site](http://www.schmonz.com/)
 * My ([[spalax]]) [professional website](http://paternault.fr)
 * [Aloodo Blog](http://blog.aloodo.org/)
+* Ninguém tem blog! - Restricted ikiwiki hosting
+  * [Dissertos radicais](http://dissertosradicais.tem.blog.br)
+  * [E pelas praças não terá nome](http://epelaspracasnaoteranome.tem.blog.br)
+  * [Igreja Universal do Reino do Iuri](http://iuri.tem.blog.br)
+  * [Mim](http://mim.tem.blog.br)
+* [Mídia Capoeira](https://capoeira.li/blog/) - independent journalism initiative