web commit by cworth
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Tue, 29 May 2007 18:57:59 +0000 (18:57 +0000)
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Tue, 29 May 2007 18:57:59 +0000 (18:57 +0000)
doc/todo/Support_wildcard_inside_of_link__40____41___within_a_pagespec.mdwn

index c1338f60cc1dc5e66183fec32b83657fa3b1069b..4197cece7353cb4fa67735e202d2f64c2d519010 100644 (file)
@@ -4,5 +4,40 @@ I'd like to have my blog page look like this:
 
        \[[inline pages="link(tag/*)"]]
 
 
        \[[inline pages="link(tag/*)"]]
 
-But I [tried](http://www.cworth.org/blog) that and it doesn't seem to
-work in ikiwiki 2.1 at least.
+That doesn't work in ikiwiki 2.1, but I have it
+[working](http://www.cworth.org/blog) with the following patch:
+
+       From 6149386084417fb8375d08446438b20ed52d6882 Mon Sep 17 00:00:00 2001
+       From: Carl Worth <cworth@cworth.org>
+       Date: Tue, 29 May 2007 11:43:21 -0700
+       Subject: [PATCH] Allow for glob matching inside of link() within a pagespec
+       
+       ---
+        IkiWiki.pm |   11 ++++++++---
+        1 files changed, 8 insertions(+), 3 deletions(-)
+       
+       diff --git a/IkiWiki.pm b/IkiWiki.pm
+       index 38aa46a..cd42e8d 100644
+       --- a/IkiWiki.pm
+       +++ b/IkiWiki.pm
+       @@ -1082,10 +1082,15 @@ sub match_link ($$;@) { #{{{
+               my $links = $IkiWiki::links{$page} or return undef;
+               return IkiWiki::FailReason->new("$page has no links") unless @$links;
+               my $bestlink = IkiWiki::bestlink($from, $link);
+       -       return IkiWiki::FailReason->new("no such link") unless length $bestlink;
+               foreach my $p (@$links) {
+       -               return IkiWiki::SuccessReason->new("$page links to $link")
+       -                       if $bestlink eq IkiWiki::bestlink($page, $p);
+       +               if (length $bestlink) {
+       +                       return IkiWiki::SuccessReason->new("$page links to $link")
+       +                               if $bestlink eq IkiWiki::bestlink($page, $p);
+       +               }
+       +               else {
+       +                       return IkiWiki::SuccessReason->new("$page links to page matching $link")
+       +                               if match_glob ($p, $link, %params);
+       +               }
+               }
+               return IkiWiki::FailReason->new("$page does not link to $link");
+        } #}}}
+       -- 
+       1.5.1.1.g6aead