summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorintrigeri <intrigeri@boum.org>2008-10-08 00:50:10 +0200
committerintrigeri <intrigeri@boum.org>2008-10-18 15:49:08 +0200
commitd9b9022c13af3aa6c469df05beaa293fcf33cafc (patch)
tree3b55b1f54c22edb516b948cd4d6e0d27a1e54732
parentbd50ba3e8392db13c584b4166783ee4794b20365 (diff)
added hook urlpath
This hook can be used to modify the internal urls generated by ikiwiki. Signed-off-by: intrigeri <intrigeri@boum.org>
-rw-r--r--IkiWiki.pm4
-rw-r--r--IkiWiki/Plugin/skeleton.pm.example5
-rw-r--r--doc/plugins/write.mdwn10
3 files changed, 19 insertions, 0 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm
index 28ee882cf..e75175a8d 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -927,6 +927,10 @@ sub beautify_urlpath ($) { #{{{
$url =~ s!/index.$config{htmlext}$!/!;
}
+ run_hooks(urlpath => sub {
+ $url=shift->(url => $url);
+ });
+
# Ensure url is not an empty link, and
# if it's relative, make that explicit to avoid colon confusion.
if ($url !~ /^\//) {
diff --git a/IkiWiki/Plugin/skeleton.pm.example b/IkiWiki/Plugin/skeleton.pm.example
index af22b3406..ecf2a2407 100644
--- a/IkiWiki/Plugin/skeleton.pm.example
+++ b/IkiWiki/Plugin/skeleton.pm.example
@@ -35,6 +35,7 @@ sub import { #{{{
hook(type => "formbuilder", id => "skeleton", call => \&formbuilder);
hook(type => "savestate", id => "skeleton", call => \&savestate);
hook(type => "targetpage", id => "skeleton", call => \&targetpage);
+ hook(type => "urlpath", id => "skeleton", call => \&urlpath);
} # }}}
sub getopt () { #{{{
@@ -209,4 +210,8 @@ sub targetpage () { #{{{
debug("skeleton plugin running in targetpage");
} #}}}
+sub urlpath () { #{{{
+ debug("skeleton plugin running in urlpath");
+} #}}}
+
1
diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn
index 6d2622272..15f6c8a20 100644
--- a/doc/plugins/write.mdwn
+++ b/doc/plugins/write.mdwn
@@ -437,6 +437,16 @@ be compiled into.
It should return the target filename.
+### urlpath
+
+ hook(type => "urlpath", id => "foo", call => \&urlpath);
+
+This hook can be used to modify the internal urls generated by
+ikiwiki; it is run just after ikiwiki has removed the trailing
+`index.html`, in case `usedirs` is enabled.
+
+It should return the modified url.
+
## Plugin interface
To import the ikiwiki plugin interface: