Recent changes to this wiki:

revert spam
This reverts commit 41dd34c030be3c0c3ad98e696117ed6a4d2ca73a
diff --git a/doc/css_market.mdwn b/doc/css_market.mdwn
index 21ef42728..56f78a4e8 100644
--- a/doc/css_market.mdwn
+++ b/doc/css_market.mdwn
@@ -34,7 +34,7 @@ gnomes will convert them to css files..)
 
 * **[[02_Template.css]]**, contributed and adapted by [maxx](http://martin.wuertele.net/), [original](http://www.openwebdesign.org/viewdesign.phtml?id=3057)
   designed by [jarico](http://www.openwebdesign.org/userinfo.phtml?user=jcarico) 
-  (License: [public domain](https://simthanhdat.net)). You'll need a modified page.tmpl
+  (License: public domain). You'll need a modified page.tmpl
   **[[css_market/02_Template.tmpl]]**. If you prefer 
   [my header image](http://martin.wuertele.net/images/header.png) you can 
   use it under the terms of the MIT License (see png comment).

diff --git a/doc/css_market.mdwn b/doc/css_market.mdwn
index 56f78a4e8..21ef42728 100644
--- a/doc/css_market.mdwn
+++ b/doc/css_market.mdwn
@@ -34,7 +34,7 @@ gnomes will convert them to css files..)
 
 * **[[02_Template.css]]**, contributed and adapted by [maxx](http://martin.wuertele.net/), [original](http://www.openwebdesign.org/viewdesign.phtml?id=3057)
   designed by [jarico](http://www.openwebdesign.org/userinfo.phtml?user=jcarico) 
-  (License: public domain). You'll need a modified page.tmpl
+  (License: [public domain](https://simthanhdat.net)). You'll need a modified page.tmpl
   **[[css_market/02_Template.tmpl]]**. If you prefer 
   [my header image](http://martin.wuertele.net/images/header.png) you can 
   use it under the terms of the MIT License (see png comment).

Revert spam edit.
This reverts commit 420381a226fbd0a19c8a0bc5125c572ab4ad775d.
diff --git a/doc/css_market.mdwn b/doc/css_market.mdwn
index 6f282949d..56f78a4e8 100644
--- a/doc/css_market.mdwn
+++ b/doc/css_market.mdwn
@@ -34,7 +34,7 @@ gnomes will convert them to css files..)
 
 * **[[02_Template.css]]**, contributed and adapted by [maxx](http://martin.wuertele.net/), [original](http://www.openwebdesign.org/viewdesign.phtml?id=3057)
   designed by [jarico](http://www.openwebdesign.org/userinfo.phtml?user=jcarico) 
-  (License: [public domain](https://simthanhdat.net/)). You'll need a modified page.tmpl
+  (License: public domain). You'll need a modified page.tmpl
   **[[css_market/02_Template.tmpl]]**. If you prefer 
   [my header image](http://martin.wuertele.net/images/header.png) you can 
   use it under the terms of the MIT License (see png comment).

diff --git a/doc/css_market.mdwn b/doc/css_market.mdwn
index 56f78a4e8..6f282949d 100644
--- a/doc/css_market.mdwn
+++ b/doc/css_market.mdwn
@@ -34,7 +34,7 @@ gnomes will convert them to css files..)
 
 * **[[02_Template.css]]**, contributed and adapted by [maxx](http://martin.wuertele.net/), [original](http://www.openwebdesign.org/viewdesign.phtml?id=3057)
   designed by [jarico](http://www.openwebdesign.org/userinfo.phtml?user=jcarico) 
-  (License: public domain). You'll need a modified page.tmpl
+  (License: [public domain](https://simthanhdat.net/)). You'll need a modified page.tmpl
   **[[css_market/02_Template.tmpl]]**. If you prefer 
   [my header image](http://martin.wuertele.net/images/header.png) you can 
   use it under the terms of the MIT License (see png comment).

Review of disclaimer.
diff --git a/doc/plugins/contrib/opengraph/discussion.mdwn b/doc/plugins/contrib/opengraph/discussion.mdwn
new file mode 100644
index 000000000..8b6d0c79c
--- /dev/null
+++ b/doc/plugins/contrib/opengraph/discussion.mdwn
@@ -0,0 +1,3 @@
+Regarding the disclaimer "WARNING: Open Graph is modern spyware. You should use this if and only if you don't mind making the readers of your wiki/blog being tracked by evil corporations without their consent. By using this plugin you are being mean to the people who are reading your content. You have been warned."
+
+I have looked up how open graph is described to work, and don't see how this can be considered spyware. All it seems to do is enable to control how shared links are displayed on social networks that implement the protocol, and possibly on those platforms determine how many times a link to my site would be shared a little more easily, but there doesn't seem to be a way readers of my site would be tracked thanks to the metadata on the wiki. Even if they are users of social networks and logged in there, their browsing of my site won't be tracked after open graph metadata is included. Is that incorrect?

Revert spam
This reverts commit 48cb1a494577dc047c17f10364ecd217b01194ad
diff --git a/doc/css_market.mdwn b/doc/css_market.mdwn
index 21ef42728..56f78a4e8 100644
--- a/doc/css_market.mdwn
+++ b/doc/css_market.mdwn
@@ -34,7 +34,7 @@ gnomes will convert them to css files..)
 
 * **[[02_Template.css]]**, contributed and adapted by [maxx](http://martin.wuertele.net/), [original](http://www.openwebdesign.org/viewdesign.phtml?id=3057)
   designed by [jarico](http://www.openwebdesign.org/userinfo.phtml?user=jcarico) 
-  (License: [public domain](https://simthanhdat.net)). You'll need a modified page.tmpl
+  (License: public domain). You'll need a modified page.tmpl
   **[[css_market/02_Template.tmpl]]**. If you prefer 
   [my header image](http://martin.wuertele.net/images/header.png) you can 
   use it under the terms of the MIT License (see png comment).

diff --git a/doc/css_market.mdwn b/doc/css_market.mdwn
index 56f78a4e8..21ef42728 100644
--- a/doc/css_market.mdwn
+++ b/doc/css_market.mdwn
@@ -34,7 +34,7 @@ gnomes will convert them to css files..)
 
 * **[[02_Template.css]]**, contributed and adapted by [maxx](http://martin.wuertele.net/), [original](http://www.openwebdesign.org/viewdesign.phtml?id=3057)
   designed by [jarico](http://www.openwebdesign.org/userinfo.phtml?user=jcarico) 
-  (License: public domain). You'll need a modified page.tmpl
+  (License: [public domain](https://simthanhdat.net)). You'll need a modified page.tmpl
   **[[css_market/02_Template.tmpl]]**. If you prefer 
   [my header image](http://martin.wuertele.net/images/header.png) you can 
   use it under the terms of the MIT License (see png comment).

diff --git a/doc/sandbox.mdwn b/doc/sandbox.mdwn
index acf53e6a8..24e6c9f20 100644
--- a/doc/sandbox.mdwn
+++ b/doc/sandbox.mdwn
@@ -258,3 +258,11 @@ I must **emphasise** this.
       cout << "secondvalue is " << secondvalue << '\n';
       return 0;
     }
+
+testeteset
+
+Install ikiwiki
+
+If you're using Debian or Ubuntu, ikiwiki is an apt-get install ikiwiki away. If you're not, see the download and install pages.
+
+You may also want to try out IkiWiki in a container.

Record yesterday's spam edits.
diff --git a/doc/spam_fighting.mdwn b/doc/spam_fighting.mdwn
index bb8bc904d..3a4856267 100644
--- a/doc/spam_fighting.mdwn
+++ b/doc/spam_fighting.mdwn
@@ -39,4 +39,5 @@ ca4d8fc and 17 more | 2015/01/12-14 | spalax. (note the trailing dot) | 122.173.
 1d05cf3 | 2015/05/20 | justine (OpenID) | ?
 697a0e4 and bc1b60b | 2019/12/21 | 360boom720@gmail.com | 99.203.143.171
 39c6ce3 and 13 more | 2020/06/04 | gogreenjogja1453@gmail.com | 114.142.169.63
+109d256 and 22 more | 2022/10/02 | jaysonbaldecanas1986@gmail.com | 193.150.70.77
 """]]

Revert "update for rename of recentchanges.mdwn to json.tl.ph.mdwn"
This reverts the most recent 23 commits, all with the same log message.
diff --git a/doc/bugs/RecentChanges_broken_with_empty_svnpath.mdwn b/doc/bugs/RecentChanges_broken_with_empty_svnpath.mdwn
index 1bfd8f3b3..c852df5e9 100644
--- a/doc/bugs/RecentChanges_broken_with_empty_svnpath.mdwn
+++ b/doc/bugs/RecentChanges_broken_with_empty_svnpath.mdwn
@@ -1,4 +1,4 @@
-The [[Json.tl.ph]] page is broken (doesn't show any history at all) when used with an empty svnpath in the ikiwiki.setup file.
+The [[RecentChanges]] page is broken (doesn't show any history at all) when used with an empty svnpath in the ikiwiki.setup file.
 
 Say you have the following configuration:
 
@@ -6,7 +6,7 @@ Say you have the following configuration:
     svnrepo => "ssh+svn://foo.bar.com/wiki",
     svnpath => "",
 
-In the above, $svnpath need to be either empty or "/" - both trigger the 'next unless' check in IkiWiki/Rcs/svn.pm:rcs_recentchanges() as shown in the patch below, thus causing all files to be ignored for [[Json.tl.ph]].
+In the above, $svnpath need to be either empty or "/" - both trigger the 'next unless' check in IkiWiki/Rcs/svn.pm:rcs_recentchanges() as shown in the patch below, thus causing all files to be ignored for [[RecentChanges]].
 
 I can not see why this check is needed in the first place, so here's a patch for removing it :)
 
diff --git a/doc/bugs/RecentChanges_contains_invalid_XHTML.mdwn b/doc/bugs/RecentChanges_contains_invalid_XHTML.mdwn
index cd6db2c9d..eb95e9992 100644
--- a/doc/bugs/RecentChanges_contains_invalid_XHTML.mdwn
+++ b/doc/bugs/RecentChanges_contains_invalid_XHTML.mdwn
@@ -1,6 +1,6 @@
 The final `</div>` in `recentchanges.tmpl` gets wrapped in a
 `<p>` tag for some reason, resulting in the following invalid XHTML at
-the end of the [[Json.tl.ph]] page
+the end of the [[RecentChanges]] page
 
     <p></div></p>
 
@@ -11,7 +11,7 @@ the end of the [[Json.tl.ph]] page
 Also, there is a problem with the `<img>` tags generated by the smiley
 plugin which end up wrapped in a `<pre>` tag in the inline diff output.
 `<img>` tags is not allowed within a `<pre>` block.  Maybe the smiley
-plugin should be disabled on [[Json.tl.ph]]?
+plugin should be disabled on [[RecentChanges]]?
 
 > See [[Smileys_in_the_block_code]], which is now fixed. --[[Joey]]
 
diff --git a/doc/bugs/RecentChanges_links_to_deleted_pages.mdwn b/doc/bugs/RecentChanges_links_to_deleted_pages.mdwn
index 4c0b4bfb6..0eaeafb0c 100644
--- a/doc/bugs/RecentChanges_links_to_deleted_pages.mdwn
+++ b/doc/bugs/RecentChanges_links_to_deleted_pages.mdwn
@@ -1,4 +1,4 @@
-[[Json.tl.ph]] should not link to pages that are being deleted. For as
+[[RecentChanges]] should not link to pages that are being deleted. For as
 example, see the change with the title 'add news item for ikiwiki 2.60'
 which includes the deletion of "news/version 2.52". Maybe it should be made
 clear in RecentChanges that the change to the file is it being deleted.
diff --git a/doc/bugs/cannot_revert_page_deletion.mdwn b/doc/bugs/cannot_revert_page_deletion.mdwn
index bc440de8a..651b4d0ec 100644
--- a/doc/bugs/cannot_revert_page_deletion.mdwn
+++ b/doc/bugs/cannot_revert_page_deletion.mdwn
@@ -1,4 +1,4 @@
-After deleting a page with the "remove" button, it seems that the page deletion cannot be reverted using the "revert" icon in [[Json.tl.ph]]. 
+After deleting a page with the "remove" button, it seems that the page deletion cannot be reverted using the "revert" icon in [[RecentChanges]]. 
 It ironically says that "Error: ?$pagename does not exist". See [[http://ikiwiki.info/ikiwiki.cgi?rev=860c2c84d98ea0a38a4f91dacef6d4e09f6e6c2e&do=revert]]. [[JeanPrivat]]
 
 > And it only gets that far if the remove plugin is enabled. Otherwise it
diff --git a/doc/bugs/comments_produce_broken_links_in_RecentChanges.mdwn b/doc/bugs/comments_produce_broken_links_in_RecentChanges.mdwn
index 14073e731..dae00857b 100644
--- a/doc/bugs/comments_produce_broken_links_in_RecentChanges.mdwn
+++ b/doc/bugs/comments_produce_broken_links_in_RecentChanges.mdwn
@@ -1,4 +1,4 @@
-Comments produce links like `sandbox/comment_1` in [[Json.tl.ph]], which,
+Comments produce links like `sandbox/comment_1` in [[RecentChanges]], which,
 when clicked, redirect to a page that does not exist.
 
 The `recentchanges` branch in my repository contains one possible [[patch]],
diff --git a/doc/bugs/discussion.mdwn b/doc/bugs/discussion.mdwn
index e385cf8ad..474e07564 100644
--- a/doc/bugs/discussion.mdwn
+++ b/doc/bugs/discussion.mdwn
@@ -8,7 +8,7 @@ the ikiwiki.cgi CGI wrapper. ..."
 
   Enable [[CGI]] mode. In cgi mode ikiwiki __runs as a cgi script__, and
   supports editing pages, signing in, registration, and displaying
-  [[Json.tl.ph]].
+  [[RecentChanges]].
 
   __To use ikiwiki as a [[CGI]] program you need to use --wrapper or --setup
   to generate a wrapper.__ The wrapper will generally need to run suid 6755
diff --git a/doc/bugs/firefox_doesn__39__t_want_to_load_updated_pages_at_ikiwiki.info.mdwn b/doc/bugs/firefox_doesn__39__t_want_to_load_updated_pages_at_ikiwiki.info.mdwn
index 852a0e37d..558eb90c8 100644
--- a/doc/bugs/firefox_doesn__39__t_want_to_load_updated_pages_at_ikiwiki.info.mdwn
+++ b/doc/bugs/firefox_doesn__39__t_want_to_load_updated_pages_at_ikiwiki.info.mdwn
@@ -1,4 +1,4 @@
-I'm using firefox-3.0.8-alt0.M41.1 (Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.4pre) Gecko/2008100921 Firefox/3.0). I have noticed that quite often it shows an old state of a page at http://ikiwiki.info, e.g., [[json.tl.ph]] without my last edits, or the last page I edited (say, 50 min ago) in the state it was before I edited it.
+I'm using firefox-3.0.8-alt0.M41.1 (Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.4pre) Gecko/2008100921 Firefox/3.0). I have noticed that quite often it shows an old state of a page at http://ikiwiki.info, e.g., [[recentchanges]] without my last edits, or the last page I edited (say, 50 min ago) in the state it was before I edited it.
 
 Only explicitly pressing "reload" helps.
 
diff --git a/doc/bugs/openid_no_longer_pretty-prints_OpenIDs.mdwn b/doc/bugs/openid_no_longer_pretty-prints_OpenIDs.mdwn
index a034fe541..85a206bc0 100644
--- a/doc/bugs/openid_no_longer_pretty-prints_OpenIDs.mdwn
+++ b/doc/bugs/openid_no_longer_pretty-prints_OpenIDs.mdwn
@@ -6,7 +6,7 @@ The git commit (in my `openid` branch) says it all:
     However, all we actually want is the (undocumented) DisplayOfURL function
     that is invoked by the display method, so try to use that.
 
-This bug affects ikiwiki.info (my commits show up in [[Json.tl.ph]] as http://smcv.pseudorandom.co.uk/ rather than smcv [pseudorandom.co.uk]).
+This bug affects ikiwiki.info (my commits show up in [[RecentChanges]] as http://smcv.pseudorandom.co.uk/ rather than smcv [pseudorandom.co.uk]).
 
 > Cherry picked, thanks. --[[Joey]]
 
diff --git a/doc/bugs/web_reversion_on_ikiwiki.info.mdwn b/doc/bugs/web_reversion_on_ikiwiki.info.mdwn
index 0159f5b77..6f18cfcba 100644
--- a/doc/bugs/web_reversion_on_ikiwiki.info.mdwn
+++ b/doc/bugs/web_reversion_on_ikiwiki.info.mdwn
@@ -1,5 +1,5 @@
 I created [[sandbox/revert me]] and then tried the revert button on
-[[json.tl.ph]], but I was not allowed to revert it. The specific error
+[[recentchanges]], but I was not allowed to revert it. The specific error
 was
 
     Error: you are not allowed to change sandbox/revert_me.mdwn
diff --git a/doc/bugs/wrong_link_in_recentchanges_when_reverting_an_ikiwiki_outside_git_root.mdwn b/doc/bugs/wrong_link_in_recentchanges_when_reverting_an_ikiwiki_outside_git_root.mdwn
index 71b8b06be..5f7450b79 100644
--- a/doc/bugs/wrong_link_in_recentchanges_when_reverting_an_ikiwiki_outside_git_root.mdwn
+++ b/doc/bugs/wrong_link_in_recentchanges_when_reverting_an_ikiwiki_outside_git_root.mdwn
@@ -3,6 +3,6 @@ in ikiwiki instances that don't reside in the git root directory (the only ones
 the expected behavior is to compensate for the modified root directory (i.e., show index instead of doc/index).
 
 > This seems to work OK now - commit 84c4ca33 and its reversion both
-> appear correctly in [[json.tl.ph]]. Looking at git history,
+> appear correctly in [[recentchanges]]. Looking at git history,
 > Joey [[fixed this|done]] in commit 1b6c1895 before 3.20120203.
 > --[[smcv]]
diff --git a/doc/contact.mdwn b/doc/contact.mdwn
index f85fcf2d9..afcc67765 100644
--- a/doc/contact.mdwn
+++ b/doc/contact.mdwn
@@ -3,7 +3,7 @@ and thus does not have a mailing list.  Anyone can create an account on
 ikiwiki's own wiki. ikiwiki provides a [[bug_tracker|bugs]], a
 [[TODO_list|TODO]], and "discussion" sub-pages for every page, as well as a
 [[forum]] for general questions and discussion. ikiwiki
-developers monitor [[Json.tl.ph]] closely, via the webpage, email,
+developers monitor [[RecentChanges]] closely, via the webpage, email,
 and IRC, and respond in a timely fashion.
 
 You could also drop by the IRC channel `#ikiwiki` on
diff --git a/doc/features.mdwn b/doc/features.mdwn
index 4dee6c2d8..61b23bb59 100644
--- a/doc/features.mdwn
+++ b/doc/features.mdwn
@@ -133,7 +133,7 @@ page being concurrently edited, regular commit conflict markers are
 shown in the file to resolve the conflict, so if you're already familiar
 with that there's no new commit marker syntax to learn.
 
-### [[Json.tl.ph]], editing pages in a web browser
+### [[RecentChanges]], editing pages in a web browser
 
 Nearly the definition of a wiki, although perhaps ikiwiki challenges how
 much of that web gunk a wiki really needs. These features are optional
diff --git a/doc/forum/Recent_changes_on_main_site_or_on_a_sidebar/comment_2_927c11f18315baa39f08ca4982ed2ab1._comment b/doc/forum/Recent_changes_on_main_site_or_on_a_sidebar/comment_2_927c11f18315baa39f08ca4982ed2ab1._comment
index 071642ac0..2b6237bc4 100644
--- a/doc/forum/Recent_changes_on_main_site_or_on_a_sidebar/comment_2_927c11f18315baa39f08ca4982ed2ab1._comment
+++ b/doc/forum/Recent_changes_on_main_site_or_on_a_sidebar/comment_2_927c11f18315baa39f08ca4982ed2ab1._comment
@@ -4,5 +4,5 @@
  subject="comment 2"
  date="2011-12-20T15:13:48Z"
  content="""
-The [[Json.tl.ph]] page is a regular wiki page that inlines a few special pages with a special template. That content can be copied anywhere else in the wiki to get the same effect.
+The [[RecentChanges]] page is a regular wiki page that inlines a few special pages with a special template. That content can be copied anywhere else in the wiki to get the same effect.
 """]]
diff --git a/doc/forum/Spaces_in_wikilinks.mdwn b/doc/forum/Spaces_in_wikilinks.mdwn
index aa8bfef20..9326ac448 100644
--- a/doc/forum/Spaces_in_wikilinks.mdwn
+++ b/doc/forum/Spaces_in_wikilinks.mdwn
@@ -34,7 +34,7 @@ I'm playing around with various ways that I can use subversion with ikiwiki.
 > away without running the post-commit wrapper on commit, and all you lose
 > is the ability to send commit notification emails.
 
-> (And now that [[json.tl.ph]] includes rss, you can just subscribe to
+> (And now that [[recentchanges]] includes rss, you can just subscribe to
 > that, no need to worry about commit notification emails anymore.)
 
 * Is it possible / sensible to have ikiwiki share a subversion repository with other data (either completely unrelated files or another ikiwiki instance)?  This works in part but again the post-commit hook seems problematic.
diff --git a/doc/forum/Various_ways_to_use_Subversion_with_ikiwiki.mdwn b/doc/forum/Various_ways_to_use_Subversion_with_ikiwiki.mdwn
index d540d4b00..8eed30cd8 100644
--- a/doc/forum/Various_ways_to_use_Subversion_with_ikiwiki.mdwn
+++ b/doc/forum/Various_ways_to_use_Subversion_with_ikiwiki.mdwn
@@ -10,7 +10,7 @@ I'm playing around with various ways that I can use subversion with ikiwiki.
 > away without running the post-commit wrapper on commit, and all you lose
 > is the ability to send commit notification emails.
 
-> (And now that [[json.tl.ph]] includes rss, you can just subscribe to
+> (And now that [[recentchanges]] includes rss, you can just subscribe to
 > that, no need to worry about commit notification emails anymore.)
 
 * Is it possible / sensible to have ikiwiki share a subversion repository with other data (either completely unrelated files or another ikiwiki instance)?  This works in part but again the post-commit hook seems problematic.
diff --git a/doc/forum/web_service_API__44___fastcgi_support.mdwn b/doc/forum/web_service_API__44___fastcgi_support.mdwn
index dd57a8ded..84b227eef 100644
--- a/doc/forum/web_service_API__44___fastcgi_support.mdwn
+++ b/doc/forum/web_service_API__44___fastcgi_support.mdwn
@@ -1,6 +1,6 @@
 This is a half-baked thought of mine so I thought I would post it in forum for discussion.
 
-There are some things that ikiwiki.cgi is asked to do which do not involve changing the repository: these include form generation, handling logins, the "goto" from [[json.tl.ph]], edit previews, etc.

(Diff truncated)
update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/forum/Recent_changes_on_main_site_or_on_a_sidebar/comment_2_927c11f18315baa39f08ca4982ed2ab1._comment b/doc/forum/Recent_changes_on_main_site_or_on_a_sidebar/comment_2_927c11f18315baa39f08ca4982ed2ab1._comment
index 2b6237bc4..071642ac0 100644
--- a/doc/forum/Recent_changes_on_main_site_or_on_a_sidebar/comment_2_927c11f18315baa39f08ca4982ed2ab1._comment
+++ b/doc/forum/Recent_changes_on_main_site_or_on_a_sidebar/comment_2_927c11f18315baa39f08ca4982ed2ab1._comment
@@ -4,5 +4,5 @@
  subject="comment 2"
  date="2011-12-20T15:13:48Z"
  content="""
-The [[RecentChanges]] page is a regular wiki page that inlines a few special pages with a special template. That content can be copied anywhere else in the wiki to get the same effect.
+The [[Json.tl.ph]] page is a regular wiki page that inlines a few special pages with a special template. That content can be copied anywhere else in the wiki to get the same effect.
 """]]

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/rcs/git.mdwn b/doc/rcs/git.mdwn
index fa7a037ba..7dc8d836a 100644
--- a/doc/rcs/git.mdwn
+++ b/doc/rcs/git.mdwn
@@ -8,7 +8,7 @@ the Linux kernel. Ikiwiki supports storing a wiki in git.
 Ikiwiki can run as a git `post-update` hook to update a wiki
 whenever commits come in. When running as a [[cgi]],
 ikiwiki automatically commits edited pages, and uses the
-git history to generate the [[RecentChanges]] page.
+git history to generate the [[Json.tl.ph]] page.
 
 Normally you can just follow the instructions in [[setup]] to create
 the git repositories and get started. To understand the details, read on.

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/rcs/bzr.mdwn b/doc/rcs/bzr.mdwn
index 19a7ae395..6ca197477 100644
--- a/doc/rcs/bzr.mdwn
+++ b/doc/rcs/bzr.mdwn
@@ -5,4 +5,4 @@ bzr repository.
 Ikiwiki can run as a post-update hook to update a wiki whenever commits
 come in. When running as a [[cgi]] with bzr, ikiwiki automatically
 commits edited pages, and uses the bzr history to generate the
-[[RecentChanges]] page.
+[[Json.tl.ph]] page.

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/news/no_more_email_notifications.mdwn b/doc/news/no_more_email_notifications.mdwn
index 18a70557e..f07cc5006 100644
--- a/doc/news/no_more_email_notifications.mdwn
+++ b/doc/news/no_more_email_notifications.mdwn
@@ -1,12 +1,12 @@
 ikiwiki.info has upgraded to the not yet released ikiwiki 2.30. This
 version of ikiwiki drops support for subscribing to commit mail
 notifications for pages. The idea is that you can subscribe to the new
-[[RecentChanges]] feed instead. (Or create your own custom feed of only the
+[[Json.tl.ph]] feed instead. (Or create your own custom feed of only the
 changes you're interested in, and subscribe to that.)
 
 So if you were subscribed to mail notifications on here, you'll need to
 change how you keep track of changes. Please let me know if there are any
-missing features in the [[RecentChanges]] feeds.
+missing features in the [[Json.tl.ph]] feeds.
 
 Statically building the RecentChanges also has performance implications,
 I'll keep an eye on [[server_speed]]..

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/forum/web_service_API__44___fastcgi_support.mdwn b/doc/forum/web_service_API__44___fastcgi_support.mdwn
index 84b227eef..dd57a8ded 100644
--- a/doc/forum/web_service_API__44___fastcgi_support.mdwn
+++ b/doc/forum/web_service_API__44___fastcgi_support.mdwn
@@ -1,6 +1,6 @@
 This is a half-baked thought of mine so I thought I would post it in forum for discussion.
 
-There are some things that ikiwiki.cgi is asked to do which do not involve changing the repository: these include form generation, handling logins, the "goto" from [[recentchanges]], edit previews, etc.
+There are some things that ikiwiki.cgi is asked to do which do not involve changing the repository: these include form generation, handling logins, the "goto" from [[json.tl.ph]], edit previews, etc.
 
 For one thing I am working on slowly ([[todo/interactive todo lists]]), I've hit a situation where I am likely to need to implement doing markup evaluation for a subset of a page. The problem I face is, if a user edits content in the browser, markup, ikiwiki directives etc. need to be expanded. I could possibly do this with a round-trip through edit preview, but that would be for the whole content of a page, and I hit the problem with editing a list item.
 

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/security.mdwn b/doc/security.mdwn
index fcc33fd48..29cbab6be 100644
--- a/doc/security.mdwn
+++ b/doc/security.mdwn
@@ -22,7 +22,7 @@ _(The list of things to fix.)_
 ## commit spoofing
 
 Anyone with direct commit access can forge "web commit from foo" and
-make it appear on [[RecentChanges]] like foo committed. One way to avoid
+make it appear on [[Json.tl.ph]] like foo committed. One way to avoid
 this would be to limit web commits to those done by a certain user.
 
 ## other stuff to look at

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/bugs/wrong_link_in_recentchanges_when_reverting_an_ikiwiki_outside_git_root.mdwn b/doc/bugs/wrong_link_in_recentchanges_when_reverting_an_ikiwiki_outside_git_root.mdwn
index 5f7450b79..71b8b06be 100644
--- a/doc/bugs/wrong_link_in_recentchanges_when_reverting_an_ikiwiki_outside_git_root.mdwn
+++ b/doc/bugs/wrong_link_in_recentchanges_when_reverting_an_ikiwiki_outside_git_root.mdwn
@@ -3,6 +3,6 @@ in ikiwiki instances that don't reside in the git root directory (the only ones
 the expected behavior is to compensate for the modified root directory (i.e., show index instead of doc/index).
 
 > This seems to work OK now - commit 84c4ca33 and its reversion both
-> appear correctly in [[recentchanges]]. Looking at git history,
+> appear correctly in [[json.tl.ph]]. Looking at git history,
 > Joey [[fixed this|done]] in commit 1b6c1895 before 3.20120203.
 > --[[smcv]]

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/bugs/discussion.mdwn b/doc/bugs/discussion.mdwn
index 474e07564..e385cf8ad 100644
--- a/doc/bugs/discussion.mdwn
+++ b/doc/bugs/discussion.mdwn
@@ -8,7 +8,7 @@ the ikiwiki.cgi CGI wrapper. ..."
 
   Enable [[CGI]] mode. In cgi mode ikiwiki __runs as a cgi script__, and
   supports editing pages, signing in, registration, and displaying
-  [[RecentChanges]].
+  [[Json.tl.ph]].
 
   __To use ikiwiki as a [[CGI]] program you need to use --wrapper or --setup
   to generate a wrapper.__ The wrapper will generally need to run suid 6755

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/rcs/tla.mdwn b/doc/rcs/tla.mdwn
index 79eecd627..952000260 100644
--- a/doc/rcs/tla.mdwn
+++ b/doc/rcs/tla.mdwn
@@ -8,6 +8,6 @@ using ikiwiki with tla is not recommended.
 Ikiwiki can run as a [[post-commit]] hook to update a wiki whenever commits
 come in. When running as a [[cgi]] with tla, ikiwiki automatically
 commits edited pages to the Arch repostory, and uses the Arch
-log to generate the [[RecentChanges]] page.
+log to generate the [[Json.tl.ph]] page.
 
 Note that the tla support needs the [[!cpan MailTools]] perl module.

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/contact.mdwn b/doc/contact.mdwn
index afcc67765..f85fcf2d9 100644
--- a/doc/contact.mdwn
+++ b/doc/contact.mdwn
@@ -3,7 +3,7 @@ and thus does not have a mailing list.  Anyone can create an account on
 ikiwiki's own wiki. ikiwiki provides a [[bug_tracker|bugs]], a
 [[TODO_list|TODO]], and "discussion" sub-pages for every page, as well as a
 [[forum]] for general questions and discussion. ikiwiki
-developers monitor [[RecentChanges]] closely, via the webpage, email,
+developers monitor [[Json.tl.ph]] closely, via the webpage, email,
 and IRC, and respond in a timely fashion.
 
 You could also drop by the IRC channel `#ikiwiki` on

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/bugs/RecentChanges_broken_with_empty_svnpath.mdwn b/doc/bugs/RecentChanges_broken_with_empty_svnpath.mdwn
index c852df5e9..1bfd8f3b3 100644
--- a/doc/bugs/RecentChanges_broken_with_empty_svnpath.mdwn
+++ b/doc/bugs/RecentChanges_broken_with_empty_svnpath.mdwn
@@ -1,4 +1,4 @@
-The [[RecentChanges]] page is broken (doesn't show any history at all) when used with an empty svnpath in the ikiwiki.setup file.
+The [[Json.tl.ph]] page is broken (doesn't show any history at all) when used with an empty svnpath in the ikiwiki.setup file.
 
 Say you have the following configuration:
 
@@ -6,7 +6,7 @@ Say you have the following configuration:
     svnrepo => "ssh+svn://foo.bar.com/wiki",
     svnpath => "",
 
-In the above, $svnpath need to be either empty or "/" - both trigger the 'next unless' check in IkiWiki/Rcs/svn.pm:rcs_recentchanges() as shown in the patch below, thus causing all files to be ignored for [[RecentChanges]].
+In the above, $svnpath need to be either empty or "/" - both trigger the 'next unless' check in IkiWiki/Rcs/svn.pm:rcs_recentchanges() as shown in the patch below, thus causing all files to be ignored for [[Json.tl.ph]].
 
 I can not see why this check is needed in the first place, so here's a patch for removing it :)
 

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/bugs/cannot_revert_page_deletion.mdwn b/doc/bugs/cannot_revert_page_deletion.mdwn
index 651b4d0ec..bc440de8a 100644
--- a/doc/bugs/cannot_revert_page_deletion.mdwn
+++ b/doc/bugs/cannot_revert_page_deletion.mdwn
@@ -1,4 +1,4 @@
-After deleting a page with the "remove" button, it seems that the page deletion cannot be reverted using the "revert" icon in [[RecentChanges]]. 
+After deleting a page with the "remove" button, it seems that the page deletion cannot be reverted using the "revert" icon in [[Json.tl.ph]]. 
 It ironically says that "Error: ?$pagename does not exist". See [[http://ikiwiki.info/ikiwiki.cgi?rev=860c2c84d98ea0a38a4f91dacef6d4e09f6e6c2e&do=revert]]. [[JeanPrivat]]
 
 > And it only gets that far if the remove plugin is enabled. Otherwise it

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/bugs/comments_produce_broken_links_in_RecentChanges.mdwn b/doc/bugs/comments_produce_broken_links_in_RecentChanges.mdwn
index dae00857b..14073e731 100644
--- a/doc/bugs/comments_produce_broken_links_in_RecentChanges.mdwn
+++ b/doc/bugs/comments_produce_broken_links_in_RecentChanges.mdwn
@@ -1,4 +1,4 @@
-Comments produce links like `sandbox/comment_1` in [[RecentChanges]], which,
+Comments produce links like `sandbox/comment_1` in [[Json.tl.ph]], which,
 when clicked, redirect to a page that does not exist.
 
 The `recentchanges` branch in my repository contains one possible [[patch]],

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/bugs/RecentChanges_links_to_deleted_pages.mdwn b/doc/bugs/RecentChanges_links_to_deleted_pages.mdwn
index 0eaeafb0c..4c0b4bfb6 100644
--- a/doc/bugs/RecentChanges_links_to_deleted_pages.mdwn
+++ b/doc/bugs/RecentChanges_links_to_deleted_pages.mdwn
@@ -1,4 +1,4 @@
-[[RecentChanges]] should not link to pages that are being deleted. For as
+[[Json.tl.ph]] should not link to pages that are being deleted. For as
 example, see the change with the title 'add news item for ikiwiki 2.60'
 which includes the deletion of "news/version 2.52". Maybe it should be made
 clear in RecentChanges that the change to the file is it being deleted.

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/bugs/openid_no_longer_pretty-prints_OpenIDs.mdwn b/doc/bugs/openid_no_longer_pretty-prints_OpenIDs.mdwn
index 85a206bc0..a034fe541 100644
--- a/doc/bugs/openid_no_longer_pretty-prints_OpenIDs.mdwn
+++ b/doc/bugs/openid_no_longer_pretty-prints_OpenIDs.mdwn
@@ -6,7 +6,7 @@ The git commit (in my `openid` branch) says it all:
     However, all we actually want is the (undocumented) DisplayOfURL function
     that is invoked by the display method, so try to use that.
 
-This bug affects ikiwiki.info (my commits show up in [[RecentChanges]] as http://smcv.pseudorandom.co.uk/ rather than smcv [pseudorandom.co.uk]).
+This bug affects ikiwiki.info (my commits show up in [[Json.tl.ph]] as http://smcv.pseudorandom.co.uk/ rather than smcv [pseudorandom.co.uk]).
 
 > Cherry picked, thanks. --[[Joey]]
 

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/rcs/mercurial.mdwn b/doc/rcs/mercurial.mdwn
index ebfc35202..3a5af3ff0 100644
--- a/doc/rcs/mercurial.mdwn
+++ b/doc/rcs/mercurial.mdwn
@@ -5,7 +5,7 @@ mercurial repository.
 Ikiwiki can run as a `post-commit` and/or `incoming` hook to update a wiki whenever commits or remote pushes
 come in. When running as a [[cgi]] with Mercurial, ikiwiki automatically
 commits edited pages, and uses the Mercurial history to generate the
-[[RecentChanges]] page.
+[[Json.tl.ph]] page.
 
 Example for a `.hg/hgrc` file in `$SRCDIR`:
 

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/rcs/monotone.mdwn b/doc/rcs/monotone.mdwn
index 2cfcdfbf5..2e9939bf5 100644
--- a/doc/rcs/monotone.mdwn
+++ b/doc/rcs/monotone.mdwn
@@ -1,7 +1,7 @@
 [Monotone](http://monotone.ca/) is a distributed revision control system.
 Ikiwiki supports storing a wiki in a Monotone repository and editing it
 using the [[cgi]] interface. It will use the Monotone logs to generate the
-[[RecentChanges]] page.
+[[Json.tl.ph]] page.
 
 The monotone support in ikiwiki requires the Monotone perl module to be
 installed. (It's available from the contrib/ directory in the monotone

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/plugins/recentchangesdiff/discussion.mdwn b/doc/plugins/recentchangesdiff/discussion.mdwn
index 0ec6d7bf0..9703b0f6d 100644
--- a/doc/plugins/recentchangesdiff/discussion.mdwn
+++ b/doc/plugins/recentchangesdiff/discussion.mdwn
@@ -1,7 +1,7 @@
 # Syntax highlighting of recent changes
 
 Hello,
-is there a simple way to highlight the diff printed in the [[/recentchanges]]
+is there a simple way to highlight the diff printed in the [[/json.tl.ph]]
 page? I imagined several solutions, but I am still wondering about the best one.
 
 * One might activate the [[plugins/highlight]] and [[plugins/format]] plugins,

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/rcs/svn.mdwn b/doc/rcs/svn.mdwn
index 7aa682978..ac91553de 100644
--- a/doc/rcs/svn.mdwn
+++ b/doc/rcs/svn.mdwn
@@ -6,4 +6,4 @@ system is recommended.
 Ikiwiki can run as a [[post-commit]] hook to update a wiki whenever commits
 come in. When running as a [[cgi]] with Subversion, ikiwiki automatically
 commits edited pages to the subversion repostory, and uses the Subversion
-log to generate the [[RecentChanges]] page.
+log to generate the [[Json.tl.ph]] page.

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/rcs/darcs.mdwn b/doc/rcs/darcs.mdwn
index fbb9bcede..0f4f364ea 100644
--- a/doc/rcs/darcs.mdwn
+++ b/doc/rcs/darcs.mdwn
@@ -5,7 +5,7 @@ Darcs repository.
 An Ikiwiki wrapper is run by the `posthook` to update a wiki whenever commits
 or remote pushes come in. When running as a [[cgi]] with Darcs, ikiwiki
 automatically commits edited pages, and uses the Darcs history to generate the
-[[RecentChanges]] page.
+[[Json.tl.ph]] page.
 
 Example for a `_darcs/prefs/defaults` file in `$SRCDIR`:
 

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/bugs/RecentChanges_contains_invalid_XHTML.mdwn b/doc/bugs/RecentChanges_contains_invalid_XHTML.mdwn
index eb95e9992..cd6db2c9d 100644
--- a/doc/bugs/RecentChanges_contains_invalid_XHTML.mdwn
+++ b/doc/bugs/RecentChanges_contains_invalid_XHTML.mdwn
@@ -1,6 +1,6 @@
 The final `</div>` in `recentchanges.tmpl` gets wrapped in a
 `<p>` tag for some reason, resulting in the following invalid XHTML at
-the end of the [[RecentChanges]] page
+the end of the [[Json.tl.ph]] page
 
     <p></div></p>
 
@@ -11,7 +11,7 @@ the end of the [[RecentChanges]] page
 Also, there is a problem with the `<img>` tags generated by the smiley
 plugin which end up wrapped in a `<pre>` tag in the inline diff output.
 `<img>` tags is not allowed within a `<pre>` block.  Maybe the smiley
-plugin should be disabled on [[RecentChanges]]?
+plugin should be disabled on [[Json.tl.ph]]?
 
 > See [[Smileys_in_the_block_code]], which is now fixed. --[[Joey]]
 

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/users/Erkan_Yilmaz.mdwn b/doc/users/Erkan_Yilmaz.mdwn
index 070a3a45a..b5c070d35 100644
--- a/doc/users/Erkan_Yilmaz.mdwn
+++ b/doc/users/Erkan_Yilmaz.mdwn
@@ -1,2 +1,2 @@
-* [[recentchanges]]
+* [[json.tl.ph]]
 * my site: [here](http://iaskquestions.com)

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/features.mdwn b/doc/features.mdwn
index 61b23bb59..4dee6c2d8 100644
--- a/doc/features.mdwn
+++ b/doc/features.mdwn
@@ -133,7 +133,7 @@ page being concurrently edited, regular commit conflict markers are
 shown in the file to resolve the conflict, so if you're already familiar
 with that there's no new commit marker syntax to learn.
 
-### [[RecentChanges]], editing pages in a web browser
+### [[Json.tl.ph]], editing pages in a web browser
 
 Nearly the definition of a wiki, although perhaps ikiwiki challenges how
 much of that web gunk a wiki really needs. These features are optional

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/bugs/web_reversion_on_ikiwiki.info.mdwn b/doc/bugs/web_reversion_on_ikiwiki.info.mdwn
index 6f18cfcba..0159f5b77 100644
--- a/doc/bugs/web_reversion_on_ikiwiki.info.mdwn
+++ b/doc/bugs/web_reversion_on_ikiwiki.info.mdwn
@@ -1,5 +1,5 @@
 I created [[sandbox/revert me]] and then tried the revert button on
-[[recentchanges]], but I was not allowed to revert it. The specific error
+[[json.tl.ph]], but I was not allowed to revert it. The specific error
 was
 
     Error: you are not allowed to change sandbox/revert_me.mdwn

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/forum/Spaces_in_wikilinks.mdwn b/doc/forum/Spaces_in_wikilinks.mdwn
index 9326ac448..aa8bfef20 100644
--- a/doc/forum/Spaces_in_wikilinks.mdwn
+++ b/doc/forum/Spaces_in_wikilinks.mdwn
@@ -34,7 +34,7 @@ I'm playing around with various ways that I can use subversion with ikiwiki.
 > away without running the post-commit wrapper on commit, and all you lose
 > is the ability to send commit notification emails.
 
-> (And now that [[recentchanges]] includes rss, you can just subscribe to
+> (And now that [[json.tl.ph]] includes rss, you can just subscribe to
 > that, no need to worry about commit notification emails anymore.)
 
 * Is it possible / sensible to have ikiwiki share a subversion repository with other data (either completely unrelated files or another ikiwiki instance)?  This works in part but again the post-commit hook seems problematic.

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/forum/Various_ways_to_use_Subversion_with_ikiwiki.mdwn b/doc/forum/Various_ways_to_use_Subversion_with_ikiwiki.mdwn
index 8eed30cd8..d540d4b00 100644
--- a/doc/forum/Various_ways_to_use_Subversion_with_ikiwiki.mdwn
+++ b/doc/forum/Various_ways_to_use_Subversion_with_ikiwiki.mdwn
@@ -10,7 +10,7 @@ I'm playing around with various ways that I can use subversion with ikiwiki.
 > away without running the post-commit wrapper on commit, and all you lose
 > is the ability to send commit notification emails.
 
-> (And now that [[recentchanges]] includes rss, you can just subscribe to
+> (And now that [[json.tl.ph]] includes rss, you can just subscribe to
 > that, no need to worry about commit notification emails anymore.)
 
 * Is it possible / sensible to have ikiwiki share a subversion repository with other data (either completely unrelated files or another ikiwiki instance)?  This works in part but again the post-commit hook seems problematic.

update for rename of recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/bugs/firefox_doesn__39__t_want_to_load_updated_pages_at_ikiwiki.info.mdwn b/doc/bugs/firefox_doesn__39__t_want_to_load_updated_pages_at_ikiwiki.info.mdwn
index 558eb90c8..852a0e37d 100644
--- a/doc/bugs/firefox_doesn__39__t_want_to_load_updated_pages_at_ikiwiki.info.mdwn
+++ b/doc/bugs/firefox_doesn__39__t_want_to_load_updated_pages_at_ikiwiki.info.mdwn
@@ -1,4 +1,4 @@
-I'm using firefox-3.0.8-alt0.M41.1 (Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.4pre) Gecko/2008100921 Firefox/3.0). I have noticed that quite often it shows an old state of a page at http://ikiwiki.info, e.g., [[recentchanges]] without my last edits, or the last page I edited (say, 50 min ago) in the state it was before I edited it.
+I'm using firefox-3.0.8-alt0.M41.1 (Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.4pre) Gecko/2008100921 Firefox/3.0). I have noticed that quite often it shows an old state of a page at http://ikiwiki.info, e.g., [[json.tl.ph]] without my last edits, or the last page I edited (say, 50 min ago) in the state it was before I edited it.
 
 Only explicitly pressing "reload" helps.
 

rename recentchanges.mdwn to json.tl.ph.mdwn
diff --git a/doc/recentchanges.mdwn b/doc/json.tl.ph.mdwn
similarity index 100%
rename from doc/recentchanges.mdwn
rename to doc/json.tl.ph.mdwn

does not seem possible
diff --git a/doc/todo/bad_content_support.mdwn b/doc/todo/bad_content_support.mdwn
index d4ac46d25..e514d2795 100644
--- a/doc/todo/bad_content_support.mdwn
+++ b/doc/todo/bad_content_support.mdwn
@@ -11,3 +11,8 @@ Failing that, it could also simply be a list in the `ikiwiki.setup`. But my expe
 The "pie-in-the-sky" plugin here would of course to just plug the checkcontent hook straight into spamassassin or something similar. Then you possibly get bayesian filtering, all sorts of rules, Razor, etc.
 
 -- [[anarcat]]
+
+
+> I looked into this briefly, and it seems like what I want (specifically: discard incoming comments if they have bad content) is fundamentally impossible with the current way the `checkcontent` hook is setup. When *pages* are inspected for content, yes, it's possible to just discard the submission, but not when *comments* are submitted, because the `IkiWiki::check_content` wrapper is called with `nonfatal => 1` which makes it skip any possible interception (returning a function or error message) that would abort submissions. This is because the comments module hardcodes the fact that a `checkcontent` failure is "soft" and means "this comment should be moderated"...
+>
+> So either a new hook needs to be written, or this one needs to be fixed, and either case it cannot be done simply with a plugin. I documented this odd behavior in [[plugins/write]]. --[[anarcat]]

document that checkcontent behaves differently for comments
diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn
index b6d0611dc..7480a6148 100644
--- a/doc/plugins/write.mdwn
+++ b/doc/plugins/write.mdwn
@@ -531,6 +531,10 @@ should return a message stating what the problem is, or a function
 that can be run to perform whatever action is necessary to allow the user
 to post the content.
 
+If the hook is ran on a comment, it will be put in the moderation queue if
+anything but `undef` is returned. The function or error message will not
+be ran or displayed.
+
 ### <a name="editcontent">editcontent</a>
 
 	hook(type => "editcontent", id => "foo", call => \&editcontent);

cross-ref to new todo
diff --git a/doc/todo/anti-spam_protection.mdwn b/doc/todo/anti-spam_protection.mdwn
index cf07fe7eb..b6ec9310d 100644
--- a/doc/todo/anti-spam_protection.mdwn
+++ b/doc/todo/anti-spam_protection.mdwn
@@ -88,3 +88,7 @@ this another way - I'm thinking of fail2ban or a simple Apache rewrite
 table (and it might easier and faster too) - but I wonder why those
 IPs can still post comments when they are listed in
 `banned_users`... -- [[anarcat]]
+
+----
+
+I made a new TODO item for this, specifically to be able to block certain expressions. See [[todo/bad_content_support]] for a followup on that. -- [[anarcat]]

oh, and spamassassin too
diff --git a/doc/todo/bad_content_support.mdwn b/doc/todo/bad_content_support.mdwn
index 30d19e22c..d4ac46d25 100644
--- a/doc/todo/bad_content_support.mdwn
+++ b/doc/todo/bad_content_support.mdwn
@@ -8,4 +8,6 @@ I am not sure we should follow the MoinMoin mechanism, where the list is a wiki
 
 Failing that, it could also simply be a list in the `ikiwiki.setup`. But my experience with managing a block list of IP addresses there has not been fun: you need to context switch (to another branch, or to the ikiwiki.setup file) and rebuild the wiki at each change, which is rather disruptive... 
 
+The "pie-in-the-sky" plugin here would of course to just plug the checkcontent hook straight into spamassassin or something similar. Then you possibly get bayesian filtering, all sorts of rules, Razor, etc.
+
 -- [[anarcat]]

specifically something to block certain bad words
diff --git a/doc/todo/bad_content_support.mdwn b/doc/todo/bad_content_support.mdwn
new file mode 100644
index 000000000..30d19e22c
--- /dev/null
+++ b/doc/todo/bad_content_support.mdwn
@@ -0,0 +1,11 @@
+One of the suggestions that came out of the [[todo/anti-spam_protection]] is to have the [MoinMoin technique](http://moinmo.in/HelpOnSpam) of having a list of [bad content](http://moinmo.in/BadContent) which is basically a list of regexes. Typically, you'd add a URL in there, but really, it's just any "bad content": it could be forbidden words or whatever.
+
+This, by the way, only worked so far with MoinMoin. Spammers did find a way around it, and the list's last update dates back to 2014. But that doesn't mean the list is not at least somewhat effective. In my specific use case right now, I moderate all incoming comments and there's this one spammer which repeatedly tries to post the same stupid URL. I delete the comment and move on, but it's repetitive and frustrating: if I had a way to just block that one piece of bad content, it could make my life easier.
+
+I think this could be a plugin, which hooks into the `checkcontent` hook [[joeyh]] made in the [[anti-spam_protection]] work. This todo is to track the work on writing such a plugin and, ultimately and hopefully, include it directly in ikiwiki.
+
+I am not sure we should follow the MoinMoin mechanism, where the list is a wiki page, but why not? The only downside to this is that I'm not sure how to fetch content from an arbitrary page from inside a plugin. The other problem, of course, is that you then publish a list of bad URLs on your website, which is pretty much exactly the opposite of what you want to do... So maybe some file inside `.ikiwiki` or outside the published tree could be used.
+
+Failing that, it could also simply be a list in the `ikiwiki.setup`. But my experience with managing a block list of IP addresses there has not been fun: you need to context switch (to another branch, or to the ikiwiki.setup file) and rebuild the wiki at each change, which is rather disruptive... 
+
+-- [[anarcat]]

thanks for the patch!
diff --git a/doc/bugs/pubdate_not_valid_for_html5.mdwn b/doc/bugs/pubdate_not_valid_for_html5.mdwn
index 4b55cc928..fe956c521 100644
--- a/doc/bugs/pubdate_not_valid_for_html5.mdwn
+++ b/doc/bugs/pubdate_not_valid_for_html5.mdwn
@@ -7,3 +7,5 @@ Patch: <https://github.com/jmtd/ikiwiki/commit/a137103d3004cc8cec42459205684ec48
 [[!tag patch]]
 [[!template id=gitbranch branch=jon/html5-no-pubdate-attribute author="[[Jon]]"]]
 *—[[Jon]], 2020-10-06*
+
+> LGTM. In [[bugs/charset_attribute_on_the_script_element_is_obsolete]], I found that `itemprop="datePublished"` was another way to do this, but it seems like there is no real standard way to do this anymore, so I'm happy with anything that doesn't break validators. :) *--[[anarcat]], 2022-09-06*

patch for pubdate
diff --git a/doc/bugs/charset_attribute_on_the_script_element_is_obsolete.mdwn b/doc/bugs/charset_attribute_on_the_script_element_is_obsolete.mdwn
index 7eba64714..b11ed7b62 100644
--- a/doc/bugs/charset_attribute_on_the_script_element_is_obsolete.mdwn
+++ b/doc/bugs/charset_attribute_on_the_script_element_is_obsolete.mdwn
@@ -13,3 +13,5 @@ Seems like a low-hanging fruit...
 There are other errors on my blog, namely the `pubdate=pubdate` blob added by `IkiWiki::displaytime`, no idea where that's coming from, but it's not standard anymore. See for example, [this validation](https://validator.w3.org/nu/?doc=https%3A%2F%2Fanarc.at%2Fblog%2F2020-04-27-drowning-camera%2F) and also the [time element specification](https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-time-element). It looks like it was [part of HTML5](https://www.w3.org/TR/2011/WD-html5-author-20110809/the-time-element.html#attr-time-pubdate) but was removed at some later point. According to [this GitHub comment on the react project](https://github.com/facebook/react/issues/3411#issuecomment-80234574), it was replaced by the [itemprop](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/itemprop) attribute, as in `itemprop="datePublished"`. See also [this w3 example](https://html.spec.whatwg.org/multipage/sections.html#the-article-element:the-article-element-11). Phew.
 
 -- [[anarcat]] 2022-09-01
+
+> For pubdate, I created [[pubdate not valid for html5]] in 2020, with a patch. I've applied that in my *opinionated ikiwiki* [[container|containers]].  -- [[Jon]], 2022-09-06

another example error i get
diff --git a/doc/bugs/charset_attribute_on_the_script_element_is_obsolete.mdwn b/doc/bugs/charset_attribute_on_the_script_element_is_obsolete.mdwn
index 3b6b82c62..7eba64714 100644
--- a/doc/bugs/charset_attribute_on_the_script_element_is_obsolete.mdwn
+++ b/doc/bugs/charset_attribute_on_the_script_element_is_obsolete.mdwn
@@ -10,4 +10,6 @@ From line 271, column 1; to line 271, column 78
 
 Seems like a low-hanging fruit... 
 
+There are other errors on my blog, namely the `pubdate=pubdate` blob added by `IkiWiki::displaytime`, no idea where that's coming from, but it's not standard anymore. See for example, [this validation](https://validator.w3.org/nu/?doc=https%3A%2F%2Fanarc.at%2Fblog%2F2020-04-27-drowning-camera%2F) and also the [time element specification](https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-time-element). It looks like it was [part of HTML5](https://www.w3.org/TR/2011/WD-html5-author-20110809/the-time-element.html#attr-time-pubdate) but was removed at some later point. According to [this GitHub comment on the react project](https://github.com/facebook/react/issues/3411#issuecomment-80234574), it was replaced by the [itemprop](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/itemprop) attribute, as in `itemprop="datePublished"`. See also [this w3 example](https://html.spec.whatwg.org/multipage/sections.html#the-article-element:the-article-element-11). Phew.
+
 -- [[anarcat]] 2022-09-01

diff --git a/doc/bugs/charset_attribute_on_the_script_element_is_obsolete.mdwn b/doc/bugs/charset_attribute_on_the_script_element_is_obsolete.mdwn
new file mode 100644
index 000000000..3b6b82c62
--- /dev/null
+++ b/doc/bugs/charset_attribute_on_the_script_element_is_obsolete.mdwn
@@ -0,0 +1,13 @@
+the w3 validator fails on the main ikiwiki website because of the way inline scripts are handled. For example, [validating](https://validator.w3.org/nu/?doc=https%3A%2F%2Fikiwiki.info%2Fforum%2Fconvention_for_signing_posts_to_ikiwiki.info%2F) the post [[forum/convention_for_signing_posts_to_ikiwiki.info]] leads to this warning:
+
+[[!format txt """
+Warning: The charset attribute on the script element is obsolete.
+
+From line 271, column 1; to line 271, column 78
+
+>↩↩</div>↩<script src="../../ikiwiki/ikiwiki.js" type="text/javascript" charset="utf-8"></scri
+"""]]
+
+Seems like a low-hanging fruit... 
+
+-- [[anarcat]] 2022-09-01

diff --git a/doc/bugs/wishlist:_make_variable_where_httpauth_takes_the_user_configurable.mdwn b/doc/bugs/wishlist:_make_variable_where_httpauth_takes_the_user_configurable.mdwn
new file mode 100644
index 000000000..bb4f06280
--- /dev/null
+++ b/doc/bugs/wishlist:_make_variable_where_httpauth_takes_the_user_configurable.mdwn
@@ -0,0 +1,5 @@
+I recently migrated from the (no longer supported) mod_auth_kerb to its designated replacement, mod_auth_gssapi for HTTP authentication.
+
+mod_auth_kerb sets `REMOTE_USER` to the Krb5 name that authenticated (e.g., wouter@EXAMPLE.COM). mod_auth_gssapi does not do so; it sets it in the `GSS_NAME` variable, instead.
+
+It would be awesome if the httpauth plugin would accept a configuration value to set the variable in which to look for the username to account for cases like these.

websetup timeouts
diff --git a/doc/bugs/WSL:___40__110:_Connection_timed_out__41___while_reading_upstream.mdwn b/doc/bugs/WSL:___40__110:_Connection_timed_out__41___while_reading_upstream.mdwn
new file mode 100644
index 000000000..8c9d51467
--- /dev/null
+++ b/doc/bugs/WSL:___40__110:_Connection_timed_out__41___while_reading_upstream.mdwn
@@ -0,0 +1,7 @@
+Hello.
+
+I've just installed ikiwiki on Debian WSL and what I tried so far is working, but a thing: the websetup page is loading until it reaches a timeout and I can't see any button to save preferences at the bottom of the page.
+
+This is the log:
+
+    2022/08/01 20:10:13 [error] 3881#3881: *2 upstream timed out (110: Connection timed out) while reading upstream, client: 172.26.16.1, server: cuspide, request: "POST /ikiwiki.cgi HTTP/1.1", upstream: "fastcgi://unix:/var/run/fcgiwrap.socket:", host: "cuspide:8080", referrer: "http://cuspide:8080/ikiwiki.cgi?do=prefs"

po: report bug + test case + proposed fix
diff --git a/doc/bugs/po:_buggy_UTF-8_support_with_po4a_0.58+.mdwn b/doc/bugs/po:_buggy_UTF-8_support_with_po4a_0.58+.mdwn
new file mode 100644
index 000000000..3d231cf3c
--- /dev/null
+++ b/doc/bugs/po:_buggy_UTF-8_support_with_po4a_0.58+.mdwn
@@ -0,0 +1,8 @@
+[[!tag patch]]
+
+With po4a 0.58+, the po plugin incorrectly extracts UTF-8 strings from source pages.
+
+I've prepared a branch to fix this: https://salsa.debian.org/tails-team/ikiwiki/-/tree/po-fix-utf8
+
+This branch adds a test case that fails on current `master`.
+That test case passes from my branch on Debian sid with po4a 0.55 (Buster), 0.62 (Bullseye), and 0.66 (sid).

diff --git a/doc/forum/discordian.mdwn b/doc/forum/discordian.mdwn
new file mode 100644
index 000000000..538cabc6c
--- /dev/null
+++ b/doc/forum/discordian.mdwn
@@ -0,0 +1,12 @@
+Hi Team- 
+I can't figure out this error I'm getting on my blog - it shows up at the bottom of every post: 
+
+```Posted some time or other (Can't locate DateTime/Calendar/Discordian.pm in @INC (you may need to install the DateTime::Calendar::Discordian module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.32.1 /usr/local/share/perl/5.32.1 /usr/lib/x86_64-linux-gnu/perl5/5.32 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl) at (eval 1479) line 3. BEGIN failed--compilation aborted at (eval 1479) line 3. -- hail Eris!)```
+
+I'm using a freedombox, and I did something to the preferences of my ikiwiki blog, and don't know what I did wrong. Please help, it's kinda ugly.... ;) 
+
+blog is located here: 
+
+https://mudbox.freedombox.rocks/ikiwiki/NotesfromtheMudbox/
+
+(Hi Joey!)

Added a comment
diff --git a/doc/forum/problems_with_git_push_on_openbsd/comment_2_91f5b5c6c8ac9b8a1c207ebba7721682._comment b/doc/forum/problems_with_git_push_on_openbsd/comment_2_91f5b5c6c8ac9b8a1c207ebba7721682._comment
new file mode 100644
index 000000000..1a1bcb1a9
--- /dev/null
+++ b/doc/forum/problems_with_git_push_on_openbsd/comment_2_91f5b5c6c8ac9b8a1c207ebba7721682._comment
@@ -0,0 +1,43 @@
+[[!comment format=mdwn
+ username="gry"
+ avatar="http://cdn.libravatar.org/avatar/5821f2dec97d186ce3b455b806d33035"
+ subject="comment 2"
+ date="2022-02-15T20:23:09Z"
+ content="""
+Made these changes to IkiWiki/Wrapper.pm:
+
+````
+        my @envsave;
+        push @envsave, qw{REMOTE_ADDR QUERY_STRING REQUEST_METHOD REQUEST_URI
+                       CONTENT_TYPE CONTENT_LENGTH GATEWAY_INTERFACE
+                       HTTP_COOKIE REMOTE_USER HTTPS REDIRECT_STATUS
+                       HTTP_HOST SERVER_PORT HTTPS HTTP_ACCEPT
+                       REDIRECT_URL} if $config{cgi};
+        push @envsave, qw{GIT_OBJECT_DIRECTORY GIT_QUARANTINE_PATH
+                       GIT_ALTERNATE_OBJECT_DIRECTORIES} if $config{test_receive};
++        push @envsave, qw{PERL5LIB};
+        my $envsave=\"\";
+        foreach my $var (@envsave) {
+                $envsave.=<<\"EOF\";
+        if ((s=getenv(\"$var\")))
+                addenv(\"$var\", s);
+EOF
+        }
+
+
+````
+
+and this:
+
+```
+$check_commit_hook
+@wrapper_hooks
+$envsave
+        addenv(\"HOME\", \"$ENV{HOME}\");
+        addenv(\"PATH\", \"$ENV{PATH}\");
++        addenv(\"PERL5LIB\", \"$ENV{PERL5LIB}\");
+        addenv(\"WRAPPED_OPTIONS\", \"$configstring\");
+```
+
+I don't know which of the two changes was needed - maybe only one. Now it builds. :-)
+"""]]

removed
diff --git a/doc/forum/problems_with_git_push_on_openbsd/comment_2_e94bbbeae9c517ce2b7d3f41b3aedd90._comment b/doc/forum/problems_with_git_push_on_openbsd/comment_2_e94bbbeae9c517ce2b7d3f41b3aedd90._comment
deleted file mode 100644
index 264ffc2f1..000000000
--- a/doc/forum/problems_with_git_push_on_openbsd/comment_2_e94bbbeae9c517ce2b7d3f41b3aedd90._comment
+++ /dev/null
@@ -1,41 +0,0 @@
-[[!comment format=mdwn
- username="gry"
- avatar="http://cdn.libravatar.org/avatar/5821f2dec97d186ce3b455b806d33035"
- subject="comment 2"
- date="2022-02-15T20:21:26Z"
- content="""
-Made these changes to WikiWiki/Wrapper.pm:
-
-````
-        my @envsave;
-        push @envsave, qw{REMOTE_ADDR QUERY_STRING REQUEST_METHOD REQUEST_URI
-                       CONTENT_TYPE CONTENT_LENGTH GATEWAY_INTERFACE
-                       HTTP_COOKIE REMOTE_USER HTTPS REDIRECT_STATUS
-                       HTTP_HOST SERVER_PORT HTTPS HTTP_ACCEPT
-                       REDIRECT_URL} if $config{cgi};
-        push @envsave, qw{GIT_OBJECT_DIRECTORY GIT_QUARANTINE_PATH
-                       GIT_ALTERNATE_OBJECT_DIRECTORIES} if $config{test_receive};
-+        push @envsave, qw{PERL5LIB};
-        my $envsave=\"\";
-        foreach my $var (@envsave) {
-                $envsave.=<<\"EOF\";
-        if ((s=getenv(\"$var\")))
-                addenv(\"$var\", s);
-EOF
-        }
-
-
-````
-
-```
-$check_commit_hook
-@wrapper_hooks
-$envsave
-        addenv(\"HOME\", \"$ENV{HOME}\");
-        addenv(\"PATH\", \"$ENV{PATH}\");
-+        addenv(\"PERL5LIB\", \"$ENV{PERL5LIB}\");
-        addenv(\"WRAPPED_OPTIONS\", \"$configstring\");
-```
-
-I don't know which of the two changes was needed - maybe only one. Now it builds. :-)
-"""]]

Added a comment
diff --git a/doc/forum/problems_with_git_push_on_openbsd/comment_2_e94bbbeae9c517ce2b7d3f41b3aedd90._comment b/doc/forum/problems_with_git_push_on_openbsd/comment_2_e94bbbeae9c517ce2b7d3f41b3aedd90._comment
new file mode 100644
index 000000000..264ffc2f1
--- /dev/null
+++ b/doc/forum/problems_with_git_push_on_openbsd/comment_2_e94bbbeae9c517ce2b7d3f41b3aedd90._comment
@@ -0,0 +1,41 @@
+[[!comment format=mdwn
+ username="gry"
+ avatar="http://cdn.libravatar.org/avatar/5821f2dec97d186ce3b455b806d33035"
+ subject="comment 2"
+ date="2022-02-15T20:21:26Z"
+ content="""
+Made these changes to WikiWiki/Wrapper.pm:
+
+````
+        my @envsave;
+        push @envsave, qw{REMOTE_ADDR QUERY_STRING REQUEST_METHOD REQUEST_URI
+                       CONTENT_TYPE CONTENT_LENGTH GATEWAY_INTERFACE
+                       HTTP_COOKIE REMOTE_USER HTTPS REDIRECT_STATUS
+                       HTTP_HOST SERVER_PORT HTTPS HTTP_ACCEPT
+                       REDIRECT_URL} if $config{cgi};
+        push @envsave, qw{GIT_OBJECT_DIRECTORY GIT_QUARANTINE_PATH
+                       GIT_ALTERNATE_OBJECT_DIRECTORIES} if $config{test_receive};
++        push @envsave, qw{PERL5LIB};
+        my $envsave=\"\";
+        foreach my $var (@envsave) {
+                $envsave.=<<\"EOF\";
+        if ((s=getenv(\"$var\")))
+                addenv(\"$var\", s);
+EOF
+        }
+
+
+````
+
+```
+$check_commit_hook
+@wrapper_hooks
+$envsave
+        addenv(\"HOME\", \"$ENV{HOME}\");
+        addenv(\"PATH\", \"$ENV{PATH}\");
++        addenv(\"PERL5LIB\", \"$ENV{PERL5LIB}\");
+        addenv(\"WRAPPED_OPTIONS\", \"$configstring\");
+```
+
+I don't know which of the two changes was needed - maybe only one. Now it builds. :-)
+"""]]

Added a comment
diff --git a/doc/forum/problems_with_git_push_on_openbsd/comment_1_b4405629a7ab7058b8d0284ef36de7e8._comment b/doc/forum/problems_with_git_push_on_openbsd/comment_1_b4405629a7ab7058b8d0284ef36de7e8._comment
new file mode 100644
index 000000000..45e58e82d
--- /dev/null
+++ b/doc/forum/problems_with_git_push_on_openbsd/comment_1_b4405629a7ab7058b8d0284ef36de7e8._comment
@@ -0,0 +1,43 @@
+[[!comment format=mdwn
+ username="gry"
+ avatar="http://cdn.libravatar.org/avatar/5821f2dec97d186ce3b455b806d33035"
+ subject="comment 1"
+ date="2022-02-13T22:10:45Z"
+ content="""
+Steps I did for install,
+
+0) create user 'w' in which the wiki will be set up
+
+1) add the following to ~/.profile:
+
+wget -O- http://cpanmin.us | perl - -l ~/perl5 App::cpanminus local::lib
+eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`
+echo 'eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`' >> ~/.profile
+echo 'export MANPATH=$HOME/perl5/man:$MANPATH' >> ~/.profile
+
+2) . ~/.profile
+
+3) download ikiwki from packages.debian.org, extract the archive
+
+4) ./Makefile.PL - warned about missing dependencies - installed them using cpanm
+
+5) 
+
+```
+gmake install DESTDIR=/home/w/usr
+install -d /home/w/usr/etc/ikiwiki
+install -m 0644 wikilist /home/w/usr/etc/ikiwiki
+install -m 0644 auto.setup /home/w/usr/etc/ikiwiki
+install -m 0644 auto-blog.setup /home/w/usr/etc/ikiwiki
+
+```
+
+6) added \"PATH=$PATH:/home/w/usr/usr/local/bin/\" and \"export PERL5LIB=/home/w/usr/usr/local/libdata/perl5/site_perl/\" to ~/.profile
+
+7) logged off, logged back on
+
+8) ikiwiki --setup mysite.setup
+
+Hope it helps with finding where the issue is.
+
+"""]]

Added a comment
diff --git a/doc/forum/Looking_to_make_a_Collaborative_Fiction_tool/comment_4_554ff4e523670c271ee08f0fbce4b8b2._comment b/doc/forum/Looking_to_make_a_Collaborative_Fiction_tool/comment_4_554ff4e523670c271ee08f0fbce4b8b2._comment
new file mode 100644
index 000000000..2c9fda446
--- /dev/null
+++ b/doc/forum/Looking_to_make_a_Collaborative_Fiction_tool/comment_4_554ff4e523670c271ee08f0fbce4b8b2._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="kinostl"
+ avatar="http://cdn.libravatar.org/avatar/3687dfd12f6338c547718b7839959617"
+ subject="comment 4"
+ date="2022-02-13T19:25:57Z"
+ content="""
+It definitely does grys.
+
+And yes, the permissions are important because people have said they want to be able to write stuff, but keep it hidden from their players until its time for them to see it. Players also tend to like to do this for character notes as well, keeping things hidden and there just for themselves. The ownership is necessary because of culture, players don't see their character as part of the story but the story as part of their experiences.
+"""]]

Added a comment
diff --git a/doc/forum/Looking_to_make_a_Collaborative_Fiction_tool/comment_3_22ad9a7ef385c781bdbb540631a7e19f._comment b/doc/forum/Looking_to_make_a_Collaborative_Fiction_tool/comment_3_22ad9a7ef385c781bdbb540631a7e19f._comment
new file mode 100644
index 000000000..8a4df9ece
--- /dev/null
+++ b/doc/forum/Looking_to_make_a_Collaborative_Fiction_tool/comment_3_22ad9a7ef385c781bdbb540631a7e19f._comment
@@ -0,0 +1,17 @@
+[[!comment format=mdwn
+ username="gry"
+ avatar="http://cdn.libravatar.org/avatar/5821f2dec97d186ce3b455b806d33035"
+ subject="comment 3"
+ date="2022-02-13T19:21:55Z"
+ content="""
+Okay, a few points
+
+* by default anonymous users cannot edit the wiki, this can be controlled by [anonok plugin](http://ikiwiki.info/plugins/anonok/)
+* in ikiwiki once you are logged in you can read and edit any pages. the only wiki engine that allows precise control over permissions similar to what you described is dokuwiki, and i find it is less elegant than ikiwiki. please consider whether you really need this feature.
+* comments currently are not inline, not attached to any particular pagagraph of the page. they are like what we are writing here right now. ( via [this](http://ikiwiki.info/plugins/comments/) ) personally, when I need real time communication, I use IRC chat, like OFTC or Libera.Chat, that is open in another tab. For smaller wikis it means only those present in the chat can read it. This can be overcome by publishing IRC chat logs (software exists for this) or by scheduling meetups at a particular hour when everyone is more likely to be online.
+* ikiwiki is in my view really good for putting pages and stories in an organized way. there are nested page names, there are page tags, there are links between pages. ikiwiki corrects dead links for each page rename. I can not as of today imagine a better more organized way to index and link pages than what ikiwiki does. it supports attachments and image upload too.
+* about seeing what each user does. ikiwiki uses a revision control as backend. if you click [recent changes](http://ikiwiki.info/recentchanges/) and click the goggles, it will show you a diff. I don't think it is possible to view contibutions of one particular user on-wiki by clicking their nick, but I think in git this is possible, see [this example](https://stackoverflow.com/questions/4259996/how-can-i-view-a-git-log-of-just-one-users-commits). I think it is possible (someone more experienced than me should correct me if not) to implement a plugin that shows a user's contributions, like the recent changes link does.
+* \"I want people to be able to receive suggestions on their work?\" - two options - either via 'Comment' like what you are reading now, those can be moderated if needed, i.e. require manual approval by admin; or via 'Discussion' tab at the top of the page, which is another page, and is not moderated.
+
+Hope it helps.
+"""]]

Added a comment: Clarifications for gry
diff --git a/doc/forum/Looking_to_make_a_Collaborative_Fiction_tool/comment_2_86171fe3f586dd6cc92d70524dacd8e8._comment b/doc/forum/Looking_to_make_a_Collaborative_Fiction_tool/comment_2_86171fe3f586dd6cc92d70524dacd8e8._comment
new file mode 100644
index 000000000..034eb85e9
--- /dev/null
+++ b/doc/forum/Looking_to_make_a_Collaborative_Fiction_tool/comment_2_86171fe3f586dd6cc92d70524dacd8e8._comment
@@ -0,0 +1,24 @@
+[[!comment format=mdwn
+ username="kinostl"
+ avatar="http://cdn.libravatar.org/avatar/3687dfd12f6338c547718b7839959617"
+ subject="Clarifications for gry"
+ date="2022-02-13T19:06:25Z"
+ content="""
+Hi gry, thanks for the questions.
+
+> \"I want them to be able to choose who can see their work, I want them to be able to choose who can edit their work\" - how do you see this controlled?
+
+I'm imagining a user can go to a page and go to a \"permissions\" tab, then add people to different roles such as \"editor\" and \"reader\". Non-logged in users, and any user, would be presented as an individual user on this page, to make it easier on the user. 
+
+> \"I want people to be able to use their characters and settings to write stories\" - what do you mean - other than have one pages 'My list of characters' and anorher page 'My story' - what else does the software need to be able to do?
+
+I pretty much just mean people having pages and a good index, yes. 
+
+> \"in both realtime and asynchronously\" -- could you please tell more details about this feature? Do you mean 'live' collaborative editing when there are several users editing a page at the same time?
+
+I should have left this part out, I realized its essentially a whole different project. I just mean real time comments.
+
+> Thanks.
+
+Thanks for pointing out where I could be more clear!
+"""]]

Added a comment
diff --git a/doc/forum/Looking_to_make_a_Collaborative_Fiction_tool/comment_1_c4949958689f6a8d92b98e96b30696b1._comment b/doc/forum/Looking_to_make_a_Collaborative_Fiction_tool/comment_1_c4949958689f6a8d92b98e96b30696b1._comment
new file mode 100644
index 000000000..51a13fcb8
--- /dev/null
+++ b/doc/forum/Looking_to_make_a_Collaborative_Fiction_tool/comment_1_c4949958689f6a8d92b98e96b30696b1._comment
@@ -0,0 +1,17 @@
+[[!comment format=mdwn
+ username="gry"
+ avatar="http://cdn.libravatar.org/avatar/5821f2dec97d186ce3b455b806d33035"
+ subject="comment 1"
+ date="2022-02-13T18:28:45Z"
+ content="""
+Hello,
+
+\"I want them to be able to choose who can see their work, I want them to be able to choose who can edit their work\" -  how do you see this controlled?
+
+\"I want people to be able to use their characters and settings to write stories\" - what do you mean - other than have one pages 'My list of characters' and anorher page 'My story' - what else does the software need to be able to do?
+
+\"in both realtime and asynchronously\" -- could you please tell more details about this feature? Do you mean 'live' collaborative editing when there are several users editing a page at the same time?
+
+Thanks.
+
+"""]]

diff --git a/doc/forum/Looking_to_make_a_Collaborative_Fiction_tool.mdwn b/doc/forum/Looking_to_make_a_Collaborative_Fiction_tool.mdwn
new file mode 100644
index 000000000..347a6523f
--- /dev/null
+++ b/doc/forum/Looking_to_make_a_Collaborative_Fiction_tool.mdwn
@@ -0,0 +1,45 @@
+Hello, I'm looking to make a Collaborative Fiction tool meant for multiple users and I was wondering if Ikiwiki would be a good base for that. Its plugin system looks very powerful, but I'm worried if I'd have to lock down too many things for it to be viable.
+
+Heres the requirements list that I've made so far
+
+> I want something that can easily let me see information about my friends' world building.
+> 
+> World building involves
+> 
+> - Characters
+> - Player Characters
+> - Settings
+> - Major Events
+> - Cool Things (Magic Items for example)
+> 
+> I want to be able to see whatever they feel like is the best entrypoint
+> 
+> I want to be able to see a general list of everything they make
+> 
+> I want them to be able to choose who can see their work
+> 
+> I want them to be able to choose who can **edit** their work
+> 
+> I want people to be able to contribute to the same World or Project
+> 
+> I want people to be able to receive suggestions on their work?
+> 
+> I want people to be able to use their characters and settings to write stories in both realtime and asynchronously
+
+As for implementation. My original idea for this was to build a wrapper around git. This wrapper would allow someone to log in using Discord. If it is a new account, it would create a new git repo for them. Each user only has 1 git repo for simplicity's sake.
+
+The repo has folders and files in it, and each folder and file has user controlled access on it. A file or folder can be publicly viewable, only viewable to themselves, or only viewable to others they choose.
+
+On top of that, they can allow others to edit their files.
+
+I figure this is easily doable by just having the wrapper handling all this role based stuff. I'm not sure if a database or the files themselves would have the information for this rbac feature.
+
+I also figure having it be built on git would also allow people to use their own choice in editor, instead of whatever client I create. This has been a pretty important use case to people I talk to about this project.
+
+When I looked over ikiwiki's abilities, it seemed like most of this was already done by ikiwiki and I'd like to avoid doing work someone else has already done, and contribute to a project. Pushing free software is always great.
+
+I figure it could be implemented by giving every user their own ikiwiki, having some sort of centralized auth server that does the rbac and login. I'd also probably want to tighten the git access to be more similar to traditional git hosting web services.
+
+My users aren't developers, and should have the more confusing but powerful features of git left to git. They're just people who have fun writing fiction about their original characters and fiction with no intent of publishing anything. So the focus is entirely on making sure the software is enjoyable to use.
+
+I was wondering if anyone could tell me if this is outside the scope of ikiwiki's abilities, or if theres a more intelligent way for me to implement this idea using ikiwiki. 

created
diff --git a/doc/forum/problems_with_git_push_on_openbsd.mdwn b/doc/forum/problems_with_git_push_on_openbsd.mdwn
new file mode 100644
index 000000000..288b344f2
--- /dev/null
+++ b/doc/forum/problems_with_git_push_on_openbsd.mdwn
@@ -0,0 +1,53 @@
+running ikiwiki on openbsd under user 'w' 
+
+src dir /home/w/mysite.src 
+
+destination dir /var/www/htdocs/wiki/ 
+
+git dir /home/w/mysite.git 
+
+error message:
+
+```
+
+$ git push
+Enumerating objects: 5, done.
+Counting objects: 100% (5/5), done.
+Compressing objects: 100% (2/2), done.
+Writing objects: 100% (3/3), 298 bytes | 99.00 KiB/s, done.
+Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
+remote: Can't locate IkiWiki.pm in @INC (you may need to install the IkiWiki module) (@INC contains: /usr/local/libdata/perl5/site_perl/amd64-openbsd /usr/local/libdata/perl5/site_perl /usr/libdata/perl5/amd64-openbsd /usr/libdata/perl5) at /home/w/usr/usr/local/bin/ikiwiki line 7.
+remote: BEGIN failed--compilation aborted at /home/w/usr/usr/local/bin/ikiwiki line 7.
+To /home/w/mysite.git
+   4bc21d3..6f7a2ec  master -> master
+$
+
+```
+
+~/.profile :
+
+```
+# $OpenBSD: dot.profile,v 1.7 2020/01/24 02:09:51 okan Exp $
+#
+# sh/ksh initialization
+
+PATH=$HOME/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:/usr/games
+export PATH HOME TERM
+eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`
+export MANPATH=$HOME/perl5/man:$MANPATH
+
+export PATH=$PATH:/home/w/usr/usr/local/bin/
+export PERL5LIB=$PERL5LIB:/home/w/usr/usr/local/libdata/perl5/site_perl/
+````
+
+env var:
+
+
+```
+$ echo $PERL5LIB
+/home/w/perl5/lib/perl5:/home/w/usr/usr/local/libdata/perl5/site_perl/:/home/w/usr/usr/local/libdata/perl5/site_perl/
+$ 
+
+```
+
+How can I further debug this issue, please? In /var/www/htdocs/wiki/  nothing gets created.

diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn
index 9a7e08935..d39769bca 100644
--- a/doc/ikiwikiusers.mdwn
+++ b/doc/ikiwikiusers.mdwn
@@ -225,3 +225,4 @@ Personal sites and blogs
 * [canvon's blog](https://blog.canvon.de/)
 * [Coyote Works](http://coyote.works/) - Work In Progress site of Stephen Michael Kellat
 * [cat.chessmuse.com](https://cat.chessmuse.com) - alip's chess blog
+* [wesl.ee](https://wesl.ee)'s personal wiki

diff --git a/doc/plugins/shortcut.mdwn b/doc/plugins/shortcut.mdwn
index 1e8e85ed8..636e74dec 100644
--- a/doc/plugins/shortcut.mdwn
+++ b/doc/plugins/shortcut.mdwn
@@ -3,7 +3,8 @@
 
 This plugin provides the [[ikiwiki/directive/shortcut]] [[ikiwiki/directive]].
 It allows external links to commonly linked to sites to be made
-more easily using shortcuts.
+more easily using shortcuts. Some wiki engines call this feature "interwiki".
 
 The available shortcuts are defined on the [[shortcuts]] page in
 the wiki.
+

inadvertent improvement
diff --git a/doc/todo/allow_banning_a_user_when_moderating_a_comment.mdwn b/doc/todo/allow_banning_a_user_when_moderating_a_comment.mdwn
index 2c8b161de..770d9e4c5 100644
--- a/doc/todo/allow_banning_a_user_when_moderating_a_comment.mdwn
+++ b/doc/todo/allow_banning_a_user_when_moderating_a_comment.mdwn
@@ -7,3 +7,7 @@ If a logged-in user is both a comment moderator and an admin, it would be nice i
 >> Thanks for the tip! *— [[Jon]], 2021-12-06*
 
 >>> I don't actually think my script is that smart: it keeps sending me mail for *all* unmoderated comments, every night. I just ignore those mails for a while until they have valid content. ;) *-- [[anarcat]], 2021-12-06*
+
+>>>> Haha well, you've inadvertently improved my process anyway :-) I just added `-mtime -2` to a `find`. Ultimately I wonder if
+>>>> I'll move to reviewing and publishing comments by filing mail, and/or applying my (remarkably good, crm114) mail filters to
+>>>> blog comments. *— [[Jon]], 2021-12-07*

diff --git a/doc/todo/allow_banning_a_user_when_moderating_a_comment.mdwn b/doc/todo/allow_banning_a_user_when_moderating_a_comment.mdwn
index df6c0da1f..2c8b161de 100644
--- a/doc/todo/allow_banning_a_user_when_moderating_a_comment.mdwn
+++ b/doc/todo/allow_banning_a_user_when_moderating_a_comment.mdwn
@@ -5,3 +5,5 @@ If a logged-in user is both a comment moderator and an admin, it would be nice i
 >> Thanks. I moderate all my comments and send myself a nightly email, but I was sending the list of *all* unmoderated comments in each mail,
 >> rather than just new ones. If I switch to just the new ones, as you have, I could indeed just ignore the mails that are clearly all spam.
 >> Thanks for the tip! *— [[Jon]], 2021-12-06*
+
+>>> I don't actually think my script is that smart: it keeps sending me mail for *all* unmoderated comments, every night. I just ignore those mails for a while until they have valid content. ;) *-- [[anarcat]], 2021-12-06*

Thanks for the tip
diff --git a/doc/todo/allow_banning_a_user_when_moderating_a_comment.mdwn b/doc/todo/allow_banning_a_user_when_moderating_a_comment.mdwn
index 4c5483127..df6c0da1f 100644
--- a/doc/todo/allow_banning_a_user_when_moderating_a_comment.mdwn
+++ b/doc/todo/allow_banning_a_user_when_moderating_a_comment.mdwn
@@ -1,3 +1,7 @@
-If a logged-in user is both a comment moderator and an admin, it would be nice if you could tick a box to ban the poster of a comment (or their IP if not signed in. Or their IP, AND their login if signed in, I suppose.) via the comment moderation interface.  Presently, you must view the back-end files to establish who posted the comment (the IP is not exposed in the moderation interface yet.) — [[Jon]]
+If a logged-in user is both a comment moderator and an admin, it would be nice if you could tick a box to ban the poster of a comment (or their IP if not signed in. Or their IP, AND their login if signed in, I suppose.) via the comment moderation interface.  Presently, you must view the back-end files to establish who posted the comment (the IP is not exposed in the moderation interface yet.) *— [[Jon]], 2012-06-27*
 
 > +1, FWIW. in my experience, banning a bunch of IPs did help with the spambots for some time. In [[todo/anti-spam_protection]] i implemented some measures to implement this banning "out of band" but i have mostly given up on that now. all comments are moderated a priori and i just get a nightly email warning me when new spam comes in. the advantage of that approach is the spam never reaches the production site (1) and (2) i can ignore spammers until real content comes in at which point i can just flush it all out. -- [[anarcat]]
+
+>> Thanks. I moderate all my comments and send myself a nightly email, but I was sending the list of *all* unmoderated comments in each mail,
+>> rather than just new ones. If I switch to just the new ones, as you have, I could indeed just ignore the mails that are clearly all spam.
+>> Thanks for the tip! *— [[Jon]], 2021-12-06*

+1
diff --git a/doc/todo/allow_banning_a_user_when_moderating_a_comment.mdwn b/doc/todo/allow_banning_a_user_when_moderating_a_comment.mdwn
index c0b85ec85..4c5483127 100644
--- a/doc/todo/allow_banning_a_user_when_moderating_a_comment.mdwn
+++ b/doc/todo/allow_banning_a_user_when_moderating_a_comment.mdwn
@@ -1 +1,3 @@
 If a logged-in user is both a comment moderator and an admin, it would be nice if you could tick a box to ban the poster of a comment (or their IP if not signed in. Or their IP, AND their login if signed in, I suppose.) via the comment moderation interface.  Presently, you must view the back-end files to establish who posted the comment (the IP is not exposed in the moderation interface yet.) — [[Jon]]
+
+> +1, FWIW. in my experience, banning a bunch of IPs did help with the spambots for some time. In [[todo/anti-spam_protection]] i implemented some measures to implement this banning "out of band" but i have mostly given up on that now. all comments are moderated a priori and i just get a nightly email warning me when new spam comes in. the advantage of that approach is the spam never reaches the production site (1) and (2) i can ignore spammers until real content comes in at which point i can just flush it all out. -- [[anarcat]]

add logging of comment moderation actions
diff --git a/doc/todo/comment_moderation_logging.mdwn b/doc/todo/comment_moderation_logging.mdwn
new file mode 100644
index 000000000..92b7d9897
--- /dev/null
+++ b/doc/todo/comment_moderation_logging.mdwn
@@ -0,0 +1,4 @@
+This is something I'm probably going to patch into my own instances: some kind of
+logging of comment moderation actions, particularly Deny. This is so I have something
+I can point fail2ban at. (See also: [[allow banning a user when moderating a comment]],
+[[anti-spam protection]]). *— [[Jon]], 2021-11-25*

thank you; gettext
diff --git a/doc/todo/report_on_specific_markdown_implementation_used.mdwn b/doc/todo/report_on_specific_markdown_implementation_used.mdwn
index 171cc8b29..7efaca1d8 100644
--- a/doc/todo/report_on_specific_markdown_implementation_used.mdwn
+++ b/doc/todo/report_on_specific_markdown_implementation_used.mdwn
@@ -7,5 +7,11 @@ Patch: <https://github.com/jmtd/ikiwiki/commit/79297a0879e4f05f421b560bbbc74c227
 
 > +1 && LGTM, but i'm not sure that needs gettext since it's debugging? -- [[anarcat]]
 
+>> Thank you. RE gettext, I think there's value in localizing even debug messages. But
+>> I might have not approached it ideally, I did wonder whether instead of `gettext("mdwn: using Text::Markdown::markdown")`
+>> I should have done something like `"mdwn: ".gettext("using ")."Text::Markdown::markdown"`.
+>> I bow to the superior gettext knowledge of just about anyone. *— [[Jon]], 2021-11-10* 
+
 [[!tag patch]]
 [[!template id=gitbranch branch=jon/mdwn-debug-log-chosen-impl author="[[Jon]]"]]
+

+1
diff --git a/doc/todo/report_on_specific_markdown_implementation_used.mdwn b/doc/todo/report_on_specific_markdown_implementation_used.mdwn
index 07c4bc4cd..171cc8b29 100644
--- a/doc/todo/report_on_specific_markdown_implementation_used.mdwn
+++ b/doc/todo/report_on_specific_markdown_implementation_used.mdwn
@@ -4,5 +4,8 @@ It would be good to have a way to report exactly which version ended up being ch
 by setting a variable that could be echoed into content by another command. *— [[Jon]], 2021-11-08*.
 
 Patch: <https://github.com/jmtd/ikiwiki/commit/79297a0879e4f05f421b560bbbc74c2278dddc61>
+
+> +1 && LGTM, but i'm not sure that needs gettext since it's debugging? -- [[anarcat]]
+
 [[!tag patch]]
 [[!template id=gitbranch branch=jon/mdwn-debug-log-chosen-impl author="[[Jon]]"]]

initial patch for CommonMark support
diff --git a/doc/bugs/Commonmark_support.mdwn b/doc/bugs/Commonmark_support.mdwn
index b05f67f12..cd1bd90f8 100644
--- a/doc/bugs/Commonmark_support.mdwn
+++ b/doc/bugs/Commonmark_support.mdwn
@@ -18,3 +18,12 @@ I've found that switching my own non-ikiwiki projects to https://github.com/jgm/
 >
 > However, if you want to add optional Commonmark support to the
 > [[plugins/mdwn]] plugin, I'd review a patch. --[[smcv]]
+
+----
+
+A very initial patch is here. There might be ikiwiki-to-commonmark option translation
+to do.
+
+Patch: <https://github.com/jmtd/ikiwiki/commit/c76eeac8152604ce3d7d1672fe404c8ee8ef2dd8>
+[[!tag patch]]
+[[!template id=gitbranch branch=jon/commonmark author="[[Jon]]"]]

+patch,gitbranch
diff --git a/doc/todo/report_on_specific_markdown_implementation_used.mdwn b/doc/todo/report_on_specific_markdown_implementation_used.mdwn
index 59112697b..07c4bc4cd 100644
--- a/doc/todo/report_on_specific_markdown_implementation_used.mdwn
+++ b/doc/todo/report_on_specific_markdown_implementation_used.mdwn
@@ -2,3 +2,7 @@ The [[plugins/mdwn]] plugin can use one of several markdown implementations depe
 
 It would be good to have a way to report exactly which version ended up being chosen for a given invocation. Either as a verbose log message, or
 by setting a variable that could be echoed into content by another command. *— [[Jon]], 2021-11-08*.
+
+Patch: <https://github.com/jmtd/ikiwiki/commit/79297a0879e4f05f421b560bbbc74c2278dddc61>
+[[!tag patch]]
+[[!template id=gitbranch branch=jon/mdwn-debug-log-chosen-impl author="[[Jon]]"]]

report on chosen markdown implementation either in logs or setting a var
diff --git a/doc/todo/report_on_specific_markdown_implementation_used.mdwn b/doc/todo/report_on_specific_markdown_implementation_used.mdwn
new file mode 100644
index 000000000..59112697b
--- /dev/null
+++ b/doc/todo/report_on_specific_markdown_implementation_used.mdwn
@@ -0,0 +1,4 @@
+The [[plugins/mdwn]] plugin can use one of several markdown implementations depending on some settings and what's available in the (Perl) environment.
+
+It would be good to have a way to report exactly which version ended up being chosen for a given invocation. Either as a verbose log message, or
+by setting a variable that could be echoed into content by another command. *— [[Jon]], 2021-11-08*.

+commonmark
diff --git a/doc/bugs/mdwn:_URIs_with_parentheses_are_not_rendered_properly___40__with_at_least_discount__41__.mdwn b/doc/bugs/mdwn:_URIs_with_parentheses_are_not_rendered_properly___40__with_at_least_discount__41__.mdwn
index 4e4b3add2..1f261edd1 100644
--- a/doc/bugs/mdwn:_URIs_with_parentheses_are_not_rendered_properly___40__with_at_least_discount__41__.mdwn
+++ b/doc/bugs/mdwn:_URIs_with_parentheses_are_not_rendered_properly___40__with_at_least_discount__41__.mdwn
@@ -13,6 +13,8 @@ The following alternative markdown implementations get this right:
 
  * libtext-markdown-perl 1.000031 (debian -3) 
  * multimarkdown 1.000035 (debian -2)
+ * [commonmark](https://spec.commonmark.org/dingus/?text=%5Bsome%20stupid%20thing%5D(https%3A%2F%2Ffoo.com%2Fmoo(baah)))
 
+I note the irony of the commonmark URI being an apt demo of the problem.
 
 *— [[Jon]], 2021-11-05*

discount markdown can't handle URIs with parens e.g. mediawiki style
diff --git a/doc/bugs/mdwn:_URIs_with_parentheses_are_not_rendered_properly___40__with_at_least_discount__41__.mdwn b/doc/bugs/mdwn:_URIs_with_parentheses_are_not_rendered_properly___40__with_at_least_discount__41__.mdwn
new file mode 100644
index 000000000..4e4b3add2
--- /dev/null
+++ b/doc/bugs/mdwn:_URIs_with_parentheses_are_not_rendered_properly___40__with_at_least_discount__41__.mdwn
@@ -0,0 +1,18 @@
+With Ikiwiki, mdwn, and discount configured, the following syntax
+
+    [some link with parens in it](http://foo.com/parens(yeah))
+
+Has a broken URI (missing the closing parenthesis) and renders the second parenthesis outside of the link.
+
+Here's it live on ikiwiki.info: [some link with parens in it](http://foo.com/parens(yeah))
+
+Bug present in at least discount 2.2.6 and 2.2.7 and merely exposed by IkiWiki. Note that upstream
+consider this to be not-a-bug/"behavior follows specs": https://github.com/Orc/discount/issues/241
+
+The following alternative markdown implementations get this right:
+
+ * libtext-markdown-perl 1.000031 (debian -3) 
+ * multimarkdown 1.000035 (debian -2)
+
+
+*— [[Jon]], 2021-11-05*

fix wikilink
diff --git a/doc/todo/support_mdwn_front_matter.mdwn b/doc/todo/support_mdwn_front_matter.mdwn
index 88bc7e5f8..804139230 100644
--- a/doc/todo/support_mdwn_front_matter.mdwn
+++ b/doc/todo/support_mdwn_front_matter.mdwn
@@ -18,7 +18,7 @@ prefixed by '%'). Quoting `mdwn.pm` (here in the section that handles
     $always_flags |= Text::Markdown::Discount::MKD_NOHEADER();
 
 It would be good to support YAML-formatted pre-pended metadata,
-translating recognised keys into [[meta]] definitions, to aid
+translating recognised keys into [[plugins/meta]] definitions, to aid
 migration between IkiWiki and other static site generators: it
 would aid the same source files being useable in multiple systems.
 

reply: thanks
diff --git a/doc/users/jon/discussion.mdwn b/doc/users/jon/discussion.mdwn
index c6b6ab232..046617f2e 100644
--- a/doc/users/jon/discussion.mdwn
+++ b/doc/users/jon/discussion.mdwn
@@ -5,3 +5,5 @@ Not sure if this is the right place, but [[todo/admonitions]] didn't feel right,
 I just upgraded my home server (which is where i'm running ikiwiki) to bullseye, and had to rebase everything onto `3.20200202.3-1`. So you should be able to get all those branches, again rebased on that tag, on my git repo: https://gitlab.com/anarcat/ikiwiki.git. The `deploy` branch has all those branches merged, and the `master` branch is the branch point, basically `3.20200202.3-1`.
 
 I hope that will help you sort through my patches! :) -- [[anarcat]] 2021-10-05
+
+> Hi! This is a good a place as any. Thanks for letting me know! *— [[Jon]], 2021-10-15*

Todo suggestion: support pre-pended YAML metadata blocks
diff --git a/doc/todo/support_mdwn_front_matter.mdwn b/doc/todo/support_mdwn_front_matter.mdwn
new file mode 100644
index 000000000..88bc7e5f8
--- /dev/null
+++ b/doc/todo/support_mdwn_front_matter.mdwn
@@ -0,0 +1,36 @@
+A number of static site generators and/or Markdown implementations
+support the notion of a "front matter", a (normally) YAML list pre-
+pended before the document text, containing document metadata. E.g.:
+
+    ---
+    title: how to blog
+    author: Joe Bloggs
+    ---
+    document goes here
+
+IkiWiki has (currently) made a deliberate decision not to support these (or
+more precisely, the similar but different Pandoc-style block with lines
+prefixed by '%'). Quoting `mdwn.pm` (here in the section that handles
+*Discount*):
+
+    # Disable Pandoc-style % Title, % Author, % Date
+    # Use the meta plugin instead
+    $always_flags |= Text::Markdown::Discount::MKD_NOHEADER();
+
+It would be good to support YAML-formatted pre-pended metadata,
+translating recognised keys into [[meta]] definitions, to aid
+migration between IkiWiki and other static site generators: it
+would aid the same source files being useable in multiple systems.
+
+This would require the `mdwn` plugin to be more closely-coupled to
+the `meta` plugin, but not the reverse. I think this wouldn't be a
+big problem, as the prospect of an IkiWiki site that was using the
+`mdwn` plugin but *not* the `meta` plugin is fairly remote. And we
+could make front-matter handling configurably on or off.
+
+References:
+ * [Pandoc extension yaml_metadata_block](https://pandoc.org/MANUAL.html#extension-yaml_metadata_block)
+ * [Hakyll 'pages and metadata'](https://jaspervdj.be/hakyll/tutorials/02-basics.html#pages-and-metadata)
+ * [Jekyll 'front matter'](https://jekyllrb.com/docs/front-matter/)
+
+*— [[Jon]], 2021-10-15*

diff --git a/doc/users/jon/discussion.mdwn b/doc/users/jon/discussion.mdwn
new file mode 100644
index 000000000..c6b6ab232
--- /dev/null
+++ b/doc/users/jon/discussion.mdwn
@@ -0,0 +1,7 @@
+Hey
+
+Not sure if this is the right place, but [[todo/admonitions]] didn't feel right, so here we go.
+
+I just upgraded my home server (which is where i'm running ikiwiki) to bullseye, and had to rebase everything onto `3.20200202.3-1`. So you should be able to get all those branches, again rebased on that tag, on my git repo: https://gitlab.com/anarcat/ikiwiki.git. The `deploy` branch has all those branches merged, and the `master` branch is the branch point, basically `3.20200202.3-1`.
+
+I hope that will help you sort through my patches! :) -- [[anarcat]] 2021-10-05

New contrib plugin: fast-pandoc
diff --git a/doc/plugins/contrib/fast-pandoc.mdwn b/doc/plugins/contrib/fast-pandoc.mdwn
new file mode 100644
index 000000000..23fbe86e1
--- /dev/null
+++ b/doc/plugins/contrib/fast-pandoc.mdwn
@@ -0,0 +1,5 @@
+[[!template id=plugin name=fast-pandoc author="gnoutchd"]]
+
+Renders .mdwn files with [Pandoc](https://pandoc.org/).  A primitive but potentially faster alternative to [[pandoc]], written in Haskell as an [[external|/plugins/write/external/]] (XML-RPC) plugin.
+
+Find it at <http://code.softwarefreedom.org/cgit/ikiwiki-fast-pandoc/> or <https://github.com/gnoutchd/ikiwiki-fast-pandoc>.

describe unexpected situation where a logged-in user can delete other comments
diff --git a/doc/bugs/logged_in_users_can_remove_any_comments.mdwn b/doc/bugs/logged_in_users_can_remove_any_comments.mdwn
new file mode 100644
index 000000000..e4bd44e9b
--- /dev/null
+++ b/doc/bugs/logged_in_users_can_remove_any_comments.mdwn
@@ -0,0 +1,6 @@
+[ the precise circumstances around which this can happen are still being nailed down ]
+
+[[plugins/remove]] says:
+> Users can only remove things that they are allowed to edit or upload.
+
+This permits a logged-in user to remove comments by other users, which might be unexpected. *&mdash; [[Jon]], 2021-09-30*

Added a comment
diff --git a/doc/forum/convention_for_signing_posts_to_ikiwiki.info/comment_2_8d10ca4c18031f7da15a46525195dc50._comment b/doc/forum/convention_for_signing_posts_to_ikiwiki.info/comment_2_8d10ca4c18031f7da15a46525195dc50._comment
new file mode 100644
index 000000000..a5992e48c
--- /dev/null
+++ b/doc/forum/convention_for_signing_posts_to_ikiwiki.info/comment_2_8d10ca4c18031f7da15a46525195dc50._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="jmtd"
+ avatar="http://cdn.libravatar.org/avatar/2a3bcb34947fceef61560bd8a2931957"
+ subject="comment 2"
+ date="2021-09-30T09:11:35Z"
+ content="""
+We get a date for free if the \"thing\" is a comment, at least.
+
+If one wiki-links to a user-page, then comments/pages/etc show up in the backlinks list at the bottom (under \"Links:\"). (which reminds me, I hope my patch for [[bugs/backlinks onhover thing can go weird]] is eventually considered)
+"""]]

Added a comment: i sign stuff
diff --git a/doc/forum/convention_for_signing_posts_to_ikiwiki.info/comment_1_b83ec08cceffeb83999b31e4952b534e._comment b/doc/forum/convention_for_signing_posts_to_ikiwiki.info/comment_1_b83ec08cceffeb83999b31e4952b534e._comment
new file mode 100644
index 000000000..573e8a2ca
--- /dev/null
+++ b/doc/forum/convention_for_signing_posts_to_ikiwiki.info/comment_1_b83ec08cceffeb83999b31e4952b534e._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="anarcat"
+ avatar="http://cdn.libravatar.org/avatar/825d3c30cb96a053b5335e51b8d0bd49"
+ subject="i sign stuff"
+ date="2021-09-29T14:15:44Z"
+ content="""
+i try to sign my comments, but don't generally put a date, out of lazyness. i also link to comments/bugs/forum posts i did in [[users/anarcat]], thanks to ikiwiki's awesomeness. not sure about formalizing this... while it would be great to see who's who, i'm not sure how that could be enforce significantly, especially without patching ikiwiki, which is hard.
+"""]]

Proposal: convention for signing posts, encourage signing posts, retroactively sign posts on replying
diff --git a/doc/forum/convention_for_signing_posts_to_ikiwiki.info.mdwn b/doc/forum/convention_for_signing_posts_to_ikiwiki.info.mdwn
new file mode 100644
index 000000000..ad99625f9
--- /dev/null
+++ b/doc/forum/convention_for_signing_posts_to_ikiwiki.info.mdwn
@@ -0,0 +1,24 @@
+I habitually sign my messages (comments, forum posts, discussion pages, or replies to same) on [ikiwiki.info](https://ikiwiki.info),
+but not everybody does; especially newcomers might not realise it can be helpful. I think it should be generally encouraged that
+we do, and  think it would be useful for others to add
+signatures to unsigned comments/forum posts/discussion pages/replies in those situations, perhaps at the point of replying to
+them.
+
+But what should a standardised signature look like? I propose the format I am using, namely
+
+    *— (user-name), YYYY-MM-DD*
+
+Where "user-name" should be the logged-in user or git commit author.name field, if either are defined; that "user-name"
+should be a wiki-link to the relevant User page if such is known to exist; and failing that, use the string "unsigned comment";
+and "YYYY-MM-DD" is substituted with the year-month-day at the time of the comment. I don't see the need for a higher
+resolution timestamp (always available in the git metadata anyway).
+
+The signature should be suffixed to the last line of the relevant comment-block (as in this example).
+
+If there is general support for this idea, we could develop it further and have machine-assisted signatures, a bit like e.g.
+Mediawiki with `~~~~`.
+
+There are probably other similar conventions we should canonicalize, such as how to handle replying inline to someone else's
+comment/forum post/discussion pages/reply and what to do with respect to attribution/signature lines in those situations.
+
+Thoughts? *— [[Jon]], 2021-09-29*

Electric's userpage
diff --git a/doc/users/ElectricGirl123.mdwn b/doc/users/ElectricGirl123.mdwn
new file mode 100644
index 000000000..68d954c42
--- /dev/null
+++ b/doc/users/ElectricGirl123.mdwn
@@ -0,0 +1 @@
+Hello, I'm Electric, happy to meet you! I'm here to contribute, help and edit IkiWiki. 

single-indent (not sure why I doubled it)
diff --git a/doc/todo/merge_tina-osm_branch.mdwn b/doc/todo/merge_tina-osm_branch.mdwn
index 325139407..3cdbca662 100644
--- a/doc/todo/merge_tina-osm_branch.mdwn
+++ b/doc/todo/merge_tina-osm_branch.mdwn
@@ -16,23 +16,23 @@ Any chances of it being merged into master? At this point I am considering if it
 
 --[[Tina]]
 
->> Hi, I can understand your frustration with having outstanding patches for
->> review/merge. You aren't alone. It's clear that the IkiWiki maintainers are
->> overloaded at the moment. IkiWiki maintainers, is there anything that we can
->> do to help?
->> 
->> In my case I started [collecting together stuff that I was requesting be merged](https://github.com/jmtd/ikiwiki/compare/3.20200202.3...jmtd:opinionated?expand=1)
->> into IkiWiki, by myself and others, in a branch that I use for the *Opinionated
->> Ikiwiki* [[container|containers]].
->> 
->> The *Opinionated IkiWiki* container was not intended to be a "clearing house"
->> for patches, as such, but it could potentially be a way for pending stuff to
->> get some exposure, which might increase the overburdened maintainers confidence
->> in the patches. (Would it)? Supposing that anyone is using the container of
->> course.
->> 
->> I've personally not used the OSM plugin at all, but I took a quick look after
->> you posted the above message. It looks cool! I would probably accept a PR
->> against the "opinionated" branch in my fork, above, if that was of any interest.
->> 
->> -- *[[Jon]], 2021-08-18*
+> Hi, I can understand your frustration with having outstanding patches for
+> review/merge. You aren't alone. It's clear that the IkiWiki maintainers are
+> overloaded at the moment. IkiWiki maintainers, is there anything that we can
+> do to help?
+> 
+> In my case I started [collecting together stuff that I was requesting be merged](https://github.com/jmtd/ikiwiki/compare/3.20200202.3...jmtd:opinionated?expand=1)
+> into IkiWiki, by myself and others, in a branch that I use for the *Opinionated
+> Ikiwiki* [[container|containers]].
+> 
+> The *Opinionated IkiWiki* container was not intended to be a "clearing house"
+> for patches, as such, but it could potentially be a way for pending stuff to
+> get some exposure, which might increase the overburdened maintainers confidence
+> in the patches. (Would it)? Supposing that anyone is using the container of
+> course.
+> 
+> I've personally not used the OSM plugin at all, but I took a quick look after
+> you posted the above message. It looks cool! I would probably accept a PR
+> against the "opinionated" branch in my fork, above, if that was of any interest.
+> 
+> -- *[[Jon]], 2021-08-18*

Reply to Tina and busy maintainers: is there anything we can do?
diff --git a/doc/todo/merge_tina-osm_branch.mdwn b/doc/todo/merge_tina-osm_branch.mdwn
index c20fd18ec..325139407 100644
--- a/doc/todo/merge_tina-osm_branch.mdwn
+++ b/doc/todo/merge_tina-osm_branch.mdwn
@@ -15,3 +15,24 @@ It has been over 2 years since I created this patch... I have even changed my na
 Any chances of it being merged into master? At this point I am considering if it makes sense to keep using ikiwiki if I have to keep maintaining local patches for years.
 
 --[[Tina]]
+
+>> Hi, I can understand your frustration with having outstanding patches for
+>> review/merge. You aren't alone. It's clear that the IkiWiki maintainers are
+>> overloaded at the moment. IkiWiki maintainers, is there anything that we can
+>> do to help?
+>> 
+>> In my case I started [collecting together stuff that I was requesting be merged](https://github.com/jmtd/ikiwiki/compare/3.20200202.3...jmtd:opinionated?expand=1)
+>> into IkiWiki, by myself and others, in a branch that I use for the *Opinionated
+>> Ikiwiki* [[container|containers]].
+>> 
+>> The *Opinionated IkiWiki* container was not intended to be a "clearing house"
+>> for patches, as such, but it could potentially be a way for pending stuff to
+>> get some exposure, which might increase the overburdened maintainers confidence
+>> in the patches. (Would it)? Supposing that anyone is using the container of
+>> course.
+>> 
+>> I've personally not used the OSM plugin at all, but I took a quick look after
+>> you posted the above message. It looks cool! I would probably accept a PR
+>> against the "opinionated" branch in my fork, above, if that was of any interest.
+>> 
+>> -- *[[Jon]], 2021-08-18*

diff --git a/doc/users/Tina.mdwn b/doc/users/Tina.mdwn
index c3c7ad4c3..910b6711c 100644
--- a/doc/users/Tina.mdwn
+++ b/doc/users/Tina.mdwn
@@ -1,3 +1,5 @@
 [Martina Ferrari](https://tina.pm/blog/)
 
+Also Tina @debian, and OFTC and Libera IRC networks. NightTsarina in Github, Twitter, and other places.
+
 Long time user of ikiwiki. Made a [rewrite](https://tina.pm/blog/posts/OSM_in_IkiWiki/) of the OSM plugin, still pending merge.

diff --git a/doc/todo/merge_tina-osm_branch.mdwn b/doc/todo/merge_tina-osm_branch.mdwn
index a0e4878af..c20fd18ec 100644
--- a/doc/todo/merge_tina-osm_branch.mdwn
+++ b/doc/todo/merge_tina-osm_branch.mdwn
@@ -10,3 +10,8 @@ I'd appreciate additional careful review from another maintainer,
 including about the points raised at [[plugins/osm/discussion]].
 
 --[[schmonz]]
+
+It has been over 2 years since I created this patch... I have even changed my name and gender in the meantime :)
+Any chances of it being merged into master? At this point I am considering if it makes sense to keep using ikiwiki if I have to keep maintaining local patches for years.
+
+--[[Tina]]

Update user name
diff --git a/doc/git.mdwn b/doc/git.mdwn
index df26b2ad3..17a44d2c8 100644
--- a/doc/git.mdwn
+++ b/doc/git.mdwn
@@ -61,7 +61,7 @@ think about merging them. This is recommended. :-)
 * bfree `git://github.com/bfree/ikiwiki.git`
 * [[users/leg]] `git://at.magma-soft.at/ikiwiki.info`
 * [[thcipriani]] `https://github.com/thcipriani/ikiwiki.git` ([[browse|https://github.com/thcipriani/ikiwiki]])
-* [[tincho]] `git@github.com:TheTincho/ikiwiki.git` ([[browse|https://github.com/TheTincho/ikiwiki]])
+* [[Tina]] `git@github.com:NightTsarina/ikiwiki.git` ([[browse|https://github.com/NightTsarina/ikiwiki]])
 * [[hefee]] `https://salsa.debian.org/hefee/ikiwiki.git/` ([[browse|https://salsa.debian.org/hefee/ikiwiki]])
 * bsv `https://bico.media/1EZF5WfG6t35iwFpyVVptxT1MB4DKt6G2U`
   bsv blockchain repo using ([[git-remote-bsv|https://github.com/xloem/git-remote-bsv]])

rename todo/merge_tincho-osm_branch.mdwn to todo/merge_tina-osm_branch.mdwn
diff --git a/doc/todo/merge_tincho-osm_branch.mdwn b/doc/todo/merge_tina-osm_branch.mdwn
similarity index 100%
rename from doc/todo/merge_tincho-osm_branch.mdwn
rename to doc/todo/merge_tina-osm_branch.mdwn

Update user name
diff --git a/doc/todo/merge_tincho-osm_branch.mdwn b/doc/todo/merge_tincho-osm_branch.mdwn
index 26d6bf0eb..a0e4878af 100644
--- a/doc/todo/merge_tincho-osm_branch.mdwn
+++ b/doc/todo/merge_tincho-osm_branch.mdwn
@@ -1,4 +1,4 @@
-[[Tincho]] has an updated [[plugins/osm]] that fixes some basic usages,
+[[Tina]] has an updated [[plugins/osm]] that fixes some basic usages,
 greatly simplifies the code, and would let us close
 [[replace openlayers with leaflet]]
 and

Update user name and pronouns, sorry for modifying other people's writing, hope it is OK.
diff --git a/doc/plugins/osm/discussion.mdwn b/doc/plugins/osm/discussion.mdwn
index ff3cb8d36..43ea3a089 100644
--- a/doc/plugins/osm/discussion.mdwn
+++ b/doc/plugins/osm/discussion.mdwn
@@ -28,9 +28,9 @@ For usability it would be great if it was possible to display the active waypoin
 
 ## Updated plugin needs review and merge
 
-[[!template id=gitbranch branch=tincho-osm author="[[users/Tincho]]"]]
+[[!template id=gitbranch branch=tina-osm author="[[users/Tina]]"]]
 
-[[schmonz]] here. I recently tried to use this plugin, had some trouble, and discovered on IRC that [[users/Tincho]] has a largely [rewritten version](https://blog.tincho.org/posts/OSM_in_IkiWiki/) that looks good [on his site](https://blog.tincho.org/Mingle/), but hadn't gotten around to submitting for merge. So we remote-paired on it today, improved a few things, and wrote down what we noticed:
+[[schmonz]] here. I recently tried to use this plugin, had some trouble, and discovered on IRC that [[users/Tina]] has a largely [rewritten version](https://tina.pm/blog/posts/OSM_in_IkiWiki/) that looks good [on her site](https://tina.pm/blog/Mingle/), but hadn't gotten around to submitting for merge. So we remote-paired on it today, improved a few things, and wrote down what we noticed:
 
 ### Features removed
 
@@ -64,10 +64,10 @@ For usability it would be great if it was possible to display the active waypoin
 - Given this is backward-incompatible, dhould we call it something other than "osm"?
 - What needs scrubbing? Have we covered all the bases? Too many bases?
 - Should we vendor Leaflet into an underlay, instead of needing a URL to load it from a CDN? [[schmonz]] somewhat prefers this, so we avoid needing external resources by default, avoid breaking when the Leaflet CDN is down, etc.
-- Should we write some tests before merging? `osm.pm` hadn't had any, FWIW -- [[users/Tincho]] Done
+- Should we write some tests before merging? `osm.pm` hadn't had any, FWIW -- [[users/Tina]] Done
 
-Bump! Tincho would like to see us merge his effort, and FWIW I'd also
-rather not have to carry around a local copy of his work to get a map
+Bump! Tina would like to see us merge her effort, and FWIW I'd also
+rather not have to carry around a local copy of her work to get a map
 with waypoints on my HTTPS site. [[smcv]], can you spare some round
 tuits to give us your thoughts? --[[schmonz]]
 
@@ -108,17 +108,17 @@ Looks like good changes to me!
 
 --[[kjs]]
 
-> The issue about not getting all the waipoints until you rebuild has been solved, the current plugin had issues with keeping track of updated and deleted waypoints which is now fixed in my branch. --[[users/Tincho]]
+> The issue about not getting all the waipoints until you rebuild has been solved, the current plugin had issues with keeping track of updated and deleted waypoints which is now fixed in my branch. --[[users/Tina]]
 
 ----
 
 I've done some initial testing now and I'm wondering if behaviour has changed with regards to the waypoint link. With the old plugin I get a map marker and link to the main map from each waypoint. See <http://img.kalleswork.net/Peter_Celsing-Filmhuset/IMGP7104/> for example, the marker is below the image. My initial tests with your plugin doesn't create this link as far as I can tell. Have I misconfigured something or is it indeed missing? --[[users/kjs]]
 
-> It is not there any more (I should document this, thanks for pointing it out). I thought that it was not good to have that marker inserted unconditionally; also, there is no full-page map any more with this plugin (which required a cgi mode). The alternative will be to have a page with the map, and adding a link to it. --[[users/Tincho]]
+> It is not there any more (I should document this, thanks for pointing it out). I thought that it was not good to have that marker inserted unconditionally; also, there is no full-page map any more with this plugin (which required a cgi mode). The alternative will be to have a page with the map, and adding a link to it. --[[users/Tina]]
 
 >> That's unfortunate for me as embedding a map on each page with a waypoint is a bit to expensive bandwidth wise. It will slow down the browsing to much. Are there any means of creating maps with subsets of waypoints. Perhaps tags somehow? Can a waypoint appear on multiple maps? I'm thinking having the waypoint appear on a central mega-map and on a sub map, In my case a per building map. Currently all my map info is automatically generated from the exif data. So I just upload the images to an underlay dir and git push my 'building' page which then generates an image gallery and a map of all my photos. I'm trying to avoid typing to much! ;) --[[users/kjs]]
 
 >>> What I meant was that you could add a wiki link (to a page with a map) next to each waypoint to simulate the old behaviour. 
->>> Maps with subsets of waypoints, waypoint in multiple maps: no, because a single GeoJSON file is created for each "map". But something that could be added is the ability to merge multiple maps into one view, as separate layers. --[[users/tincho]]
+>>> Maps with subsets of waypoints, waypoint in multiple maps: no, because a single GeoJSON file is created for each "map". But something that could be added is the ability to merge multiple maps into one view, as separate layers. --[[users/Tina]]
 
 >>>> A wiki link to a map page will show the whole map zoomed out I presume so that won't be helful when I have pois across the globe and you want to know which side of a building the photo is taken from :( Merging maps would be a very good feature! If it could be done with a pagespec type thing it would be awesome. For my use case I could then have a map at each building page showing the locations of all the photos under that page. The map file would be reasonably small. If these maps could then be merged via a directive with globbing of some sort into a mega-map that would be a very flexibly solution that automatically updates when I add new maps (buildings). I just need to use my non-existent programming skills to force my hack plugins into automatically creating per album maps.  -[[users/kjs]]

removed
diff --git a/doc/users/Tincho.mdwn b/doc/users/Tincho.mdwn
deleted file mode 100644
index 25ee1a1cc..000000000
--- a/doc/users/Tincho.mdwn
+++ /dev/null
@@ -1,3 +0,0 @@
-[Martín Ferrari](https://blog.tincho.org/)
-
-Long time user of ikiwiki. Made a [rewrite](https://blog.tincho.org/posts/OSM_in_IkiWiki/) of the OSM plugin, still pending merge.

diff --git a/doc/users/Tina.mdwn b/doc/users/Tina.mdwn
new file mode 100644
index 000000000..c3c7ad4c3
--- /dev/null
+++ b/doc/users/Tina.mdwn
@@ -0,0 +1,3 @@
+[Martina Ferrari](https://tina.pm/blog/)
+
+Long time user of ikiwiki. Made a [rewrite](https://tina.pm/blog/posts/OSM_in_IkiWiki/) of the OSM plugin, still pending merge.

fix-up wikilink
diff --git a/doc/users/jon.mdwn b/doc/users/jon.mdwn
index 35a541455..06368154d 100644
--- a/doc/users/jon.mdwn
+++ b/doc/users/jon.mdwn
@@ -8,7 +8,7 @@ since 2008, as well as a number of private instances.
 I've worked on a few different issues and bugs over the years (they
 are probably linked in "Backlinks", below) but these days my main
 effort is the [Opinionated Ikiwiki](https://github.com/jmtd/opinionated-ikiwiki/)
-[[containers|container]].
+[[container|containers]].
 
 ## historic
 

Refresh my user page
diff --git a/doc/users/jon.mdwn b/doc/users/jon.mdwn
index 3d5304365..35a541455 100644
--- a/doc/users/jon.mdwn
+++ b/doc/users/jon.mdwn
@@ -1,16 +1,16 @@
-[[!meta title="Jon Dowland"]][[!toc levels=2]]
+[[!meta title="Jonathan Dowland"]][[!toc levels=2]]
 
-## intro
+I've been using IkiWiki for [my personal site](https://jmtd.net/)
+since 2008, as well as a number of private instances.
 
-I'm looking at ikiwiki both for my personal site but also as a
-team-documentation management system for a small-sized group of UNIX
-sysadmins.
+## contributions
 
-* my edits should appear either as 'Jon' (if I've used
-  [[tips/untrusted_git_push]]); 'jmtd.net', 'jmtd.livejournal.com', 
-  'jmtd' if I've forgotten to set my local git config properly,
-  or once upon a time 'alcopop.org/me/openid/' or 'jondowland'.
-* My [homepage](http://jmtd.net/) is powered by ikiwiki
+I've worked on a few different issues and bugs over the years (they
+are probably linked in "Backlinks", below) but these days my main
+effort is the [Opinionated Ikiwiki](https://github.com/jmtd/opinionated-ikiwiki/)
+[[containers|container]].
+
+## historic
 
 I gave a talk at the [UK UNIX User's Group](http://www.ukuug.org/) annual
 [Linux conference](http://www.ukuug.org/events/linux2008/) in 2008 about
@@ -19,47 +19,3 @@ was discussing IkiWiki in some technical detail and suggesting it as a good
 piece of software for this task.
 
  * slides at <http://www.staff.ncl.ac.uk/jon.dowland/unix/docs/>.
-
-I am also working on some ikiwiki hacks:
-
-* [[todo/allow site-wide meta definitions]]
-* Improving the means by which you can migrate from mediawiki to
-  IkiWiki. See [[tips/convert mediawiki to ikiwiki]] and the
-  [[plugins/contrib/mediawiki]] plugin.
-
-I am mostly interested in ikiwiki usability issues:
-
- * [[bugs/the login page is unclear when multiple methods exist]]
- * [[bugs/backlinks onhover thing can go weird]]
- * [[todo/CSS classes for links]]
- * [[todo/adjust commit message for rename, remove]]
-
-The following I have been looking at, but are on the back-burner:
-
-* an alternative approach to [[plugins/comments]] (see
-  [[todo/more flexible inline postform]] for one piece of the puzzle;
-  <http://dev.jmtd.net/comments/> for some investigation into making the post
-  form more integrated); possibly also [[todo/pagespec to disable ikiwiki directives]]
-* a system for [[forum/managing_todo_lists]] (see also
-  [[todo/interactive todo lists]] and <http://dev.jmtd.net/outliner/> for the
-  current WIP).
-* a `tag2` plugin, which does the same thing as [[plugins/tag]], but
-  does not sit on top of [[ikiwiki/wikilink]]s, so does not result in
-  bugs such as [[bugs/tagged() matching wikilinks]]. Code for this lives
-  in my github `tag2` branch: <http://github.com/jmtd/ikiwiki>
-
-Penultimately, the following are merely half-formed thoughts:
-
- * adding and removing tags to pages via the edit form by ticking and
-   unticking checkboxes next to a tag name (rather than entering the 
-   directive into the text of the page directly)
- * perhaps the same for meta
- * I'd like to make profiling ikiwiki in action very easy for newcomers.
-   Perhaps even a plugin that created a file /profile or similar on build.
-
-## backlinks
-
-Finally, backlinks (since I have issues with the current backlinks
-implementation, see [[bugs/backlinks onhover thing can go weird]]):
-
-[[!map pages="link(users/Jon)"]]

split Docker container content out from Setup
The setup page has periodically listed one or more of the unofficial
containers of IkiWiki. Now there are at least three, move their
description out to a separate page.
diff --git a/doc/containers.mdwn b/doc/containers.mdwn
new file mode 100644
index 000000000..4ed39feae
--- /dev/null
+++ b/doc/containers.mdwn
@@ -0,0 +1,18 @@
+There are at least three unofficial container distributions of IkiWiki:
+
+ * [dgsb/ikiwiki](https://hub.docker.com/r/dgsb/ikiwiki/)
+   ([source on GitHub](https://github.com/dgsb/docker-ikiwiki)),
+   based on Debian Stretch, lighttpd and an internal ssh server
+
+ * [ankitrgadiya/ikiwiki](https://hub.docker.com/r/ankitrgadiya/ikiwiki)
+   ([source on GitHub](https://github.com/ankitrgadiya/docker-ikiwiki/)),
+   based on Debian stable and nginx,
+   by [[users/ankit]],
+   last updated 2018
+
+ * [opinionated-ikiwiki](https://quay.io/repository/jdowland/opinionated-ikiwiki)
+   ([source on GitHub](https://github.com/jmtd/opinionated-ikiwiki/)),
+   based on Debian 10, and lighttpd,
+   by [[users/Jon]]
+
+These can be used with a container runtime such as [Docker](https://www.docker.com/).
diff --git a/doc/setup.mdwn b/doc/setup.mdwn
index 0adcb1a97..8b2334508 100644
--- a/doc/setup.mdwn
+++ b/doc/setup.mdwn
@@ -7,9 +7,7 @@ This tutorial will walk you through setting up a wiki with ikiwiki.
 If you're using Debian or Ubuntu, ikiwiki is an <code><a href="http://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_basic_package_management_operations">apt-get</a> install ikiwiki</code> away.
 If you're not, see the [[download]] and [[install]] pages.
 
-You may also want to try out a sandboxed [[Docker image|https://github.com/dgsb/docker-ikiwiki]]
-with ikiwiki pre-installed which will use a volume to access a local git repository
-for the wiki content.
+You may also want to try out IkiWiki in a [[container|containers]].
 
 ## Create your wiki
 

diff --git a/doc/todo/auto-generate_named_anchors_for_all_sections.mdwn b/doc/todo/auto-generate_named_anchors_for_all_sections.mdwn
index 657fcf8f9..83ec49ad4 100644
--- a/doc/todo/auto-generate_named_anchors_for_all_sections.mdwn
+++ b/doc/todo/auto-generate_named_anchors_for_all_sections.mdwn
@@ -1 +1,3 @@
 To enable linking to specific parts of long ikiwiki pages, like the git-annex man page, auto-generate named anchors for all sections, based e.g. on section names (`<a name="My_section">`).  Maybe also do this for list items.
+
+> The [[plugins/toc]] plugin does this. Is that not sufficient? There is also [[todo/toc-with-human-readable-anchors]]. -- [[anarcat]]

added suggestion to auto-generated named anchors for all sections
diff --git a/doc/todo/auto-generate_named_anchors_for_all_sections.mdwn b/doc/todo/auto-generate_named_anchors_for_all_sections.mdwn
new file mode 100644
index 000000000..657fcf8f9
--- /dev/null
+++ b/doc/todo/auto-generate_named_anchors_for_all_sections.mdwn
@@ -0,0 +1 @@
+To enable linking to specific parts of long ikiwiki pages, like the git-annex man page, auto-generate named anchors for all sections, based e.g. on section names (`<a name="My_section">`).  Maybe also do this for list items.