aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IkiWiki.pm8
-rw-r--r--IkiWiki/Plugin/attachment.pm12
-rw-r--r--IkiWiki/Plugin/git.pm8
-rw-r--r--IkiWiki/Plugin/openid.pm15
-rw-r--r--IkiWiki/Render.pm10
-rw-r--r--debian/changelog24
-rw-r--r--debian/control8
-rw-r--r--doc/basewiki/sandbox.mdwn2
-rw-r--r--doc/bugs/Attachment_plug-in_not_committing_files.mdwn18
-rw-r--r--doc/bugs/images_in_inlined_pages_have_wrong_relative_URL.mdwn7
-rw-r--r--doc/bugs/proxy.py_utf8_troubles.mdwn35
-rw-r--r--doc/forum/Can_ikiwiki_be_configured_as_multi_user_blog__63__/comment_1_8e34b10699bed1b53b6c929ed1e9f19c._comment32
-rw-r--r--doc/forum/Can_ikiwiki_be_configured_as_multi_user_blog__63__/comment_2_6083e16f72e12c03bdf739b84bd2f352._comment12
-rw-r--r--doc/forum/Howto_add_tag_from_plugin_code.mdwn12
-rw-r--r--doc/forum/Howto_add_tag_from_plugin_code/comment_1_c61454825874a6fe1905cb549386deb0._comment77
-rw-r--r--doc/forum/Translating_ikiwiki_interface.mdwn6
-rw-r--r--doc/forum/copyright_and_license_template_variables___40__where_are_they_set__63____41__.mdwn13
-rw-r--r--doc/git.mdwn1
-rw-r--r--doc/ikiwiki/pagespec.mdwn3
-rw-r--r--doc/ikiwikiusers.mdwn2
-rw-r--r--doc/news/version_3.20121017.mdwn3
-rw-r--r--doc/news/version_3.20121212.mdwn6
-rw-r--r--doc/news/version_3.20130710.mdwn23
-rw-r--r--doc/news/version_3.20130711.mdwn5
-rw-r--r--doc/plugins/contrib/pandoc.mdwn1
-rw-r--r--doc/sandbox.mdwn11
-rw-r--r--doc/todo/fancypodcast.mdwn2
-rw-r--r--doc/todo/wikitrails.mdwn2
-rw-r--r--doc/users/acodispo.mdwn2
-rw-r--r--ikiwiki.spec2
-rwxr-xr-xplugins/proxy.py2
-rw-r--r--po/ikiwiki.pot58
32 files changed, 351 insertions, 71 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm
index 0570c8bc5..c497dd38f 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -2776,12 +2776,12 @@ sub match_user ($$;@) {
my $user=shift;
my %params=@_;
- my $regexp=IkiWiki::glob2re($user);
-
if (! exists $params{user}) {
return IkiWiki::ErrorReason->new("no user specified");
}
+ my $regexp=IkiWiki::glob2re($user);
+
if (defined $params{user} && $params{user}=~$regexp) {
return IkiWiki::SuccessReason->new("user is $user");
}
@@ -2821,8 +2821,10 @@ sub match_ip ($$;@) {
if (! exists $params{ip}) {
return IkiWiki::ErrorReason->new("no IP specified");
}
+
+ my $regexp=IkiWiki::glob2re(lc $ip);
- if (defined $params{ip} && lc $params{ip} eq lc $ip) {
+ if (defined $params{ip} && lc $params{ip}=~$regexp) {
return IkiWiki::SuccessReason->new("IP is $ip");
}
else {
diff --git a/IkiWiki/Plugin/attachment.pm b/IkiWiki/Plugin/attachment.pm
index aea70429d..83dd120f6 100644
--- a/IkiWiki/Plugin/attachment.pm
+++ b/IkiWiki/Plugin/attachment.pm
@@ -274,15 +274,15 @@ sub attachments_save {
foreach my $filename (glob("$dir/*")) {
$filename=Encode::decode_utf8($filename);
next unless -f $filename;
- my $destdir=$config{srcdir}."/".
- linkpage(IkiWiki::possibly_foolish_untaint(
- attachment_location($form->field('page'))));
+ my $destdir=linkpage(IkiWiki::possibly_foolish_untaint(
+ attachment_location($form->field('page'))));
+ my $absdestdir=$config{srcdir}."/".$destdir;
my $destfile=IkiWiki::basename($filename);
- my $dest=$destdir.$destfile;
+ my $dest=$absdestdir.$destfile;
unlink($dest);
- IkiWiki::prep_writefile($destfile, $destdir);
+ IkiWiki::prep_writefile($destfile, $absdestdir);
rename($filename, $dest);
- push @attachments, $dest;
+ push @attachments, $destdir.$destfile;
}
return unless @attachments;
require IkiWiki::Render;
diff --git a/IkiWiki/Plugin/git.pm b/IkiWiki/Plugin/git.pm
index 3879abeae..bbdcbdba8 100644
--- a/IkiWiki/Plugin/git.pm
+++ b/IkiWiki/Plugin/git.pm
@@ -550,7 +550,13 @@ sub rcs_commit_helper (@) {
# Force git to allow empty commit messages.
# (If this version of git supports it.)
my ($version)=`git --version` =~ /git version (.*)/;
- if ($version ge "1.5.4") {
+ if ($version ge "1.7.8") {
+ push @opts, "--allow-empty-message", "--no-edit";
+ }
+ if ($version ge "1.7.2") {
+ push @opts, "--allow-empty-message";
+ }
+ elsif ($version ge "1.5.4") {
push @opts, '--cleanup=verbatim';
}
else {
diff --git a/IkiWiki/Plugin/openid.pm b/IkiWiki/Plugin/openid.pm
index 40a956849..e3b9982f2 100644
--- a/IkiWiki/Plugin/openid.pm
+++ b/IkiWiki/Plugin/openid.pm
@@ -156,8 +156,8 @@ sub validate ($$$;$) {
$trust_root=$cgiurl if ! defined $trust_root;
my $check_url = $claimed_identity->check_url(
- return_to => "$cgiurl?do=postsignin",
- trust_root => $trust_root,
+ return_to => auto_upgrade_https($q, "$cgiurl?do=postsignin"),
+ trust_root => auto_upgrade_https($q, $trust_root),
delayed_return => 1,
);
# Redirect the user to the OpenID server, which will
@@ -258,10 +258,19 @@ sub getobj ($$) {
ua => $ua,
args => $q,
consumer_secret => sub { return shift()+$secret },
- required_root => $cgiurl,
+ required_root => auto_upgrade_https($q, $cgiurl),
);
}
+sub auto_upgrade_https {
+ my $q=shift;
+ my $url=shift;
+ if ($q->https()) {
+ $url=~s/^http:/https:/i;
+ }
+ return $url;
+}
+
sub load_openid_module {
# Give up if module is unavailable to avoid needing to depend on it.
eval q{use Net::OpenID::Consumer};
diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm
index a90d202ee..58b374ad7 100644
--- a/IkiWiki/Render.pm
+++ b/IkiWiki/Render.pm
@@ -770,9 +770,17 @@ sub refresh () {
my ($new, $internal_new)=find_new_files($files);
my ($del, $internal_del)=find_del_files($pages);
my ($changed, $internal_changed)=find_changed($files);
+ my %existingfiles;
run_hooks(needsbuild => sub {
my $ret=shift->($changed, [@$del, @$internal_del]);
- $changed=$ret if ref $ret eq 'ARRAY';
+ if (ref $ret eq 'ARRAY' && $ret != $changed) {
+ if (! %existingfiles) {
+ foreach my $f (@$files) {
+ $existingfiles{$f}=1;
+ }
+ }
+ @$changed=grep $existingfiles{$_}, @$ret;
+ }
});
my $oldlink_targets=calculate_old_links($changed, $del);
diff --git a/debian/changelog b/debian/changelog
index d98af52cf..242460ca3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,12 @@
-ikiwiki (3.20130519) UNRELEASED; urgency=low
+ikiwiki (3.20130711) unstable; urgency=low
+
+ * Deal with git behavior change in 1.7.2 and newer that broke support
+ for commits with an empty commit message.
+ * Pass --no-edit when used with git 1.7.8 and newer.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 10 Jul 2013 21:49:23 -0400
+
+ikiwiki (3.20130710) unstable; urgency=low
* blogspam: Fix encoding issue in RPC::XML call.
Thanks, Changaco
@@ -11,8 +19,18 @@ ikiwiki (3.20130519) UNRELEASED; urgency=low
* 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
+ * openid: Automatically upgrade openid_realm to https when
+ accessed via https.
+ * The ip() pagespec can now contain glob characters to match eg, a subnet
+ full of spammers.
+ * Fix crash that could occur when a needsbuild hook returned a file
+ that does not exist.
+ * Fix python proxy to not crash when fed unicode data in getstate
+ and setstate.
+ Thanks, chrysn
+ * Fix committing attachments when using svn.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 10 Jul 2013 17:45:40 -0400
ikiwiki (3.20130518) unstable; urgency=low
diff --git a/debian/control b/debian/control
index 9c6ab7ad9..dbc7b4ac7 100644
--- a/debian/control
+++ b/debian/control
@@ -10,13 +10,13 @@ Build-Depends-Indep: dpkg-dev (>= 1.9.0), libxml-simple-perl,
libfile-chdir-perl, libyaml-libyaml-perl, python-support
Maintainer: Joey Hess <joeyh@debian.org>
Uploaders: Josh Triplett <josh@freedesktop.org>
-Standards-Version: 3.9.3
+Standards-Version: 3.9.4
Homepage: http://ikiwiki.info/
Vcs-Git: git://git.ikiwiki.info/
Package: ikiwiki
Architecture: all
-Depends: ${misc:Depends}, ${perl:Depends}, ${python:Depends},
+Depends: ${misc:Depends}, ${perl:Depends},
libtext-markdown-discount-perl,
libhtml-scrubber-perl, libhtml-template-perl,
libhtml-parser-perl, liburi-perl (>= 1.36), libyaml-libyaml-perl, libjson-perl
@@ -45,8 +45,8 @@ Provides: ikiwiki-plugin-table
Description: a wiki compiler
Ikiwiki converts a directory full of wiki pages into HTML pages suitable
for publishing on a website. Unlike many wikis, ikiwiki does not have its
- own ad-hoc means of storing page history, and instead uses a revision control
- system such as Subversion or Git.
+ own ad-hoc means of storing page history, and instead uses a revision
+ control system such as Subversion or Git.
.
Ikiwiki implements all of the other standard features of a wiki, including
web-based page editing, user registration and logins, a RecentChanges
diff --git a/doc/basewiki/sandbox.mdwn b/doc/basewiki/sandbox.mdwn
index e76bdb8d1..c66534fc2 100644
--- a/doc/basewiki/sandbox.mdwn
+++ b/doc/basewiki/sandbox.mdwn
@@ -30,5 +30,3 @@ Bulleted list
* item
[[ikiwiki/WikiLink]]
-
-[[!calendar type="month" pages="blog/*"]]
diff --git a/doc/bugs/Attachment_plug-in_not_committing_files.mdwn b/doc/bugs/Attachment_plug-in_not_committing_files.mdwn
new file mode 100644
index 000000000..aaba13326
--- /dev/null
+++ b/doc/bugs/Attachment_plug-in_not_committing_files.mdwn
@@ -0,0 +1,18 @@
+I've added the attachment plug-in to our wiki. I am able to add files to the working copy of the website on the server, but none of the file are being checked into the SVN repository. Using logging I've tracked the problem to line 293 of attachment.pm:
+
+ IkiWiki::rcs_add($_) foreach @attachments;
+
+Here it is trying to add an absolute path to the file when rcs_add is expecting a path relative to the SVN root.
+
+From this code it looks like $dest needs to be absolute and that a relative path needs to be pushed to @attachments:
+
+ rename($filename, $dest);
+ push @attachments, $dest;
+
+I'm using ikiwiki version 3.20120202ubuntu1.
+
+> I don't think this affects git, just because it happens to
+> allow adding with an absolute path.
+>
+> So, this is an interesting way svn support can bit rot if nothing
+> is testing it! [[fixed|done]] --[[Joey]]
diff --git a/doc/bugs/images_in_inlined_pages_have_wrong_relative_URL.mdwn b/doc/bugs/images_in_inlined_pages_have_wrong_relative_URL.mdwn
index 8cda7a70f..e73c7e662 100644
--- a/doc/bugs/images_in_inlined_pages_have_wrong_relative_URL.mdwn
+++ b/doc/bugs/images_in_inlined_pages_have_wrong_relative_URL.mdwn
@@ -12,4 +12,11 @@ If I then inline that page, the (relative) URL no longer points to the right pla
> However, there is a simple way to avoid both problems: Use WikiLinks
> and/or the [[img_directive|ikiwiki/directive/img]]. --[[Joey]]
+> > For some inline HTML (e.g. SVG embedded with `<object>` tags, it
+> > would be nice to have a URL directive for URL-only WikiLinks.
+> > Something like:
+> > `<object type="image/svg+xml" data="[[!url image.svg]]"></object>`.
+> > This would be a more general solution than an [[SVG-specific
+> > fix|todo/svg]]. --[[wtk]]
+
[[!tag done]]
diff --git a/doc/bugs/proxy.py_utf8_troubles.mdwn b/doc/bugs/proxy.py_utf8_troubles.mdwn
new file mode 100644
index 000000000..7e8f70e59
--- /dev/null
+++ b/doc/bugs/proxy.py_utf8_troubles.mdwn
@@ -0,0 +1,35 @@
+when writing an external plugin using `proxy.py`, the getstate and setstate
+functions don't accept unicode data:
+
+ uncaught exception: 'ascii' codec can't encode character u'\xe4' in position 25: ordinal not in range(128)
+ Traceback (most recent call last):
+ File "proxy.py", line 309, in run
+ self._in_fd, self._out_fd)
+ File "proxy.py", line 192, in handle_rpc
+ ret = self._dispatcher.dispatch(method, params)
+ File "proxy.py", line 84, in dispatch
+ return self._dispatch(method, params)
+ File "/usr/lib/python2.7/SimpleXMLRPCServer.py", line 420, in _dispatch
+ return func(*params)
+ File "proxy.py", line 251, in hook_proxy
+ ret = function(self, *args)
+ File "/home/chrysn/git/ikiwiki-plugins//plugins/my_plugin", line 49, in data2html
+ proxy.setstate(kwargs['page'], 'meta', 'title', unicode_containing_umlauts)
+ File "proxy.py", line 291, in setstate
+ return self.rpc('setstate', page, id, key, value)
+ File "proxy.py", line 233, in rpc
+ *args, **kwargs)
+ File "proxy.py", line 178, in send_rpc
+ cmd, data))
+ UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 25: ordinal not in range(128)
+
+the culprit is the last `_debug_fn` invocation in `send_rpc` (line 178), where
+unicode data is format-fed into a string. while this could be circumvented by
+making the formatting string a unicode string, that would cause trouble with
+python3 and we'd just move the problem to the stderr writing later on; instead,
+"`cmd, data))`" should become "`cmd, repr(data)))`" and everything is fine.
+debug output doesn't look that pretty any more, but is safe.
+
+--[[chrysn]]
+
+> ok, [[done]] --[[Joey]]
diff --git a/doc/forum/Can_ikiwiki_be_configured_as_multi_user_blog__63__/comment_1_8e34b10699bed1b53b6c929ed1e9f19c._comment b/doc/forum/Can_ikiwiki_be_configured_as_multi_user_blog__63__/comment_1_8e34b10699bed1b53b6c929ed1e9f19c._comment
new file mode 100644
index 000000000..1f0577c9c
--- /dev/null
+++ b/doc/forum/Can_ikiwiki_be_configured_as_multi_user_blog__63__/comment_1_8e34b10699bed1b53b6c929ed1e9f19c._comment
@@ -0,0 +1,32 @@
+[[!comment format=mdwn
+ username="http://smcv.pseudorandom.co.uk/"
+ nickname="smcv"
+ subject="It's a wiki: any editor can have as many blogs as they want"
+ date="2013-07-17T08:17:05Z"
+ content="""
+Ikiwiki is a wiki, so you can certainly have multiple users. Any user
+with appropriate access can create any number of blogs: they just need
+to put an [[ikiwiki/directive/inline]] directive on any page they can
+edit, with a [[ikiwiki/PageSpec]] pointing to pages (blog posts) in a
+directory where they can create pages.
+
+If you want a limited set of users to be able to edit the wiki without
+making them full wiki admins, you can use [[plugins/lockedit]]:
+
+ locked_pages: * and !(user(bob) or user(chris))
+
+or if you want \"most\" users to only be able to write on their own blog, and
+not on other users' blogs (for instance: Alice the wiki admin can edit
+anything, but Bob can only edit `users/bob/...` and Chris can only edit
+`users/chris/...`) then you can use [[plugins/lockedit]], something like:
+
+ locked_pages: * and !(user(bob) and (users/bob or users/bob/*)) and !(user(chris) and (users/chris or users/chris/*))
+
+(Wiki admins can always edit locked pages.)
+
+If you have lots of users and you know a bit of Perl, you might want
+to [[write a plugin|plugins/write]] that adds a function-like
+[[ikiwiki/PageSpec]] like `owndirectory(users)`, which would match if
+there is a logged-in user and the page being edited is equal to or
+a subpage of their directory in users.
+"""]]
diff --git a/doc/forum/Can_ikiwiki_be_configured_as_multi_user_blog__63__/comment_2_6083e16f72e12c03bdf739b84bd2f352._comment b/doc/forum/Can_ikiwiki_be_configured_as_multi_user_blog__63__/comment_2_6083e16f72e12c03bdf739b84bd2f352._comment
new file mode 100644
index 000000000..10929a35a
--- /dev/null
+++ b/doc/forum/Can_ikiwiki_be_configured_as_multi_user_blog__63__/comment_2_6083e16f72e12c03bdf739b84bd2f352._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="http://smcv.pseudorandom.co.uk/"
+ nickname="smcv"
+ subject="comment 2"
+ date="2013-07-17T08:23:32Z"
+ content="""
+IkiWiki's own [[bugs]], [[news]] and [[to-do list|todo]] are functionally
+equivalent to blogs, in fact. ([[news]] is the most obviously blog-like,
+[[bugs]] is like a blog except that solved bugs disappear from the
+page/feed, and [[todo]] only shows titles, not content, but is otherwise
+like [[bugs]].)
+"""]]
diff --git a/doc/forum/Howto_add_tag_from_plugin_code.mdwn b/doc/forum/Howto_add_tag_from_plugin_code.mdwn
new file mode 100644
index 000000000..a17faf727
--- /dev/null
+++ b/doc/forum/Howto_add_tag_from_plugin_code.mdwn
@@ -0,0 +1,12 @@
+Hi, I want to add tags to some pages automatically (generating album images
+and want to tag all generated pages). I managed to do so in following way:
+
+ IkiWiki::Plugin::tag::preprocess_tag(
+ page => $viewer,
+ destpage => $params{destpage},
+ map { ($_ => 1) } @tags,
+ );
+
+This works, however if some tag does not exist, it is not created. I tracked it so far that I found that the Render.pm's method gen_autofile() is not called , so it is most likely that I need to somehow trigger Render.pm's refresh()...but how can I do it?
+
+BTW: The code is modified album plugin that is in [my git](https://github.com/llipavsky/ikiwiki)
diff --git a/doc/forum/Howto_add_tag_from_plugin_code/comment_1_c61454825874a6fe1905cb549386deb0._comment b/doc/forum/Howto_add_tag_from_plugin_code/comment_1_c61454825874a6fe1905cb549386deb0._comment
new file mode 100644
index 000000000..2122083ec
--- /dev/null
+++ b/doc/forum/Howto_add_tag_from_plugin_code/comment_1_c61454825874a6fe1905cb549386deb0._comment
@@ -0,0 +1,77 @@
+[[!comment format=mdwn
+ username="http://smcv.pseudorandom.co.uk/"
+ nickname="smcv"
+ subject="comment 1"
+ date="2013-07-01T09:13:51Z"
+ content="""
+(If you want to branch from my version of album, please add my git repo
+as a remote and merge or cherry-pick the album4 branch: pasting from my
+gitweb seems to have given you some incorrect UTF-8.)
+
+The problem you have here is that for this plugin, the correct order
+for IkiWiki to do things is quite subtle. Am I right in thinking that
+the feature you want goes something like this?
+
+> To add a set of tags to every \"viewer\" page in the album, you can add
+> the tags parameter to the album:
+>
+> \[[!album tags=\"holiday hawaii\"]]
+>
+> The individual viewers will all be tagged \"holiday\" and \"hawaii\",
+> for instance. These tags cannot be removed by editing the viewers.
+
+`preprocess_albumimage` runs twice: once in the scan stage, and once in
+the render stage. In the render stage, it's too late to add tags, because
+tags are a special form of [[ikiwiki/wikilinks]], and wikilinks have to
+be added during the scan stage to work correctly.
+
+The part of `preprocess_albumimage` after the line
+`return unless defined wantarray;` only runs in the render stage, which
+is too late. You'd need to set up the tags further up: just after the
+calls to `IkiWiki::Plugin::meta::preprocess` would be a good place.
+
+I would also suggest checking for
+`IkiWiki::Plugin::tag->can('preprocess_tag')`,
+like I do for meta - if you do that, you won't need to force the tag plugin
+to be loaded.
+
+Unfortunately, I'm still not sure that this is fully correct. Pages
+are scanned in a random order. If the `\[[!album]]` is scanned before
+a \"viewer\" page, then everything is fine: the tags are present when
+the \"viewer\" is scanned. However, if the \"viewer\" is scanned first,
+then it will get the tags that the `\[[!album]]` had in the *previous*
+IkiWiki run (if any), which are still in the index, because the
+`\[[!album]]` hasn't been re-scanned yet...
+
+Are you sure this form of the feature is what you want? You'll end up with
+a *lot* of pages with those tags. If it's what you want, it might be
+clearer how it works if you changed the syntax to something like this,
+perhaps?
+
+>
+> \[[!album tag_all=\"holiday hawaii\"]]
+
+Another possible syntax would be to have the feature be more like this:
+
+> If you use the `tag_default` parameter to the `\[[!album]]` directive,
+> each \"viewer\" page created for images will have those tags by
+> default. Changing the `\[[!album]]` will not affect any \"viewer\"
+> pages that have already been created, and editing the \"viewer\"
+> can add or remove those default tags.
+>
+> \[[!album tag_default=\"holiday hawaii\"]]
+
+which I think removes the ordering problems? If you go this route,
+you'd want to either add e.g. `[[!tag holiday hawaii]]`
+to the generated viewer page in `create_viewer`, or add a `tag`
+parameter to `\[[!albumimage]]` that's a shortcut for the
+tag directive, in the same way that author is a shortcut for
+`[[!meta author]]`).
+
+The purpose of the \"shortcut\" parameters in `\[[!albumimage]]`,
+like title, author and date, is that I eventually want to add
+a specialized CGI interface to this plugin so you can edit
+all the images of an album in one go; when I add that,
+it'll probably only be able to process something as
+machine-readable as `\[[!albumimage]]`.
+"""]]
diff --git a/doc/forum/Translating_ikiwiki_interface.mdwn b/doc/forum/Translating_ikiwiki_interface.mdwn
index 4003302e5..747af15b5 100644
--- a/doc/forum/Translating_ikiwiki_interface.mdwn
+++ b/doc/forum/Translating_ikiwiki_interface.mdwn
@@ -1,2 +1,8 @@
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?
+
+> Ikiwiki has a Spanish translation of much of the program's output.
+> However, there is currently no translation of the page.tmpl and other
+> templates that are used to build your wiki. You can of course modify
+> these and translate them yourself, but we have no way to maintaining
+> those translations in po files. --[[Joey]]
diff --git a/doc/forum/copyright_and_license_template_variables___40__where_are_they_set__63____41__.mdwn b/doc/forum/copyright_and_license_template_variables___40__where_are_they_set__63____41__.mdwn
new file mode 100644
index 000000000..afca582fd
--- /dev/null
+++ b/doc/forum/copyright_and_license_template_variables___40__where_are_they_set__63____41__.mdwn
@@ -0,0 +1,13 @@
+The default template includes TMPL_IF LICENSE and TMPL_IF COPYRIGHT, but I can't figure out where these are set.
+
+This page seems to indicate they are created by the [[plugins/meta]] plugin:
+
+[[Default Content for Copyright and License|plugins/contrib/default_content_for___42__copyright__42___and___42__license__42__/]]
+
+Is this true? It just seems a little odd that the default template contains variables that are set by a non-default plugin, so I just wanted to confirm that.
+
+Thanks!
+
+--[[users/acodispo]]
+
+> It is true. --[[Joey]]
diff --git a/doc/git.mdwn b/doc/git.mdwn
index b743f6175..b86132ed2 100644
--- a/doc/git.mdwn
+++ b/doc/git.mdwn
@@ -77,6 +77,7 @@ think about merging them. This is recommended. :-)
* [[anarcat]] `git://src.anarcat.ath.cx/ikiwiki`
* anderbubble `git://civilfritz.net/ikiwiki.git`
* frioux `git://github.com/frioux/ikiwiki`
+* llipavsky `git://github.com/llipavsky/ikiwiki`
## branches
diff --git a/doc/ikiwiki/pagespec.mdwn b/doc/ikiwiki/pagespec.mdwn
index fe1af4c15..0f298ad78 100644
--- a/doc/ikiwiki/pagespec.mdwn
+++ b/doc/ikiwiki/pagespec.mdwn
@@ -51,7 +51,8 @@ Some more elaborate limits can be added to what matches using these functions:
* "`admin()`" - tests whether a modification is being made by one of the
wiki admins.
* "`ip(address)`" - tests whether a modification is being made from the
- specified IP address.
+ specified IP address. Glob patterns can be used in the address. For
+ example, `ip(127.0.0.*)`
* "`comment(glob)`" - matches comments to a page matching the glob.
* "`comment_pending(glob)`" - matches unmoderated, pending comments.
* "`postcomment(glob)`" - matches only when comments are being
diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn
index ecba46e03..eda6e3ab0 100644
--- a/doc/ikiwikiusers.mdwn
+++ b/doc/ikiwikiusers.mdwn
@@ -88,7 +88,7 @@ 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.
+* [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. Also its sister site [Leikur að bókum](http://leikuradbokum.net), about children's books in a kindergarten/pre-school context.
* [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
diff --git a/doc/news/version_3.20121017.mdwn b/doc/news/version_3.20121017.mdwn
deleted file mode 100644
index 98a5caffe..000000000
--- a/doc/news/version_3.20121017.mdwn
+++ /dev/null
@@ -1,3 +0,0 @@
-ikiwiki 3.20121017 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
- * recentchangesdiff: fix further breakage to the template from 3.20120725"""]] \ No newline at end of file
diff --git a/doc/news/version_3.20121212.mdwn b/doc/news/version_3.20121212.mdwn
deleted file mode 100644
index 473b63190..000000000
--- a/doc/news/version_3.20121212.mdwn
+++ /dev/null
@@ -1,6 +0,0 @@
-ikiwiki 3.20121212 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
- * filecheck: Fix bug that prevented File::MimeInfo::Magic from ever
- being used.
- * openid: Display openid in Preferences page as a comment, so it can be
- selected in all browsers."""]] \ No newline at end of file
diff --git a/doc/news/version_3.20130710.mdwn b/doc/news/version_3.20130710.mdwn
new file mode 100644
index 000000000..f1b30a7ff
--- /dev/null
+++ b/doc/news/version_3.20130710.mdwn
@@ -0,0 +1,23 @@
+ikiwiki 3.20130710 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+ * 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)
+ * openid: Automatically upgrade openid\_realm to https when
+ accessed via https.
+ * The ip() pagespec can now contain glob characters to match eg, a subnet
+ full of spammers.
+ * Fix crash that could occur when a needsbuild hook returned a file
+ that does not exist.
+ * Fix python proxy to not crash when fed unicode data in getstate
+ and setstate.
+ Thanks, chrysn
+ * Fix committing attachments when using svn."""]] \ No newline at end of file
diff --git a/doc/news/version_3.20130711.mdwn b/doc/news/version_3.20130711.mdwn
new file mode 100644
index 000000000..2f4a5ef59
--- /dev/null
+++ b/doc/news/version_3.20130711.mdwn
@@ -0,0 +1,5 @@
+ikiwiki 3.20130711 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+ * Deal with git behavior change in 1.7.2 and newer that broke support
+ for commits with an empty commit message.
+ * Pass --no-edit when used with git 1.7.8 and newer."""]] \ No newline at end of file
diff --git a/doc/plugins/contrib/pandoc.mdwn b/doc/plugins/contrib/pandoc.mdwn
index 264aafd95..c93803605 100644
--- a/doc/plugins/contrib/pandoc.mdwn
+++ b/doc/plugins/contrib/pandoc.mdwn
@@ -4,3 +4,4 @@ This plugin enables Markdown processing using [Pandoc](http://johnmacfarlane.net
This is an expanded and updated version of [[Jason Blevin|users/jasonblevins]]'s pandoc plugin. Get it and see further details at <https://github.com/dubiousjim/pandoc-iki>.
+A version, merging enhancements in various forks is available at <https://github.com/sciunto/ikiwiki-pandoc>. PR are welcome.
diff --git a/doc/sandbox.mdwn b/doc/sandbox.mdwn
index 3ecd58843..3536e327d 100644
--- a/doc/sandbox.mdwn
+++ b/doc/sandbox.mdwn
@@ -21,17 +21,18 @@ hello world
Numbered list
1. First item.
- 1. Sub item.
+ 1. Sub item.
+ 1. Number 2
1. Another.
1. And another..
- 1. foo
- 2. bar
- 3. quz
+ 1. foo
+ 2. bar
+ 3. quz
Bulleted list
* item
-* *item*
+* *italic item*
* item
* one
* footballs; runner; unices
diff --git a/doc/todo/fancypodcast.mdwn b/doc/todo/fancypodcast.mdwn
index 6345cdf9d..31b6c44f9 100644
--- a/doc/todo/fancypodcast.mdwn
+++ b/doc/todo/fancypodcast.mdwn
@@ -317,6 +317,8 @@ could negatively impact eg, Planet style aggregators using ikiwiki. --[[Joey]]
"updo: Eric Raymond: esr"` (article author != feed name, so we get both)
"updo: Jannis Pohlman: Jannis Pohlmann"` (oops! I tweaked the real updo)
+>>>> --[[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" />
diff --git a/doc/todo/wikitrails.mdwn b/doc/todo/wikitrails.mdwn
index f2f87ac82..f9daea6b1 100644
--- a/doc/todo/wikitrails.mdwn
+++ b/doc/todo/wikitrails.mdwn
@@ -3,7 +3,7 @@ at times it is useful to have a guided tour or trail through a subset of the pag
### smcv's implementation
-... is the out-of-tree [[plugins/contrib/trail]] plugin, see there for details.
+... is the out-of-tree [[plugins/trail]] plugin, see there for details.
> And will be the one landing in ikiwiki. So, I'm closing this bug report. [[done]] --[[Joey]]
diff --git a/doc/users/acodispo.mdwn b/doc/users/acodispo.mdwn
new file mode 100644
index 000000000..cf07b6386
--- /dev/null
+++ b/doc/users/acodispo.mdwn
@@ -0,0 +1,2 @@
+# ACodispo
+
diff --git a/ikiwiki.spec b/ikiwiki.spec
index 9d799da3f..fc312f0bf 100644
--- a/ikiwiki.spec
+++ b/ikiwiki.spec
@@ -1,5 +1,5 @@
Name: ikiwiki
-Version: 3.20130518
+Version: 3.20130711
Release: 1%{?dist}
Summary: A wiki compiler
diff --git a/plugins/proxy.py b/plugins/proxy.py
index 41cc45700..ca731301f 100755
--- a/plugins/proxy.py
+++ b/plugins/proxy.py
@@ -175,7 +175,7 @@ class _IkiWikiExtPluginXMLRPCHandler(object):
data = _xmlrpc_client.loads(xml)[0][0]
self._debug_fn(
'parsed data from response to procedure {0}: [{1}]'.format(
- cmd, data))
+ cmd, repr(data)))
return data
def handle_rpc(self, in_fd, out_fd):
diff --git a/po/ikiwiki.pot b/po/ikiwiki.pot
index 3f2fac90b..f0e79e10c 100644
--- a/po/ikiwiki.pot
+++ b/po/ikiwiki.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-05-18 16:34-0400\n"
+"POT-Creation-Date: 2013-07-10 21:56-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"
@@ -188,7 +188,7 @@ msgstr ""
msgid "creating index page %s"
msgstr ""
-#: ../IkiWiki/Plugin/blogspam.pm:118
+#: ../IkiWiki/Plugin/blogspam.pm:119
msgid ""
"Sorry, but that looks like spam to <a href=\"http://blogspam.net/"
"\">blogspam</a>: "
@@ -203,87 +203,87 @@ msgstr ""
msgid "There are no broken links!"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:113
+#: ../IkiWiki/Plugin/comments.pm:124
#, perl-format
msgid "this comment needs %s"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:116
+#: ../IkiWiki/Plugin/comments.pm:127
msgid "moderation"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:137 ../IkiWiki/Plugin/format.pm:50
+#: ../IkiWiki/Plugin/comments.pm:154 ../IkiWiki/Plugin/format.pm:50
#, perl-format
msgid "unsupported page format %s"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:142
+#: ../IkiWiki/Plugin/comments.pm:159
msgid "comment must have content"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:200
+#: ../IkiWiki/Plugin/comments.pm:217
msgid "Anonymous"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:262
+#: ../IkiWiki/Plugin/comments.pm:279
msgid "Comment Moderation"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:358 ../IkiWiki/Plugin/comments.pm:362
+#: ../IkiWiki/Plugin/comments.pm:375 ../IkiWiki/Plugin/comments.pm:379
msgid "email replies to me"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:396 ../IkiWiki/Plugin/editpage.pm:96
+#: ../IkiWiki/Plugin/comments.pm:413 ../IkiWiki/Plugin/editpage.pm:96
#: ../IkiWiki/Plugin/editpage.pm:102
msgid "bad page name"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:399
+#: ../IkiWiki/Plugin/comments.pm:416
#, perl-format
msgid "commenting on %s"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:416
+#: ../IkiWiki/Plugin/comments.pm:433
#, perl-format
msgid "page '%s' doesn't exist, so you can't comment"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:423
+#: ../IkiWiki/Plugin/comments.pm:440
#, perl-format
msgid "comments on page '%s' are closed"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:548
+#: ../IkiWiki/Plugin/comments.pm:565
msgid "comment stored for moderation"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:550
+#: ../IkiWiki/Plugin/comments.pm:567
msgid "Your comment will be posted after moderator review"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:563
+#: ../IkiWiki/Plugin/comments.pm:580
msgid "Added a comment"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:567
+#: ../IkiWiki/Plugin/comments.pm:584
#, perl-format
msgid "Added a comment: %s"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:637 ../IkiWiki/Plugin/userlist.pm:55
+#: ../IkiWiki/Plugin/comments.pm:654 ../IkiWiki/Plugin/userlist.pm:55
#: ../IkiWiki/Plugin/websetup.pm:272
msgid "you are not logged in as an admin"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:691
+#: ../IkiWiki/Plugin/comments.pm:708
msgid "Comment moderation"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:732
+#: ../IkiWiki/Plugin/comments.pm:749
msgid "comment moderation"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:893
+#: ../IkiWiki/Plugin/comments.pm:910
#, perl-format
msgid "%i comment"
msgid_plural "%i comments"
@@ -293,7 +293,7 @@ msgstr[1] ""
#. translators: Here "Comment" is a verb;
#. translators: the user clicks on it to
#. translators: post a comment.
-#: ../IkiWiki/Plugin/comments.pm:903
+#: ../IkiWiki/Plugin/comments.pm:920
msgid "Comment"
msgstr ""
@@ -378,26 +378,26 @@ msgstr ""
msgid "%s is an attachment, not a page."
msgstr ""
-#: ../IkiWiki/Plugin/git.pm:783 ../IkiWiki/Plugin/git.pm:846
+#: ../IkiWiki/Plugin/git.pm:789 ../IkiWiki/Plugin/git.pm:852
#: ../IkiWiki.pm:1721
#, perl-format
msgid "you are not allowed to change %s"
msgstr ""
-#: ../IkiWiki/Plugin/git.pm:805
+#: ../IkiWiki/Plugin/git.pm:811
#, perl-format
msgid "you cannot act on a file with mode %s"
msgstr ""
-#: ../IkiWiki/Plugin/git.pm:809
+#: ../IkiWiki/Plugin/git.pm:815
msgid "you are not allowed to change file modes"
msgstr ""
-#: ../IkiWiki/Plugin/git.pm:879
+#: ../IkiWiki/Plugin/git.pm:885
msgid "you are not allowed to revert a merge"
msgstr ""
-#: ../IkiWiki/Plugin/git.pm:896
+#: ../IkiWiki/Plugin/git.pm:902
#, perl-format
msgid "Failed to revert commit %s"
msgstr ""
@@ -1164,12 +1164,12 @@ msgstr ""
msgid "building %s, to update its backlinks"
msgstr ""
-#: ../IkiWiki/Render.pm:798
+#: ../IkiWiki/Render.pm:806
#, perl-format
msgid "building %s"
msgstr ""
-#: ../IkiWiki/Render.pm:863
+#: ../IkiWiki/Render.pm:871
#, perl-format
msgid "ikiwiki: cannot build %s"
msgstr ""