Recent changes to this wiki:

Added a comment: wiki_file_chars
diff --git a/doc/forum/Is_the_Chinese_quotation_marks_for_book_titles_bad_for_source_file_names__63__/comment_1_f26ad7f88a35ecac838da50655806449._comment b/doc/forum/Is_the_Chinese_quotation_marks_for_book_titles_bad_for_source_file_names__63__/comment_1_f26ad7f88a35ecac838da50655806449._comment
new file mode 100644
index 000000000..14d647d8d
--- /dev/null
+++ b/doc/forum/Is_the_Chinese_quotation_marks_for_book_titles_bad_for_source_file_names__63__/comment_1_f26ad7f88a35ecac838da50655806449._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="jmtd"
+ avatar="http://cdn.libravatar.org/avatar/2a3bcb34947fceef61560bd8a2931957"
+ subject="wiki_file_chars"
+ date="2021-01-14T10:28:48Z"
+ content="""
+Check the `wiki_file_chars` value in your setup file. You can add characters to it in order to allow them in filenames.
+"""]]

diff --git a/doc/forum/Is_the_Chinese_quotation_marks_for_book_titles_bad_for_source_file_names__63__.mdwn b/doc/forum/Is_the_Chinese_quotation_marks_for_book_titles_bad_for_source_file_names__63__.mdwn
index a592b7ebe..e0ad464c4 100644
--- a/doc/forum/Is_the_Chinese_quotation_marks_for_book_titles_bad_for_source_file_names__63__.mdwn
+++ b/doc/forum/Is_the_Chinese_quotation_marks_for_book_titles_bad_for_source_file_names__63__.mdwn
@@ -1,7 +1,9 @@
-I have some markdown source files that have Chinese quotation marks for book titles (i.e. 《<some book title>》). These files do not get build. When I rebuild the site, it complains
+I have some markdown source files that have Chinese quotation marks for book titles (i.e. `《<some book title>》`). These files do not get build. When I rebuild the site, it complains
 
+```
 ...
 skipping bad filename 《<some book title>》.md
 ...
+```
 
 Any idea?

diff --git a/doc/forum/Is_the_Chinese_quotation_marks_for_book_titles_bad_for_source_file_names__63__.mdwn b/doc/forum/Is_the_Chinese_quotation_marks_for_book_titles_bad_for_source_file_names__63__.mdwn
new file mode 100644
index 000000000..a592b7ebe
--- /dev/null
+++ b/doc/forum/Is_the_Chinese_quotation_marks_for_book_titles_bad_for_source_file_names__63__.mdwn
@@ -0,0 +1,7 @@
+I have some markdown source files that have Chinese quotation marks for book titles (i.e. 《<some book title>》). These files do not get build. When I rebuild the site, it complains
+
+...
+skipping bad filename 《<some book title>》.md
+...
+
+Any idea?

what went wrong this time? whether it's useful
diff --git a/doc/bugs/anonymous_git_push_broken_again.mdwn b/doc/bugs/anonymous_git_push_broken_again.mdwn
index 6f40bf771..4b15fd2d5 100644
--- a/doc/bugs/anonymous_git_push_broken_again.mdwn
+++ b/doc/bugs/anonymous_git_push_broken_again.mdwn
@@ -17,3 +17,11 @@ Anon git push is broken again
 > Since this is now seeming so fragile -- after working for about a decade,
 > it's broken twice in a matter of months -- I'm questioning whether it's
 > worth trying to keep the feature working. --[[Joey]]
+
+>> Of course, that's got to be your call. I haven't made a great deal of use
+>> of it, but it *does* seem more convenient if one is working on an IkiWiki
+>> patch, as I can write the website notes about it in the same tree (although
+>> I then have to cherry-pick to push that to the live site, of course.). If
+>> you decide to drop it from `ikiwiki.info`, would you leave the code as-is,
+>> or drop it as broken? Any further clues what went wrong this time?
+>> *—[[Jon]], 2021-01-13*

correct some dates
diff --git a/doc/todo/pagespec_aliases.mdwn b/doc/todo/pagespec_aliases.mdwn
index 0d97a1b1e..54e252956 100644
--- a/doc/todo/pagespec_aliases.mdwn
+++ b/doc/todo/pagespec_aliases.mdwn
@@ -236,8 +236,8 @@ I will (after writing this) rebase my branch. Please take another look!
 with IkiWiki's auto-mirror-pull, the branch is here:
 <https://github.com/jmtd/ikiwiki/tree/pagespec-alias>)
 
-*— [[Jon]], 2020-01-10*
+*— [[Jon]], 2021-01-10*
 
-> Scratch that, more work needed ☹ *— [[Jon]], 2020-01-11*
+> Scratch that, more work needed ☹ *— [[Jon]], 2021-01-11*
 
->> This is really ready now. *— [[Jon]], 2020-01-13*
+>> This is really ready now. *— [[Jon]], 2021-01-13*

This is really ready now.
diff --git a/doc/todo/pagespec_aliases.mdwn b/doc/todo/pagespec_aliases.mdwn
index dfbec8aa5..0d97a1b1e 100644
--- a/doc/todo/pagespec_aliases.mdwn
+++ b/doc/todo/pagespec_aliases.mdwn
@@ -239,3 +239,5 @@ with IkiWiki's auto-mirror-pull, the branch is here:
 *— [[Jon]], 2020-01-10*
 
 > Scratch that, more work needed ☹ *— [[Jon]], 2020-01-11*
+
+>> This is really ready now. *— [[Jon]], 2020-01-13*

Scratch that, more work needed ☹
diff --git a/doc/todo/pagespec_aliases.mdwn b/doc/todo/pagespec_aliases.mdwn
index 2a6ce55b4..dfbec8aa5 100644
--- a/doc/todo/pagespec_aliases.mdwn
+++ b/doc/todo/pagespec_aliases.mdwn
@@ -237,3 +237,5 @@ with IkiWiki's auto-mirror-pull, the branch is here:
 <https://github.com/jmtd/ikiwiki/tree/pagespec-alias>)
 
 *— [[Jon]], 2020-01-10*
+
+> Scratch that, more work needed ☹ *— [[Jon]], 2020-01-11*

link to branch URI just in case the mirrorer breaks
diff --git a/doc/todo/pagespec_aliases.mdwn b/doc/todo/pagespec_aliases.mdwn
index 114ca3bef..2a6ce55b4 100644
--- a/doc/todo/pagespec_aliases.mdwn
+++ b/doc/todo/pagespec_aliases.mdwn
@@ -232,5 +232,8 @@ you have disabled a plugin that defined a PageSpec name and you want to substitu
 what it would have expanded to with something else, for example.
 
 I will (after writing this) rebase my branch. Please take another look!
+(just in case the rebase and/or the "-" in the branchnames causes problems
+with IkiWiki's auto-mirror-pull, the branch is here:
+<https://github.com/jmtd/ikiwiki/tree/pagespec-alias>)
 
 *— [[Jon]], 2020-01-10*

addressing review comments; please take another look!
diff --git a/doc/todo/pagespec_aliases.mdwn b/doc/todo/pagespec_aliases.mdwn
index bd64a5040..114ca3bef 100644
--- a/doc/todo/pagespec_aliases.mdwn
+++ b/doc/todo/pagespec_aliases.mdwn
@@ -211,3 +211,26 @@ or [[smcv]]?) or otherwise feed back on this? Thanks! — [[Jon]] (2018-09-25)
 > this works.)
 >
 > --[[smcv]]
+
+----
+
+Thank you for the review (nearly a year ago, I've just noticed!). I've
+added checks for the issues you outline above, and test coverage for all
+those issues.
+I've also decided to rename the plugin (back) to just "alias":
+I mooted that right back when I started this but I was worried about
+potential ambiguity. That was ten years ago and I think the concern has
+prove unfounded. I've left the config key as `pagespec_aliases` though,
+as that's one area I think its clearer.
+
+With regards `aliasname()` versus `alias(aliasname)`:
+I've given this some thought. Pros and cons of that approach: it would be
+a little uglier; you would not inadvertently clash with a PageSpec defined
+elsewhere. However, I wonder if someone might actually *want* to define a
+PageSpec this way that was the same as that defined by something else: Perhaps,
+you have disabled a plugin that defined a PageSpec name and you want to substitute
+what it would have expanded to with something else, for example.
+
+I will (after writing this) rebase my branch. Please take another look!
+
+*— [[Jon]], 2020-01-10*

I just hit this, thank you for the fix
diff --git a/doc/bugs/ikiwiki_explodes_when_git_rewrites_history.mdwn b/doc/bugs/ikiwiki_explodes_when_git_rewrites_history.mdwn
index fa839928f..b57ad9b46 100644
--- a/doc/bugs/ikiwiki_explodes_when_git_rewrites_history.mdwn
+++ b/doc/bugs/ikiwiki_explodes_when_git_rewrites_history.mdwn
@@ -17,3 +17,6 @@ Notice how the error message from git isn't present. It's in the `error.log`:
 The workaround I have found was to remove the `indexdb` file, because that's [[apparently legit|tips/inside_dot_ikiwiki/]]. But it would be nice to have (1) a proper error message (it had to dig around the error.log to understand what's going on), (2) to have a proper fallback if the `git log` fails and (3) to recover with the newer commit ID when we fallback. --[[anarcat]]
 
 > FWIW, I had a `500 Internal Server Error` while submitting this bug at first. :)
+
+>> I've just hit this, and fixed it thanks to you reporting what you did. Thanks!
+>> ([fix in opinionated ikiwiki](https://github.com/jmtd/opinionated-ikiwiki/commit/0dd1bb3e91503713a36e8f9e6144b56db0fd8f37)) *— [[Jon]], 2021-01-08*

situation where rebuild needed
diff --git a/doc/bugs/disabling_theme_plugin_should_trigger_site_rebuild.mdwn b/doc/bugs/disabling_theme_plugin_should_trigger_site_rebuild.mdwn
new file mode 100644
index 000000000..4250ca521
--- /dev/null
+++ b/doc/bugs/disabling_theme_plugin_should_trigger_site_rebuild.mdwn
@@ -0,0 +1,2 @@
+Disabling [[plugins/theme]] should trigger a site rebuild, just as enabling it does.
+In particular when performing the operation via the [[plugins/websetup]] front-end. *— [[Jon]], 2021-01-05*

Lightweight comments
diff --git a/doc/plugins/comments/discussion.mdwn b/doc/plugins/comments/discussion.mdwn
index 0641ddcc9..e7457cbac 100644
--- a/doc/plugins/comments/discussion.mdwn
+++ b/doc/plugins/comments/discussion.mdwn
@@ -255,3 +255,10 @@ imported blog comments with full fidelity. OK to commit?
 > Ship it. --[[smcv]]
 
 >> Thanks, have done. --[[schmonz]]
+
+
+## Keeping comments separate from content to avoid triggering rebuilds
+
+Is there a way of preventing comments from triggering long chains of rebuilds? Currently comments trigger the same chain of events as if the page itself had been modified (at least this seems to be the case). A way of keeping comments lightweight and out of ikiwiki would be great. This has obvious consequences but currently comments are to slow for my users. My site is complex with tags and trails (albums) so commenting the wrong page leads to several minutes of rebuild (being conservative here...). For my use case comments don't need wikilinks or any wiki features. 
+
+To my thinking it could be useful to have comments as a very lightweight type of data that enables interactivity but not the full force of ikiwiki. Any thoughts?

really generate HTML5 by default
diff --git a/doc/todo/really_generate_HTML5_by_default.mdwn b/doc/todo/really_generate_HTML5_by_default.mdwn
new file mode 100644
index 000000000..48c09457d
--- /dev/null
+++ b/doc/todo/really_generate_HTML5_by_default.mdwn
@@ -0,0 +1,5 @@
+[[generate HTML5 by default]] exists and is marked *done* because we are now in a halfway-house where some HTML5 stuff (including the DTD) are emitted by default but most of the structural elements are not used and we have div soup. This page is a bug to request that we *really* move to HTML5 by default, specifically as a precursor to removing all the branching around this parameter that exists in the templates. Once the HTML5-by-default situation is settled, we could remove all that branching and then address generating HTML4.1 (or whatever) via a post-process DOM transformation plugin.
+
+It's been 10 years since the HTML5 option was added. At the time there was some concern about legacy support for IE8. I rather suspect that the number of IE8 ikiwiki users (or ikiwiki users concerned about IE8) approximates zero, today. But if not, perhaps we should [[todo/clarify what browser support is important for IkiWiki]].
+
+*— [[Jon]], 2020-12-30*

comment
diff --git a/doc/bugs/anonymous_git_push_broken_again.mdwn b/doc/bugs/anonymous_git_push_broken_again.mdwn
index 9ef21d66a..6f40bf771 100644
--- a/doc/bugs/anonymous_git_push_broken_again.mdwn
+++ b/doc/bugs/anonymous_git_push_broken_again.mdwn
@@ -8,3 +8,12 @@ Anon git push is broken again
      ! [remote rejected]     master -> master (failed to update ref)
 
 *—[[Jon]], 2020-10-06*
+
+> It does not seem related to the other problem. I don't understand how it
+> could have broken in a new way since I fixed it before. git has not been
+> upgraded in the meantime. This is affecting more than one site, and the
+> permissions do not seem obviously broken.
+> 
+> Since this is now seeming so fragile -- after working for about a decade,
+> it's broken twice in a matter of months -- I'm questioning whether it's
+> worth trying to keep the feature working. --[[Joey]]

updated branch; this is ready for review for inclusion in IkIWiki
diff --git a/doc/todo/Change_the_ikiwiki.info_search_box_to_not_using_Google.mdwn b/doc/todo/Change_the_ikiwiki.info_search_box_to_not_using_Google.mdwn
index 688b3cb85..94face4c9 100644
--- a/doc/todo/Change_the_ikiwiki.info_search_box_to_not_using_Google.mdwn
+++ b/doc/todo/Change_the_ikiwiki.info_search_box_to_not_using_Google.mdwn
@@ -11,3 +11,6 @@ With both engines adding the "site:ikiwiki.info" string to the search terms limi
 > duckduckgo](https://github.com/jmtd/ikiwiki/tree/duckduckgo).
 > It's also live on <https://jmtd.net/>. — [[Jon]] [[!tag patch]]
 
+>> I've just updated this branch to not require JavaScript (I learned about a hidden parameter to
+>> the search form for specifying the URLs to search under). In case this wasn't clear already, I
+>> think this is ready for review and to consider merging to IkIWiki proper. *— [[Jon]], 2020-12-11*

new
diff --git a/doc/examples/blog/posts/A_new_title:_The_US_and_the_global_economic_developement___40__by_Stanley_Fisher__41__.mdwn b/doc/examples/blog/posts/A_new_title:_The_US_and_the_global_economic_developement___40__by_Stanley_Fisher__41__.mdwn
new file mode 100644
index 000000000..1efb8f575
--- /dev/null
+++ b/doc/examples/blog/posts/A_new_title:_The_US_and_the_global_economic_developement___40__by_Stanley_Fisher__41__.mdwn
@@ -0,0 +1 @@
+I have had this sheet of paper be put on everybody's chair, and I will refer back to it from time to time.

diff --git a/doc/todo/more_flexibility_in_the_date_parameter_for_the_meta_plugin.mdwn b/doc/todo/more_flexibility_in_the_date_parameter_for_the_meta_plugin.mdwn
index 0ec1bdb63..643e2ff1a 100644
--- a/doc/todo/more_flexibility_in_the_date_parameter_for_the_meta_plugin.mdwn
+++ b/doc/todo/more_flexibility_in_the_date_parameter_for_the_meta_plugin.mdwn
@@ -33,3 +33,5 @@ index cd367da70..dbcf99aea 100644
 luke@schierer@opus001:~/src/ikiwiki/ikiwiki$ 
 ```
 
+[[!tag patch]]
+

diff --git a/doc/todo/more_flexibility_in_the_date_parameter_for_the_meta_plugin.mdwn b/doc/todo/more_flexibility_in_the_date_parameter_for_the_meta_plugin.mdwn
index a4ed2d849..0ec1bdb63 100644
--- a/doc/todo/more_flexibility_in_the_date_parameter_for_the_meta_plugin.mdwn
+++ b/doc/todo/more_flexibility_in_the_date_parameter_for_the_meta_plugin.mdwn
@@ -1 +1,35 @@
 Changing from perl Date::Parse to Date::Manip causes it to accept some strings that it otherwise could not.  This is mostly dealing with situations where it has to infer values from partial date strings, but sometimes that is useful. 
+
+```
+luke@schierer@opus001:~/src/ikiwiki/ikiwiki$ cat meta_date_manip.patch
+diff --git a/IkiWiki/Plugin/meta.pm b/IkiWiki/Plugin/meta.pm
+index cd367da70..dbcf99aea 100644
+--- a/IkiWiki/Plugin/meta.pm
++++ b/IkiWiki/Plugin/meta.pm
+@@ -152,9 +152,9 @@ sub preprocess (@) {
+                # fallthrough
+        }
+        elsif ($key eq 'date') {
+-               eval q{use Date::Parse};
++               eval q{use Date::Manip};
+                if (! $@) {
+-                       my $time = str2time($value);
++                       my $time = UnixDate( ParseDate($value), "%s");
+                        if (defined $time) {
+                                $IkiWiki::pagectime{$page}=$time;
+                        }
+@@ -167,9 +167,9 @@ sub preprocess (@) {
+                }
+        }
+        elsif ($key eq 'updated') {
+-               eval q{use Date::Parse};
++               eval q{use Date::Manip};
+                if (! $@) {
+-                       my $time = str2time($value);
++                       my $time = UnixDate ( ParseDate($value), "%s");
+                        if (defined $time) {
+                                $pagestate{$page}{meta}{updated}=$time;
+                        }
+luke@schierer@opus001:~/src/ikiwiki/ikiwiki$ 
+```
+

diff --git a/doc/todo/more_flexibility_in_the_date_parameter_for_the_meta_plugin.mdwn b/doc/todo/more_flexibility_in_the_date_parameter_for_the_meta_plugin.mdwn
new file mode 100644
index 000000000..a4ed2d849
--- /dev/null
+++ b/doc/todo/more_flexibility_in_the_date_parameter_for_the_meta_plugin.mdwn
@@ -0,0 +1 @@
+Changing from perl Date::Parse to Date::Manip causes it to accept some strings that it otherwise could not.  This is mostly dealing with situations where it has to infer values from partial date strings, but sometimes that is useful. 

reminds me of bugs/ table can not deal with Chinese
diff --git a/doc/bugs/graphviz_wide_characters.mdwn b/doc/bugs/graphviz_wide_characters.mdwn
index 9e0844857..ed273a698 100644
--- a/doc/bugs/graphviz_wide_characters.mdwn
+++ b/doc/bugs/graphviz_wide_characters.mdwn
@@ -8,3 +8,5 @@ Note, this is what renders on the resulting wiki page, not something that you se
 Since dot supports UTF-8, I would expect this to work.  
 
 I'm unsure if this is a bug in the graphviz plugin, or in the perl module it depends upon, but figured I would start here. 
+
+> This reminds me of [[bugs/table can not deal with Chinese ]] *—[[Jon]], 2020-11-02*

feedback
diff --git a/doc/todo/commandline_comment_moderation.mdwn b/doc/todo/commandline_comment_moderation.mdwn
index a72fb31b2..9cf233151 100644
--- a/doc/todo/commandline_comment_moderation.mdwn
+++ b/doc/todo/commandline_comment_moderation.mdwn
@@ -103,3 +103,12 @@ the comment. The default (`i`) is to ignore the comment.
 I find that this is generally faster than going through a web browser, although to be as fast as the CGI interface, there would need to be a final dialog that says "delete all ignored comments" like in the CGI. Exercise for the reader or, I guess, myself when I got too many junk comments to process...
 
 Feedback, as usual, welcome. -- [[anarcat]]
+
+> great stuff, thanks! I've got a similar-ish script that sends me an email summary, but I don't
+> have the CLI stuff myself. What I'd like to see on the web form is: display the IP (or user)
+> responsible for each comment and enable banning them at the same time as moderating the comment.
+> However I'd also like to expand the data attached to the banlist, so it's clear *why* an entry
+> was added (e.g. blog spam), and when — because I would prefer all such bans to be time limited.
+> (implementation wise, this might be easiest achieved if one of the comment plugins was responsible
+> for maintaining a separate data structure with this info which was processed into a ban list to
+> append to the main one.) *—[[Jon]], 2020-11-02*

diff --git a/doc/bugs/meta_directive_with_multiple_authors/discussion.mdwn b/doc/bugs/meta_directive_with_multiple_authors/discussion.mdwn
new file mode 100644
index 000000000..b9bc0cffb
--- /dev/null
+++ b/doc/bugs/meta_directive_with_multiple_authors/discussion.mdwn
@@ -0,0 +1 @@
+Interestingly it does seem to generate the correct HTML, it is just internal uses of the flags like pagespecs that seem not to work. 

diff --git a/doc/bugs/graphviz_wide_characters.mdwn b/doc/bugs/graphviz_wide_characters.mdwn
index 905d5ca6a..9e0844857 100644
--- a/doc/bugs/graphviz_wide_characters.mdwn
+++ b/doc/bugs/graphviz_wide_characters.mdwn
@@ -7,4 +7,4 @@ If you include a wide character, such as a fancy quote, in a [[graphviz|plugins/
 Note, this is what renders on the resulting wiki page, not something that you see on the command line. 
 Since dot supports UTF-8, I would expect this to work.  
 
-I'm unsure if this is a bug in the graphviz plugin, or in the perl module it depends upon, but since the graphviz pugin seems to be perl5‽ I figured I would start by reporting the problem here, on the assumption that the older perl was less likely to handle UTF-8. 
+I'm unsure if this is a bug in the graphviz plugin, or in the perl module it depends upon, but figured I would start here. 

diff --git a/doc/bugs/meta_directive_with_multiple_authors.mdwn b/doc/bugs/meta_directive_with_multiple_authors.mdwn
new file mode 100644
index 000000000..c79f94b51
--- /dev/null
+++ b/doc/bugs/meta_directive_with_multiple_authors.mdwn
@@ -0,0 +1,20 @@
+Some wiki pages have multiple authors.  It seems logical that you would use multiple meta directives to mark this,
+
+```
+\[[!meta author="author one"]]
+\[[!meta author="other author"]]
+```
+
+however, when you do this, it appears that things that key off of the author tag only pick up on the last instance of the directive. for example a page spec looking for 
+
+```
+author(author one)
+```
+
+will not match while one looking for
+
+```
+author(other author)
+```
+
+will match.  I would expect that both would match. 

diff --git a/doc/bugs/graphviz_wide_characters.mdwn b/doc/bugs/graphviz_wide_characters.mdwn
new file mode 100644
index 000000000..905d5ca6a
--- /dev/null
+++ b/doc/bugs/graphviz_wide_characters.mdwn
@@ -0,0 +1,10 @@
+If you include a wide character, such as a fancy quote, in a [[graphviz|plugins/graphviz]] source file for use with the file parameter to the graph directive, you get the following error:
+
+```
+[[!graph Error: Wide character in subroutine entry at /usr/share/perl5/IkiWiki/Plugin/graphviz.pm line 57.]]
+```
+
+Note, this is what renders on the resulting wiki page, not something that you see on the command line. 
+Since dot supports UTF-8, I would expect this to work.  
+
+I'm unsure if this is a bug in the graphviz plugin, or in the perl module it depends upon, but since the graphviz pugin seems to be perl5‽ I figured I would start by reporting the problem here, on the assumption that the older perl was less likely to handle UTF-8. 

reply, request patch, remove patch tag
diff --git a/doc/todo/support_Twitter_cards.mdwn b/doc/todo/support_Twitter_cards.mdwn
index 886cb1abd..c02ed6d38 100644
--- a/doc/todo/support_Twitter_cards.mdwn
+++ b/doc/todo/support_Twitter_cards.mdwn
@@ -10,4 +10,11 @@ Twitter is not really picky about HTML and actually parses `<meta>` tags outside
 
 That's what I did on the [donation page of Tails](https://gitlab.tails.boum.org/tails/tails/-/commit/6dbde9fa926e574b3bab4170caf65fe3c394fe48) for now.
 
-[[!tag patch]]
+> Hi! Thanks for looking at this. Correct me if I misunderstand your message. I think you are saying
+> that this bug with colons remains in IkiWiki's parser, and you have not fixed that, but you have a
+> a workaround, namely putting the meta tags as HTML into the body of the page? That's a useful
+> workaround and worthy of documenting, but it's not a "patch" so I have removed the patch tag.
+> 
+> If, instead, you have actually got a patch for the IkiWiki parser, please post it and I can take a
+> look: I'm not an IkiWiki maintainer but I can review it and give my opinion at least. If that's the
+> case, please share it, and re-add `\[[!tag patch]]`. Thanks! *—[[Jon]], 2020-10-13*

link to patch
diff --git a/doc/bugs/backlinks_onhover_thing_can_go_weird.mdwn b/doc/bugs/backlinks_onhover_thing_can_go_weird.mdwn
index 327b8136b..171714b3f 100644
--- a/doc/bugs/backlinks_onhover_thing_can_go_weird.mdwn
+++ b/doc/bugs/backlinks_onhover_thing_can_go_weird.mdwn
@@ -47,3 +47,7 @@ further down the list, but of course then you are outside the hover region.
 >> <details><summary>example</summary>here's an example</details>
 >> The above works for me on ikiwiki.info which does not have `html5:1`
 >> so far as I can tell *— [[Jon]], 2020-04-21*
+
+>>> [[!tag patch]]Patch in my repo, commit f051f84f632c3eaf86c5cff172692ce71ad5375d.
+>>> [[!template id=gitbranch branch=jon/more-backlinks-html5-use-details-tag author="[[Jon]]"]]
+>>> (I must say this looks *much* nicer, IMHO) *—[[Jon]], 2020-10-07*

link to sparate bug page and patch
diff --git a/doc/bugs/html5_time_element__39__s_pubdate_wrong_when_using_xhtml5___34__mode__34__.mdwn b/doc/bugs/html5_time_element__39__s_pubdate_wrong_when_using_xhtml5___34__mode__34__.mdwn
index 1bda7e5f4..c451ac4a5 100644
--- a/doc/bugs/html5_time_element__39__s_pubdate_wrong_when_using_xhtml5___34__mode__34__.mdwn
+++ b/doc/bugs/html5_time_element__39__s_pubdate_wrong_when_using_xhtml5___34__mode__34__.mdwn
@@ -22,7 +22,9 @@ The pubdate REQUIRES a date, so e.g. `pubdate="2009-03-24T18:02:14Z"`
 >>>>> `Error: Attribute pubdate not allowed on element time at this point.`
 >>>> *— [[Jon]], 2020-10-05*
 
-
+>>>>> I've filed a separate bug page for this, since this one is already
+>>>>> marked *done*: [[bugs/pubdate_not_valid_for_html5]]. I've filed a
+>>>>> patch.  *—[[Jon]], 2020-10-06*
 
 Otherwise the XML parser chokes.
 

anonymous git push broken again
diff --git a/doc/bugs/anonymous_git_push_broken_again.mdwn b/doc/bugs/anonymous_git_push_broken_again.mdwn
new file mode 100644
index 000000000..9ef21d66a
--- /dev/null
+++ b/doc/bugs/anonymous_git_push_broken_again.mdwn
@@ -0,0 +1,10 @@
+This might not be the same cause or solution as [[git_test_receive_wrapper_fails]] so filing
+it separately.
+
+Anon git push is broken again
+
+    remote: error: cannot lock ref 'HEAD': Unable to create '/home/b-ikiwiki/source.git/./HEAD.lock': Permission denied
+    To git://git.ikiwiki.info/
+     ! [remote rejected]     master -> master (failed to update ref)
+
+*—[[Jon]], 2020-10-06*

pubdate not valid for html5
diff --git a/doc/bugs/pubdate_not_valid_for_html5.mdwn b/doc/bugs/pubdate_not_valid_for_html5.mdwn
new file mode 100644
index 000000000..4b55cc928
--- /dev/null
+++ b/doc/bugs/pubdate_not_valid_for_html5.mdwn
@@ -0,0 +1,9 @@
+The `pubdate` attribute is not valid for modern HTML(5).
+
+The [h-entry microformat](http://microformats.org/wiki/h-entry) describes
+an alternative way to achieve the same thing: a `dt-published` class name.
+
+Patch: <https://github.com/jmtd/ikiwiki/commit/a137103d3004cc8cec42459205684ec48af0ca11>
+[[!tag patch]]
+[[!template id=gitbranch branch=jon/html5-no-pubdate-attribute author="[[Jon]]"]]
+*—[[Jon]], 2020-10-06*

a call to arms wrt HTML4, 5 and templates
diff --git a/doc/bugs/flip_html5_default_to_1__44___and_clean_up_templates.mdwn b/doc/bugs/flip_html5_default_to_1__44___and_clean_up_templates.mdwn
new file mode 100644
index 000000000..15bd0c605
--- /dev/null
+++ b/doc/bugs/flip_html5_default_to_1__44___and_clean_up_templates.mdwn
@@ -0,0 +1,10 @@
+Is it perhaps time to flip the default for the `html5` to `1`? What criteria should be used to answer that question?
+With [[smcv]]'s last major change in this area, back in 2014, the market share of IE8 and earlier was a concern at
+5%. What is the equivalent market share today?
+
+The templates are still a real complex mess of branches around this configuration option. I'd love to see all that
+branching removed. Would anyone else? A hypothetical future html4 option/plugin could work by post-processing the
+generated output and replacing the troublesome tag names (via XSLT perhaps, depending on tooling). Is there any
+appetite for this?
+
+*—[[Jon]], 2020-10-05*

respond re pubdate attribute
diff --git a/doc/bugs/html5_time_element__39__s_pubdate_wrong_when_using_xhtml5___34__mode__34__.mdwn b/doc/bugs/html5_time_element__39__s_pubdate_wrong_when_using_xhtml5___34__mode__34__.mdwn
index 228847b4a..1bda7e5f4 100644
--- a/doc/bugs/html5_time_element__39__s_pubdate_wrong_when_using_xhtml5___34__mode__34__.mdwn
+++ b/doc/bugs/html5_time_element__39__s_pubdate_wrong_when_using_xhtml5___34__mode__34__.mdwn
@@ -13,8 +13,16 @@ The pubdate REQUIRES a date, so e.g. `pubdate="2009-03-24T18:02:14Z"`
 >>>
 >>> Posted &lt;time datetime="2007-12-06T05:00:00Z" pubdate="pubdate"&gt;Thu 06 Dec 2007 12:00:00 AM EST&lt;/time&gt;
 >>>
->>> which shows up as an error on https://validator.w3.org/ --Luke Schierer
- 
+>>> which shows up as an error on https://validator.w3.org/ --Luke Schierer 
+
+>>>> My reading of Joey's response, above, was that (according to the spec at the time), `pubdate="pubdate"` is what
+>>>> should be generated, *not* `pubdate="timestamp"`, and so what you are seeing is expected. However, looking at
+>>>> the *current* Spec (linked elsewhere in this page), `pubdate` is not actually a valid attribute any more at
+>>>> all. And indeed, running my own blog through the Validator, I see:
+>>>>> `Error: Attribute pubdate not allowed on element time at this point.`
+>>>> *— [[Jon]], 2020-10-05*
+
+
 
 Otherwise the XML parser chokes.
 

Testing. Added a link to the Wikipedia article of ikiwiki :)
diff --git a/doc/sandbox.mdwn b/doc/sandbox.mdwn
index 34d4c2c06..acf53e6a8 100644
--- a/doc/sandbox.mdwn
+++ b/doc/sandbox.mdwn
@@ -24,7 +24,8 @@ List:
 [[!meta date="Thu Jun 16 22:04:33 2005" updated="Thu Dec 22 01:23:20 2011"]]
 
 This is the [[SandBox]], a page anyone can edit to try out ikiwiki
-(version [[!version  ]]).
+(version [[!version  ]]). Ikiwiki described on Wikipedia: [[!wikipedia Ikiwiki]].
+
 vvvv
 CamelCase ?
 

diff --git a/doc/bugs/html5_time_element__39__s_pubdate_wrong_when_using_xhtml5___34__mode__34__.mdwn b/doc/bugs/html5_time_element__39__s_pubdate_wrong_when_using_xhtml5___34__mode__34__.mdwn
index 16be643cf..228847b4a 100644
--- a/doc/bugs/html5_time_element__39__s_pubdate_wrong_when_using_xhtml5___34__mode__34__.mdwn
+++ b/doc/bugs/html5_time_element__39__s_pubdate_wrong_when_using_xhtml5___34__mode__34__.mdwn
@@ -10,8 +10,10 @@ The pubdate REQUIRES a date, so e.g. `pubdate="2009-03-24T18:02:14Z"`
 > --[[Joey]] 
 >> awesome, thanks for fixing my fix ;) --[[simonraven]]
 >>> This seems to be happening either still or again with version 3.20200202.3-1. I'm getting strings generated like
->>> Posted <time datetime="2007-12-06T05:00:00Z" pubdate="pubdate">Thu 06 Dec 2007 12:00:00 AM EST</time>
->>> which shows up as an error on https://validator.w3.org/
+>>>
+>>> Posted &lt;time datetime="2007-12-06T05:00:00Z" pubdate="pubdate"&gt;Thu 06 Dec 2007 12:00:00 AM EST&lt;/time&gt;
+>>>
+>>> which shows up as an error on https://validator.w3.org/ --Luke Schierer
  
 
 Otherwise the XML parser chokes.

diff --git a/doc/bugs/html5_time_element__39__s_pubdate_wrong_when_using_xhtml5___34__mode__34__.mdwn b/doc/bugs/html5_time_element__39__s_pubdate_wrong_when_using_xhtml5___34__mode__34__.mdwn
index def5bcc2a..16be643cf 100644
--- a/doc/bugs/html5_time_element__39__s_pubdate_wrong_when_using_xhtml5___34__mode__34__.mdwn
+++ b/doc/bugs/html5_time_element__39__s_pubdate_wrong_when_using_xhtml5___34__mode__34__.mdwn
@@ -9,6 +9,10 @@ The pubdate REQUIRES a date, so e.g. `pubdate="2009-03-24T18:02:14Z"`
 > No, `pubdate="pubdate"`. It's a boolean attribute. applied && [[done]]
 > --[[Joey]] 
 >> awesome, thanks for fixing my fix ;) --[[simonraven]]
+>>> This seems to be happening either still or again with version 3.20200202.3-1. I'm getting strings generated like
+>>> Posted <time datetime="2007-12-06T05:00:00Z" pubdate="pubdate">Thu 06 Dec 2007 12:00:00 AM EST</time>
+>>> which shows up as an error on https://validator.w3.org/
+ 
 
 Otherwise the XML parser chokes.
 

diff --git a/doc/ikiwiki/directive/linkmap/discussion.mdwn b/doc/ikiwiki/directive/linkmap/discussion.mdwn
new file mode 100644
index 000000000..47a182e07
--- /dev/null
+++ b/doc/ikiwiki/directive/linkmap/discussion.mdwn
@@ -0,0 +1 @@
+I would [[like|wishlist]] to be able to create a link map of a PageSpec defined in another directive without having to manually keep the two PageSpecs in sync.  Having a way to name a PageSpec and then a parameter on the linkmap directive to pull in that named PageSpec. 

diff --git a/doc/todo/support_Twitter_cards.mdwn b/doc/todo/support_Twitter_cards.mdwn
index 4b14c97a9..886cb1abd 100644
--- a/doc/todo/support_Twitter_cards.mdwn
+++ b/doc/todo/support_Twitter_cards.mdwn
@@ -9,3 +9,5 @@ Disclaimer: I don't know anything about Perl or the internals of ikiwiki but I m
 Twitter is not really picky about HTML and actually parses `<meta>` tags outside of the `<head>` section, so there's currently a workaround.
 
 That's what I did on the [donation page of Tails](https://gitlab.tails.boum.org/tails/tails/-/commit/6dbde9fa926e574b3bab4170caf65fe3c394fe48) for now.
+
+[[!tag patch]]

diff --git a/doc/todo/support_Twitter_cards.mdwn b/doc/todo/support_Twitter_cards.mdwn
new file mode 100644
index 000000000..4b14c97a9
--- /dev/null
+++ b/doc/todo/support_Twitter_cards.mdwn
@@ -0,0 +1,11 @@
+[Twitter cards](https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/summary-card-with-large-image) work by using `<meta>` tags with names that include a colon: `twitter:card`, `twitter:site`, `twitter:creator`, etc.
+
+The current parsing of ikiwiki's directive doesn't support using colons in names.
+
+This patch fixes it.
+
+Disclaimer: I don't know anything about Perl or the internals of ikiwiki but I managed to "make it work". It might still be flawed in many ways.
+
+Twitter is not really picky about HTML and actually parses `<meta>` tags outside of the `<head>` section, so there's currently a workaround.
+
+That's what I did on the [donation page of Tails](https://gitlab.tails.boum.org/tails/tails/-/commit/6dbde9fa926e574b3bab4170caf65fe3c394fe48) for now.

diff --git a/doc/recentchanges.mdwn b/doc/recentchanges.mdwn
new file mode 100644
index 000000000..3383fc703
--- /dev/null
+++ b/doc/recentchanges.mdwn
@@ -0,0 +1,7 @@
+[[!if test="enabled(meta)" then="""
+[[!meta title="RecentChanges"]]
+"""]]
+Recent changes to this wiki:
+
+[[!inline pages="internal(recentchanges/change_*) and !*/Discussion" 
+template=recentchanges show=0]]

Added a comment: A thousand pardons
diff --git a/doc/forum/Tried_to_change_Title_of_my_blog/comment_2_0dcd34762cbc939efe2c6b8a31049dd7._comment b/doc/forum/Tried_to_change_Title_of_my_blog/comment_2_0dcd34762cbc939efe2c6b8a31049dd7._comment
new file mode 100644
index 000000000..b24d2c1e6
--- /dev/null
+++ b/doc/forum/Tried_to_change_Title_of_my_blog/comment_2_0dcd34762cbc939efe2c6b8a31049dd7._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="bob@62bd4985e23588dbe194f982ff54f0326f98fd4a"
+ nickname="bob"
+ avatar="http://cdn.libravatar.org/avatar/b1caeabc4608b4fab2f47295d60127b7"
+ subject="A thousand pardons"
+ date="2020-09-07T02:10:37Z"
+ content="""
+Sorry for any inconvenience my confusion may have spawned, but the dogs may be called off as I have decided to Move On from this patch of bad road and create a new blog from scratch. The longer I worked on the one so resistant to title-change the more I seemed to recall that I had changed its title at least once in the past, and may not have used the The Marquess of Queensberry Rules for ikiwiki title changes on those occasions. Happy Labor Day Everyone!
+"""]]

Added a comment: Oops!
diff --git a/doc/forum/Tried_to_change_Title_of_my_blog/comment_1_e55a8547c743a43e487c7e77ff52bf03._comment b/doc/forum/Tried_to_change_Title_of_my_blog/comment_1_e55a8547c743a43e487c7e77ff52bf03._comment
new file mode 100644
index 000000000..de73ac499
--- /dev/null
+++ b/doc/forum/Tried_to_change_Title_of_my_blog/comment_1_e55a8547c743a43e487c7e77ff52bf03._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="bob@62bd4985e23588dbe194f982ff54f0326f98fd4a"
+ nickname="bob"
+ avatar="http://cdn.libravatar.org/avatar/b1caeabc4608b4fab2f47295d60127b7"
+ subject="Oops!"
+ date="2020-09-06T20:31:07Z"
+ content="""
+Should read: \"not changed were any FILES named index.html...\"
+"""]]

diff --git a/doc/forum/Tried_to_change_Title_of_my_blog.mdwn b/doc/forum/Tried_to_change_Title_of_my_blog.mdwn
new file mode 100644
index 000000000..f737a516a
--- /dev/null
+++ b/doc/forum/Tried_to_change_Title_of_my_blog.mdwn
@@ -0,0 +1,7 @@
+Changed the title in Preferences and followed Setup's suggestion that I rebuild blog.
+
+Not changed were any pages titled 'index.html' either in top level directory, or individual Posts' directories.
+
+Signed,
+
+Puzzled in New England

diff --git a/doc/install.mdwn b/doc/install.mdwn
index 7b768a61e..48c11272b 100644
--- a/doc/install.mdwn
+++ b/doc/install.mdwn
@@ -34,7 +34,7 @@ CPAN to install modules from your local machine after you extract the ikiwiki ta
 
 Then to build and install ikiwiki:
 
-	perl Makefile.PL # PREFIX=/dir to install elsewhere
+	perl Makefile.PL # INSTALL_BASE= PREFIX=/dir to install elsewhere
 	make
 	make test # optional
 	make install

diff --git a/doc/setup/discussion.mdwn b/doc/setup/discussion.mdwn
index bdb76513c..dbcf204e9 100644
--- a/doc/setup/discussion.mdwn
+++ b/doc/setup/discussion.mdwn
@@ -5,6 +5,7 @@ Apache log doesn't say anything more than the html reply:
 "Error message:
 End of script output before headers: ikiwiki.cgi"
 
+---
 
 
 I have copied over the ikiwiki.setup file from /usr/share/doc/ikiwiki/ to /etc/ikiwiki/ and run it after editing. My site gets built but when I click on the 'edit' button, firefox and google chrome download the cgi file instead of creating a way to edit it. The permissions on my ikiwiki.cgi script look like this: -rwsr-sr-x  1 root root 13359 2009-10-13 19:21 ikiwiki.cgi. Is there something I should do, i.e. change permissions, so I can get it to run correctly? (jeremiah)

diff --git a/doc/setup/discussion.mdwn b/doc/setup/discussion.mdwn
index 645656b24..bdb76513c 100644
--- a/doc/setup/discussion.mdwn
+++ b/doc/setup/discussion.mdwn
@@ -1,3 +1,12 @@
+Getting 500 error after new install in localhost/~home dir. Have ExecCGI/mod_cgi, setuid exec and owner is apache user, apache is running.
+
+Apache log doesn't say anything more than the html reply:
+
+"Error message:
+End of script output before headers: ikiwiki.cgi"
+
+
+
 I have copied over the ikiwiki.setup file from /usr/share/doc/ikiwiki/ to /etc/ikiwiki/ and run it after editing. My site gets built but when I click on the 'edit' button, firefox and google chrome download the cgi file instead of creating a way to edit it. The permissions on my ikiwiki.cgi script look like this: -rwsr-sr-x  1 root root 13359 2009-10-13 19:21 ikiwiki.cgi. Is there something I should do, i.e. change permissions, so I can get it to run correctly? (jeremiah)
 
 > Have a look [[here|tips/dot_cgi]]. --[[Jogo]]

tag properly
diff --git a/doc/bugs/javascript_resources_placed_after_html_tag.mdwn b/doc/bugs/javascript_resources_placed_after_html_tag.mdwn
index 23f832fdb..71dcac710 100644
--- a/doc/bugs/javascript_resources_placed_after_html_tag.mdwn
+++ b/doc/bugs/javascript_resources_placed_after_html_tag.mdwn
@@ -65,3 +65,6 @@ I think the simplest solution is to add a newline when we add the javascript blo
 Sorry for the trouble, HTH! :)
 
 PS: Note that it seems like browsers are happy to ignore the spec and load stuff outside of the `<html>` tag, thankfully. So this is mostly a cosmetic/conformity thing...
+
+
+[[!tag patch]]

diff --git a/doc/todo/add_geo_uri_scheme.mdwn b/doc/todo/add_geo_uri_scheme.mdwn
index 3144d943a..5491dbb6e 100644
--- a/doc/todo/add_geo_uri_scheme.mdwn
+++ b/doc/todo/add_geo_uri_scheme.mdwn
@@ -1,6 +1,6 @@
 [[!template  id=gitbranch branch=anarcat/geo-scheme author="[[anarcat]]"]]
 
-Trivial patch to add the `geo:` URI scheme:
+Trivial [[!taglink patch]] to add the `geo:` URI scheme:
 
 [[!format diff """
 modified   IkiWiki/Plugin/htmlscrubber.pm

diff --git a/doc/todo/add_geo_uri_scheme.mdwn b/doc/todo/add_geo_uri_scheme.mdwn
new file mode 100644
index 000000000..3144d943a
--- /dev/null
+++ b/doc/todo/add_geo_uri_scheme.mdwn
@@ -0,0 +1,20 @@
+[[!template  id=gitbranch branch=anarcat/geo-scheme author="[[anarcat]]"]]
+
+Trivial patch to add the `geo:` URI scheme:
+
+[[!format diff """
+modified   IkiWiki/Plugin/htmlscrubber.pm
+@@ -25,8 +25,8 @@ sub import {
+ 		"sip", "sips", "snmp", "tel", "urn", "wais", "xmpp",
+ 		"z39.50r", "z39.50s",
+ 		# Selected unofficial schemes
+-		"aim", "callto", "cvs", "ed2k", "feed", "fish", "gg",
+-		"irc", "ircs", "lastfm", "ldaps", "magnet", "mms",
++		"aim", "callto", "cvs", "ed2k", "feed", "fish", "geo",
++		"gg", "irc", "ircs", "lastfm", "ldaps", "magnet", "mms",
+ 		"msnim", "notes", "rsync", "secondlife", "skype", "ssh",
+ 		"sftp", "smb", "sms", "snews", "webcal", "ymsgr",
+ 		"bitcoin", "git", "svn", "bzr", "darcs", "hg"
+"""]]
+
+-- [[anarcat]]

what I meant
diff --git a/doc/todo/admonitions.mdwn b/doc/todo/admonitions.mdwn
index 63894002a..c68ce11f8 100644
--- a/doc/todo/admonitions.mdwn
+++ b/doc/todo/admonitions.mdwn
@@ -142,3 +142,10 @@ in either case (which will at least mean there'll be another avenue for people t
 > > Thanks for your support and comments! :) I don't have the time to manage another extra branch on top of the stack I already have unfortunately. but it might be simpler for me in the future... I keep on hoping all patches get merged and that i don't need to (more officially) fork `master`, but it seems that's where I need to go myself... In the meantime you can see the list of patches I maintain in [[users/anarcat]] and [my maintenance log](https://anarc.at/services/wiki/). I hope that helps! -- [[anarcat]]
 
 > > Turns out I found the time. I merged all my active branches in the `master` branch on gitlab. not sure what you'd compare it against, but there, it's done. :) [[anarcat]]
+
+>>> Thanks for that! I'll try to explain what I meant in terms of an example. your `admonitions` is  a series of commits that ultimately sit on top of
+>>> upstream's `d0099568` ("Prepare release for unstable"). If I want to see a quick combined diff of all the changes made in that branch, I can try to
+>>> use GitLab's "Compare" feature, but it does not let me specify a SHA to compare against, only a ref-name such as (your) `master`, which (at the time)
+>>> was a much earlier commit than `d0099568`, so "Compare" would include all the unrelated upstream changes. If instead either `master` was `d0099568`, or
+>>> `admonitions` was rebased on top of whatever your `master` was, then GitLab's "Compare" would be useful. As it is, I cloned locally and did the necessary
+>>> `git` incantation. *— [[Jon]], 2020-08-12*

diff --git a/doc/todo/admonitions.mdwn b/doc/todo/admonitions.mdwn
index af52f8aad..63894002a 100644
--- a/doc/todo/admonitions.mdwn
+++ b/doc/todo/admonitions.mdwn
@@ -140,3 +140,5 @@ in either case (which will at least mean there'll be another avenue for people t
 > feature in-browser to see a combined diff of your changes.  *— [[Jon]], 2020-08-07*
 
 > > Thanks for your support and comments! :) I don't have the time to manage another extra branch on top of the stack I already have unfortunately. but it might be simpler for me in the future... I keep on hoping all patches get merged and that i don't need to (more officially) fork `master`, but it seems that's where I need to go myself... In the meantime you can see the list of patches I maintain in [[users/anarcat]] and [my maintenance log](https://anarc.at/services/wiki/). I hope that helps! -- [[anarcat]]
+
+> > Turns out I found the time. I merged all my active branches in the `master` branch on gitlab. not sure what you'd compare it against, but there, it's done. :) [[anarcat]]

no time to do maser for now, but some pointers and thanks
diff --git a/doc/todo/admonitions.mdwn b/doc/todo/admonitions.mdwn
index ef1c53dad..af52f8aad 100644
--- a/doc/todo/admonitions.mdwn
+++ b/doc/todo/admonitions.mdwn
@@ -138,3 +138,5 @@ in either case (which will at least mean there'll be another avenue for people t
 > One quick tip/request, [[anarcat]]: If you could update the "master" branch in your IkiWiki
 > fork to match the merge base for your branches, it would be easy to use Gitlab's "compare"
 > feature in-browser to see a combined diff of your changes.  *— [[Jon]], 2020-08-07*
+
+> > Thanks for your support and comments! :) I don't have the time to manage another extra branch on top of the stack I already have unfortunately. but it might be simpler for me in the future... I keep on hoping all patches get merged and that i don't need to (more officially) fork `master`, but it seems that's where I need to go myself... In the meantime you can see the list of patches I maintain in [[users/anarcat]] and [my maintenance log](https://anarc.at/services/wiki/). I hope that helps! -- [[anarcat]]

suggestion for anarcat :)
diff --git a/doc/todo/admonitions.mdwn b/doc/todo/admonitions.mdwn
index 65bb530e7..ef1c53dad 100644
--- a/doc/todo/admonitions.mdwn
+++ b/doc/todo/admonitions.mdwn
@@ -134,3 +134,7 @@ admonition styles in either `style.css` or in every shipped theme. But I'm more
 and your current plugin actually exists and IkiWiki is starving for contributors (IMHO)
 so I encourage maintainers to merge it. I will probably merge it into [opinionated ikiwiki](https://jmtd.net/log/opinionated_ikiwiki/)
 in either case (which will at least mean there'll be another avenue for people to check it out)  *— [[Jon]], 2020-08-07*
+
+> One quick tip/request, [[anarcat]]: If you could update the "master" branch in your IkiWiki
+> fork to match the merge base for your branches, it would be easy to use Gitlab's "compare"
+> feature in-browser to see a combined diff of your changes.  *— [[Jon]], 2020-08-07*

I like it, I encourage it to be merged.
diff --git a/doc/todo/admonitions.mdwn b/doc/todo/admonitions.mdwn
index 50f62bf3d..65bb530e7 100644
--- a/doc/todo/admonitions.mdwn
+++ b/doc/todo/admonitions.mdwn
@@ -123,3 +123,14 @@ screenshot of what the help page would look like, to give you an idea
 of the results:
 
 <img src="http://paste.anarc.at/snaps/snap-2016.04.15-18.07.39.png" />
+
+---
+
+I like the idea of admonitions. I've done something vaguely similar on my own site ([e.g.](https://jmtd.net/film/blade_runner/)), but I just
+use `\[[!template` and put up with the verbosity.I like that `\[[!tip` is shorter than `\[[!template id=…`. If
+I was being a total purist I'd argue that the correct change would be to make a syntax shortcut
+for the template syntax, since functionally that's what `tip` is doing, and include the
+admonition styles in either `style.css` or in every shipped theme. But I'm more of a pragmatist
+and your current plugin actually exists and IkiWiki is starving for contributors (IMHO)
+so I encourage maintainers to merge it. I will probably merge it into [opinionated ikiwiki](https://jmtd.net/log/opinionated_ikiwiki/)
+in either case (which will at least mean there'll be another avenue for people to check it out)  *— [[Jon]], 2020-08-07*

me too
diff --git a/doc/todo/include_page_variable_in_base_templates.mdwn b/doc/todo/include_page_variable_in_base_templates.mdwn
index 9e4a6dc36..1aed79683 100644
--- a/doc/todo/include_page_variable_in_base_templates.mdwn
+++ b/doc/todo/include_page_variable_in_base_templates.mdwn
@@ -36,3 +36,12 @@ Thanks!
 PS: I think it would be great if we had a way to figure out which variables are available in a template... I couldn't find out how to do that in HTML::Template, and wonder if we could have some way to do that, to ease such diagnostics in the future...
 
 [[!tag patch]]
+
+---
+
+you're not alone: I think this is very similar to [[forum/how_to_put_a_permalink_on_each_post]].
+
+> PS: I think it would be great if we had a way to figure out which variables are available in a template
+
+I agree! Perhaps a subroutine that enumerated them all and a plugin to expose it or something.
+I definitely wold find that useful too. *­— [[Jon]], 2020-07-21*

describe simplified solution for simplified scenario.
diff --git a/doc/todo/git-annex_support.mdwn b/doc/todo/git-annex_support.mdwn
index f1a4e787c..992c5a294 100644
--- a/doc/todo/git-annex_support.mdwn
+++ b/doc/todo/git-annex_support.mdwn
@@ -242,3 +242,8 @@ This [[!taglink patch]] still applies - anything else I should be doing here to
 > > No problem at all, glad that you still have that in the queue, and I hope
 > > my work was somewhat useful in pushing this forward! Thanks for taking
 > > care of the Imagetragick situation... :/ --[[anarcat]]
+
+Yet another option
+==================
+
+If you happen to use rsync to deploy, instead of git, this is [much easier](https://www.cs.unb.ca/~bremner/blog/posts/big-files).

seems like i screwed up javascript loading
diff --git a/doc/bugs/javascript_resources_placed_after_html_tag.mdwn b/doc/bugs/javascript_resources_placed_after_html_tag.mdwn
new file mode 100644
index 000000000..23f832fdb
--- /dev/null
+++ b/doc/bugs/javascript_resources_placed_after_html_tag.mdwn
@@ -0,0 +1,67 @@
+[[!template  id=gitbranch branch=anarcat/js-newline author="[[anarcat]]"]]
+
+I am not sure why -- it may be [[my fault|todo/fix_javascript_load_ordering]] -- but it seems like plugins loads there Javascript resources *after* the `<body>` and `<html>` tags are closed. Here's an example from [my sandbox](https://anarc.at/sandbox/):
+
+    <script src="../ikiwiki/ikiwiki.js" type="text/javascript" charset="utf-8"></script>
+    <script src="../ikiwiki/relativedate.js" type="text/javascript" charset="utf-8"></script>  </body>
+    </html>
+    <script src="/ikiwiki/ikiwiki.js" type="text/javascript" charset="utf-8"></script>
+    <script src="/ikiwiki/toggle.js" type="text/javascript" charset="utf-8"></script>
+
+Here, `toggle.js` appaars after the `<html>` tag! Interestingly, this is not specific to that one plugin: the same thing happens, in reverse, in my [recent changes page](https://anarc.at/recentchanges/):
+
+    <script src="../ikiwiki/ikiwiki.js" type="text/javascript" charset="utf-8"></script>
+    <script src="../ikiwiki/toggle.js" type="text/javascript" charset="utf-8"></script>  </body>
+    </html>
+    <script src="/ikiwiki/ikiwiki.js" type="text/javascript" charset="utf-8"></script>
+    <script src="/ikiwiki/relativedate.js" type="text/javascript" charset="utf-8"></script>
+
+I am not sure what determines the order in the end.
+
+I'm not sure what's going on, but it seems like the second time a `include_javascript`-like pattern is used, it fails to detect the `</body>` tag and appends the resources at the end instead. That could be because the `</body>` tag is not alone on its own line, which is actually fine in terms of comformity but confuses the regex...
+
+I think the simplest solution is to add a newline when we add the javascript blob, to keep the assertion that body is on its own line. I have done so in the aforementioned patch, which is reproduced here for simplicty:
+
+    diff --git a/IkiWiki/Plugin/recentchangesdiff.pm b/IkiWiki/Plugin/recentchangesdiff.pm
+    index 0093c655e..ac8a61895 100644
+    --- a/IkiWiki/Plugin/recentchangesdiff.pm
+    +++ b/IkiWiki/Plugin/recentchangesdiff.pm
+    @@ -60,7 +60,7 @@ sub pagetemplate (@) {
+     sub format (@) {
+             my %params=@_;
+     
+    -	if (! ($params{content}=~s!^(\s*</body[^>]*>)!include_javascript($params{page}).$1!em)) {
+    +	if (! ($params{content}=~s!^(\s*</body[^>]*>)!include_javascript($params{page})."\n".$1!em)) {
+     		# no <body> tag, probably in preview mode
+     		$params{content}=$params{content}.include_javascript(undef);
+     	}
+    diff --git a/IkiWiki/Plugin/relativedate.pm b/IkiWiki/Plugin/relativedate.pm
+    index 083966ad2..1ef6b2e2a 100644
+    --- a/IkiWiki/Plugin/relativedate.pm
+    +++ b/IkiWiki/Plugin/relativedate.pm
+    @@ -26,7 +26,7 @@ sub getsetup () {
+     sub format (@) {
+             my %params=@_;
+     
+    -	if (! ($params{content}=~s!^(\s*</body[^>]*>)!include_javascript($params{page}).$1!em)) {
+    +	if (! ($params{content}=~s!^(\s*</body[^>]*>)!include_javascript($params{page})."\n".$1!em)) {
+     		# no <body> tag, probably in preview mode
+     		$params{content}=$params{content}.include_javascript(undef);
+     	}
+    diff --git a/IkiWiki/Plugin/toggle.pm b/IkiWiki/Plugin/toggle.pm
+    index eea6e8861..9f74f6029 100644
+    --- a/IkiWiki/Plugin/toggle.pm
+    +++ b/IkiWiki/Plugin/toggle.pm
+    @@ -68,7 +68,7 @@ sub format (@) {
+     
+     	if ($params{content}=~s!(<div class="toggleable(?:-open)?" id="[^"]+">\s*)</div>!$1!g) {
+     		$params{content}=~s/<div class="toggleableend">//g;
+    -		if (! ($params{content}=~s!^(\s*</body[^>]*>)!include_javascript($params{page}).$1!em)) {
+    +		if (! ($params{content}=~s!^(\s*</body[^>]*>)!include_javascript($params{page})."\n".$1!em)) {
+     			# no <body> tag, probably in preview mode
+     			$params{content}=$params{content}.include_javascript(undef);
+     		}
+
+Sorry for the trouble, HTH! :)
+
+PS: Note that it seems like browsers are happy to ignore the spec and load stuff outside of the `<html>` tag, thankfully. So this is mostly a cosmetic/conformity thing...

why do not we have the page path in the template variables?
diff --git a/doc/todo/include_page_variable_in_base_templates.mdwn b/doc/todo/include_page_variable_in_base_templates.mdwn
new file mode 100644
index 000000000..9e4a6dc36
--- /dev/null
+++ b/doc/todo/include_page_variable_in_base_templates.mdwn
@@ -0,0 +1,38 @@
+[[!template  id=gitbranch branch=anarcat/page-template-variable author="[[anarcat]]"]]
+
+I do not understand why, but it seems like base templates included in the theme do not have access to the current page path. All sorts of plugins give all sorts of information about the page including its title, modification time, related pages (trail and parentlinks), tags, fields and so on... But *nothing* on just that: the page path.
+
+It's a one-line patch to fix:
+
+    modified   IkiWiki/Render.pm
+    @@ -123,6 +123,7 @@ sub genpage ($$) {
+     	}
+     
+     	$template->param(
+    +		page => $page,
+     		title => $page eq 'index' 
+     			? $config{wikiname} 
+     			: pagetitle(basename($page)),
+
+
+The patch is available in my git repo, and also directly visible here:
+
+https://gitlab.com/anarcat/ikiwiki/-/commit/9b471a6adcdf47e98dbe3a3aae68f3da4ab63fbb
+
+I use this to include the page name in a tracking URL for (privacy-friendly) web analytics, thanks to Goatcounter. But it seems like a useful thing in general: for example, I remember a friend struggling to figure out how to theme the frontpage of his wiki differently, and he spent a long trying to figure out this very problem. I have myself spent about an hour scouring the source code before deciding the variable just did not exist. 
+
+The friend ended up using this construction instead:
+
+    <TMPL_UNLESS PARENTLINKS>
+      <link rel="stylesheet" href="css/style-frontpage.css" />
+    </TMPL_UNLESS>
+
+... which might actually be more elegant, but way less flexible: what if you want to theme another page that way? In other words, the above only works for the frontpage, but maybe you want `/sales` to be themed differently than `/sandbox`...
+
+In general, I think this is a minor change that can have a huge impact on the themability of ikiwiki, if we care about that at all. ;)
+
+Thanks!
+
+PS: I think it would be great if we had a way to figure out which variables are available in a template... I couldn't find out how to do that in HTML::Template, and wonder if we could have some way to do that, to ease such diagnostics in the future...
+
+[[!tag patch]]

wikilink table directive and plugin
diff --git a/doc/bugs/the_data_argument_for_the_table_directive_should_follow_linking_rules.mdwn b/doc/bugs/the_data_argument_for_the_table_directive_should_follow_linking_rules.mdwn
index 7463dbf19..a97a592b2 100644
--- a/doc/bugs/the_data_argument_for_the_table_directive_should_follow_linking_rules.mdwn
+++ b/doc/bugs/the_data_argument_for_the_table_directive_should_follow_linking_rules.mdwn
@@ -1 +1 @@
-when using the table directive with the table plugin, if I use the data argument to specify a file as a source of the data, I currently have to give a full path from the root of the wiki to the file.  I should be able to give just the file name and have the file located using the same rules that are followed when creating wiki links.  
+when using the [[table directive|ikiwiki/directive/table]] with the [[table plugin|plugins/table]], if I use the data argument to specify a file as a source of the data, I currently have to give a full path from the root of the wiki to the file.  I should be able to give just the file name and have the file located using the same rules that are followed when creating wiki links.  

diff --git a/doc/bugs/the_data_argument_for_the_table_directive_should_follow_linking_rules.mdwn b/doc/bugs/the_data_argument_for_the_table_directive_should_follow_linking_rules.mdwn
new file mode 100644
index 000000000..7463dbf19
--- /dev/null
+++ b/doc/bugs/the_data_argument_for_the_table_directive_should_follow_linking_rules.mdwn
@@ -0,0 +1 @@
+when using the table directive with the table plugin, if I use the data argument to specify a file as a source of the data, I currently have to give a full path from the root of the wiki to the file.  I should be able to give just the file name and have the file located using the same rules that are followed when creating wiki links.  

still an issue
diff --git a/doc/bugs/table_can_not_deal_with_Chinese_.mdwn b/doc/bugs/table_can_not_deal_with_Chinese_.mdwn
index f115fbebb..e57bd3c05 100644
--- a/doc/bugs/table_can_not_deal_with_Chinese_.mdwn
+++ b/doc/bugs/table_can_not_deal_with_Chinese_.mdwn
@@ -137,3 +137,8 @@ I'm going to attempt to work around it by moving to an external CSV. ­— [[Jon
 >> libtext-csv-xs-perl	1.38-1. Further fiddling will commence.
 >> (removing libtext-csv-xs-perl does not help.)
 — [[Jon]]
+
+>>> Still hitting this [[plugins/table]] bug, using ikiwiki=3.20200202.3, buster system, no libtext-csv-perl installed,
+>>> libperl5.28:amd64       5.28.1-6, no libtext-csv-xs-perl. Workaround is to set format=tsv,
+>>> even though I'm overriding the delimiter to \t. This reproduces easily in the  quay.io/jdowland/opinionated-ikiwiki
+>>> container FWIW. *— [[Jon]], 2020-06-26*

how to use dumpsetup
diff --git a/doc/usage/discussion.mdwn b/doc/usage/discussion.mdwn
index c96059683..9fd6ab36e 100644
--- a/doc/usage/discussion.mdwn
+++ b/doc/usage/discussion.mdwn
@@ -1,3 +1,5 @@
 Man page does not document "account\_creation\_password". I started to add it, then noticed other configurations are not documented in the manual page either. --[[JeremyReed]]
 
 The description of "--dumpsetup" says that it dumps the current configuration. For me, it always dumps the same blank/initial/default configuration. For example, "wikiname" is always "wiki". This is after changing my setup file and running ikiwiki --setup. FWIW ...--[[KarlBerry]]
+
+> You need to use `--dumpsetup` at the same time as specifying your setup, i.e. `ikiwiki --setup input-setup-file --dumpsetup output-setup-file`, or `ikiwiki [ configuration flags on command line instead of setup file ] --dumpsetup output-setup` *— [[Jon]] 2020-06-23*

diff --git a/doc/forum/backslash_and_other_unusual_characters_in_page_names.mdwn b/doc/forum/backslash_and_other_unusual_characters_in_page_names.mdwn
new file mode 100644
index 000000000..4984d63e5
--- /dev/null
+++ b/doc/forum/backslash_and_other_unusual_characters_in_page_names.mdwn
@@ -0,0 +1,20 @@
+Is there a way to support backslash or other "unusual" characters in
+the output .html names?
+
+I added `\\` to wiki_file_chars (not just `\` since this value is
+the contents of a Perl [...] regexp, per
+IkiWiki.pm). But doing this and then creating a file \foo.mdwn on the
+source side is not enough, because the backslash is autotranslated to /
+(for the sake of Windows I suppose), resulting in
+http://example.org//foo/.
+
+I'm looking to make a TeX-related wiki. Hence having backslash as a
+normal character is desirable. I know there would be plenty more complications,
+but, just exploring the options ...
+
+Generalizing from backslashes, is there a way to control the mapping
+from .mdwn names to the output .html names (and directories I guess),
+apart from the specific usedirs and indexpages settings?
+
+I've glanced through plugins and done a bunch of web searches without
+any success. Any help appreciated. Thanks. --[[KarlBerry]]

Added a comment: documentation of post-commit wrappers
diff --git a/doc/forum/installation_and_setup_questions/comment_1_6af4a43bc2bb3a239bed63357aced4ac._comment b/doc/forum/installation_and_setup_questions/comment_1_6af4a43bc2bb3a239bed63357aced4ac._comment
new file mode 100644
index 000000000..b0d2627db
--- /dev/null
+++ b/doc/forum/installation_and_setup_questions/comment_1_6af4a43bc2bb3a239bed63357aced4ac._comment
@@ -0,0 +1,23 @@
+[[!comment format=mdwn
+ username="karl@d1f18fed27c24017d3937186b8675b57da67efc7"
+ nickname="karl"
+ avatar="http://cdn.libravatar.org/avatar/c3c4ce72a68266355f51f0006a576199"
+ subject="documentation of post-commit wrappers"
+ date="2020-06-17T16:41:57Z"
+ content="""
+I set up a new wiki \"by hand\". https://ikiwiki.info/setup/byhand/ says: 
+
+> Uncomment the configuration for the wrapper for your revision control system, and configure thewrapper path appropriately (for Git, it should be the path to hooks/post-update inside the bare git repository).
+
+However, there are no commented-out wrapper configurations in the ikiwiki.setup file created by --dumpsetup, as far as I could discern.
+
+https://ikiwiki.info/post-commit/discussion/ has an example, but it (like much else I see around here) uses Perl syntax, and so no longer applies to the yaml ikiwiki.setup, yielding the usual YAML::XS::Load Error.
+
+So I blindly changed the =>'s to :'s, and it worked (yay!):
+
+    wrappers: [ { wrapper: \"/my/svn/wiki/hooks/post-commit-ikiwiki\", wrappermode: \"04755\", notify: 1, } ]
+
+If I didn't miss the real documentation for this config file setting, it would be nice to have it in the --dumpsetup file, or the post-commit page, or the rcs/details page, or somewhere. Thanks. --[[KarlBerry]
+
+
+"""]]

--dumpsetup description inaccurate?
diff --git a/doc/usage/discussion.mdwn b/doc/usage/discussion.mdwn
index 189d74eb0..c96059683 100644
--- a/doc/usage/discussion.mdwn
+++ b/doc/usage/discussion.mdwn
@@ -1 +1,3 @@
 Man page does not document "account\_creation\_password". I started to add it, then noticed other configurations are not documented in the manual page either. --[[JeremyReed]]
+
+The description of "--dumpsetup" says that it dumps the current configuration. For me, it always dumps the same blank/initial/default configuration. For example, "wikiname" is always "wiki". This is after changing my setup file and running ikiwiki --setup. FWIW ...--[[KarlBerry]]

oh, we don't use comments here, do we?
diff --git a/doc/bugs/git_test_receive_wrapper_fails.mdwn b/doc/bugs/git_test_receive_wrapper_fails.mdwn
index fcac46c5f..9deba1da3 100644
--- a/doc/bugs/git_test_receive_wrapper_fails.mdwn
+++ b/doc/bugs/git_test_receive_wrapper_fails.mdwn
@@ -31,3 +31,46 @@ git env vars:
 [[!commit 6fb43c29f63b85c3424520819427903e5a204426]] is relevant to that,
 and I guess it didn't fully solve the problem.
 --[[Joey]]
+
+Stracing git-daemon -f I noticed this:
+
+	[pid 22616] lstat64("/home/b-ikiwiki/source.git/HEAD", {st_mode=S_IFREG|0664, st_size=23, ...}) = 0
+	[pid 22616] openat(AT_FDCWD, "/home/b-ikiwiki/source.git/HEAD", O_RDONLY|O_LARGEFILE) = 3
+	[pid 22616] read(3, "ref: refs/heads/master\n", 255) = 23
+	[pid 22616] read(3, "", 232)            = 0
+	[pid 22616] close(3)                    = 0
+	[pid 22616] lstat64("/home/b-ikiwiki/source.git/commondir", 0xbf83896c) = -1 ENOENT (No such file or directory)
+	[pid 22616] access("/home/b-ikiwiki/source.git/./objects/incoming-gXNPXm", X_OK) = -1 EACCES (Permission denied)
+	[pid 22616] stat64("/home/b-ikiwiki", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
+
+So the git diff is in the right cwd, it gets as far as reading HEAD. But then
+this permissions error on this incoming directory happens, and it then seems to
+give up and search for a different git repo to use in the parent directory (and all the way up to root).
+
+The directory is created by git earlier in the strace:
+
+	[pid 22559] mkdir("./objects/incoming-gXNPXm", 0700) = 0
+
+And here's how it looks:
+
+	drwx------+ 7 ikiwiki-anon ikiwiki-anon 4096 Jun 14 00:22 incoming-y6a8pe/
+
+And I think that's the problem, by the time ikiwiki runs it's switched
+away from the ikiwiki-anon user that git-daemon uses, and over to the
+site user. Which can't read that.
+
+source.git has an ACL set to let ikiwiki-anon write to it. 
+
+	ikisite:		eval { shell("setfacl", "-R", "-m", "d:g:$config{gitdaemonuser}:rwX,d:g:$user:rwX,g:$config{gitdaemonuser}:rwX,g:$user:rwX", "$home/source.git") };
+
+Can this ACL be adjusted so that all directories created under it will be readable
+ by the site user (b-ikiwiki)? I don't know ACLs very well.
+
+Alternatively, `GIT_QUARANTINE_PATH` is set to the directory, so
+the C wrapper could fix up its permissions. The wrapper is suid,
+so either would need to switch user ID back to ikiwiki-anon, if that's allowed,
+or there would need to be an outer wrapper that's not suid (just a shell
+script would work) that then runs the regular suid wrapper.
+
+> This was not a bug in ikiwiki, but ikiwiki-hosting. Fixed there (using
+> the wrapper wrapper approach). [[done]] --[[Joey]]
diff --git a/doc/bugs/git_test_receive_wrapper_fails/comment_1_076d23581986bf53295100f2dd68b5d8._comment b/doc/bugs/git_test_receive_wrapper_fails/comment_1_076d23581986bf53295100f2dd68b5d8._comment
deleted file mode 100644
index 8775cbee1..000000000
--- a/doc/bugs/git_test_receive_wrapper_fails/comment_1_076d23581986bf53295100f2dd68b5d8._comment
+++ /dev/null
@@ -1,45 +0,0 @@
-[[!comment format=mdwn
- username="joey"
- subject="""comment 1"""
- date="2020-06-14T00:17:35Z"
- content="""
-Stracing git-daemon -f I noticed this:
-
-	[pid 22616] lstat64("/home/b-ikiwiki/source.git/HEAD", {st_mode=S_IFREG|0664, st_size=23, ...}) = 0
-	[pid 22616] openat(AT_FDCWD, "/home/b-ikiwiki/source.git/HEAD", O_RDONLY|O_LARGEFILE) = 3
-	[pid 22616] read(3, "ref: refs/heads/master\n", 255) = 23
-	[pid 22616] read(3, "", 232)            = 0
-	[pid 22616] close(3)                    = 0
-	[pid 22616] lstat64("/home/b-ikiwiki/source.git/commondir", 0xbf83896c) = -1 ENOENT (No such file or directory)
-	[pid 22616] access("/home/b-ikiwiki/source.git/./objects/incoming-gXNPXm", X_OK) = -1 EACCES (Permission denied)
-	[pid 22616] stat64("/home/b-ikiwiki", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
-
-So the git diff is in the right cwd, it gets as far as reading HEAD. But then
-this permissions error on this incoming directory happens, and it then seems to
-give up and search for a different git repo to use in the parent directory (and all the way up to root).
-
-The directory is created by git earlier in the strace:
-
-	[pid 22559] mkdir("./objects/incoming-gXNPXm", 0700) = 0
-
-And here's how it looks:
-
-	drwx------+ 7 ikiwiki-anon ikiwiki-anon 4096 Jun 14 00:22 incoming-y6a8pe/
-
-And I think that's the problem, by the time ikiwiki runs it's switched
-away from the ikiwiki-anon user that git-daemon uses, and over to the
-site user. Which can't read that.
-
-source.git has an ACL set to let ikiwiki-anon write to it. 
-
-	ikisite:		eval { shell("setfacl", "-R", "-m", "d:g:$config{gitdaemonuser}:rwX,d:g:$user:rwX,g:$config{gitdaemonuser}:rwX,g:$user:rwX", "$home/source.git") };
-
-Can this ACL be adjusted so that all directories created under it will be readable
- by the site user (b-ikiwiki)? I don't know ACLs very well.
-
-Alternatively, `GIT_QUARANTINE_PATH` is set to the directory, so
-the C wrapper could fix up its permissions. The wrapper is suid,
-so either would need to switch user ID back to ikiwiki-anon, if that's allowed,
-or there would need to be an outer wrapper that's not suid (just a shell
-script would work) that then runs the regular suid wrapper.
-"""]]

anon push test
diff --git a/doc/sandbox.mdwn b/doc/sandbox.mdwn
index ba3917e48..34d4c2c06 100644
--- a/doc/sandbox.mdwn
+++ b/doc/sandbox.mdwn
@@ -6,8 +6,6 @@ Why doesn't the following work?..
 Sure it is.
 ===========
 
-I hope baby.
-
 ~~~
 Lorem ipsum dolor sit amet, consectetur adipiscing elit.
 ~~~

anon push test
diff --git a/doc/sandbox.mdwn b/doc/sandbox.mdwn
index ed0aadf2c..ba3917e48 100644
--- a/doc/sandbox.mdwn
+++ b/doc/sandbox.mdwn
@@ -12,8 +12,6 @@ I hope baby.
 Lorem ipsum dolor sit amet, consectetur adipiscing elit.
 ~~~
 
-Nope my friend.
-
 List:
 
 * thing 1

analysis; ACL may be needed
diff --git a/doc/bugs/git_test_receive_wrapper_fails/comment_1_076d23581986bf53295100f2dd68b5d8._comment b/doc/bugs/git_test_receive_wrapper_fails/comment_1_076d23581986bf53295100f2dd68b5d8._comment
new file mode 100644
index 000000000..8775cbee1
--- /dev/null
+++ b/doc/bugs/git_test_receive_wrapper_fails/comment_1_076d23581986bf53295100f2dd68b5d8._comment
@@ -0,0 +1,45 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2020-06-14T00:17:35Z"
+ content="""
+Stracing git-daemon -f I noticed this:
+
+	[pid 22616] lstat64("/home/b-ikiwiki/source.git/HEAD", {st_mode=S_IFREG|0664, st_size=23, ...}) = 0
+	[pid 22616] openat(AT_FDCWD, "/home/b-ikiwiki/source.git/HEAD", O_RDONLY|O_LARGEFILE) = 3
+	[pid 22616] read(3, "ref: refs/heads/master\n", 255) = 23
+	[pid 22616] read(3, "", 232)            = 0
+	[pid 22616] close(3)                    = 0
+	[pid 22616] lstat64("/home/b-ikiwiki/source.git/commondir", 0xbf83896c) = -1 ENOENT (No such file or directory)
+	[pid 22616] access("/home/b-ikiwiki/source.git/./objects/incoming-gXNPXm", X_OK) = -1 EACCES (Permission denied)
+	[pid 22616] stat64("/home/b-ikiwiki", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
+
+So the git diff is in the right cwd, it gets as far as reading HEAD. But then
+this permissions error on this incoming directory happens, and it then seems to
+give up and search for a different git repo to use in the parent directory (and all the way up to root).
+
+The directory is created by git earlier in the strace:
+
+	[pid 22559] mkdir("./objects/incoming-gXNPXm", 0700) = 0
+
+And here's how it looks:
+
+	drwx------+ 7 ikiwiki-anon ikiwiki-anon 4096 Jun 14 00:22 incoming-y6a8pe/
+
+And I think that's the problem, by the time ikiwiki runs it's switched
+away from the ikiwiki-anon user that git-daemon uses, and over to the
+site user. Which can't read that.
+
+source.git has an ACL set to let ikiwiki-anon write to it. 
+
+	ikisite:		eval { shell("setfacl", "-R", "-m", "d:g:$config{gitdaemonuser}:rwX,d:g:$user:rwX,g:$config{gitdaemonuser}:rwX,g:$user:rwX", "$home/source.git") };
+
+Can this ACL be adjusted so that all directories created under it will be readable
+ by the site user (b-ikiwiki)? I don't know ACLs very well.
+
+Alternatively, `GIT_QUARANTINE_PATH` is set to the directory, so
+the C wrapper could fix up its permissions. The wrapper is suid,
+so either would need to switch user ID back to ikiwiki-anon, if that's allowed,
+or there would need to be an outer wrapper that's not suid (just a shell
+script would work) that then runs the regular suid wrapper.
+"""]]

testing anon git push
diff --git a/doc/sandbox.mdwn b/doc/sandbox.mdwn
index cfed31307..ed0aadf2c 100644
--- a/doc/sandbox.mdwn
+++ b/doc/sandbox.mdwn
@@ -3,7 +3,7 @@
 Why doesn't the following work?..
 [[!color  foreground=white background=#ff0000 text="White text on red background"]]
 
-Sure it is.sss
+Sure it is.
 ===========
 
 I hope baby.

test alternative header link name
diff --git a/doc/sandbox.mdwn b/doc/sandbox.mdwn
index db8aa639a..cfed31307 100644
--- a/doc/sandbox.mdwn
+++ b/doc/sandbox.mdwn
@@ -1,4 +1,4 @@
-###Is this a heading? 
+### Is this a heading?
 
 Why doesn't the following work?..
 [[!color  foreground=white background=#ff0000 text="White text on red background"]]
@@ -59,7 +59,7 @@ markdown `inline` single-backquotes?
 
 - foo
 
-## two
+## two {#alt-link-name-not-working}
 
 - bar
 

Record a spammy sequence of edits.
diff --git a/doc/spam_fighting.mdwn b/doc/spam_fighting.mdwn
index 67c8e0409..bb8bc904d 100644
--- a/doc/spam_fighting.mdwn
+++ b/doc/spam_fighting.mdwn
@@ -38,4 +38,5 @@ ca4d8fc and 17 more | 2015/01/12-14 | spalax. (note the trailing dot) | 122.173.
 992f995 | 2015/03/20 | snape (OpenID) | 187.209.217.54
 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
 """]]

Revert jasatamanjogja spam edits.
diff --git a/doc/TourBusStop.mdwn b/doc/TourBusStop.mdwn
index 7e1c498fd..8e382bd77 100644
--- a/doc/TourBusStop.mdwn
+++ b/doc/TourBusStop.mdwn
@@ -7,7 +7,7 @@ This wiki serves as the home for the ikiwiki wiki engine, providing collaborativ
 * Rather than inventing yet another simplistic, linear version control system, ikiwiki uses a standard version control system such as [[Subversion|rcs/svn]] or [[rcs/Git]].  You can edit a wiki by committing to your repository, as well as through a traditional web interface.  This makes ikiwiki ideal for collaborative software development; just keep your wiki in version control next to your software.  You can also take full advantage of the features of these systems; for instance, you can keep a local branch of your wiki via [[rcs/Git]].
 
 * You can turn any set of pages into a [[blog]] or similar news feed,
-* complete with RSS and Atom support.  You can run your weblog on ikiwiki (and [[many_people_do|jasatamanjogja]]), run a Planet-like [[aggregator|plugins/aggregate]] for external feeds, or keep a [[TODO]] and [[bug|bugs]] list with tags for completed items.
+* complete with RSS and Atom support.  You can run your weblog on ikiwiki (and [[many_people_do|ikiwikiusers]]), run a Planet-like [[aggregator|plugins/aggregate]] for external feeds, or keep a [[TODO]] and [[bug|bugs]] list with tags for completed items.
 
 * ikiwiki provides a wiki compiler, designed to transform your wiki content into a set of static pages.  You can then serve these pages as static content.  ikiwiki will not fall over during a Slashdotting, because page views don't require the ikiwiki CGI; as long as your web server can keep up, your site will survive.  Furthermore, you can choose whether you want to run the ikiwiki CGI for web edits or only handle commits to the underlying version control system; you can even run ikiwiki privately and just manually copy the content to another server.  So if you want to put a wiki up on a server without installing any software on that server, try ikiwiki.
 
@@ -25,6 +25,6 @@ Famous sights to visit here at **ikiwiki**
 ==========================================
 
 * [[features]]: See what ikiwiki can do, and why you might choose it for your wiki.
-* [[jasatamanjogja]]: The list of projects, personal sites, and blogs that use ikiwiki.
+* [[ikiwikiusers]]: The list of projects, personal sites, and blogs that use ikiwiki.
 * [[plugins]]: See the many ways people have extended ikiwiki.
 * [[examples]]: Example sites built using ikiwiki.
diff --git a/doc/bugs/edits_not_showing_up_in_compiled_pages.mdwn b/doc/bugs/edits_not_showing_up_in_compiled_pages.mdwn
index 1345c0b17..9f1e89397 100644
--- a/doc/bugs/edits_not_showing_up_in_compiled_pages.mdwn
+++ b/doc/bugs/edits_not_showing_up_in_compiled_pages.mdwn
@@ -1,5 +1,5 @@
 I edited some pages on the ikiwiki ikiwiki ([[/shortcuts]] and
-[[/jasatamanjogja]]).  The edits show up in RecentChanges and History, but not
+[[/ikiwikiusers]]).  The edits show up in RecentChanges and History, but not
 in the compiled pages.  --[[JoshTriplett]]
 
 Well, I seem to have fixed this now (crossed fingers) --[[Joey]]
diff --git a/doc/competition.mdwn b/doc/competition.mdwn
index 9a55214d1..2c782ea92 100644
--- a/doc/competition.mdwn
+++ b/doc/competition.mdwn
@@ -4,7 +4,7 @@ files stored in a [[VCS|rcs]]. My
 [first blog about ikiwiki](http://kitenet.net/~joey/blog/entry/seeking_wiki/)
 looked at some projects that were semi-close, and found them wanting.
 
-My hope was that besides being useful to all its [[users|jasatamanjogja]],
+My hope was that besides being useful to all its [[users|ikiwikiusers]],
 ikiwiki would help spread its underlying concepts. Let a thousand flowers
 bloom! These are some that have sprung up since. --[[Joey]]
 
diff --git a/doc/download.mdwn b/doc/download.mdwn
index 7a36d8318..3890df9f2 100644
--- a/doc/download.mdwn
+++ b/doc/download.mdwn
@@ -1,5 +1,5 @@
 Here's how to get ikiwiki in source or prepackaged form. See [[setup]] for
-how to use it, and be sure to add your wiki to [[Jasatamanjogja]] if you use
+how to use it, and be sure to add your wiki to [[IkiwikiUsers]] if you use
 ikiwiki.
 
 ## source
diff --git a/doc/jasatamanjogja.mdwn b/doc/ikiwikiusers.mdwn
similarity index 100%
rename from doc/jasatamanjogja.mdwn
rename to doc/ikiwikiusers.mdwn
diff --git a/doc/jasatamanjogja/discussion.mdwn b/doc/ikiwikiusers/discussion.mdwn
similarity index 88%
rename from doc/jasatamanjogja/discussion.mdwn
rename to doc/ikiwikiusers/discussion.mdwn
index 52acd941a..2c211b097 100644
--- a/doc/jasatamanjogja/discussion.mdwn
+++ b/doc/ikiwikiusers/discussion.mdwn
@@ -32,7 +32,7 @@ Hopefully I will be one of the ikiwiki users one day :) cheers --[[Chao]]
 
 ----
 
-Are there automated hosting sites for ikiwiki yet?  If you know one, can you add one in a new section on [[jasatamanjogja]] please?  If you don't know any and you're willing to pay to set one up (shouldn't be much more expensive than a single ikiwiki IMO), [contact me](http://www.ttllp.co.uk/contact.html) and let's talk. -- MJR
+Are there automated hosting sites for ikiwiki yet?  If you know one, can you add one in a new section on [[ikiwikiusers]] please?  If you don't know any and you're willing to pay to set one up (shouldn't be much more expensive than a single ikiwiki IMO), [contact me](http://www.ttllp.co.uk/contact.html) and let's talk. -- MJR
 
 ----
 
diff --git a/doc/news.mdwn b/doc/news.mdwn
index ffafea576..58413f94c 100644
--- a/doc/news.mdwn
+++ b/doc/news.mdwn
@@ -1,5 +1,5 @@
 This is where announcements of new releases, features, and other news are
-posted. [[Jasatamanjogja]] are recommended to subscribe to this page's RSS
+posted. [[IkiWikiUsers]] are recommended to subscribe to this page's RSS
 feed.
 
 [[!inline pages="news/* and !news/*/* and !news/discussion"
diff --git a/doc/news/stylesheets.mdwn b/doc/news/stylesheets.mdwn
index 65a1ac0e0..86b0ea9c7 100644
--- a/doc/news/stylesheets.mdwn
+++ b/doc/news/stylesheets.mdwn
@@ -6,7 +6,7 @@ going on than you might think, and it's actually all done with xhtml and
 style sheets.
 
 Stefano Zacchiroli came up with the idea of adding a [[css_market]] page
-where [[Jasatamanjogja]] can share style sheets that you've come up with for
+where [[IkiWikiUsers]] can share style sheets that you've come up with for
 ikiwiki. This is a great idea and I encourage those of you who have
 customised stylesheets to post them.
 
diff --git a/doc/setup.mdwn b/doc/setup.mdwn
index 4f924d5cd..9fc37c0b1 100644
--- a/doc/setup.mdwn
+++ b/doc/setup.mdwn
@@ -145,7 +145,7 @@ setup file.
 
 ## Enjoy your new wiki!
 
-Add yourself to [[Jasatamanjogja]]. And check out
+Add yourself to [[IkiWikiUsers]]. And check out
 the [[tips]] to find out how to get more out of ikiwiki.
 
 ----
diff --git a/doc/setup/byhand.mdwn b/doc/setup/byhand.mdwn
index 98f73d6e6..6d0f37cd9 100644
--- a/doc/setup/byhand.mdwn
+++ b/doc/setup/byhand.mdwn
@@ -198,5 +198,5 @@ by web users will also be committed using revision control.
 
 ## Enjoy your new wiki!
 
-Add yourself to [[Jasatamanjogja]]. And check out
+Add yourself to [[IkiWikiUsers]]. And check out
 the [[tips]] to find out how to get more out of ikiwiki.
diff --git a/doc/templates/links.mdwn b/doc/templates/links.mdwn
index 837591716..946694d1b 100644
--- a/doc/templates/links.mdwn
+++ b/doc/templates/links.mdwn
@@ -6,7 +6,7 @@
 <li>[[Download]]</li>
 <li>[[Setup]]</li>
 <li>[[Security]]</li>
-<li>[[Users|Jasatamanjogja]]</li>
+<li>[[Users|IkiWikiUsers]]</li>
 <li>[[SiteMap]]</li>
 <li>[[Contact]]</li>
 <li>[[TipJar]]</li>
diff --git a/doc/tips/integrated_issue_tracking_with_ikiwiki.mdwn b/doc/tips/integrated_issue_tracking_with_ikiwiki.mdwn
index 156083796..1390412f4 100644
--- a/doc/tips/integrated_issue_tracking_with_ikiwiki.mdwn
+++ b/doc/tips/integrated_issue_tracking_with_ikiwiki.mdwn
@@ -44,7 +44,7 @@ Ikiwiki is a full-featured wiki that you can use
 for a variety of purposes, from traditional wikis
 to weblogs, podcasting, or even aggregating other
 sites' RSS feeds into a Planet page. While people
-are [[using|jasatamanjogja]]
+are [[using|ikiwikiusers]]
 Ikiwiki for purposes ranging from genealogy research
 to shoe accessory sales, one thing it's especially
 well suited for is collaborative software development,
diff --git a/doc/users.mdwn b/doc/users.mdwn
index 9ffd89753..cc3cf5268 100644
--- a/doc/users.mdwn
+++ b/doc/users.mdwn
@@ -1,4 +1,4 @@
-See [[Jasatamanjogja]] for the list of sites using ikiwiki.
+See [[IkiwikiUsers]] for the list of sites using ikiwiki.
 
 Users of this wiki, feel free to create a subpage of this one and talk
 about yourself on it, within reason. You can link to it to sign your
diff --git a/doc/users/KarlMW/discussion.mdwn b/doc/users/KarlMW/discussion.mdwn
index 29036669a..4a111a3f9 100644
--- a/doc/users/KarlMW/discussion.mdwn
+++ b/doc/users/KarlMW/discussion.mdwn
@@ -1,4 +1,4 @@
-When you edited [[jasatamanjogja]] all the utf-8 on the page was removed. Is this an issue with the web browser you used? I've fixed the utf-8 damage. --[[Joey]]
+When you edited [[ikiwikiusers]] all the utf-8 on the page was removed. Is this an issue with the web browser you used? I've fixed the utf-8 damage. --[[Joey]]
 
 > Ooops!  Sorry - yes, my fault - I was using w3m, which spawned nano to edit the text, and I'm not setup for utf-8.  I'll be more careful in future.  --[[KarlMW]]
 

update for rename of ikiwikiusers.mdwn to jasatamanjogja.mdwn
diff --git a/doc/setup.mdwn b/doc/setup.mdwn
index 9fc37c0b1..4f924d5cd 100644
--- a/doc/setup.mdwn
+++ b/doc/setup.mdwn
@@ -145,7 +145,7 @@ setup file.
 
 ## Enjoy your new wiki!
 
-Add yourself to [[IkiWikiUsers]]. And check out
+Add yourself to [[Jasatamanjogja]]. And check out
 the [[tips]] to find out how to get more out of ikiwiki.
 
 ----

update for rename of ikiwikiusers.mdwn to jasatamanjogja.mdwn
diff --git a/doc/tips/integrated_issue_tracking_with_ikiwiki.mdwn b/doc/tips/integrated_issue_tracking_with_ikiwiki.mdwn
index 1390412f4..156083796 100644
--- a/doc/tips/integrated_issue_tracking_with_ikiwiki.mdwn
+++ b/doc/tips/integrated_issue_tracking_with_ikiwiki.mdwn
@@ -44,7 +44,7 @@ Ikiwiki is a full-featured wiki that you can use
 for a variety of purposes, from traditional wikis
 to weblogs, podcasting, or even aggregating other
 sites' RSS feeds into a Planet page. While people
-are [[using|ikiwikiusers]]
+are [[using|jasatamanjogja]]
 Ikiwiki for purposes ranging from genealogy research
 to shoe accessory sales, one thing it's especially
 well suited for is collaborative software development,

update for rename of ikiwikiusers.mdwn to jasatamanjogja.mdwn
diff --git a/doc/download.mdwn b/doc/download.mdwn
index 3890df9f2..7a36d8318 100644
--- a/doc/download.mdwn
+++ b/doc/download.mdwn
@@ -1,5 +1,5 @@
 Here's how to get ikiwiki in source or prepackaged form. See [[setup]] for
-how to use it, and be sure to add your wiki to [[IkiwikiUsers]] if you use
+how to use it, and be sure to add your wiki to [[Jasatamanjogja]] if you use
 ikiwiki.
 
 ## source

update for rename of ikiwikiusers.mdwn to jasatamanjogja.mdwn
diff --git a/doc/setup/byhand.mdwn b/doc/setup/byhand.mdwn
index 6d0f37cd9..98f73d6e6 100644
--- a/doc/setup/byhand.mdwn
+++ b/doc/setup/byhand.mdwn
@@ -198,5 +198,5 @@ by web users will also be committed using revision control.
 
 ## Enjoy your new wiki!
 
-Add yourself to [[IkiWikiUsers]]. And check out
+Add yourself to [[Jasatamanjogja]]. And check out
 the [[tips]] to find out how to get more out of ikiwiki.

update for rename of ikiwikiusers.mdwn to jasatamanjogja.mdwn
diff --git a/doc/TourBusStop.mdwn b/doc/TourBusStop.mdwn
index 8e382bd77..7e1c498fd 100644
--- a/doc/TourBusStop.mdwn
+++ b/doc/TourBusStop.mdwn
@@ -7,7 +7,7 @@ This wiki serves as the home for the ikiwiki wiki engine, providing collaborativ
 * Rather than inventing yet another simplistic, linear version control system, ikiwiki uses a standard version control system such as [[Subversion|rcs/svn]] or [[rcs/Git]].  You can edit a wiki by committing to your repository, as well as through a traditional web interface.  This makes ikiwiki ideal for collaborative software development; just keep your wiki in version control next to your software.  You can also take full advantage of the features of these systems; for instance, you can keep a local branch of your wiki via [[rcs/Git]].
 
 * You can turn any set of pages into a [[blog]] or similar news feed,
-* complete with RSS and Atom support.  You can run your weblog on ikiwiki (and [[many_people_do|ikiwikiusers]]), run a Planet-like [[aggregator|plugins/aggregate]] for external feeds, or keep a [[TODO]] and [[bug|bugs]] list with tags for completed items.
+* complete with RSS and Atom support.  You can run your weblog on ikiwiki (and [[many_people_do|jasatamanjogja]]), run a Planet-like [[aggregator|plugins/aggregate]] for external feeds, or keep a [[TODO]] and [[bug|bugs]] list with tags for completed items.
 
 * ikiwiki provides a wiki compiler, designed to transform your wiki content into a set of static pages.  You can then serve these pages as static content.  ikiwiki will not fall over during a Slashdotting, because page views don't require the ikiwiki CGI; as long as your web server can keep up, your site will survive.  Furthermore, you can choose whether you want to run the ikiwiki CGI for web edits or only handle commits to the underlying version control system; you can even run ikiwiki privately and just manually copy the content to another server.  So if you want to put a wiki up on a server without installing any software on that server, try ikiwiki.
 
@@ -25,6 +25,6 @@ Famous sights to visit here at **ikiwiki**
 ==========================================
 
 * [[features]]: See what ikiwiki can do, and why you might choose it for your wiki.
-* [[ikiwikiusers]]: The list of projects, personal sites, and blogs that use ikiwiki.
+* [[jasatamanjogja]]: The list of projects, personal sites, and blogs that use ikiwiki.
 * [[plugins]]: See the many ways people have extended ikiwiki.
 * [[examples]]: Example sites built using ikiwiki.

update for rename of ikiwikiusers.mdwn to jasatamanjogja.mdwn
diff --git a/doc/templates/links.mdwn b/doc/templates/links.mdwn
index 946694d1b..837591716 100644
--- a/doc/templates/links.mdwn
+++ b/doc/templates/links.mdwn
@@ -6,7 +6,7 @@
 <li>[[Download]]</li>
 <li>[[Setup]]</li>
 <li>[[Security]]</li>
-<li>[[Users|IkiWikiUsers]]</li>
+<li>[[Users|Jasatamanjogja]]</li>
 <li>[[SiteMap]]</li>
 <li>[[Contact]]</li>
 <li>[[TipJar]]</li>

update for rename of ikiwikiusers.mdwn to jasatamanjogja.mdwn
diff --git a/doc/news.mdwn b/doc/news.mdwn
index 58413f94c..ffafea576 100644
--- a/doc/news.mdwn
+++ b/doc/news.mdwn
@@ -1,5 +1,5 @@
 This is where announcements of new releases, features, and other news are
-posted. [[IkiWikiUsers]] are recommended to subscribe to this page's RSS
+posted. [[Jasatamanjogja]] are recommended to subscribe to this page's RSS
 feed.
 
 [[!inline pages="news/* and !news/*/* and !news/discussion"

update for rename of ikiwikiusers.mdwn to jasatamanjogja.mdwn
diff --git a/doc/bugs/edits_not_showing_up_in_compiled_pages.mdwn b/doc/bugs/edits_not_showing_up_in_compiled_pages.mdwn
index 9f1e89397..1345c0b17 100644
--- a/doc/bugs/edits_not_showing_up_in_compiled_pages.mdwn
+++ b/doc/bugs/edits_not_showing_up_in_compiled_pages.mdwn
@@ -1,5 +1,5 @@
 I edited some pages on the ikiwiki ikiwiki ([[/shortcuts]] and
-[[/ikiwikiusers]]).  The edits show up in RecentChanges and History, but not
+[[/jasatamanjogja]]).  The edits show up in RecentChanges and History, but not
 in the compiled pages.  --[[JoshTriplett]]
 
 Well, I seem to have fixed this now (crossed fingers) --[[Joey]]

update for rename of ikiwikiusers.mdwn to jasatamanjogja.mdwn
diff --git a/doc/jasatamanjogja/discussion.mdwn b/doc/jasatamanjogja/discussion.mdwn
index 2c211b097..52acd941a 100644
--- a/doc/jasatamanjogja/discussion.mdwn
+++ b/doc/jasatamanjogja/discussion.mdwn
@@ -32,7 +32,7 @@ Hopefully I will be one of the ikiwiki users one day :) cheers --[[Chao]]
 
 ----
 
-Are there automated hosting sites for ikiwiki yet?  If you know one, can you add one in a new section on [[ikiwikiusers]] please?  If you don't know any and you're willing to pay to set one up (shouldn't be much more expensive than a single ikiwiki IMO), [contact me](http://www.ttllp.co.uk/contact.html) and let's talk. -- MJR
+Are there automated hosting sites for ikiwiki yet?  If you know one, can you add one in a new section on [[jasatamanjogja]] please?  If you don't know any and you're willing to pay to set one up (shouldn't be much more expensive than a single ikiwiki IMO), [contact me](http://www.ttllp.co.uk/contact.html) and let's talk. -- MJR
 
 ----
 

update for rename of ikiwikiusers.mdwn to jasatamanjogja.mdwn
diff --git a/doc/users/KarlMW/discussion.mdwn b/doc/users/KarlMW/discussion.mdwn
index 4a111a3f9..29036669a 100644
--- a/doc/users/KarlMW/discussion.mdwn
+++ b/doc/users/KarlMW/discussion.mdwn
@@ -1,4 +1,4 @@
-When you edited [[ikiwikiusers]] all the utf-8 on the page was removed. Is this an issue with the web browser you used? I've fixed the utf-8 damage. --[[Joey]]
+When you edited [[jasatamanjogja]] all the utf-8 on the page was removed. Is this an issue with the web browser you used? I've fixed the utf-8 damage. --[[Joey]]
 
 > Ooops!  Sorry - yes, my fault - I was using w3m, which spawned nano to edit the text, and I'm not setup for utf-8.  I'll be more careful in future.  --[[KarlMW]]
 

update for rename of ikiwikiusers.mdwn to jasatamanjogja.mdwn
diff --git a/doc/news/stylesheets.mdwn b/doc/news/stylesheets.mdwn
index 86b0ea9c7..65a1ac0e0 100644
--- a/doc/news/stylesheets.mdwn
+++ b/doc/news/stylesheets.mdwn
@@ -6,7 +6,7 @@ going on than you might think, and it's actually all done with xhtml and
 style sheets.
 
 Stefano Zacchiroli came up with the idea of adding a [[css_market]] page
-where [[IkiWikiUsers]] can share style sheets that you've come up with for
+where [[Jasatamanjogja]] can share style sheets that you've come up with for
 ikiwiki. This is a great idea and I encourage those of you who have
 customised stylesheets to post them.
 

update for rename of ikiwikiusers.mdwn to jasatamanjogja.mdwn
diff --git a/doc/competition.mdwn b/doc/competition.mdwn
index 2c782ea92..9a55214d1 100644
--- a/doc/competition.mdwn
+++ b/doc/competition.mdwn
@@ -4,7 +4,7 @@ files stored in a [[VCS|rcs]]. My
 [first blog about ikiwiki](http://kitenet.net/~joey/blog/entry/seeking_wiki/)
 looked at some projects that were semi-close, and found them wanting.
 
-My hope was that besides being useful to all its [[users|ikiwikiusers]],
+My hope was that besides being useful to all its [[users|jasatamanjogja]],
 ikiwiki would help spread its underlying concepts. Let a thousand flowers
 bloom! These are some that have sprung up since. --[[Joey]]
 

update for rename of ikiwikiusers.mdwn to jasatamanjogja.mdwn
diff --git a/doc/users.mdwn b/doc/users.mdwn
index cc3cf5268..9ffd89753 100644
--- a/doc/users.mdwn
+++ b/doc/users.mdwn
@@ -1,4 +1,4 @@
-See [[IkiwikiUsers]] for the list of sites using ikiwiki.
+See [[Jasatamanjogja]] for the list of sites using ikiwiki.
 
 Users of this wiki, feel free to create a subpage of this one and talk
 about yourself on it, within reason. You can link to it to sign your

rename ikiwikiusers.mdwn to jasatamanjogja.mdwn
diff --git a/doc/ikiwikiusers.mdwn b/doc/jasatamanjogja.mdwn
similarity index 100%
rename from doc/ikiwikiusers.mdwn
rename to doc/jasatamanjogja.mdwn
diff --git a/doc/ikiwikiusers/discussion.mdwn b/doc/jasatamanjogja/discussion.mdwn
similarity index 100%
rename from doc/ikiwikiusers/discussion.mdwn
rename to doc/jasatamanjogja/discussion.mdwn

include the parent page for comments in the comment moderation view
diff --git a/doc/todo/include_parent_page_in_moderated_comments.mdwn b/doc/todo/include_parent_page_in_moderated_comments.mdwn
new file mode 100644
index 000000000..45f7c631b
--- /dev/null
+++ b/doc/todo/include_parent_page_in_moderated_comments.mdwn
@@ -0,0 +1 @@
+Within the CGI form for moderating comments, it would be useful to have more contextual information about a comment, in particular the page to which it would be attached were it to be approved. *— [[Jon]], 2020-06-01*

diff --git a/doc/todo/moderated_comments_notification.mdwn b/doc/todo/moderated_comments_notification.mdwn
index 389e53f25..2fddbcd9f 100644
--- a/doc/todo/moderated_comments_notification.mdwn
+++ b/doc/todo/moderated_comments_notification.mdwn
@@ -6,4 +6,6 @@ anyone worked on a patch or plugin for that? maybe it could be another plugin th
 
 alternatively, i'm thinking of a cronjob that runs daily and notifies me of new comments...
 
+update: I ended up doing the latter, see [[todo/commandline_comment_moderation]].
+
 -- [[anarcat]]

improved on this system quite a bit
diff --git a/doc/todo/commandline_comment_moderation.mdwn b/doc/todo/commandline_comment_moderation.mdwn
index 429c11536..a72fb31b2 100644
--- a/doc/todo/commandline_comment_moderation.mdwn
+++ b/doc/todo/commandline_comment_moderation.mdwn
@@ -1,4 +1,4 @@
-So I have enabled the [[moderatedcomments]] plugin on my wiki. and good thing that! around 1000 spammy comments showed up in the last 3 months! Awful!
+So I have enabled the [[plugins/moderatedcomments]] plugin on my wiki. and good thing that! around 1000 spammy comments showed up in the last 3 months! Awful!
 
 It's pretty hard to figure out the ham and the spam in there. One thing I was hoping was to use the power of the commandline to filter through all that stuff. Now, it seems there's only a "ikiwiki-comment" tool now, and nothing to examine the moderated comments.
 
@@ -58,3 +58,48 @@ The remaining 42 comments I reviewed throught the web interface, then flushed us
  --[[anarcat]]
 
 Update: i made a script, above. And the banlist is much larger now so the above list is pretty much out of date now... --[[anarcat]]
+
+Another update, 2020: I rewrote the script to support interactive batch approval and running from a cron job. I have published the [script in my own repo](https://gitlab.com/anarcat/scripts/blob/master/ikiwiki-comment-moderation) since it's python (and not perl), but I would be happy to provide it as a patch here if that's acceptable.
+
+The basic usage is as follows. First, you add the script in a cron job:
+
+    9 * * * * /home/anarcat/bin/ikiwiki-comment-moderation --source-dir=$HOME/source/
+
+This will run every hour. When there are no comments to moderate, the script is silent and you will not get mail. Otherwise you will get something like this:
+
+    date                    ip               user            subject    content
+    2020-05-27T03:42:05Z    192.168.0.116    spammer name    subject    spammy comment
+    1 comments pending moderation
+
+Then you can either go through the web interface to approve/deny the
+comments, or call the script by hand, interactively, for example:
+
+    w-anarcat@marcos:~/source$ ~anarcat/bin/ikiwiki-comment-moderation --source-dir=$HOME/source -i --verbose
+    Date : 2020-05-27T04:00:23Z
+    Ip : 192.168.0.116         
+    Claimedauthor : spammer name
+    Subject : subject          
+    Content : spammy comment   
+    approve, delete, ignore? [a/d/I] a
+    moving /home/w-anarcat/source/.ikiwiki/transient/blog/2020-04-27-drowning-camera/comment_1_07f43231a14d0ee6e78d1030aa6a7985._comment_pending to /home/w-anarcat/source/blog/2020-04-27-drowning-camera/comment_1_07f43231a14d0ee6e78d1030aa6a7985._comment
+    adding to git...           
+    [master 8f5cb10f] approve comment
+     1 file changed, 9 insertions(+)
+     create mode 100644 blog/2020-04-27-drowning-camera/comment_1_07f43231a14d0ee6e78d1030aa6a7985._comment
+    Énumération des objets: 8, fait.
+    Décompte des objets: 100% (8/8), fait.
+    Compression par delta en utilisant jusqu'à 12 fils d'exécution
+    Compression des objets: 100% (5/5), fait.
+    Écriture des objets: 100% (5/5), 566 bytes | 566.00 KiB/s, fait.
+    Total 5 (delta 3), réutilisés 0 (delta 0)
+    To /home/w-anarcat/source.git
+       91669038..8f5cb10f  master -> master
+    approved comment
+
+And you're done! In the above case, the test comment was actually
+approved (by pressing `a`), but you can also hit `d` to just delete
+the comment. The default (`i`) is to ignore the comment.
+
+I find that this is generally faster than going through a web browser, although to be as fast as the CGI interface, there would need to be a final dialog that says "delete all ignored comments" like in the CGI. Exercise for the reader or, I guess, myself when I got too many junk comments to process...
+
+Feedback, as usual, welcome. -- [[anarcat]]

diff --git a/doc/todo/moderated_comments_notification.mdwn b/doc/todo/moderated_comments_notification.mdwn
new file mode 100644
index 000000000..389e53f25
--- /dev/null
+++ b/doc/todo/moderated_comments_notification.mdwn
@@ -0,0 +1,9 @@
+i gave up on [[todo/anti-spam_protection]] protection and -- or rather -- i switched to the nuclear bomb of antispam and enabled [[plugins/moderatedcomments]] on all pages except for real users, which requires a password to create (although see [[bugs/emailauth_bypasses_account__95__creation__95__password]] for a caveat on that).
+
+i find it strange that i get a new content notification when a comment gets approved, but not when i should be moderating one. i understand i might not want to trigger an email when spam comes in, but maybe that would be better in my workflow? my main goal is to keep spam from contaminating my git history, so moderatedcomments, even if it sends me spam notifications, would still be useful.
+
+anyone worked on a patch or plugin for that? maybe it could be another plugin that would run a `check_content` hook *after* moderatedcomments? how are those ordered anyways?
+
+alternatively, i'm thinking of a cronjob that runs daily and notifies me of new comments...
+
+-- [[anarcat]]

Report from troulble editing a page from mobile
diff --git a/doc/bugs/responsive__95__layout_does_not_workin_in_edit_mode.mdwn b/doc/bugs/responsive__95__layout_does_not_workin_in_edit_mode.mdwn
new file mode 100644
index 000000000..bd2a861a1
--- /dev/null
+++ b/doc/bugs/responsive__95__layout_does_not_workin_in_edit_mode.mdwn
@@ -0,0 +1,7 @@
+The responsive_layout option (which flags ikiwiki pages as not broken on small displays) is not applied in edit mode (or other CGI generated pages).
+
+This can be verified easily by checking the meta tags in the pages's source or using Firefox's page info (Ctrl-i), which contains a `width=device-width, initial-scale=1` viewport option in rendered pages but not the editing.
+
+As a result, page editing from mobile is tedious, as it involves scrolling around not only in the edit window but also the scrolled page as a whole.
+
+I've given it a try with a local copy of a saved page into which the meta was edited, and the page could be edited much more smoothly on mobile when the meta was set on the edit page (as was expected -- it works well on the regular pages, after all). There was still some scrolliness due to the large width of the commit message field, but that could be a bug in the used theme and even so does not limit the usefulness of setting this on *all* generated pages as long as the theme is basically responsive.

diff --git a/doc/tips/user_command.mdwn b/doc/tips/user_command.mdwn
new file mode 100644
index 000000000..795f4638e
--- /dev/null
+++ b/doc/tips/user_command.mdwn
@@ -0,0 +1,13 @@
+After battling with the oneliners in [[tips/inside_dot_ikiwiki]], I have expanded them into a full script ([current snapshot](https://gitlab.com/anarcat/scripts/-/blob/836bda6929f23fae49f8d4cf75e88ca6cc55152b/ikiwiki-user), [latest](https://gitlab.com/anarcat/scripts/blob/master/ikiwiki-user)).
+
+It has three commands:
+
+ * `list`: just list the users as a TSV (tab-separated list)
+ * `dump`: use `Data::Dumper` to dump the entire database, as done in the oneliners
+ * `delete`: delete the given user, or interactively approve all users one by one
+
+It's kind of rough right now, but it helped me deal with the [[bugs/emailauth_bypasses_account__95__creation__95__password]] problem, as a crude [[todo/anti-spam_protection]]. In particular, it "vendors" the lock mechanisms because `lockwiki` and `unlockwiki` are not exported by the `IkiWiki` module, which is unfortunate.
+
+It could be improved significantly: for example, the `delete` command could use a "time" argument to review only the accounts created after a certain date, instead of reviewing the entire list each time. I just couldn't be bothered with the date parsing.
+
+I would be happy to see this command land in ikiwiki itself, under a GPL-2+ or whatever open license. :) -- [[anarcat]]

more spam problems...
diff --git a/doc/bugs/emailauth_bypasses_account__95__creation__95__password.mdwn b/doc/bugs/emailauth_bypasses_account__95__creation__95__password.mdwn
new file mode 100644
index 000000000..47c2897b7
--- /dev/null
+++ b/doc/bugs/emailauth_bypasses_account__95__creation__95__password.mdwn
@@ -0,0 +1,39 @@
+I have had the following in my `ikiwiki.setup` since 2016:
+
+    account_creation_password: XXXXXXXXXXXX
+
+The XXX is made of lowercase, uppercase and digits, randomly generated. I would expect this to stop any account creation. Yet new accounts get created all the time:
+
+    w-anarcat@marcos:~/source/.ikiwiki$ perl -le 'use Storable; my $userinfo=Storable::retrieve("userdb"); print $userinfo->{$_}->{regdate} foreach keys %$userinfo'  | sort -n | tail -10
+    1587487021
+    1587574304
+    1587695540
+    1587770285
+    1588354442
+    1588409505
+    1589257010
+    1589834234
+    1590175162
+    1590176201
+
+The last two timestamps, for example, are today. I'm not absolutely certain, but I believe that account is an [[plugins/emailauth]] account:
+
+          'zemihaso_hfdsf.sadsdskfm.com' => {
+                                              'regdate' => 1590175162,
+                                              'passwordless' => 'd8de5ec25cfd68e64318fe6353c6428a',
+                                              'subscriptions' => 'comment(blog/2020-04-27-drowning-camera)',
+                                              'email' => 'zemihaso@hfdsf.sadsdskfm.com'
+                                            },
+
+It's obviously a spammer. It seems to be attacking my wiki by doing the following:
+
+ 1. register an account with emailauth
+ 2. subscribe to the page
+ 3. spam the page with a comment
+ 4. which then sends email to the victim(s)
+
+It's all kind of a mess. I'm at the point in my [[todo/anti-spam_protection]] where I am seriously considering disabling all user registration and all comments on all pages. Maybe delegate this to Mastodon or some other third-party commenting system, because I'm just tired of dealing with spam and bounces...
+
+Anyone else seeing this? Shouldn't the `account_creation_password` setting apply to emailauth? What else am I missing?
+
+Thanks! -- [[anarcat]]

remove broken link
diff --git a/doc/tips/follow_wikilinks_from_inside_vim.mdwn b/doc/tips/follow_wikilinks_from_inside_vim.mdwn
index e7258f42d..b8d071a43 100644
--- a/doc/tips/follow_wikilinks_from_inside_vim.mdwn
+++ b/doc/tips/follow_wikilinks_from_inside_vim.mdwn
@@ -39,10 +39,6 @@ Copy the `ikiwiki_nav.vim` file to your `.vim/ftplugin` directory.
 The official releases of the plugin are in the
 [vim.org script page](http://www.vim.org/scripts/script.php?script_id=2968)
 
-The latest version of this script can be found in the following location 
-
-<http://git.devnull.li/cgi-bin/gitweb.cgi?p=ikiwiki-nav.git;a=blob;f=ftplugin/ikiwiki_nav.vim;hb=HEAD>
-
 Any feedback you can provide is appreciated; the contact details can be found
 inside the plugin
 

diff --git a/doc/sandbox.mdwn b/doc/sandbox.mdwn
index 5e3966da0..db8aa639a 100644
--- a/doc/sandbox.mdwn
+++ b/doc/sandbox.mdwn
@@ -8,6 +8,10 @@ Sure it is.sss
 
 I hope baby.
 
+~~~
+Lorem ipsum dolor sit amet, consectetur adipiscing elit.
+~~~
+
 Nope my friend.
 
 List:

fix formatting in code samples
diff --git a/doc/todo/require_CAPTCHA_to_edit.mdwn b/doc/todo/require_CAPTCHA_to_edit.mdwn
index ad38d9235..921e6254a 100644
--- a/doc/todo/require_CAPTCHA_to_edit.mdwn
+++ b/doc/todo/require_CAPTCHA_to_edit.mdwn
@@ -91,6 +91,7 @@ ignored.
 >>>> prusue my idea of not doing the captcha validation in the validate
 >>>> hook.
 
+[[!format diff """
 --- a/IkiWiki/Plugin/openid.pm
 +++ b/IkiWiki/Plugin/openid.pm
 @@ -18,6 +18,7 @@ sub getopt () {
@@ -129,6 +130,7 @@ ignored.
  		return_to => IkiWiki::cgiurl(do => "postsignin"),
  		trust_root => $config{cgiurl},
 
+"""]]
 
 Instructions
 =====
@@ -136,8 +138,10 @@ Instructions
 You need to go to <http://recaptcha.net/api/getkey> and get a key set.
 The keys are added as options.
 
-	reCaptchaPubKey => "LONGPUBLICKEYSTRING",
-	reCaptchaPrivKey => "LONGPRIVATEKEYSTRING",
+[[!format perl """
+reCaptchaPubKey => "LONGPUBLICKEYSTRING",
+reCaptchaPrivKey => "LONGPRIVATEKEYSTRING",
+"""]]
 
 You can also use "signInSSL" if you're using ssl for your login screen.
 
@@ -146,6 +150,7 @@ The following code is just inline.  It will probably not display correctly, and
 
 ----------
 
+[[!format perl """
 #!/usr/bin/perl
 # Ikiwiki password authentication.
 package IkiWiki::Plugin::recaptcha;
@@ -327,3 +332,4 @@ sub check_answer {
 }
 
 1;
+"""]]

inline feeds should optionally have their content elided
diff --git a/doc/todo/inline_feeds_should_optionally_have_their_content_elided.mdwn b/doc/todo/inline_feeds_should_optionally_have_their_content_elided.mdwn
new file mode 100644
index 000000000..6c997ff03
--- /dev/null
+++ b/doc/todo/inline_feeds_should_optionally_have_their_content_elided.mdwn
@@ -0,0 +1,16 @@
+[[!tag wishlist]]
+[[plugins/inline]] has a parameter `archive` which enables displaying
+metadata about matching pages (title, date) rather than their full
+contents. This does not influence the content of any generated feeds:
+they always include the full content.
+
+There should be a way to elide the content of inlined pages in generated
+feeds, either by doing so when `archive=yes` is set (potentially changing
+the behaviour of existing deployments, but less configuration cruft) or
+adding yet further configuration options to `inline`.
+
+use-case: I want to generate a (semi-private) feed of every blog post I
+have ever written, both on my live site and on my test one, so I can
+compare the publication dates. (some blog posts have dates fixed by
+meta directives; other rely on the file ctime, which is not preserved
+in the parent git repositories.) *— [[Jon]], 2020-04-27*

how I do this
diff --git a/doc/bugs/map_sorts_by_pagename_and_not_title_when_show__61__title_is_used.mdwn b/doc/bugs/map_sorts_by_pagename_and_not_title_when_show__61__title_is_used.mdwn
index d12414d55..d0e7e48ad 100644
--- a/doc/bugs/map_sorts_by_pagename_and_not_title_when_show__61__title_is_used.mdwn
+++ b/doc/bugs/map_sorts_by_pagename_and_not_title_when_show__61__title_is_used.mdwn
@@ -17,4 +17,10 @@ The [[ikiwiki/directive/map]] directive sort by pagename. That looks kind of odd
 
 >>>> You might want to check if the [[plugins/contrib/report]] plugin solves your problem.  It can sort by title, among other things. --[[KathrynAndersen]]
 
+>>>> I realise OP posted this 10 years ago, but here's how I do it: I generate <https://jmtd.net/log/all/> using
+>>>> `inline` with `archive=yes` and a custom template which defines the LI element content for each post. I then include
+>>>> these inlines (one per calendar year) via *another* template, which has the wrapping UL elements in it. These
+>>>> templates are `.tmpl` files (and live in my custom `templatedir`, although that might not matter) which means
+>>>> they avoid the htmlscrubber. *— [[Jon]], 2020-04-27* 
+
 >> See also: [[todo/sort_parameter_for_map_plugin_and_directive]] --[[smcv]]

removed
diff --git a/doc/users/111.html b/doc/users/111.html
deleted file mode 100644
index 6fcc215b1..000000000
--- a/doc/users/111.html
+++ /dev/null
@@ -1,2 +0,0 @@
-# 22222222222222222222222222222
-<b>xxx</b>

diff --git a/doc/download.mdwn b/doc/download.mdwn
index 61167e375..3890df9f2 100644
--- a/doc/download.mdwn
+++ b/doc/download.mdwn
@@ -37,6 +37,8 @@ own RPM.
 
 NetBSD, Mac OS X, Solaris, and many other platforms: [pkgsrc](http://www.pkgsrc.org/) has an [ikiwiki package](http://pkgsrc.se/www/ikiwiki).
 
+pkg install -U ikiwiki
+
 FreeBSD has ikiwiki in its
 [ports collection](http://www.freshports.org/www/ikiwiki/).