diff options
author | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2006-08-02 00:14:31 +0000 |
---|---|---|
committer | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2006-08-02 00:14:31 +0000 |
commit | 2794d7ef5abc4fa8fc2eb42d5c85ada197df0767 (patch) | |
tree | a79c4c81a7cb989fb3cfa5f84a0d8fad831c5085 /IkiWiki/Render.pm | |
parent | 418096be9e56f9078c19605f867b44d25ccadf58 (diff) |
* Renamed GlobLists to PageSpecs.
* PageSpecs can now include nested parens, "and", and "or". This remains
backwards compatible to the old GlobList format. It's implemented by
treating the GlobList as a very limited microlanguage that is transformed
to perl code that does the matching.
* The old GlobList format is deprecated, and I encourage users to switch to
using the new PageSpec format. Compatability with the old format will be
removed at some point, possibly by 2.0.
* Wiki rebuild needed on upgrade to this version due to PageSpec change.
* Add support for creation_month and creation_year to PageSpec.
Closes: #380680
* Changes to index file encoding.
Diffstat (limited to 'IkiWiki/Render.pm')
-rw-r--r-- | IkiWiki/Render.pm | 29 |
1 files changed, 4 insertions, 25 deletions
diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index 1449b8931..7cb55f128 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -129,37 +129,16 @@ sub preprocess ($$$;$) { #{{{ sub add_depends ($$) { #{{{ my $page=shift; - my $globlist=shift; + my $pagespec=shift; if (! exists $depends{$page}) { - $depends{$page}=$globlist; + $depends{$page}=$pagespec; } else { - $depends{$page}=globlist_merge($depends{$page}, $globlist); + $depends{$page}=pagespec_merge($depends{$page}, $pagespec); } } # }}} -sub globlist_merge ($$) { #{{{ - my $a=shift; - my $b=shift; - - my $ret=""; - # Only add negated globs if they are not matched by the other globlist. - foreach my $i ((map { [ $a, $_ ] } split(" ", $b)), - (map { [ $b, $_ ] } split(" ", $a))) { - if ($i->[1]=~/^!(.*)/) { - if (! globlist_match($1, $i->[0])) { - $ret.=" ".$i->[1]; - } - } - else { - $ret.=" ".$i->[1]; - } - } - - return $ret; -} #}}} - sub genpage ($$$) { #{{{ my $page=shift; my $content=shift; @@ -441,7 +420,7 @@ FILE: foreach my $file (@files) { foreach my $file (keys %rendered, @del) { next if $f eq $file; my $page=pagename($file); - if (globlist_match($page, $depends{$p})) { + if (pagespec_match($page, $depends{$p})) { debug("rendering $f, which depends on $page"); render($f); $rendered{$f}=1; |