From d9b9022c13af3aa6c469df05beaa293fcf33cafc Mon Sep 17 00:00:00 2001 From: intrigeri Date: Wed, 8 Oct 2008 00:50:10 +0200 Subject: [PATCH] added hook urlpath This hook can be used to modify the internal urls generated by ikiwiki. Signed-off-by: intrigeri --- IkiWiki.pm | 4 ++++ IkiWiki/Plugin/skeleton.pm.example | 5 +++++ doc/plugins/write.mdwn | 10 ++++++++++ 3 files changed, 19 insertions(+) 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: -- 2.39.5