aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2007-02-20 03:05:47 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2007-02-20 03:05:47 +0000
commitfa52a730ff3b30c7d2cdd8cd5f9c8c25a0c0a2a5 (patch)
tree3a4eadd971ccd69bd4037ad3647b6cce64047833
parent2ce6c23f9485d26d443fb5a1f8c5286a5e668625 (diff)
downloadikiwiki-fa52a730ff3b30c7d2cdd8cd5f9c8c25a0c0a2a5.tar
ikiwiki-fa52a730ff3b30c7d2cdd8cd5f9c8c25a0c0a2a5.tar.gz
* Changed calling convention for httmllink slightly. The first three
parameters remain the same, but additional options are now passed in using named parameters. * Change plugin interface version to 1.02 to reflect this change. * Add a new anchor option to htmllink. Thanks Ben for the idea. * Support anchors in wikilinks. * Add a "more" plugin based on one contributed by Ben to allow implementing those dreaded "Read more" links in blogs.
-rw-r--r--IkiWiki.pm30
-rw-r--r--IkiWiki/CGI.pm10
-rw-r--r--IkiWiki/Plugin/brokenlinks.pm4
-rw-r--r--IkiWiki/Plugin/inline.pm7
-rw-r--r--IkiWiki/Plugin/lockedit.pm4
-rw-r--r--IkiWiki/Plugin/map.pm3
-rw-r--r--IkiWiki/Plugin/more.pm32
-rw-r--r--IkiWiki/Plugin/openid.pm2
-rw-r--r--IkiWiki/Plugin/orphans.pm10
-rw-r--r--IkiWiki/Plugin/otl.pm4
-rw-r--r--IkiWiki/Plugin/pagestats.pm2
-rw-r--r--IkiWiki/Plugin/smiley.pm2
-rw-r--r--IkiWiki/Render.pm2
-rw-r--r--debian/NEWS11
-rw-r--r--debian/changelog12
-rw-r--r--doc/patchqueue/clickable-openid-urls-in-logs.mdwn2
-rw-r--r--doc/patchqueue/htmllink-anchors.mdwn29
-rw-r--r--doc/patchqueue/morelink-plugin.mdwn39
-rw-r--r--doc/plugins/more.mdwn15
-rw-r--r--doc/plugins/write.mdwn12
-rw-r--r--doc/wikilink.mdwn5
-rw-r--r--po/bg.po30
-rw-r--r--po/cs.po36
-rw-r--r--po/es.po30
-rw-r--r--po/fr.po30
-rw-r--r--po/gu.po30
-rw-r--r--po/ikiwiki.pot30
-rw-r--r--po/pl.po30
-rw-r--r--po/sv.po30
-rw-r--r--po/vi.po30
-rwxr-xr-xt/linkify.t4
31 files changed, 292 insertions, 225 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm
index d2fde957c..bbc857214 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -16,7 +16,7 @@ our @EXPORT = qw(hook debug error template htmlpage add_depends pagespec_match
bestlink htmllink readfile writefile pagetype srcfile pagename
displaytime will_render gettext
%config %links %renderedfiles %pagesources);
-our $VERSION = 1.01; # plugin interface version, next is ikiwiki version
+our $VERSION = 1.02; # plugin interface version, next is ikiwiki version
our $version='unknown'; # VERSION_AUTOREPLACE done by Makefile, DNE
my $installdir=''; # INSTALLDIR_AUTOREPLACE done by Makefile, DNE
@@ -30,7 +30,7 @@ sub defaultconfig () { #{{{
wiki_file_prune_regexps => [qr/\.\./, qr/^\./, qr/\/\./,
qr/\.x?html?$/, qr/\.ikiwiki-new$/,
qr/(^|\/).svn\//, qr/.arch-ids\//, qr/{arch}\//],
- wiki_link_regexp => qr/\[\[(?:([^\]\|]+)\|)?([^\s\]]+)\]\]/,
+ wiki_link_regexp => qr/\[\[(?:([^\]\|]+)\|)?([^\s\]#]+)(?:#([^\s\]]+))?\]\]/,
wiki_file_regexp => qr/(^[-[:alnum:]_.:\/+]+$)/,
web_commit_regexp => qr/^web commit (by (.*?(?=: |$))|from (\d+\.\d+\.\d+\.\d+)):?(.*)/,
verbose => 0,
@@ -419,23 +419,27 @@ sub displaytime ($) { #{{{
$config{timeformat}, localtime($time)));
} #}}}
-sub htmllink ($$$;$$$) { #{{{
+sub htmllink ($$$;@) { #{{{
my $lpage=shift; # the page doing the linking
my $page=shift; # the page that will contain the link (different for inline)
my $link=shift;
- my $noimageinline=shift; # don't turn links into inline html images
- my $forcesubpage=shift; # force a link to a subpage
- my $linktext=shift; # set to force the link text to something
+ my %opts=@_;
my $bestlink;
- if (! $forcesubpage) {
+ if (! $opts{forcesubpage}) {
$bestlink=bestlink($lpage, $link);
}
else {
$bestlink="$lpage/".lc($link);
}
- $linktext=pagetitle(basename($link)) unless defined $linktext;
+ my $linktext;
+ if (defined $opts{linktext}) {
+ $linktext=$opts{linktext};
+ }
+ else {
+ $linktext=pagetitle(basename($link));
+ }
return "<span class=\"selflink\">$linktext</span>"
if length $bestlink && $page eq $bestlink;
@@ -452,10 +456,14 @@ sub htmllink ($$$;$$$) { #{{{
$bestlink=abs2rel($bestlink, dirname($page));
- if (! $noimageinline && isinlinableimage($bestlink)) {
+ if (! $opts{noimageinline} && isinlinableimage($bestlink)) {
return "<img src=\"$bestlink\" alt=\"$linktext\" />";
}
+ if (defined $opts{anchor}) {
+ $bestlink.="#".$opts{anchor};
+ }
+
return "<a href=\"$bestlink\">$linktext</a>";
} #}}}
@@ -491,8 +499,8 @@ sub linkify ($$$) { #{{{
$content =~ s{(\\?)$config{wiki_link_regexp}}{
defined $2
- ? ( $1 ? "[[$2|$3]]" : htmllink($lpage, $page, titlepage($3), 0, 0, pagetitle($2)))
- : ( $1 ? "[[$3]]" : htmllink($lpage, $page, titlepage($3)))
+ ? ( $1 ? "[[$2|$3]]" : htmllink($lpage, $page, titlepage($3), anchor => $4, linktext => pagetitle($2)))
+ : ( $1 ? "[[$3]]" : htmllink($lpage, $page, titlepage($3), anchor => $4))
}eg;
return $content;
diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm
index 973053427..af3bb8a4a 100644
--- a/IkiWiki/CGI.pm
+++ b/IkiWiki/CGI.pm
@@ -89,7 +89,9 @@ sub cgi_recentchanges ($) { #{{{
delete @{$change->{pages}}[10 .. @{$change->{pages}}] if $is_excess;
$change->{pages} = [
map {
- $_->{link} = htmllink("", "", $_->{page}, 1, 0, pagetitle($_->{page}));
+ $_->{link} = htmllink("", "", $_->{page},
+ noimageinline => 1,
+ linktext => pagetitle($_->{page}));
$_;
} @{$change->{pages}}
];
@@ -219,7 +221,7 @@ sub cgi_prefs ($$) { #{{{
$form->field(name => "do", type => "hidden");
$form->field(name => "email", size => 50);
$form->field(name => "subscriptions", size => 50,
- comment => "(".htmllink("", "", "PageSpec", 1).")");
+ comment => "(".htmllink("", "", "PageSpec", noimageinline => 1).")");
$form->field(name => "banned_users", size => 50);
my $user_name=$session->param("name");
@@ -360,7 +362,7 @@ sub cgi_editpage ($$) { #{{{
$form->tmpl_param("can_commit", $config{rcs});
$form->tmpl_param("indexlink", indexlink());
$form->tmpl_param("helponformattinglink",
- htmllink("", "", "HelpOnFormatting", 1));
+ htmllink("", "", "HelpOnFormatting", noimageinline => 1));
$form->tmpl_param("baseurl", baseurl());
if (! $form->submitted) {
$form->field(name => "rcsinfo", value => rcs_prepedit($file),
@@ -709,7 +711,7 @@ sub userlink ($) { #{{{
else {
return htmllink("", "", escapeHTML(
length $config{userdir} ? $config{userdir}."/".$user : $user
- ), 1);
+ ), noimageinline => 1);
}
} #}}}
diff --git a/IkiWiki/Plugin/brokenlinks.pm b/IkiWiki/Plugin/brokenlinks.pm
index af2418ff4..d9d50f75f 100644
--- a/IkiWiki/Plugin/brokenlinks.pm
+++ b/IkiWiki/Plugin/brokenlinks.pm
@@ -27,9 +27,9 @@ sub preprocess (@) { #{{{
my $bestlink=bestlink($page, $link);
next if length $bestlink;
push @broken,
- htmllink($page, $params{destpage}, $link, 1).
+ htmllink($page, $params{destpage}, $link, noimageinline => 1).
" from ".
- htmllink($params{page}, $params{destpage}, $page, 1);
+ htmllink($params{page}, $params{destpage}, $page, noimageinline => 1);
}
}
}
diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm
index 57b4057d7..ebfcee9ed 100644
--- a/IkiWiki/Plugin/inline.pm
+++ b/IkiWiki/Plugin/inline.pm
@@ -166,7 +166,12 @@ sub preprocess_inline (@) { #{{{
(length $config{cgiurl} ||
exists $links{$page."/".$discussionlink})) {
$template->param(have_actions => 1);
- $template->param(discussionlink => htmllink($page, $params{page}, gettext("Discussion"), 1, 1));
+ $template->param(discussionlink =>
+ htmllink($page,
+ $params{page},
+ gettext("Discussion"),
+ noimageinline => 1,
+ forcesubpage => 1));
}
}
if (length $config{cgiurl} && defined $type) {
diff --git a/IkiWiki/Plugin/lockedit.pm b/IkiWiki/Plugin/lockedit.pm
index 2b72fabe5..f204e72c0 100644
--- a/IkiWiki/Plugin/lockedit.pm
+++ b/IkiWiki/Plugin/lockedit.pm
@@ -22,7 +22,7 @@ sub canedit ($$) { #{{{
foreach my $admin (@{$config{adminuser}}) {
if (pagespec_match($page, IkiWiki::userinfo_get($admin, "locked_pages"), "")) {
return sprintf(gettext("%s is locked by %s and cannot be edited"),
- htmllink("", "", $page, 1),
+ htmllink("", "", $page, noimageinline => 1),
IkiWiki::userlink($admin));
}
}
@@ -40,7 +40,7 @@ sub formbuilder_setup (@) { #{{{
if ($form->title eq "preferences") {
$form->field(name => "locked_pages", size => 50,
- comment => "(".htmllink("", "", "PageSpec", 1).")");
+ comment => "(".htmllink("", "", "PageSpec", noimageinline => 1).")");
if (! IkiWiki::is_admin($user_name)) {
$form->field(name => "locked_pages", type => "hidden");
}
diff --git a/IkiWiki/Plugin/map.pm b/IkiWiki/Plugin/map.pm
index 3c41194f4..07b63cb70 100644
--- a/IkiWiki/Plugin/map.pm
+++ b/IkiWiki/Plugin/map.pm
@@ -49,7 +49,8 @@ sub preprocess (@) { #{{{
}
$map .= "</li>\n" if $openli;
$map .= "<li>"
- .htmllink($params{page}, $params{destpage}, $item) ."\n";
+ .htmllink($params{page}, $params{destpage}, $item)
+ ."\n";
$openli=1;
}
while ($indent > 0) {
diff --git a/IkiWiki/Plugin/more.pm b/IkiWiki/Plugin/more.pm
new file mode 100644
index 000000000..dae3728ba
--- /dev/null
+++ b/IkiWiki/Plugin/more.pm
@@ -0,0 +1,32 @@
+#!/usr/bin/perl
+package IkiWiki::Plugin::more;
+
+use warnings;
+use strict;
+use IkiWiki;
+
+my $linktext = gettext("more");
+
+sub import { #{{{
+ hook(type => "preprocess", id => "more", call => \&preprocess);
+} # }}}
+
+sub preprocess (@) { #{{{
+ my %params=@_;
+
+ $params{linktext} = $linktext unless defined $params{linktext};
+
+ if ($params{page} ne $params{destpage}) {
+ return "\n".
+ htmllink($params{page}, $params{destpage}, $params{page},
+ linktext => $params{linktext},
+ anchor => "more");
+ }
+ else {
+ $params{text}=IkiWiki::preprocess($params{page}, $params{destpage},
+ IkiWiki::filter($params{page}, $params{text}));
+ return "<a name=\"more\"></a>\n\n".$params{text};
+ }
+}
+
+1
diff --git a/IkiWiki/Plugin/openid.pm b/IkiWiki/Plugin/openid.pm
index 5d387fbc6..65b884814 100644
--- a/IkiWiki/Plugin/openid.pm
+++ b/IkiWiki/Plugin/openid.pm
@@ -33,7 +33,7 @@ sub formbuilder_setup (@) { #{{{
label => "OpenID",
size => 30,
comment => '('.
- htmllink("", "", "OpenID", 1, 0, gettext("What's this?"))
+ htmllink("", "", "OpenID", noimageinline => 1, linktext => gettext("What's this?"))
.($config{openidsignup} ? " | <a href=\"$config{openidsignup}\">".gettext("Get an OpenID")."</a>" : "")
.')'
);
diff --git a/IkiWiki/Plugin/orphans.pm b/IkiWiki/Plugin/orphans.pm
index 39d836a01..f221954b8 100644
--- a/IkiWiki/Plugin/orphans.pm
+++ b/IkiWiki/Plugin/orphans.pm
@@ -40,7 +40,15 @@ sub preprocess (@) { #{{{
}
return gettext("All pages are linked to by other pages.") unless @orphans;
- return "<ul>\n".join("\n", map { "<li>".htmllink($params{page}, $params{destpage}, $_, 1)."</li>" } sort @orphans)."</ul>\n";
+ return "<ul>\n".
+ join("\n",
+ map {
+ "<li>".
+ htmllink($params{page}, $params{destpage}, $_,
+ noimageinline => 1).
+ "</li>"
+ } sort @orphans).
+ "</ul>\n";
} # }}}
1
diff --git a/IkiWiki/Plugin/otl.pm b/IkiWiki/Plugin/otl.pm
index 3f3413390..94a2b80f6 100644
--- a/IkiWiki/Plugin/otl.pm
+++ b/IkiWiki/Plugin/otl.pm
@@ -17,9 +17,9 @@ sub filter (@) { #{{{
# Munge up check boxes to look a little bit better. This is a hack.
my $checked=htmllink($params{page}, $params{page},
- "smileys/star_on.png", 0, 0, "[X]");
+ "smileys/star_on.png", linktext => "[X]");
my $unchecked=htmllink($params{page}, $params{page},
- "smileys/star_off.png", 0, 0, "[_]");
+ "smileys/star_off.png", linktext => "[_]");
$params{content}=~s/^(\s*)\[X\]\s/${1}$checked /mg;
$params{content}=~s/^(\s*)\[_\]\s/${1}$unchecked /mg;
diff --git a/IkiWiki/Plugin/pagestats.pm b/IkiWiki/Plugin/pagestats.pm
index f9a54ab56..1edb39455 100644
--- a/IkiWiki/Plugin/pagestats.pm
+++ b/IkiWiki/Plugin/pagestats.pm
@@ -45,7 +45,7 @@ sub preprocess (@) { #{{{
return "<table class='pageStats'>\n".
join("\n", map {
"<tr><td>".
- htmllink($params{page}, $params{destpage}, $_, 1).
+ htmllink($params{page}, $params{destpage}, $_, noimageinline => 1).
"</td><td>".$counts{$_}."</td></tr>"
}
sort { $counts{$b} <=> $counts{$a} } keys %counts).
diff --git a/IkiWiki/Plugin/smiley.pm b/IkiWiki/Plugin/smiley.pm
index 45d00abea..14b8cacf8 100644
--- a/IkiWiki/Plugin/smiley.pm
+++ b/IkiWiki/Plugin/smiley.pm
@@ -35,7 +35,7 @@ sub filter (@) { #{{{
my %params=@_;
$params{content} =~ s{(?:^|(?<=\s))(\\?)$smiley_regexp(?:(?=\s)|$)}{
- $1 ? $2 : htmllink($params{page}, $params{page}, $smileys{$2}, 0, 0, $2)
+ $1 ? $2 : htmllink($params{page}, $params{page}, $smileys{$2}, linktext => $2)
}egs;
return $params{content};
diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm
index cbba28251..3545df05a 100644
--- a/IkiWiki/Render.pm
+++ b/IkiWiki/Render.pm
@@ -98,7 +98,7 @@ sub genpage ($$$) { #{{{
if ($page !~ /.*\/\Q$discussionlink\E$/ &&
(length $config{cgiurl} ||
exists $links{$page."/".$discussionlink})) {
- $template->param(discussionlink => htmllink($page, $page, gettext("Discussion"), 1, 1));
+ $template->param(discussionlink => htmllink($page, $page, gettext("Discussion"), noimageinline => 1, forcesubpage => 1));
$actions++;
}
}
diff --git a/debian/NEWS b/debian/NEWS
index 5057ceabe..94f88c769 100644
--- a/debian/NEWS
+++ b/debian/NEWS
@@ -1,3 +1,14 @@
+ikiwiki (1.44) unstable; urgency=low
+
+ The htmllink() function has changed slightly and plugins that use it may
+ need to change how they call it. This function's first three parameters
+ are unchanged, but additional options are now passed using named
+ parameters. If you used htmllink with more than 3 parameters, you will
+ need to change it. The plugin interface version has been increased to 1.02
+ to reflect this change.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 19 Feb 2007 21:10:12 -0500
+
ikiwiki (1.42) unstable; urgency=low
The anonok setting in config files has been removed. To enable
diff --git a/debian/changelog b/debian/changelog
index 30cdc6524..1088fbfda 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -10,8 +10,16 @@ ikiwiki (1.44) UNRELEASED; urgency=low
flags, which can be useful on some hosting providers.
* Fix a bug that made links like [[0|foo]] use "foo" as the link text,
instead of "0".
-
- -- Joey Hess <joeyh@debian.org> Mon, 19 Feb 2007 20:08:24 -0500
+ * Changed calling convention for httmllink slightly. The first three
+ parameters remain the same, but additional options are now passed in using
+ named parameters.
+ * Change plugin interface version to 1.02 to reflect this change.
+ * Add a new anchor option to htmllink. Thanks Ben for the idea.
+ * Support anchors in wikilinks.
+ * Add a "more" plugin based on one contributed by Ben to allow implementing
+ those dreaded "Read more" links in blogs.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 19 Feb 2007 20:56:25 -0500
ikiwiki (1.43) unstable; urgency=low
diff --git a/doc/patchqueue/clickable-openid-urls-in-logs.mdwn b/doc/patchqueue/clickable-openid-urls-in-logs.mdwn
index 18ba6be94..997bc7492 100644
--- a/doc/patchqueue/clickable-openid-urls-in-logs.mdwn
+++ b/doc/patchqueue/clickable-openid-urls-in-logs.mdwn
@@ -1,6 +1,6 @@
OpenID URLs aren't clickable in the ViewVC logs because they're directly followed by a colon. At the expense of, um, proper grammar, here's a patch for SVN. If this is OK, I'll patch the other RCS modules, too.
-> Reasonable, but probably needs to modify the wiki_commit_regexp to
+> Reasonable, but probably needs to modify the wiki\_commit\_regexp to
> recognise such commit messages when parsing the logs. Do that and extend
> to the other modules and I'll accept it. --[[Joey]]
diff --git a/doc/patchqueue/htmllink-anchors.mdwn b/doc/patchqueue/htmllink-anchors.mdwn
deleted file mode 100644
index 2bb203f51..000000000
--- a/doc/patchqueue/htmllink-anchors.mdwn
+++ /dev/null
@@ -1,29 +0,0 @@
-Here's an attempt to make `htmllink` "do the right thing" with in-page anchors:
-
-<pre>
-Index: IkiWiki.pm
-===================================================================
---- IkiWiki.pm (revision 2657)
-+++ IkiWiki.pm (working copy)
-@@ -426,6 +426,8 @@
- my $noimageinline=shift; # don't turn links into inline html images
- my $forcesubpage=shift; # force a link to a subpage
- my $linktext=shift; # set to force the link text to something
-+
-+ my $anchor = ($link =~ s/#(.+)$// ? $1 : undef);
-
- my $bestlink;
- if (! $forcesubpage) {
-@@ -455,7 +457,10 @@
- if (! $noimageinline && isinlinableimage($bestlink)) {
- return "<img src=\"$bestlink\" alt=\"$linktext\" />";
- }
-- return "<a href=\"$bestlink\">$linktext</a>";
-+
-+ $bestlink .= "#$anchor" if $anchor;
-+
-+ return "<a href=\"$bestlink\">$linktext</a>";
- } #}}}
-
- sub htmlize ($$$) { #{{{
-</pre> \ No newline at end of file
diff --git a/doc/patchqueue/morelink-plugin.mdwn b/doc/patchqueue/morelink-plugin.mdwn
deleted file mode 100644
index 9724b3e3a..000000000
--- a/doc/patchqueue/morelink-plugin.mdwn
+++ /dev/null
@@ -1,39 +0,0 @@
-Enables _Read more_ links for use in blog posts. Adds a config option for customising the anchor text. (The [[/patchqueue/htmllink-anchors]] patch is a dependency).
-
- Index: IkiWiki/Plugin/morelink.pm
- ===================================================================
- --- IkiWiki/Plugin/morelink.pm (revision 0)
- +++ IkiWiki/Plugin/morelink.pm (revision 0)
- @@ -0,0 +1,30 @@
- +#!/usr/bin/perl
- +package IkiWiki::Plugin::morelink;
- +
- +use warnings;
- +use strict;
- +use IkiWiki;
- +
- +my $linktext = 'Read more';
- +
- +sub import { #{{{
- + hook(type => "checkconfig", id => "more", call => \&checkconfig);
- + hook(type => "preprocess", id => "more", call => \&preprocess);
- +} # }}}
- +
- +sub checkconfig () { #{{{
- + $linktext = $config{morelink_text} || $linktext;
- +} #}}}
- +
- +sub preprocess (@) { #{{{
- + my %args = @_;
- +
- + if ($args{page} ne $args{destpage}) {
- + return "\n".htmllink($args{page}, $args{destpage}, $args{page}.'#more', 0, 0, $linktext);
- + }
- + else {
- + return "<a name='more'></a>".$args{text};
- + }
- +}
- +
- +1
-
---Ben \ No newline at end of file
diff --git a/doc/plugins/more.mdwn b/doc/plugins/more.mdwn
new file mode 100644
index 000000000..44a777813
--- /dev/null
+++ b/doc/plugins/more.mdwn
@@ -0,0 +1,15 @@
+[[template id=plugin name=more author="Ben"]]
+[[tag type/format]]
+
+This plugin provides a way to have a "more" link on a page in a blog, that
+leads to the full version of the page. Use it like this:
+
+ \[[more linktext="click for more" text="""
+ This is the rest of my post. Not intended for people catching up on
+ their blogs at 30,000 feet. Because I like to make things
+ difficult.
+ """]]
+
+If the `linktext` parameter is omitted it defaults to just "more".
+
+Note that you can accomplish something similar using a [[toggle]] instead.
diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn
index c10d73cf9..889057e69 100644
--- a/doc/plugins/write.mdwn
+++ b/doc/plugins/write.mdwn
@@ -329,7 +329,7 @@ subdirectory with the same name as the source page, failing that
goes down the directory tree to the base looking for matching
pages, as described in [[SubPage/LinkingRules]].
-#### `htmllink($$$;$$$)`
+#### `htmllink($$$;@)`
Many plugins need to generate html links and add them to a page. This is
done by using the `htmllink` function. The usual way to call
@@ -346,11 +346,13 @@ Here `$destpage` is the inlining page. A `destpage` parameter is passed to
some of the hook functions above; the ones that are not passed it are not used
during inlining and don't need to worry about this issue.
-The remaining three optional parameters to `htmllink` are:
+After the three required parameters, named parameters can be used to
+control some options. These are:
-1. noimageinline - set to true to avoid turning links into inline html images
-1. forcesubpage - set to force a link to a subpage
-1. linktext - set to force the link text to something
+* noimageinline - set to true to avoid turning links into inline html images
+* forcesubpage - set to force a link to a subpage
+* linktext - set to force the link text to something
+* anchor - set to make the link include an anchor
#### `readfile($;$)`
diff --git a/doc/wikilink.mdwn b/doc/wikilink.mdwn
index 46da8c301..a085ab7a7 100644
--- a/doc/wikilink.mdwn
+++ b/doc/wikilink.mdwn
@@ -2,7 +2,7 @@ WikiLinks provide easy linking between pages of the wiki. To create a
[[WikiLink]], just put the name of the page to link to in double brackets.
For example "\[[WikiLink]]".
-If you ever need to write something like "\[[WikiLink]] without creating a
+If you ever need to write something like "\[[WikiLink]]" without creating a
wikilink, just prefix it with a "\", like "\\\\[[WikiLink]]".
There are some special [[SubPage/LinkingRules]] that come into play when
@@ -19,5 +19,8 @@ It's also possible to write a WikiLink that uses something other than the
page name as the link text. For example "\[[foo_bar|SandBox]]" links to the
SandBox page, but the link will appear like this: [[foo_bar|SandBox]]
+To link to an anchor inside a page, you can use something like
+"\[[WikiLink#foo]]"
+
**Note that you cannot use spaces in WikiLinks**. Replace spaces with
underscores.
diff --git a/po/bg.po b/po/bg.po
index b293e185f..fa7cdd735 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ikiwiki-bg\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-15 15:01-0500\n"
+"POT-Creation-Date: 2007-02-19 21:47-0500\n"
"PO-Revision-Date: 2007-01-12 01:19+0200\n"
"Last-Translator: Damyan Ivanov <dam@modsodtsys.com>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
@@ -16,41 +16,41 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
-#: ../IkiWiki/CGI.pm:152
+#: ../IkiWiki/CGI.pm:154
msgid "You need to log in first."
msgstr "Първо трябва да влезете."
-#: ../IkiWiki/CGI.pm:265
+#: ../IkiWiki/CGI.pm:267
msgid "Preferences saved."
msgstr "Предпочитанията са запазени."
-#: ../IkiWiki/CGI.pm:330
+#: ../IkiWiki/CGI.pm:332
#, perl-format
msgid "%s is not an editable page"
msgstr ""
-#: ../IkiWiki/CGI.pm:418 ../IkiWiki/Plugin/brokenlinks.pm:24
+#: ../IkiWiki/CGI.pm:420 ../IkiWiki/Plugin/brokenlinks.pm:24
#: ../IkiWiki/Plugin/inline.pm:164 ../IkiWiki/Plugin/opendiscussion.pm:17
#: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:97
#: ../IkiWiki/Render.pm:165
msgid "discussion"
msgstr "дискусия"
-#: ../IkiWiki/CGI.pm:463
+#: ../IkiWiki/CGI.pm:465
#, perl-format
msgid "creating %s"
msgstr "създаване на %s"
-#: ../IkiWiki/CGI.pm:480 ../IkiWiki/CGI.pm:508 ../IkiWiki/CGI.pm:541
+#: ../IkiWiki/CGI.pm:482 ../IkiWiki/CGI.pm:510 ../IkiWiki/CGI.pm:543
#, perl-format
msgid "editing %s"
msgstr "промяна на %s"
-#: ../IkiWiki/CGI.pm:649
+#: ../IkiWiki/CGI.pm:651
msgid "You are banned."
msgstr "Достъпът ви е забранен."
-#: ../IkiWiki/CGI.pm:681
+#: ../IkiWiki/CGI.pm:683
msgid "login failed, perhaps you need to turn on cookies?"
msgstr ""
@@ -128,11 +128,11 @@ msgstr ""
msgid "unknown sort type %s"
msgstr "непознат вид сортиране „%s”"
-#: ../IkiWiki/Plugin/inline.pm:169 ../IkiWiki/Render.pm:101
+#: ../IkiWiki/Plugin/inline.pm:172 ../IkiWiki/Render.pm:101
msgid "Discussion"
msgstr "Дискусия"
-#: ../IkiWiki/Plugin/inline.pm:382
+#: ../IkiWiki/Plugin/inline.pm:387
msgid "RPC::XML::Client not found, not pinging"
msgstr "модулът „RPC::XML::Client” не е намерен; източникът не е проверен"
@@ -161,6 +161,10 @@ msgstr "Огледала"
msgid "Mirror"
msgstr "Огледало"
+#: ../IkiWiki/Plugin/more.pm:8
+msgid "more"
+msgstr ""
+
#: ../IkiWiki/Plugin/openid.pm:36
msgid "What's this?"
msgstr "Какво е това?"
@@ -234,7 +238,7 @@ msgid "in mid-morning %A"
msgstr ""
#: ../IkiWiki/Plugin/prettydate.pm:26
-msgid "in late morning %A"
+msgid "late %A morning"
msgstr ""
#: ../IkiWiki/Plugin/prettydate.pm:27
@@ -454,7 +458,7 @@ msgstr "Грешка"
#. translators: preprocessor directive name,
#. translators: the second a page name, the
#. translators: third a number.
-#: ../IkiWiki.pm:548
+#: ../IkiWiki.pm:558
#, perl-format
msgid "%s preprocessing loop detected on %s at depth %i"
msgstr "открита е циклична завидимост при %s на „%s” на дълбочина %i"
diff --git a/po/cs.po b/po/cs.po
index 52249a392..0851166f4 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ikiwiki\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-15 15:01-0500\n"
+"POT-Creation-Date: 2007-02-19 21:47-0500\n"
"PO-Revision-Date: 2007-02-17 12:07+0100\n"
"Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
@@ -15,41 +15,41 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../IkiWiki/CGI.pm:152
+#: ../IkiWiki/CGI.pm:154
msgid "You need to log in first."
msgstr "Nejprve se musíte přihlásit."
-#: ../IkiWiki/CGI.pm:265
+#: ../IkiWiki/CGI.pm:267
msgid "Preferences saved."
msgstr "Nastavení uloženo."
-#: ../IkiWiki/CGI.pm:330
+#: ../IkiWiki/CGI.pm:332
#, perl-format
msgid "%s is not an editable page"
msgstr "%s není editovatelná stránka"
-#: ../IkiWiki/CGI.pm:418 ../IkiWiki/Plugin/brokenlinks.pm:24
+#: ../IkiWiki/CGI.pm:420 ../IkiWiki/Plugin/brokenlinks.pm:24
#: ../IkiWiki/Plugin/inline.pm:164 ../IkiWiki/Plugin/opendiscussion.pm:17
#: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:97
#: ../IkiWiki/Render.pm:165
msgid "discussion"
msgstr "diskuse"
-#: ../IkiWiki/CGI.pm:463
+#: ../IkiWiki/CGI.pm:465
#, perl-format
msgid "creating %s"
msgstr "vytvářím %s"
-#: ../IkiWiki/CGI.pm:480 ../IkiWiki/CGI.pm:508 ../IkiWiki/CGI.pm:541
+#: ../IkiWiki/CGI.pm:482 ../IkiWiki/CGI.pm:510 ../IkiWiki/CGI.pm:543
#, perl-format
msgid "editing %s"
msgstr "upravuji %s"
-#: ../IkiWiki/CGI.pm:649
+#: ../IkiWiki/CGI.pm:651
msgid "You are banned."
msgstr "Jste vyhoštěni."
-#: ../IkiWiki/CGI.pm:681
+#: ../IkiWiki/CGI.pm:683
msgid "login failed, perhaps you need to turn on cookies?"
msgstr "přihlášení selhalo; možná si musíte povolit cookies?"
@@ -125,11 +125,11 @@ msgstr "Při používání --rss nebo --atom musíte pomocí --url zadat url k w
msgid "unknown sort type %s"
msgstr "neznámý typ řazení %s"
-#: ../IkiWiki/Plugin/inline.pm:169 ../IkiWiki/Render.pm:101
+#: ../IkiWiki/Plugin/inline.pm:172 ../IkiWiki/Render.pm:101
msgid "Discussion"
msgstr "Diskuse"
-#: ../IkiWiki/Plugin/inline.pm:382
+#: ../IkiWiki/Plugin/inline.pm:387
msgid "RPC::XML::Client not found, not pinging"
msgstr "RPC::XML::Client nebyl nalezen, nepinkám"
@@ -156,6 +156,10 @@ msgstr "Zrcadla"
msgid "Mirror"
msgstr "Zrcadlo"
+#: ../IkiWiki/Plugin/more.pm:8
+msgid "more"
+msgstr ""
+
#: ../IkiWiki/Plugin/openid.pm:36
msgid "What's this?"
msgstr "Co to je?"
@@ -229,8 +233,9 @@ msgid "in mid-morning %A"
msgstr "%A dopoledne"
#: ../IkiWiki/Plugin/prettydate.pm:26
-msgid "in late morning %A"
-msgstr "%A pozdě dopoledne"
+#, fuzzy
+msgid "late %A morning"
+msgstr "%A pozdě večer"
#: ../IkiWiki/Plugin/prettydate.pm:27
msgid "at lunch time on %A"
@@ -446,7 +451,10 @@ msgstr "Chyba"
#. translators: preprocessor directive name,
#. translators: the second a page name, the
#. translators: third a number.
-#: ../IkiWiki.pm:548
+#: ../IkiWiki.pm:558
#, perl-format
msgid "%s preprocessing loop detected on %s at depth %i"
msgstr "Byla rozpoznána smyčka direktivy %s na %s v hloubce %i"
+
+#~ msgid "in late morning %A"
+#~ msgstr "%A pozdě dopoledne"
diff --git a/po/es.po b/po/es.po
index 0d6199ea1..7fba5acfc 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: es\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-15 15:01-0500\n"
+"POT-Creation-Date: 2007-02-19 21:47-0500\n"
"PO-Revision-Date: 2007-02-12 10:31+0100\n"
"Last-Translator: Víctor Moral <victor@taquiones.net>\n"
"Language-Team: spanish <es@li.org>\n"
@@ -16,41 +16,41 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
-#: ../IkiWiki/CGI.pm:152
+#: ../IkiWiki/CGI.pm:154
msgid "You need to log in first."
msgstr "Antes es necesario identificarse."
-#: ../IkiWiki/CGI.pm:265
+#: ../IkiWiki/CGI.pm:267
msgid "Preferences saved."
msgstr "Las preferencias se han guardado."
-#: ../IkiWiki/CGI.pm:330
+#: ../IkiWiki/CGI.pm:332
#, perl-format
msgid "%s is not an editable page"
msgstr "la página %s no es modificable"
-#: ../IkiWiki/CGI.pm:418 ../IkiWiki/Plugin/brokenlinks.pm:24
+#: ../IkiWiki/CGI.pm:420 ../IkiWiki/Plugin/brokenlinks.pm:24
#: ../IkiWiki/Plugin/inline.pm:164 ../IkiWiki/Plugin/opendiscussion.pm:17
#: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:97
#: ../IkiWiki/Render.pm:165
msgid "discussion"
msgstr "comentarios"
-#: ../IkiWiki/CGI.pm:463
+#: ../IkiWiki/CGI.pm:465
#, perl-format
msgid "creating %s"
msgstr "creando página %s"
-#: ../IkiWiki/CGI.pm:480 ../IkiWiki/CGI.pm:508 ../IkiWiki/CGI.pm:541
+#: ../IkiWiki/CGI.pm:482 ../IkiWiki/CGI.pm:510 ../IkiWiki/CGI.pm:543
#, perl-format
msgid "editing %s"
msgstr "modificando página %s"
-#: ../IkiWiki/CGI.pm:649
+#: ../IkiWiki/CGI.pm:651
msgid "You are banned."
msgstr "Ha sido expulsado."
-#: ../IkiWiki/CGI.pm:681
+#: ../IkiWiki/CGI.pm:683
msgid "login failed, perhaps you need to turn on cookies?"
msgstr ""
"registro fallido, ¿ tal vez es necesario activar las cookies en el "
@@ -131,11 +131,11 @@ msgstr ""
msgid "unknown sort type %s"
msgstr "no conozco este tipo de ordenación %s"
-#: ../IkiWiki/Plugin/inline.pm:169 ../IkiWiki/Render.pm:101
+#: ../IkiWiki/Plugin/inline.pm:172 ../IkiWiki/Render.pm:101
msgid "Discussion"
msgstr "Comentarios"
-#: ../IkiWiki/Plugin/inline.pm:382
+#: ../IkiWiki/Plugin/inline.pm:387
msgid "RPC::XML::Client not found, not pinging"
msgstr "No he encontrado el componente RPC::XML::Client, no envío señal alguna"
@@ -163,6 +163,10 @@ msgstr "Réplicas"
msgid "Mirror"
msgstr "Réplica"
+#: ../IkiWiki/Plugin/more.pm:8
+msgid "more"
+msgstr ""
+
#: ../IkiWiki/Plugin/openid.pm:36
msgid "What's this?"
msgstr "¿ Qué es esto ?"
@@ -236,7 +240,7 @@ msgid "in mid-morning %A"
msgstr ""
#: ../IkiWiki/Plugin/prettydate.pm:26
-msgid "in late morning %A"
+msgid "late %A morning"
msgstr ""
#: ../IkiWiki/Plugin/prettydate.pm:27
@@ -459,7 +463,7 @@ msgstr "Error"
#. translators: preprocessor directive name,
#. translators: the second a page name, the
#. translators: third a number.
-#: ../IkiWiki.pm:548
+#: ../IkiWiki.pm:558
#, perl-format
msgid "%s preprocessing loop detected on %s at depth %i"
msgstr ""
diff --git a/po/fr.po b/po/fr.po
index 13acb0727..42d11a7a6 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ikiwiki\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-15 15:01-0500\n"
+"POT-Creation-Date: 2007-02-19 21:47-0500\n"
"PO-Revision-Date: 2007-01-22 22:12+0100\n"
"Last-Translator: Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>\n"
"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
@@ -17,41 +17,41 @@ msgstr ""
"X-Poedit-Language: French\n"
"X-Poedit-Country: FRANCE\n"
-#: ../IkiWiki/CGI.pm:152
+#: ../IkiWiki/CGI.pm:154
msgid "You need to log in first."
msgstr "Vous devez d'abord vous identifier."
-#: ../IkiWiki/CGI.pm:265
+#: ../IkiWiki/CGI.pm:267
msgid "Preferences saved."
msgstr "Les préférences ont été enregistrées."
-#: ../IkiWiki/CGI.pm:330
+#: ../IkiWiki/CGI.pm:332
#, perl-format
msgid "%s is not an editable page"
msgstr ""
-#: ../IkiWiki/CGI.pm:418 ../IkiWiki/Plugin/brokenlinks.pm:24
+#: ../IkiWiki/CGI.pm:420 ../IkiWiki/Plugin/brokenlinks.pm:24
#: ../IkiWiki/Plugin/inline.pm:164 ../IkiWiki/Plugin/opendiscussion.pm:17
#: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:97
#: ../IkiWiki/Render.pm:165
msgid "discussion"
msgstr "Discussion"
-#: ../IkiWiki/CGI.pm:463
+#: ../IkiWiki/CGI.pm:465
#, perl-format
msgid "creating %s"
msgstr "Création de %s"
-#: ../IkiWiki/CGI.pm:480 ../IkiWiki/CGI.pm:508 ../IkiWiki/CGI.pm:541
+#: ../IkiWiki/CGI.pm:482 ../IkiWiki/CGI.pm:510 ../IkiWiki/CGI.pm:543
#, perl-format
msgid "editing %s"
msgstr "Édition de %s"
-#: ../IkiWiki/CGI.pm:649
+#: ../IkiWiki/CGI.pm:651
msgid "You are banned."
msgstr "Vous avez été banni."
-#: ../IkiWiki/CGI.pm:681
+#: ../IkiWiki/CGI.pm:683
msgid "login failed, perhaps you need to turn on cookies?"
msgstr ""
"Échec de l'identification, vous devriez peut-être autoriser les cookies."
@@ -130,11 +130,11 @@ msgstr ""
msgid "unknown sort type %s"
msgstr "Type de tri %s inconnu"
-#: ../IkiWiki/Plugin/inline.pm:169 ../IkiWiki/Render.pm:101
+#: ../IkiWiki/Plugin/inline.pm:172 ../IkiWiki/Render.pm:101
msgid "Discussion"
msgstr "Discussion"
-#: ../IkiWiki/Plugin/inline.pm:382
+#: ../IkiWiki/Plugin/inline.pm:387
msgid "RPC::XML::Client not found, not pinging"
msgstr "RPC::XML::Client introuvable, pas de réponse au ping"
@@ -162,6 +162,10 @@ msgstr "Miroirs"
msgid "Mirror"
msgstr "Miroir"
+#: ../IkiWiki/Plugin/more.pm:8
+msgid "more"
+msgstr ""
+
#: ../IkiWiki/Plugin/openid.pm:36
msgid "What's this?"
msgstr "Qu'est-ce que c'est ?"
@@ -235,7 +239,7 @@ msgid "in mid-morning %A"
msgstr ""
#: ../IkiWiki/Plugin/prettydate.pm:26
-msgid "in late morning %A"
+msgid "late %A morning"
msgstr ""
#: ../IkiWiki/Plugin/prettydate.pm:27
@@ -457,7 +461,7 @@ msgstr "Erreur"
#. translators: preprocessor directive name,
#. translators: the second a page name, the
#. translators: third a number.
-#: ../IkiWiki.pm:548
+#: ../IkiWiki.pm:558
#, perl-format
msgid "%s preprocessing loop detected on %s at depth %i"
msgstr ""
diff --git a/po/gu.po b/po/gu.po
index d3edaede9..564569088 100644
--- a/po/gu.po
+++ b/po/gu.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ikiwiki-gu\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-15 15:01-0500\n"
+"POT-Creation-Date: 2007-02-19 21:47-0500\n"
"PO-Revision-Date: 2007-01-11 16:05+0530\n"
"Last-Translator: Kartik Mistry <kartik.mistry@gmail.com>\n"
"Language-Team: Gujarati <team@utkarsh.org>\n"
@@ -15,41 +15,41 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../IkiWiki/CGI.pm:152
+#: ../IkiWiki/CGI.pm:154
msgid "You need to log in first."
msgstr "તમારે પ્રથમ લોગ ઇન થવું પડશે."
-#: ../IkiWiki/CGI.pm:265
+#: ../IkiWiki/CGI.pm:267
msgid "Preferences saved."
msgstr "પ્રાથમિકતાઓ સંગ્રહાઇ."
-#: ../IkiWiki/CGI.pm:330
+#: ../IkiWiki/CGI.pm:332
#, perl-format
msgid "%s is not an editable page"
msgstr ""
-#: ../IkiWiki/CGI.pm:418 ../IkiWiki/Plugin/brokenlinks.pm:24
+#: ../IkiWiki/CGI.pm:420 ../IkiWiki/Plugin/brokenlinks.pm:24
#: ../IkiWiki/Plugin/inline.pm:164 ../IkiWiki/Plugin/opendiscussion.pm:17
#: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:97
#: ../IkiWiki/Render.pm:165
msgid "discussion"
msgstr "ચર્ચા"
-#: ../IkiWiki/CGI.pm:463
+#: ../IkiWiki/CGI.pm:465
#, perl-format
msgid "creating %s"
msgstr "%s બનાવે છે"
-#: ../IkiWiki/CGI.pm:480 ../IkiWiki/CGI.pm:508 ../IkiWiki/CGI.pm:541
+#: ../IkiWiki/CGI.pm:482 ../IkiWiki/CGI.pm:510 ../IkiWiki/CGI.pm:543
#, perl-format
msgid "editing %s"
msgstr "%s સુધારે છે"
-#: ../IkiWiki/CGI.pm:649
+#: ../IkiWiki/CGI.pm:651
msgid "You are banned."
msgstr "તમારા પર પ્રતિબંધ છે."
-#: ../IkiWiki/CGI.pm:681
+#: ../IkiWiki/CGI.pm:683
msgid "login failed, perhaps you need to turn on cookies?"
msgstr ""
@@ -125,11 +125,11 @@ msgstr "--rss અથવા --atom ઉપયોગ કરતી વખતે વ
msgid "unknown sort type %s"
msgstr "અજાણ્યો ગોઠવણી પ્રકાર %s"
-#: ../IkiWiki/Plugin/inline.pm:169 ../IkiWiki/Render.pm:101
+#: ../IkiWiki/Plugin/inline.pm:172 ../IkiWiki/Render.pm:101
msgid "Discussion"
msgstr "ચર્ચા"
-#: ../IkiWiki/Plugin/inline.pm:382
+#: ../IkiWiki/Plugin/inline.pm:387
msgid "RPC::XML::Client not found, not pinging"
msgstr "RPC::XML::Client મળ્યું નહી, પિંગ કરવામાં આવતું નથી"
@@ -155,6 +155,10 @@ msgstr "મિરરો"
msgid "Mirror"
msgstr "મિરર"
+#: ../IkiWiki/Plugin/more.pm:8
+msgid "more"
+msgstr ""
+
#: ../IkiWiki/Plugin/openid.pm:36
msgid "What's this?"
msgstr "આ શું છે?"
@@ -228,7 +232,7 @@ msgid "in mid-morning %A"
msgstr ""
#: ../IkiWiki/Plugin/prettydate.pm:26
-msgid "in late morning %A"
+msgid "late %A morning"
msgstr ""
#: ../IkiWiki/Plugin/prettydate.pm:27
@@ -444,7 +448,7 @@ msgstr "ક્ષતિ"
#. translators: preprocessor directive name,
#. translators: the second a page name, the
#. translators: third a number.
-#: ../IkiWiki.pm:548
+#: ../IkiWiki.pm:558
#, perl-format
msgid "%s preprocessing loop detected on %s at depth %i"
msgstr "%s પર શોધાયેલ લુપ %s પર ચલાવે છે %i ઉંડાણ પર"
diff --git a/po/ikiwiki.pot b/po/ikiwiki.pot
index 556ff101d..c9db3be99 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: 2007-02-15 15:01-0500\n"
+"POT-Creation-Date: 2007-02-19 21:47-0500\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"
@@ -16,41 +16,41 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../IkiWiki/CGI.pm:152
+#: ../IkiWiki/CGI.pm:154
msgid "You need to log in first."
msgstr ""
-#: ../IkiWiki/CGI.pm:265
+#: ../IkiWiki/CGI.pm:267
msgid "Preferences saved."
msgstr ""
-#: ../IkiWiki/CGI.pm:330
+#: ../IkiWiki/CGI.pm:332
#, perl-format
msgid "%s is not an editable page"
msgstr ""
-#: ../IkiWiki/CGI.pm:418 ../IkiWiki/Plugin/brokenlinks.pm:24
+#: ../IkiWiki/CGI.pm:420 ../IkiWiki/Plugin/brokenlinks.pm:24
#: ../IkiWiki/Plugin/inline.pm:164 ../IkiWiki/Plugin/opendiscussion.pm:17
#: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:97
#: ../IkiWiki/Render.pm:165
msgid "discussion"
msgstr ""
-#: ../IkiWiki/CGI.pm:463
+#: ../IkiWiki/CGI.pm:465
#, perl-format
msgid "creating %s"
msgstr ""
-#: ../IkiWiki/CGI.pm:480 ../IkiWiki/CGI.pm:508 ../IkiWiki/CGI.pm:541
+#: ../IkiWiki/CGI.pm:482 ../IkiWiki/CGI.pm:510 ../IkiWiki/CGI.pm:543
#, perl-format
msgid "editing %s"
msgstr ""
-#: ../IkiWiki/CGI.pm:649
+#: ../IkiWiki/CGI.pm:651
msgid "You are banned."
msgstr ""
-#: ../IkiWiki/CGI.pm:681
+#: ../IkiWiki/CGI.pm:683
msgid "login failed, perhaps you need to turn on cookies?"
msgstr ""
@@ -126,11 +126,11 @@ msgstr ""
msgid "unknown sort type %s"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:169 ../IkiWiki/Render.pm:101
+#: ../IkiWiki/Plugin/inline.pm:172 ../IkiWiki/Render.pm:101
msgid "Discussion"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:382
+#: ../IkiWiki/Plugin/inline.pm:387
msgid "RPC::XML::Client not found, not pinging"
msgstr ""
@@ -156,6 +156,10 @@ msgstr ""
msgid "Mirror"
msgstr ""
+#: ../IkiWiki/Plugin/more.pm:8
+msgid "more"
+msgstr ""
+
#: ../IkiWiki/Plugin/openid.pm:36
msgid "What's this?"
msgstr ""
@@ -229,7 +233,7 @@ msgid "in mid-morning %A"
msgstr ""
#: ../IkiWiki/Plugin/prettydate.pm:26
-msgid "in late morning %A"
+msgid "late %A morning"
msgstr ""
#: ../IkiWiki/Plugin/prettydate.pm:27
@@ -445,7 +449,7 @@ msgstr ""
#. translators: preprocessor directive name,
#. translators: the second a page name, the
#. translators: third a number.
-#: ../IkiWiki.pm:548
+#: ../IkiWiki.pm:558
#, perl-format
msgid "%s preprocessing loop detected on %s at depth %i"
msgstr ""
diff --git a/po/pl.po b/po/pl.po
index 3987fda87..53cc06f66 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ikiwiki 1.37\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-15 15:01-0500\n"
+"POT-Creation-Date: 2007-02-19 21:47-0500\n"
"PO-Revision-Date: 2007-01-05 16:33+100\n"
"Last-Translator: Paweł Tęcza <ptecza@net.icm.edu.pl>\n"
"Language-Team: Debian L10n Polish <debian-l10n-polish@lists.debian.org>\n"
@@ -16,41 +16,41 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../IkiWiki/CGI.pm:152
+#: ../IkiWiki/CGI.pm:154
msgid "You need to log in first."
msgstr "Konieczne jest zalogowanie się."
-#: ../IkiWiki/CGI.pm:265
+#: ../IkiWiki/CGI.pm:267
msgid "Preferences saved."
msgstr "Ustawienia zostały zapisane."
-#: ../IkiWiki/CGI.pm:330
+#: ../IkiWiki/CGI.pm:332
#, perl-format
msgid "%s is not an editable page"
msgstr ""
-#: ../IkiWiki/CGI.pm:418 ../IkiWiki/Plugin/brokenlinks.pm:24
+#: ../IkiWiki/CGI.pm:420 ../IkiWiki/Plugin/brokenlinks.pm:24
#: ../IkiWiki/Plugin/inline.pm:164 ../IkiWiki/Plugin/opendiscussion.pm:17
#: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:97
#: ../IkiWiki/Render.pm:165
msgid "discussion"
msgstr "dyskusja"
-#: ../IkiWiki/CGI.pm:463
+#: ../IkiWiki/CGI.pm:465
#, perl-format
msgid "creating %s"
msgstr "tworzenie strony %s"
-#: ../IkiWiki/CGI.pm:480 ../IkiWiki/CGI.pm:508 ../IkiWiki/CGI.pm:541
+#: ../IkiWiki/CGI.pm:482 ../IkiWiki/CGI.pm:510 ../IkiWiki/CGI.pm:543
#, perl-format
msgid "editing %s"
msgstr "edycja strony %s"
-#: ../IkiWiki/CGI.pm:649
+#: ../IkiWiki/CGI.pm:651
msgid "You are banned."
msgstr "Dostęp został zabroniony przez administratora."
-#: ../IkiWiki/CGI.pm:681
+#: ../IkiWiki/CGI.pm:683
msgid "login failed, perhaps you need to turn on cookies?"
msgstr ""
@@ -130,11 +130,11 @@ msgstr ""
msgid "unknown sort type %s"
msgstr "nieznany sposób sortowania %s"
-#: ../IkiWiki/Plugin/inline.pm:169 ../IkiWiki/Render.pm:101
+#: ../IkiWiki/Plugin/inline.pm:172 ../IkiWiki/Render.pm:101
msgid "Discussion"
msgstr "Dyskusja"
-#: ../IkiWiki/Plugin/inline.pm:382
+#: ../IkiWiki/Plugin/inline.pm:387
msgid "RPC::XML::Client not found, not pinging"
msgstr "Niezainstalowany moduł RPC::XML::Client, brak możliwości pingowania"
@@ -164,6 +164,10 @@ msgstr "Kopie lustrzane"
msgid "Mirror"
msgstr "Kopia lustrzana"
+#: ../IkiWiki/Plugin/more.pm:8
+msgid "more"
+msgstr ""
+
#: ../IkiWiki/Plugin/openid.pm:36
msgid "What's this?"
msgstr "Więcej o OpenID"
@@ -237,7 +241,7 @@ msgid "in mid-morning %A"
msgstr ""
#: ../IkiWiki/Plugin/prettydate.pm:26
-msgid "in late morning %A"
+msgid "late %A morning"
msgstr ""
#: ../IkiWiki/Plugin/prettydate.pm:27
@@ -458,7 +462,7 @@ msgstr "Błąd"
#. translators: preprocessor directive name,
#. translators: the second a page name, the
#. translators: third a number.
-#: ../IkiWiki.pm:548
+#: ../IkiWiki.pm:558
#, perl-format
msgid "%s preprocessing loop detected on %s at depth %i"
msgstr "polecenie preprocesora %s wykryte w %s na głębokości %i"
diff --git a/po/sv.po b/po/sv.po
index 19028ef3d..aa6c15934 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ikiwiki\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-15 15:01-0500\n"
+"POT-Creation-Date: 2007-02-19 21:47-0500\n"
"PO-Revision-Date: 2007-01-10 23:47+0100\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -15,41 +15,41 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../IkiWiki/CGI.pm:152
+#: ../IkiWiki/CGI.pm:154
msgid "You need to log in first."
msgstr "Du måste logga in först."
-#: ../IkiWiki/CGI.pm:265
+#: ../IkiWiki/CGI.pm:267
msgid "Preferences saved."
msgstr "Inställningar sparades."
-#: ../IkiWiki/CGI.pm:330
+#: ../IkiWiki/CGI.pm:332
#, perl-format
msgid "%s is not an editable page"
msgstr ""
-#: ../IkiWiki/CGI.pm:418 ../IkiWiki/Plugin/brokenlinks.pm:24
+#: ../IkiWiki/CGI.pm:420 ../IkiWiki/Plugin/brokenlinks.pm:24
#: ../IkiWiki/Plugin/inline.pm:164 ../IkiWiki/Plugin/opendiscussion.pm:17
#: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:97
#: ../IkiWiki/Render.pm:165
msgid "discussion"
msgstr "diskussion"
-#: ../IkiWiki/CGI.pm:463
+#: ../IkiWiki/CGI.pm:465
#, perl-format
msgid "creating %s"
msgstr "skapar %s"
-#: ../IkiWiki/CGI.pm:480 ../IkiWiki/CGI.pm:508 ../IkiWiki/CGI.pm:541
+#: ../IkiWiki/CGI.pm:482 ../IkiWiki/CGI.pm:510 ../IkiWiki/CGI.pm:543
#, perl-format
msgid "editing %s"
msgstr "redigerar %s"
-#: ../IkiWiki/CGI.pm:649
+#: ../IkiWiki/CGI.pm:651
msgid "You are banned."
msgstr "Du är bannlyst."
-#: ../IkiWiki/CGI.pm:681
+#: ../IkiWiki/CGI.pm:683
msgid "login failed, perhaps you need to turn on cookies?"
msgstr ""
@@ -125,11 +125,11 @@ msgstr "Måste ange url till wiki med --url när --rss eller --atom används"
msgid "unknown sort type %s"
msgstr "okänd sorteringstyp %s"
-#: ../IkiWiki/Plugin/inline.pm:169 ../IkiWiki/Render.pm:101
+#: ../IkiWiki/Plugin/inline.pm:172 ../IkiWiki/Render.pm:101
msgid "Discussion"
msgstr "Diskussion"
-#: ../IkiWiki/Plugin/inline.pm:382
+#: ../IkiWiki/Plugin/inline.pm:387
msgid "RPC::XML::Client not found, not pinging"
msgstr "RPC::XML::Client hittades inte, pingar inte"
@@ -157,6 +157,10 @@ msgstr "Speglar"
msgid "Mirror"
msgstr "Spegel"
+#: ../IkiWiki/Plugin/more.pm:8
+msgid "more"
+msgstr ""
+
#: ../IkiWiki/Plugin/openid.pm:36
msgid "What's this?"
msgstr "Vad är det här?"
@@ -230,7 +234,7 @@ msgid "in mid-morning %A"
msgstr ""
#: ../IkiWiki/Plugin/prettydate.pm:26
-msgid "in late morning %A"
+msgid "late %A morning"
msgstr ""
#: ../IkiWiki/Plugin/prettydate.pm:27
@@ -448,7 +452,7 @@ msgstr "Fel"
#. translators: preprocessor directive name,
#. translators: the second a page name, the
#. translators: third a number.
-#: ../IkiWiki.pm:548
+#: ../IkiWiki.pm:558
#, perl-format
msgid "%s preprocessing loop detected on %s at depth %i"
msgstr "%s förbehandlingsslinga detekterades på %s, djup %i"
diff --git a/po/vi.po b/po/vi.po
index 5449e533d..d889b61cb 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ikiwiki\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-15 15:01-0500\n"
+"POT-Creation-Date: 2007-02-19 21:47-0500\n"
"PO-Revision-Date: 2007-01-13 15:31+1030\n"
"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
@@ -16,41 +16,41 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: LocFactoryEditor 1.6fc1\n"
-#: ../IkiWiki/CGI.pm:152
+#: ../IkiWiki/CGI.pm:154
msgid "You need to log in first."
msgstr "Trước tiên bạn cần phải đăng nhập."
-#: ../IkiWiki/CGI.pm:265
+#: ../IkiWiki/CGI.pm:267
msgid "Preferences saved."
msgstr "Tùy thích đã được lưu."
-#: ../IkiWiki/CGI.pm:330
+#: ../IkiWiki/CGI.pm:332
#, perl-format
msgid "%s is not an editable page"
msgstr ""
-#: ../IkiWiki/CGI.pm:418 ../IkiWiki/Plugin/brokenlinks.pm:24
+#: ../IkiWiki/CGI.pm:420 ../IkiWiki/Plugin/brokenlinks.pm:24
#: ../IkiWiki/Plugin/inline.pm:164 ../IkiWiki/Plugin/opendiscussion.pm:17
#: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:97
#: ../IkiWiki/Render.pm:165
msgid "discussion"
msgstr "thảo luận"
-#: ../IkiWiki/CGI.pm:463
+#: ../IkiWiki/CGI.pm:465
#, perl-format
msgid "creating %s"
msgstr "đang tạo %s"
-#: ../IkiWiki/CGI.pm:480 ../IkiWiki/CGI.pm:508 ../IkiWiki/CGI.pm:541
+#: ../IkiWiki/CGI.pm:482 ../IkiWiki/CGI.pm:510 ../IkiWiki/CGI.pm:543
#, perl-format
msgid "editing %s"
msgstr "đang sửa %s"
-#: ../IkiWiki/CGI.pm:649
+#: ../IkiWiki/CGI.pm:651
msgid "You are banned."
msgstr "Bạn bị cấm ra."
-#: ../IkiWiki/CGI.pm:681
+#: ../IkiWiki/CGI.pm:683
msgid "login failed, perhaps you need to turn on cookies?"
msgstr ""
@@ -128,11 +128,11 @@ msgstr ""
msgid "unknown sort type %s"
msgstr "kiểu sắp xếp không rõ %s"
-#: ../IkiWiki/Plugin/inline.pm:169 ../IkiWiki/Render.pm:101
+#: ../IkiWiki/Plugin/inline.pm:172 ../IkiWiki/Render.pm:101
msgid "Discussion"
msgstr "Thảo luận"
-#: ../IkiWiki/Plugin/inline.pm:382
+#: ../IkiWiki/Plugin/inline.pm:387
msgid "RPC::XML::Client not found, not pinging"
msgstr "Không tìm thấy RPC::XML::Client nên không gửi gói tin ping"
@@ -158,6 +158,10 @@ msgstr "Nhân bản"
msgid "Mirror"
msgstr "Nhân bản"
+#: ../IkiWiki/Plugin/more.pm:8
+msgid "more"
+msgstr ""
+
#: ../IkiWiki/Plugin/openid.pm:36
msgid "What's this?"
msgstr "Cái này là gì?"
@@ -231,7 +235,7 @@ msgid "in mid-morning %A"
msgstr ""
#: ../IkiWiki/Plugin/prettydate.pm:26
-msgid "in late morning %A"
+msgid "late %A morning"
msgstr ""
#: ../IkiWiki/Plugin/prettydate.pm:27
@@ -449,7 +453,7 @@ msgstr "Lỗi"
#. translators: preprocessor directive name,
#. translators: the second a page name, the
#. translators: third a number.
-#: ../IkiWiki.pm:548
+#: ../IkiWiki.pm:558
#, perl-format
msgid "%s preprocessing loop detected on %s at depth %i"
msgstr "vòng lặp tiền xử lý %s được phát hiện trên %s ở độ sâu %i"
diff --git a/t/linkify.t b/t/linkify.t
index bc7c0e4a8..18b47dcb7 100755
--- a/t/linkify.t
+++ b/t/linkify.t
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use warnings;
use strict;
-use Test::More tests => 14;
+use Test::More tests => 15;
BEGIN { use_ok("IkiWiki"); }
@@ -80,4 +80,4 @@ ok(links_text("0", linkify("foo", "foo", "link to [[0|bar]] ok", ["foo", "bar"])
ok(links_text("Some long, & complex page name.", linkify("foo", "foo", "link to [[Some long, & complex page name.|bar]] ok, and this is not a link]] here", ["foo", "bar"])), "complex named link text");
ok(links_to("foo/bar", linkify("foo/item", "foo", "link to [[bar]] ok", ["foo", "foo/item", "foo/bar"])), "inline page link");
ok(links_to("bar", linkify("foo", "foo", "link to [[bar]] ok", ["foo", "foo/item", "foo/bar"])), "same except not inline");
-
+ok(links_to("bar#baz", linkify("foo", "foo", "link to [[bar#baz]] ok", ["foo", "bar"])), "anchor link");