]> sipb.mit.edu Git - ikiwiki.git/commitdiff
Merge branch 'master' into fancypodcast
authorAmitai Schlair <schmonz-web-ikiwiki@schmonz.com>
Thu, 27 Jun 2013 04:50:17 +0000 (00:50 -0400)
committerAmitai Schlair <schmonz-web-ikiwiki@schmonz.com>
Thu, 27 Jun 2013 04:50:17 +0000 (00:50 -0400)
41 files changed:
IkiWiki/Plugin/blogspam.pm
IkiWiki/Plugin/bzr.pm
IkiWiki/Plugin/calendar.pm
IkiWiki/Plugin/comments.pm
IkiWiki/Plugin/notifyemail.pm
IkiWiki/Plugin/osm.pm
IkiWiki/Plugin/theme.pm
debian/changelog
doc/bugs/blogspam_marks_me_as_spam_on_ipv6.mdwn [new file with mode: 0644]
doc/bugs/encoding_issue_in_blogspam_plugin.mdwn [new file with mode: 0644]
doc/bugs/feedpages_does_not_prevent_tags_from_being_aggregated.mdwn [new file with mode: 0644]
doc/bugs/osm_KML_maps_icon_path_have_a_trailing_slash.mdwn
doc/bugs/trail_shows_on_cgi_pages.mdwn
doc/forum/Calendar:_listing_multiple_entries_per_day.mdwn
doc/forum/Can_ikiwiki_be_configured_as_multi_user_blog__63__.mdwn [new file with mode: 0644]
doc/forum/Forward_slashes_being_escaped_as_252F/comment_1_7702cf6d354ab600d6643b075b9f09da._comment [new file with mode: 0644]
doc/forum/How_can_I_prevent_spam__63__.mdwn [new file with mode: 0644]
doc/forum/How_can_I_prevent_spam__63__/comment_1_fd26fb7f1569e8c44ba8262794f938db._comment [new file with mode: 0644]
doc/forum/How_can_I_prevent_spam__63__/comment_2_d098124f005976ee815d25c883bc9106._comment [new file with mode: 0644]
doc/forum/How_can_I_prevent_spam__63__/comment_3_deb434d01aaefa18d2791e48d6c824ae._comment [new file with mode: 0644]
doc/forum/Translating_ikiwiki_interface.mdwn [new file with mode: 0644]
doc/forum/web_service_API__44___fastcgi_support.mdwn
doc/ikiwikiusers.mdwn
doc/news/openid.mdwn
doc/news/version_3.20121016.mdwn [deleted file]
doc/news/version_3.20130518.mdwn [new file with mode: 0644]
doc/plugins/contrib/album/discussion.mdwn
doc/plugins/contrib/mathjax.mdwn [new file with mode: 0644]
doc/style.css
doc/templates/links.mdwn
doc/theme_market.mdwn
doc/themes.mdwn
doc/themes/discussion.mdwn
doc/tips/dot_cgi.mdwn
doc/todo/Calendar:_listing_multiple_entries_per_day_.mdwn
doc/todo/Restrict_formats_allowed_for_comments.mdwn
doc/todo/fancypodcast.mdwn
doc/users/schmonz.mdwn
ikiwiki.spec
po/ikiwiki.pot
templates/page.tmpl

index d32c2f169d643a7db9e9fffc292201a4bf93276e..e48ed729f5439f148e7f70e0d228990cbbe2a0f2 100644 (file)
@@ -53,6 +53,7 @@ sub checkconfig () {
        eval q{
                use RPC::XML;
                use RPC::XML::Client;
+               $RPC::XML::ENCODING = 'utf-8';
        };
        error $@ if $@;
 }
index 72552abccaa96212c5f71d48cefcbb1b21e4498b..99a07d2c0eb2afa5512f6fc96043df6ff24171ff 100644 (file)
@@ -195,7 +195,7 @@ sub rcs_add ($) {
 sub rcs_remove ($) {
        my ($file) = @_;
 
-       my @cmdline = ("bzr", "rm", "--force", "--quiet", "$config{srcdir}/$file");
+       my @cmdline = ("bzr", "rm", "--quiet", "$config{srcdir}/$file");
        if (system(@cmdline) != 0) {
                warn "'@cmdline' failed: $!";
        }
index d443198f69618f28e37821766731b50bc2599306..8ca6dd82680171d8ebae5f88ac9053c327e0ad3d 100644 (file)
@@ -86,8 +86,10 @@ sub format_month (@) {
                my $year  = $date[5] + 1900;
                my $mtag  = sprintf("%02d", $month);
 
-               # Only one posting per day is being linked to.
-               $linkcache{"$year/$mtag/$mday"} = $p;
+               if (! $linkcache{"$year/$mtag/$mday"}) {
+                       $linkcache{"$year/$mtag/$mday"} = [];
+               }
+               push(@{$linkcache{"$year/$mtag/$mday"}}, $p);
        }
                
        my $pmonth = $params{month} - 1;
@@ -221,11 +223,38 @@ EOF
                                $tag='month-calendar-day-link';
                        }
                        $calendar.=qq{\t\t<td class="$tag $downame{$wday}">};
-                       $calendar.=htmllink($params{page}, $params{destpage}, 
-                               $linkcache{$key},
-                               noimageinline => 1,
-                               linktext => $day,
-                               title => pagetitle(IkiWiki::basename($linkcache{$key})));
+                       if (scalar(@{$linkcache{$key}}) == 1) {
+                               # Only one posting on this page
+                               my $page = $linkcache{$key}[0];
+                               $calendar.=htmllink($params{page}, $params{destpage}, 
+                                       $page,
+                                       noimageinline => 1,
+                                       linktext => $day,
+                                       title => pagetitle(IkiWiki::basename($page)));
+                       }
+                       else {
+                               $calendar.=qq{<div class='popup'>$day<div class='balloon'>};
+                               # Several postings on this page
+                               $calendar.=qq{<ul>};
+                               foreach my $page (@{$linkcache{$key}}) {
+                                       $calendar.= qq{\n\t\t\t<li>};
+                                       my $title;
+                                       if (exists $pagestate{$page}{meta}{title}) {
+                                               $title = "$pagestate{$page}{meta}{title}";
+                                       }
+                                       else {
+                                               $title = pagetitle(IkiWiki::basename($page));
+                                       }
+                                       $calendar.=htmllink($params{page}, $params{destpage}, 
+                                               $page,
+                                               noimageinline => 1,
+                                               linktext => $title,
+                                               title => $title);
+                                       $calendar.= '</li>';
+                               }
+                               $calendar.=qq{\n\t\t</ul>};
+                               $calendar.=qq{</div></div>};
+                       }
                        $calendar.=qq{</td>\n};
                }
                else {
index c00bf52752e9326a3ffc40855ed8b130dced74ce..1ef79a27a958a77dde14f75dd34b1b5c75dd5763 100644 (file)
@@ -90,6 +90,15 @@ sub getsetup () {
                        safe => 0,
                        rebuild => 0,
                },
+               comments_allowformats => {
+                       type => 'string',
+                       default => '',
+                       example => 'mdwn txt',
+                       description => 'Restrict formats for comments to (no restriction if empty)',
+                       safe => 1,
+                       rebuild => 0,
+               },
+
 }
 
 sub checkconfig () {
@@ -101,6 +110,8 @@ sub checkconfig () {
                unless defined $config{comments_closed_pagespec};
        $config{comments_pagename} = 'comment_'
                unless defined $config{comments_pagename};
+       $config{comments_allowformats} = ''
+               unless defined $config{comments_allowformats};
 }
 
 sub htmlize {
@@ -128,12 +139,18 @@ sub safeurl ($) {
        }
 }
 
+sub isallowed ($) {
+    my $format = shift;
+    return ! $config{comments_allowformats} || $config{comments_allowformats} =~ /\b$format\b/;
+}
+
 sub preprocess {
        my %params = @_;
        my $page = $params{page};
 
        my $format = $params{format};
-       if (defined $format && ! exists $IkiWiki::hooks{htmlize}{$format}) {
+       if (defined $format && (! exists $IkiWiki::hooks{htmlize}{$format} ||
+                               ! isallowed($format))) {
                error(sprintf(gettext("unsupported page format %s"), $format));
        }
 
@@ -332,7 +349,7 @@ sub editcomment ($$) {
 
        my @page_types;
        if (exists $IkiWiki::hooks{htmlize}) {
-               foreach my $key (grep { !/^_/ } keys %{$IkiWiki::hooks{htmlize}}) {
+               foreach my $key (grep { !/^_/ && isallowed($_) } keys %{$IkiWiki::hooks{htmlize}}) {
                        push @page_types, [$key, $IkiWiki::hooks{htmlize}{$key}{longname} || $key];
                }
        }
index 2c1775f2e81df281a7c7769220acc26ade476cdf..b50a22a00c2e0bc6179a21b22b987d8241282afb 100644 (file)
@@ -78,6 +78,7 @@ sub anonsubscribe ($$) {
 sub notify (@) {
        my @files=@_;
        return unless @files;
+       return if $config{rebuild};
 
        eval q{use Mail::Sendmail};
        error $@ if $@;
index a7baa5f2b968ebb0464a787be7371a26a2f98423..c9650d014aa1348f9c83efb77e87c76f20620452 100644 (file)
@@ -192,6 +192,7 @@ sub process_waypoint {
                }
        }
        $icon = urlto($icon, $dest, 1);
+       $icon =~ s!/*$!!; # hack - urlto shouldn't be appending a slash in the first place
        $tag = '' unless $tag;
        register_rendered_files($map, $page, $dest);
        $pagestate{$page}{'osm'}{$map}{'waypoints'}{$name} = {
index ee94547e90c51dad608b020e1be6bc0a434d38d7..9b84ea7f023d10c6db947f136adb4ed8b8ec72e0 100644 (file)
@@ -9,6 +9,7 @@ sub import {
        hook(type => "getsetup", id => "theme", call => \&getsetup);
        hook(type => "checkconfig", id => "theme", call => \&checkconfig);
        hook(type => "needsbuild", id => "theme", call => \&needsbuild);
+       hook(type => "pagetemplate", id => "theme", call => \&pagetemplate);
 }
 
 sub getsetup () {
@@ -63,4 +64,12 @@ sub needsbuild ($) {
        return $needsbuild;
 }
 
+sub pagetemplate (@) {
+       my %params=@_;
+       my $template=$params{template};
+       if (exists $config{theme} && length $config{theme})  {
+               $template->param("theme_$config{theme}" => 1);
+       }
+}
+
 1
index e6d39fa27b17169b53abd6e19a58b1be69c2c00b..d98af52cffefbc486c65210a62edf2833025a55b 100644 (file)
@@ -1,9 +1,30 @@
-ikiwiki (3.20130505) UNRELEASED; urgency=low
+ikiwiki (3.20130519) UNRELEASED; urgency=low
+
+  * blogspam: Fix encoding issue in RPC::XML call.
+    Thanks, Changaco
+  * comments: The formats allowed to be used in comments can be configured
+    using comments_allowformats.
+    Thanks, Michal Sojka
+  * calendar: When there are multiple pages for a given day, they're
+    displayed in a popup on mouseover.
+    Thanks, Louis
+  * osm: Remove trailing slash from KML maps icon.
+  * page.tmpl: omit searchform, trails, sidebar and most metadata in CGI
+    (smcv)
+
+ -- Joey Hess <joeyh@debian.org>  Sun, 23 Jun 2013 14:02:01 -0400
+
+ikiwiki (3.20130518) unstable; urgency=low
 
   * Fix test suite to not fail when XML::Twig is not installed.
     Closes: #707436
+  * theme: Now <TMPL_IF THEME_$NAME> can be used in all templates when
+    a theme is enabled.
+  * notifyemail: Fix bug that caused duplicate emails to be sent when
+    site was rebuilt.
+  * bzr: bzr rm no longer has a --force option, remove
 
- -- Joey Hess <joeyh@debian.org>  Thu, 09 May 2013 10:47:18 -0400
+ -- Joey Hess <joeyh@debian.org>  Sat, 18 May 2013 16:28:21 -0400
 
 ikiwiki (3.20130504) unstable; urgency=low
 
diff --git a/doc/bugs/blogspam_marks_me_as_spam_on_ipv6.mdwn b/doc/bugs/blogspam_marks_me_as_spam_on_ipv6.mdwn
new file mode 100644 (file)
index 0000000..9b415a8
--- /dev/null
@@ -0,0 +1,8 @@
+I just got this message trying to post to this wiki:
+
+    Error: Sorry, but that looks like spam to blogspam: No reverse DNS entry for 2001:1928:1:9::1
+
+So yeah, it seems I have no reverse DNS for my IPv6 address, which may
+be quite common for emerging IPv6 deployments...
+
+This may be related to [[blogspam_options whitelist vs. IPv6?]].
diff --git a/doc/bugs/encoding_issue_in_blogspam_plugin.mdwn b/doc/bugs/encoding_issue_in_blogspam_plugin.mdwn
new file mode 100644 (file)
index 0000000..92318d1
--- /dev/null
@@ -0,0 +1,34 @@
+[[!tag patch]]
+
+<pre>
+From 5ad35b2805ca50478f07d810e57e7c9b8f4eddea Mon Sep 17 00:00:00 2001
+From: Changaco &lt;changaco@changaco.net>
+Date: Tue, 4 Jun 2013 02:54:35 +0200
+Subject: [PATCH] fix encoding issue in blogspam plugin
+
+RPC::XML uses ascii as default encoding, we have to tell it to use utf8.
+
+Without this, ikiwiki returns "failed to get response from blogspam server"
+every time a non-ascii character is used in a content that needs checking.
+
+---
+ IkiWiki/Plugin/blogspam.pm | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/IkiWiki/Plugin/blogspam.pm b/IkiWiki/Plugin/blogspam.pm
+index d32c2f1..e48ed72 100644
+--- a/IkiWiki/Plugin/blogspam.pm
++++ b/IkiWiki/Plugin/blogspam.pm
+@@ -53,6 +53,7 @@ sub checkconfig () {
+       eval q{
+               use RPC::XML;
+               use RPC::XML::Client;
++              $RPC::XML::ENCODING = 'utf-8';
+       };
+       error $@ if $@;
+ }
+-- 
+1.8.3
+</pre>
+
+[[done]] --[[Joey]] 
diff --git a/doc/bugs/feedpages_does_not_prevent_tags_from_being_aggregated.mdwn b/doc/bugs/feedpages_does_not_prevent_tags_from_being_aggregated.mdwn
new file mode 100644 (file)
index 0000000..a004154
--- /dev/null
@@ -0,0 +1,32 @@
+I added a feedpages directive to `blog/index.mdwn` to not pick up anything tagged `tags/random/hidden` yet that still happenend.
+
+    ~git/richardhartmann.de/blog % grep hidden index.mdwn
+    \[[!inline pages="./posts/*/*/* and !*/Discussion" feedpages="./posts/*/*/* and !*/Discussion and not tagged(tags/random/hidden)" show="10" actions=yes rootpage="blog"]]
+    ~git/richardhartmann.de/blog % grep hidden posts/2013/05/17-Debian_Release_Critical_Bug_report_for_Week_20.mdwn
+    \[[!tag tags/tech/floss/debian tags/tech/floss/debian/rc-stats/8.0-jessie tags/random/hidden]]
+    ~git/richardhartmann.de/blog %
+
+If you need more information, please let me know.
+
+Richard
+
+> I don't think this is a bug. You have a syntax error in your pagespec:
+> "not" is not a recognised keyword in [[pagespecs|ikiwiki/pagespec]],
+> so `and not tagged(...)` should be `and !tagged(...)`. Presumably inline
+> falls back to `pages` when `feedpages` doesn't work.
+>
+> By posting the pagespec here with insufficient escaping (which I've fixed)
+> you caused *this* ikiwiki instance's HTML to contain an error message
+> illustrating that syntax error :-)
+>
+>     <span class="error">Error: syntax error in pagespec "(./posts/*/*/* and !*/Discussion) and (./posts/*/*/* and !*/Discussion and not tagged(tags/random/hidden))"</span>
+>
+> [[done]]. --[[smcv]]
+
+> > As per IRC: Thanks. As an aside, shouldn't this ikiwiki instance ignore directives in normal text? The problem may be non-trivial, but still... -- Richard
+
+>>> "Normal text" is exactly where directives go, so, not really.
+>>> If you mean verbatim text (e.g. indentation in Markdown): the fact that
+>>> directives still expand to HTML, which is then treated as verbatim, is an
+>>> unfortunate result of how ikiwiki interacts with pages' markup languages
+>>> (directives and wikilinks happen before markup is converted to HTML). --[[smcv]]
index 0677d0e74725cbac67a11c18ef95038d3f8c4cc1..a3a88d138b8098326485c51403f5c202a099a609 100644 (file)
@@ -30,3 +30,5 @@ index a7baa5f..c9650d0 100644
 """]]
 
 I'm not writing this to a branch out of sheer shame of my misunderstanding. ;) There also may be a workaround that could be done in Nginx too. --[[anarcat]]
+
+> [[applied|done]], but I'm not happy with this either --[[Joey]]
index 74f329fbca178fdf1992ee6f6ec8f70c5e1f1544..af1de30284ffdd8233e4389ca6a1740e5fc5190e 100644 (file)
@@ -1,3 +1,12 @@
 When commenting on, or I think editing, a page that uses the trail
 plugin, the trail is displayed across the top of the page. This should not
 happen, probably. --[[Joey]] 
+
+> [[!template id=gitbranch branch=smcv/ready/no-trails-if-dynamic author="[[smcv]]"]]
+> [[!tag patch]]
+> Fixed in my branch. --[[smcv]]
+
+>> [[merged|done]], although I am ambivilant about hiding the search box,
+>> and unsure about hiding the sidebar. At least the latter fixes an
+>> annoying layout problem with the comment page, where the textarea
+>> appears below the sidebar due to its width. --[[Joey]]
index 251cd6d9f9cfb22e5c92651dce6f02a426308316..c3ecf36bece9652c39df300cda6e13b408f0a7f8 100644 (file)
@@ -17,3 +17,5 @@ and a suitable whilst loop looks to be all that's needed...
 Any pointers appreciated.
 
 A [[!taglink patch]] has been proposed in [comment](#comment-d6f94e2b779d1c038b6359aad79ed14b)
+
+> This has been applied. --[[Joey]]
diff --git a/doc/forum/Can_ikiwiki_be_configured_as_multi_user_blog__63__.mdwn b/doc/forum/Can_ikiwiki_be_configured_as_multi_user_blog__63__.mdwn
new file mode 100644 (file)
index 0000000..118b534
--- /dev/null
@@ -0,0 +1,7 @@
+All the ikiwiki blogs I have seen have a single user blog. Is it possible to give every user a blog, where they can create their own pages in their own directory = based on their user name? 
+
+I feel that a wiki might give more options in the way users share and collaborate when compared to a blog engine (like Word Press in multi user format)
+
+Is this the best place to post a question like this? There doesn't seem to be much traffic in this forum
+Thanks for your help
+Richard
diff --git a/doc/forum/Forward_slashes_being_escaped_as_252F/comment_1_7702cf6d354ab600d6643b075b9f09da._comment b/doc/forum/Forward_slashes_being_escaped_as_252F/comment_1_7702cf6d354ab600d6643b075b9f09da._comment
new file mode 100644 (file)
index 0000000..7c9ccbc
--- /dev/null
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawm6gCEo_Z36OJ7x5kyZn52lEVvyjn3zSUc"
+ nickname="Ángel"
+ subject="comment 1"
+ date="2013-05-31T16:03:03Z"
+ content="""
+Simply add the NE (No escape) flag:
+
+RewriteEngine on
+RewriteCond %{HTTP_HOST} ^www\.ciffer\.net$
+RewriteRule /(.*) http://ciffer.net/$1 [L,R,NE]
+"""]]
diff --git a/doc/forum/How_can_I_prevent_spam__63__.mdwn b/doc/forum/How_can_I_prevent_spam__63__.mdwn
new file mode 100644 (file)
index 0000000..44e3192
--- /dev/null
@@ -0,0 +1,17 @@
+I am getting continuous spam like this:
+
+    discussion  85.25.146.11  web  11:02:19 05/17/13  2rand[0,1,1]
+    discussion  85.25.146.11  web  11:02:13 05/17/13  2rand[0,1,1]
+
+The bot uses an IP address as the username and puts '2rand[0,1,1]' as comment text.
+
+I do not have a page 'discussion' in use, so I have redirected this page with an apache2
+Alias to a static page, just in case anyone stumbles on it.  This means it cannot really 
+be edited via the web. However the bots that post 
+this spam are evidently not opening the page to edit it, but merely sending a cgi request 
+as if they had edited the page.  The result is that no damage is done on the site and no 
+benefit is achieved for the spammer since google cannot see the result.  However, the 
+logs are stuffed with spurious entries and a page is constantly recompiled, which wastes 
+resources.  
+
+Is there some way to reject edits that do not arise from an established session?
diff --git a/doc/forum/How_can_I_prevent_spam__63__/comment_1_fd26fb7f1569e8c44ba8262794f938db._comment b/doc/forum/How_can_I_prevent_spam__63__/comment_1_fd26fb7f1569e8c44ba8262794f938db._comment
new file mode 100644 (file)
index 0000000..a729328
--- /dev/null
@@ -0,0 +1,19 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ nickname="joey"
+ subject="comment 1"
+ date="2013-05-17T17:55:46Z"
+ content="""
+Normally ikiwiki requires a valid session cookie of a logged in user to edit pages. It sounds like you may have the opendiscussion or anonok plugins enabled, which allows anyone to edit without logging in. Recommend disabling them.
+
+Since you know the spammer's IP, put it into ikiwiki.setup:
+
+<pre>
+banned_users:
+  - ip(85.25.146.11)
+</pre>
+
+If the user was logging in, you could also put their username in the ban list.
+
+You can also try enabling the blogspam plugin.
+"""]]
diff --git a/doc/forum/How_can_I_prevent_spam__63__/comment_2_d098124f005976ee815d25c883bc9106._comment b/doc/forum/How_can_I_prevent_spam__63__/comment_2_d098124f005976ee815d25c883bc9106._comment
new file mode 100644 (file)
index 0000000..53e7433
--- /dev/null
@@ -0,0 +1,16 @@
+[[!comment format=mdwn
+ username="http://claimid.com/richard-lyons"
+ nickname="richard-lyons"
+ subject="comment 2"
+ date="2013-05-17T20:56:23Z"
+ content="""
+I did indeed have opendiscussion active.  I shall wait to see what happens after disabling it.
+
+The bots seem to make 5 consecutive edits at short intervals (around 2 minutes) using an IP 
+address as a username.  I do not know if the IP is the one from which they work.  There are 
+usually two or three sets of five edits using different IP addresses as username in each hour.
+
+I did try blocking specific IPs but they constantly change.
+
+It would be good if blocking could match a regexp, but as far as I can see this is not an option,
+"""]]
diff --git a/doc/forum/How_can_I_prevent_spam__63__/comment_3_deb434d01aaefa18d2791e48d6c824ae._comment b/doc/forum/How_can_I_prevent_spam__63__/comment_3_deb434d01aaefa18d2791e48d6c824ae._comment
new file mode 100644 (file)
index 0000000..64783be
--- /dev/null
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="http://claimid.com/richard-lyons"
+ nickname="richard-lyons"
+ subject="SOLVED -- How can I prevent spam?"
+ date="2013-05-18T08:13:19Z"
+ content="""
+I can now confirm that this particular attack has stopped after removing the opendiscussion plugin.
+"""]]
diff --git a/doc/forum/Translating_ikiwiki_interface.mdwn b/doc/forum/Translating_ikiwiki_interface.mdwn
new file mode 100644 (file)
index 0000000..4003302
--- /dev/null
@@ -0,0 +1,2 @@
+I am using ikiwiki for a spanish language wiki. I've read the [[translation]] page and [[plugins/po]] plugin page but it is not completely clear to me. As I understand it the po plugin is the recommended way to create translated versions of existing pages in your wiki based on a master language.  But I actually don't need that as myself and other users already edit the wiki in spanish.  What I would actually like is to have the ikiwiki interface itself translated into spanish. 
+Is it possible to have my wiki always appear in spanish? I can see that the debian package already includes po files for spanish.  How do i activate the spanish translation permanently? Did I miss something obvious?
index 4a78fb932e92ba6380d05cff0f97fe0728bc1470..84b227eef1980d8b948f4ea43dbb8a74800efacb 100644 (file)
@@ -11,3 +11,8 @@ Anyway - I've realised that a big part of the interactive todo lists stuff is tr
 Second, and in a way related, I've been mooting hacking fastcgi support into ikiwiki. Essentially one ikiwiki.cgi process would persist and serve CGI-ish requests on stdin/stdout. The initial content-scanning and dependency generation would happen once and not need to be repeated for future requests. Although, all state-changing operations would need to be careful to ensure the in-memory models were accurate. Also, I don't know how suited the data structures would be for persistence, since the current model is build em up, throw em away, they might not be space-efficient enough for persistence.
 
 If I did attempt this, I would want to avoid restructuring things in a way which would impair ikiwiki's core philosophy of being a static compiler. -- [[Jon]]
+
+> This is quite interesting! There is a related discussion about FastCGI
+> support (and therefore better support for Nginx, for example) in
+> [[todo/fastcgi_or_modperl_installation_instructions/]]... --
+> [[anarcat]]
index 6b657c8ff8d1bed83f9d405881e822ddbb51f9d8..ecba46e03227a4bb28a25e1886416c82426c1451 100644 (file)
@@ -19,7 +19,7 @@ Projects & Organizations
 ========================
 
 * [This wiki](http://ikiwiki.info) (of course!)
-<!-- * [NetBSD wiki](http://wiki.netbsd.org) -->
+* [NetBSD wiki](http://wiki.netbsd.org)
 * The [GNU Hurd](http://www.gnu.org/software/hurd/)
 * [DragonFly BSD](http://www.dragonflybsd.org/)
 * [Monotone](http://wiki.monotone.ca/)
@@ -88,6 +88,9 @@ Projects & Organizations
 * [The RS-232 Club](http://rs232club.org)
 * [FusionInventory project](http://www.fusioninventory.org)
 * FabLab Deventer i.o.
+* [Börn og tónlist](http://bornogtonlist.net/) - an Icelandic open-content site, primarily for kindergarten teachers, about music and music-related activites with children. Migrated from MediaWiki to IkiWiki in June 2013. Heavily changed appearance with only minimal changes to page.tmpl.
+* [Réseaulibre.ca](http://wiki.reseaulibre.ca) - a mesh project in Montréal, most data is stored in the wiki, including IP address allocation and geographic data. Features map ([[plugins/osm]]) integration.
+* [Foufem](http://foufem.orangeseeds.org/) - Foufem, a feminist hackerspace
 
 Personal sites and blogs
 ========================
@@ -191,3 +194,5 @@ Personal sites and blogs
 * [WikiAtoBR](http://wiki.hi.ato.br) Open, free and annoymous wiki. No need for account registering and login. It is Brazilian so it is in Portuguese.
 * [Manifesto](http://manifesto.hi.ato.br) Open, free and annoymous blog. No need for account registering and login. It is Brazilian so it is in Portuguese.
  * [Z is for Zombies](http://blog.zouish.org/) — personal blog/site of Francesca Ciceri
+* Julien Lefrique's [homepage](http://julien.lefrique.name/), hosted on [GitHub pages](https://github.com/jlefrique/jlefrique.github.com) with CGI disabled
+* [Anarcat's homepage](http://anarcat.ath.cx/) - with a custom [[theme|theme_market]]
index 8f04c5e90496b499c8d830b87102c937924e7c15..0f4b8b5bf560d2299fa5c4722458641d1b1ab880 100644 (file)
@@ -10,4 +10,4 @@ log back in, try out the OpenID signup process if you don't already have an
 OpenID, and see how OpenID works for you. And let me know your feelings about
 making such a switch. --[[Joey]]
 
-[[!poll 70 "Accept only OpenID for logins" 21 "Accept only password logins" 46 "Accept both"]]
+[[!poll 70 "Accept only OpenID for logins" 21 "Accept only password logins" 47 "Accept both"]]
diff --git a/doc/news/version_3.20121016.mdwn b/doc/news/version_3.20121016.mdwn
deleted file mode 100644 (file)
index 62cb397..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-ikiwiki 3.20121016 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
-   * monochrome: New theme, contributed by Jon Dowland.
-   * rst: Ported to python 3, while still also being valid python 2.
-     Thanks, W. Trevor King
-   * Try to avoid a situation in which so many ikiwiki cgi wrapper programs
-     are running, all waiting on some long-running thing like a site rebuild,
-     that it prevents the web server from doing anything else. The current
-     approach only avoids this problem for GET requests; if multiple cgi's
-     run GETs on a site at the same time, one will display a "please wait"
-     page for a configurable number of seconds, which then redirects to retry.
-     To enable this protection, set cgi\_overload\_delay to the number of
-     seconds to wait. This is not enabled by default.
-   * Add back a 1em margin between archivepage divs.
-   * recentchangesdiff: Correct broken template that resulted in duplicate
-     diff icons being displayed, and bloated the recentchanges page with
-     inline diffs when the configuration should have not allowed them."""]]
\ No newline at end of file
diff --git a/doc/news/version_3.20130518.mdwn b/doc/news/version_3.20130518.mdwn
new file mode 100644 (file)
index 0000000..635b869
--- /dev/null
@@ -0,0 +1,9 @@
+ikiwiki 3.20130518 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+   * Fix test suite to not fail when XML::Twig is not installed.
+     Closes: #[707436](http://bugs.debian.org/707436)
+   * theme: Now &lt;TMPL\_IF THEME\_$NAME&gt; can be used in all templates when
+     a theme is enabled.
+   * notifyemail: Fix bug that caused duplicate emails to be sent when
+     site was rebuilt.
+   * bzr: bzr rm no longer has a --force option, remove"""]]
\ No newline at end of file
index cdb8353e5bedfc60395ba857a00dce0d5c579ebb..de1180d106f6d953a4bb01eca2b93b83ea02a47b 100644 (file)
@@ -410,3 +410,49 @@ I've integrated the jquery masonry plugin into the albumitem template and it wor
 But is there a way to create thumnails of different sizes? I've passed thumnailsize option
 and value to album directive and while it does create the new thumbnail sizes it doesn't use them,
 The 96x96 thumbnails still appear on the page no matter what I do. - jaime
+
+----
+
+Hi, the plugin looks great, but I am probably too dumb to use it ;( here is what I did:
+created page gal.mdwn with just \[\[!album\]\] directive (no arguments) and subdirectory gal/ with images in form img_1234.jpg
+
+when I run ikiwiki, I get something completely wrong though:
+
+generated gal/index.html page contains following code repeated for every image:
+
+    <div class="album-viewer">
+      <div id="album-img">
+        <div class="album-finish">
+          <a href="./"><span class="album-arrow">↑</span></a>
+        </div>
+      </div>
+    </div>
+
+So no links to any images, etc.
+
+The pages for individual images are generated though, but also not correct. Trails section is perfect, but the main part is wrong:
+
+    <div class="album-prev">
+      <a><span class="album-arrow">â†<90></span></a><br />
+      <div class="album-thumbnail">
+        <span class="selflink">
+          <img src="./96x96-img_2913.jpg" width="96" height="72" alt="img 2913" title="img 2913" class="img" /></span>
+      </div>
+    </div>
+
+This really seems like this should be in the album page and not individul page. It is only thumbnail and not full image. Also the full image is not in the generated html tree at all!
+
+I am using ikiwiki 3.20130518, and got the album sources from the links of [this page](http://ikiwiki.info/plugins/contrib/album/) (part manual installation)
+
+Any hint about what do I do wrong?
+
+Thanks Lukas
+
+> This plugin is not really finished. I probably need to update it for
+> current ikiwiki. I'll try to update it (and also update my demo
+> and installation instructions) at some point. --[[smcv]]
+
+>> I have to appologize, I accidentally copied the template wrongly and that caused all the issues ;(
+>> So now after two days debugging and tracing, I just fixed that and it works. Well, at least a learnt
+>> a lot about ikiwiki internal ;-)
+>> Thanks for all the work you did on the plugin! --Lukas
diff --git a/doc/plugins/contrib/mathjax.mdwn b/doc/plugins/contrib/mathjax.mdwn
new file mode 100644 (file)
index 0000000..a784b95
--- /dev/null
@@ -0,0 +1,13 @@
+[[!template id="plugin" name="mathjax" author="Baldur Kristinsson"]]
+
+The [mathjax plugin](https://github.com/bk/ikiwiki-plugin-mathjax), available on GitHub, provides easy MathJax support for ikiwiki.
+
+Features:
+
+- No change needed to page.tmpl
+- Javascript is only loaded on pages which need it.
+- Both inline and display math are supported.
+- Unlike [[the pandoc plugin|plugins/contrib/pandoc]] or a solution based on editing page.tmpl, no irritating conflicts with the smiley plugin.
+- Unlike the pandoc plugin, it is easy to use in shared hosting or other environments where you have difficulty in installing extra software (beyond Perl modules, obviously).
+
+However, if you need the power of Pandoc, such as bibliography support or pdf generation, then that is probably the better option for you.
index 81b6a0a284832e5d61b6673e1fb1c76dae776a81..067a3bf7a65f4449bcd2452407c137dc5c27dc2b 100644 (file)
@@ -324,6 +324,7 @@ div.progress-done {
 .popup .paren,
 .popup .expand {
        display: none;
+       text-align: left;
 }
 .popup:hover .balloon,
 .popup:focus .balloon {
index 6c66a02ec7d17200f2ffe8f6a6af61c2344ef8e3..4bd1a85bf9559c1d6f38c378f9a696b2f21298b3 100644 (file)
@@ -11,6 +11,6 @@
 <li>[[TipJar]]</li>
 </ul>
 <a href="http://flattr.com/thing/39811/ikiwiki">
-<img src="http://api.flattr.com/button/flattr-badge-large.png"
+<img src="https://api.flattr.com/button/flattr-badge-large.png"
 alt="Flattr this" title="Flattr this" /></a>
 </div>
index 06526df1a2e3dc6ff7c33e343585a3dd4a282f0e..e9bdaa0566e3457a4bcf82742cbcf88710fd5108 100644 (file)
@@ -9,3 +9,5 @@ Feel free to add your own [[theme|themes]] here, but first consider writing a si
  * **[[AntPortal theme|https://github.com/AntPortal/ikiwiked]]**, contributed by Danny, see an example [[on the Antportal wiki|https://antportal.com/wiki/]]
 
  * **[[Night city theme|http://anarcat.ath.cx/night_city/README/]]**, contributed by [[anarcat]], see an example [[on his homepage|http://anarcat.ath.cx/]]
+
+ * **[[Bootstrap theme|http://anonscm.debian.org/gitweb/?p=users/jak/website.git;a=summary]]**, contributed by [[JAK LINUX|http://jak-linux.org/about/]], based on [[Twitter Bootstrap|http://twitter.github.com/bootstrap/]]
index 7df25e66b6528f64a342ffc59c3f718e17dcc91d..e15248360cc6a157f8c60045c8a52b4577d232f2 100644 (file)
@@ -3,7 +3,9 @@ ikiwiki a nice look and feel. The local.css [[CSS]] file is left
 free for you to further customize.
 
 Ikiwiki now comes with several themes contributed by users.
-You can enable the [[theme_plugin|plugins/theme]] to use any of these:
+You can enable the [[theme_plugin|plugins/theme]] to use any of
+these, but you can also deploy custom themes maintained by the
+community from the [[theme market]].
 
 [[!img actiontabs_small.png align=left]] The **actiontabs** theme, contributed by
 [[svend]]. This style sheet displays the action list
index ce79d0f70202ec52184bd061f0352c5f0e2be7e9..5c0766a0625cb4316043f553cb035aa830be2357 100644 (file)
@@ -7,3 +7,14 @@ For an example of the theme in action, see: [[https://antportal.com/wiki/]]
 > Shouldn't we just make people post their themes in the [[themes]] page? Or maybe we should make a [[theme market]]? --[[anarcat]]
 
 > I did just that. -- [[anarcat]]
+
+What is the process for merging a theme in Ikiwiki? It seems to me the
+[[Bootstrap theme|http://www2.tblein.eu/posts/How_to_have_a_nice_design_for_ikiwiki/]]
+could improve the options a lot... See the [[theme market]] for the
+links to the actual theme. -- [[anarcat]]
+
+> Step 1 is to not need two versions of page.tmpl to be maintained.
+> This is, unfortunately, the reason why I have not pulled in the bootstrap
+> theme yet. I recently made `<TMPL_IF THEME_$NAME>` be available,
+> so the page.tmpl could use that to do different things if the boostrap
+> theme was enabled. --[[Joey]]
index dc88d9595ae838a31d2f00ec9e233e07949631f7..9067fbea57c6f3e77cdb2b72d00403a12d096f2c 100644 (file)
@@ -15,7 +15,10 @@ configuration changes should work anywhere.
 
 ## apache 2
 
-* Edit /etc/apache2/apache2.conf and add a line like this:
+* Make sure the cgi module is loaded. (Ie, `a2enmod cgi`)
+
+* Edit /etc/apache2/apache2.conf (or /etc/apache2/mods-available/mime.conf)
+  and add a line like this:
 
        AddHandler cgi-script .cgi
 
@@ -26,8 +29,6 @@ configuration changes should work anywhere.
   Or, if you've put it in a `~/public_html`, edit
   `/etc/apache2/mods-available/userdir.conf`.
 
-  You may also want to install some dependencies to enable CGI in apache2 setup as: `libcgi-formbuilder-perl` and `libcgi-session-perl`.
-
 * If your wiki is in `~/public_html` and does not appear when you enter the URL given by the installer, check that you have 
   the userdir mod enabled (there should be simlinks to userdir.load and userdir.conf in /etc/apache2/modes-enabled).  If not,
   run `a2enmod userdir` and reload apache2.
index 94a4f1577c5f70b3ff1351f0e0e3368635c31b5a..ba01790b3b87f3b76d922289ec33e9091780352e 100644 (file)
@@ -90,3 +90,5 @@ Regards,
      }
      .popup:hover .balloon,
      .popup:focus .balloon {
+
+> [[applied|done]] --[[Joey]]
index cfae38465d184a6d76f051400f95e6e52f86651b..9aee29037eaa9994fae96ee2977d55496dc4aa2f 100644 (file)
@@ -95,3 +95,5 @@ index 285013e..151e839 100644
 </pre>
 
 [[!tag patch]]
+
+> [[done]] --[[Joey]]
index ccf08eeaf904fddf8518d481412b7ddeb2ff1760..64af7e8a9aa12a511fffac3862e0ca08e3ee78f8 100644 (file)
@@ -22,18 +22,18 @@ critical eyes ([[smcv]]?) raking over my diffs. --[[schmonz]]
 
 [[!table data="""
 Feature            |iTunes RSS|iTunes Atom|Downcast RSS|Downcast Atom
-Feed image         |{X}       |{X}        |{X}         |{X}
+Feed image         |          |           |            |
 Feed title         |(./)      |(./)       |(./)        |(./)
-Feed publisher     |{X}       |{X}        |{X}         |{X}
-Feed "category"    |{X}       |{X}        |{X}         |{X}
+Feed publisher     |          |           |            |
+Feed "category"    |          |           |            |
 Feed date          |(./)      |(./)       |(./)        |(./)
-Feed description   |(./)      |(./)       |(./)        |{X}
-Episode image      |{X}       |{X}        |{X}         |{X}
+Feed description   |(./)      |(./)       |(./)        |
+Episode image      |          |           |            |
 Episode title      |(./)      |(./)       |(./)        |(./)
 Episode date       |(./)      |(./)       |(./)        |(./)
-Episode duration   |{X}       |{X}        |{X}         |{X}
-Episode author     |{X}       |{X}        |{X}         |{X}
-Episode description|(./)      |(./)       |(./)        |{X}
+Episode duration   |          |           |            |
+Episode author     |          |           |            |
+Episode description|(./)      |(./)       |(./)        |
 Episode enclosure  |(./)      |(./)       |(./)        |(./)
 """]]
 
@@ -225,3 +225,106 @@ it with ikiwiki instead.
 * Configurably generate additional subscription links (such as
   iTunes) alongside the RSS/Atom ones in [[plugins/inline]].
 * Support Apple's "enhanced podcasts" (if they're still relevant).
+
+### code review
+
+       +                               # XXX better way to compute relative to srcdir?
+       +                               my $file = $absurl;
+       +                               $file =~ s|^$config{url}/||;
+
+I don't think ikiwiki offers a better way to do that, because there is
+normally no reason to do that. Why does it need an url of this form here?
+--[[Joey]] 
+
+> In all the popular, production-quality podcast feeds I've looked
+> at, enclosure URLs are always absolute (even when they could be
+> expressed concisely as relative). [Apple's
+> example](http://www.apple.com/itunes/podcasts/specs.html#example)
+> does too. So I told \[[!meta]] to call `urlto()` with the third
+> parameter true, which means the \[[!inline]] code here gets an
+> absolute URL in `$pagestate{$p}{meta}{enclosure}`. To compute the
+> enclosure's metadata, though, we of course need it as a local path.
+> I didn't see a less
+> [ongepotchket](http://www.jewish-languages.org/jewish-english-lexicon/words/1402)
+> way at the time. If you have a better idea, I'm happy to hear it;
+> if not, I'll add an explanatory comment. --[[schmonz]]
+
+>> I would be more comfortable with this if two two different forms of url
+>> you need were both generated by calling urlto. It'd be fine to call
+>> it more than once. --[[Joey]]
+
+>>> Heh, it was even easier than that! (Hooray for tests.) Done.
+>>> --[[schmonz]]
+
+       +<TMPL_IF HTML5><section id="inlineenclosure"><TMPL_ELSE><div id="inlineenclosure"></TMPL_IF>
+       +<TMPL_IF ENCLOSURE>
+
+Can't we avoid adding this div when there's no enclosure? --[[Joey]]
+
+> Sure, I've moved the `<TMPL_IF ENCLOSURE>` check to outside the
+> section-and-div block for `{,inline}page.tmpl`. --[[schmonz]]
+
+       +<a href="<TMPL_VAR ENCLOSURE>">Download this episode</a>
+
+"Download this episode" is pretty specific to particular use cases.
+Can this be made more generic, perhaps just "Download"? --[[Joey]] 
+
+> Yep, I got a little carried away. Done. --[[schmonz]]
+
+       -<TMPL_IF AUTHOR>
+       -       <title><TMPL_VAR AUTHOR ESCAPE=HTML>: <TMPL_VAR TITLE></title>
+       -       <dcterms:creator><TMPL_VAR AUTHOR ESCAPE=HTML></dcterms:creator>
+
+This change removes the author name from the title of the rss feed, which
+does not seem necessary for fancy podcasts. And it is a change that
+could negatively impact eg, Planet style aggregators using ikiwiki. --[[Joey]]
+
+> While comparing how feeds render in podcatchers, I noticed that
+> RSS and Atom were inconsistent in a couple ways, of which this was
+> one. The way I noticed it: with RSS, valuable title space was being
+> spent to display the author. I figured Atom's display was the one
+> worth matching. You're right, of course, that planets using the
+> default template and somehow relying on the current author-in-the-title
+> rendering for RSS feeds (but not Atom feeds!) would be broken by
+> this change. I'm having trouble imagining exactly what would break,
+> though, since guids and timestamps are unaffected. Would it suffice
+> to provide a note in the changelog warning people to be careful
+> upgrading their planets, and to customize `rssitem.tmpl` if they
+> really prefer the old behavior (or don't want to take any chances)?
+> --[[schmonz]]
+
+>> A specific example I know of is updo.debian.net, when used with
+>> rss2email. Without the author name there, one cannot see who posted
+>> an item. It's worth noting that planet.debian.org does the same thing
+>> with its rss feed. (That's probably what I copied.) Atom feeds may
+>> not have this problem, don't know. --[[Joey]]
+
+>>> Okay, that's easy to reproduce. It looks like this _might_ be
+>>> a simple matter of getting \[[!aggregate]] to populate author in
+>>> `add_page()`. I'll see what I can figure out. --[[schmonz]]
+
+       +++ b/templates/rsspage.tmpl
+       +       xmlns:atom="http://www.w3.org/2005/Atom"
+       +<atom:link href="<TMPL_VAR FEEDURL>" rel="self" type="application/rss+xml" />
+
+Why is it using atom namespace inside an rss feed? What are the chances
+every crummy rss reader on earth is going to understand this? I'd put it at
+about 0%; I doubt ikiwiki's own rss reader understands such a mashup.
+--[[Joey]]
+
+> The validator I used (<http://validator.w3.org/>, I think) told me to.
+> Pretty sure it doesn't make anything work better in the podcatchers
+> I tried. Hadn't considered that it might break some readers.
+> Removed. --[[schmonz]]
+
+       +<generator>ikiwiki</generator>
+
+Does this added tag provide any benefits? --[[Joey]]
+
+> Consistency with the Atom feed, and of course it trumpets ikiwiki
+> to software and/or curious humans who inspect their feeds. The tag
+> arrived only in RSS 2.0, but that's already the version we're
+> claiming to be, and it's over a decade old. Seems much less risky
+> than the atom namespace bits. --[[schmonz]]
+
+>> Sounds ok then. --[[Joey]]
index 84dca19485a67d31fcdbf5f8df407b9eebc44782..97fa1cbd66c11de7b5062f8cb78592249a09e0f4 100644 (file)
@@ -1,20 +1,32 @@
-[Amitai Schlair](http://www.schmonz.com/) uses ikiwiki
-for all sorts of things:
-
-* a undergraduate group's university-provided-static-hosted site
-  (with [[plugins/rsync]] and a [WIND
-  authentication](http://www.columbia.edu/acis/rad/authmethods/wind/)
-  plugin)
-* a major open-source project's wiki (with the [[rcs/cvs]] plugin)
-* team documentation and project planning at work: product and
-  sprint backlogs, burndown charts, release plans/procedures/announcements,
-  aggregating feeds of shared interest, etc. (with the
-  [[plugins/contrib/dynamiccookies]] and [[plugins/contrib/proxies]]
-  plugins)
-* personal to-do and scratch space
-
-ikiwiki contributions:
+[Amitai Schlair](http://www.schmonz.com/) has contributed code to ikiwiki...
 
 [[!map
 pages="!*/Discussion and ((link(users/schmonz) and plugins/*) or rcs/cvs or todo/fancypodcast)"
 ]]
+
+...and uses ikiwiki for all sorts of things:
+
+## Public
+
+* [A major open-source project's wiki](http://wiki.netbsd.org) (with
+  the [[rcs/cvs]] plugin)
+* [An undergraduate group's university-provided-static-hosted
+  site](http://www.columbia.edu/cu/philo/) (with [[plugins/rsync]] and a [WIND
+  authentication](http://www.columbia.edu/acis/rad/authmethods/wind/) plugin)
+* [A small personal site](http://www.anglofish.net/) (happily hosted at
+  [Branchable](http://www.branchable.com/))
+
+## Non-public
+
+* At work, team documentation and project planning: product and sprint
+  backlogs, burndown charts, release plans/procedures/announcements,
+  aggregating feeds of shared interest, etc. (with the
+  [[plugins/contrib/dynamiccookies]] and [[plugins/contrib/proxies]] plugins)
+* On my laptop, personal to-do and scratch space
+* [A small personal site](http://podcast.schmonz.com/) (happily hosted at
+  [Branchable](http://www.branchable.com/))
+
+## Non-yet-ikiwiki
+
+* [My personal web site](http://www.schmonz.com/) (pending
+  [[todo/fancypodcast]] integration)
index 7e9dbf0f66a3a1bc073e62e1c821298338fa7794..9d799da3fc0a7ebd014ddb5e42fd00808231d45a 100644 (file)
@@ -1,5 +1,5 @@
 Name:           ikiwiki
-Version: 3.20130504
+Version: 3.20130518
 Release:        1%{?dist}
 Summary:        A wiki compiler
 
index d7f2926a38f6bd3eb928868f1ff9a739c40bbe88..3f2fac90b57d68b594c7e3f695d7d6c6661de7e7 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-05-04 23:52-0400\n"
+"POT-Creation-Date: 2013-05-18 16:34-0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -561,11 +561,11 @@ msgstr ""
 msgid "Cannot subscribe your email address without logging in."
 msgstr ""
 
-#: ../IkiWiki/Plugin/notifyemail.pm:135
+#: ../IkiWiki/Plugin/notifyemail.pm:136
 msgid "change notification:"
 msgstr ""
 
-#: ../IkiWiki/Plugin/notifyemail.pm:137
+#: ../IkiWiki/Plugin/notifyemail.pm:138
 msgid "comment notification:"
 msgstr ""
 
index f47c637fa41cfc187d568627758dc555ab73f85d..c886b22d81d53069fd10ff290dbddb672d093566 100644 (file)
@@ -21,6 +21,8 @@
 <TMPL_ELSE>
 <link rel="stylesheet" href="<TMPL_VAR BASEURL>local.css" type="text/css" />
 </TMPL_IF>
+
+<TMPL_UNLESS DYNAMIC>
 <TMPL_IF EDITURL>
 <link rel="alternate" type="application/x-wiki" title="Edit this page" href="<TMPL_VAR EDITURL>" />
 </TMPL_IF>
@@ -36,6 +38,8 @@
 <link rel="next" href="<TMPL_VAR NEXTURL>" title="<TMPL_VAR NEXTTITLE>" />
 </TMPL_IF>
 </TMPL_LOOP>
+</TMPL_UNLESS>
+
 </head>
 <body>
 
 </TMPL_IF>
 </span>
 </span>
+<TMPL_UNLESS DYNAMIC>
 <TMPL_IF SEARCHFORM>
 <TMPL_VAR SEARCHFORM>
 </TMPL_IF>
+</TMPL_UNLESS>
 <TMPL_IF HTML5></header><TMPL_ELSE></div></TMPL_IF>
 
 <TMPL_IF HAVE_ACTIONS>
 <TMPL_IF HTML5></nav><TMPL_ELSE></div></TMPL_IF>
 </TMPL_IF>
 
+<TMPL_UNLESS DYNAMIC>
 <TMPL_VAR TRAILS>
+</TMPL_UNLESS>
 
 <TMPL_IF HTML5></section><TMPL_ELSE></div></TMPL_IF>
 
+<TMPL_UNLESS DYNAMIC>
 <TMPL_IF SIDEBAR>
 <TMPL_IF HTML5><aside class="sidebar"><TMPL_ELSE><div class="sidebar"></TMPL_IF>
 <TMPL_VAR SIDEBAR>
 <TMPL_IF HTML5></aside><TMPL_ELSE></div></TMPL_IF>
 </TMPL_IF>
+</TMPL_UNLESS>
 
 <div id="pagebody">