diff options
author | Simon McVittie <smcv@debian.org> | 2019-02-03 19:22:07 +0000 |
---|---|---|
committer | Simon McVittie <smcv@debian.org> | 2019-02-03 19:22:07 +0000 |
commit | 324ee23b9bde305c6a68d4a34bde7335949583c7 (patch) | |
tree | 21f87fed9386dc006500b83a6c3d943c9ee6d078 /doc/todo | |
parent | 79131ddb1a6e6e524a6bd987f18161152d5f408b (diff) | |
download | ikiwiki-324ee23b9bde305c6a68d4a34bde7335949583c7.tar ikiwiki-324ee23b9bde305c6a68d4a34bde7335949583c7.tar.gz |
review
Diffstat (limited to 'doc/todo')
-rw-r--r-- | doc/todo/pagespec_aliases.mdwn | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/doc/todo/pagespec_aliases.mdwn b/doc/todo/pagespec_aliases.mdwn index 396a93c0f..bd64a5040 100644 --- a/doc/todo/pagespec_aliases.mdwn +++ b/doc/todo/pagespec_aliases.mdwn @@ -1,3 +1,4 @@ +[[!tag reviewed]] [[!template id=gitbranch branch=jon/pagespec_alias author="[[Jon]]"]] [[!tag patch wishlist]]I quite often find myself repeating a boiler-plate [[ikiwiki/pagespec]] chunk, e.g. @@ -175,3 +176,38 @@ that I'd got it up to a merge-request state; I've dusted it off and done some clean up and testing, but it's working (albeit not via websetup). I've revamped the docs and rebased the branch. Can someone please consider merging ([[joey]] or [[smcv]]?) or otherwise feed back on this? Thanks! — [[Jon]] (2018-09-25) + +> To hide it from `websetup`, the `example` needs to be a hash reference +> like `example => { images => "*.png or *.jpg or *.gif" }`, I think? +> (Please try it on a websetup-enabled wiki, possibly by copying +> `t/manual/git_revert` to `t/manual/websetup` and adapting it as required.) +> +> For a less magical variant, you could consider using `alias(images)` +> instead of `images()` for the pagespec syntax that is enabled by the +> example above. I'm not sure which way is better. +> +> If `safe_key` fails, you probably want to log a warning, or even fail +> `checkconfig` with a fatal `error`? +> +> If `checkconfig` detects that the given pagespec function already +> exists, for example `title` after loading the meta plugin, you probably +> want to log a warning or fail? It seems you can detect this with +> `defined ref *$subname{CODE}`. +> +> If you define a loop of mutually recursive aliases (or even an alias +> that refers to itself), I think you'll get infinite recursion. +> You can probably bypass that with a construct like: +> +> my $entered; +> *{ $subname } = sub { +> return IkiWiki::ErrorReason->new("Alias $key is defined recursively") if $entered; +> $entered = 1; +> my $result = IkiWiki::pagespec_match($path, $value); +> $entered = 0; +> return $result; +> } +> +> (but don't take my word for it, a regression test would tell you whether +> this works.) +> +> --[[smcv]] |