diff --git a/doc/bugs/entirely_negated_pagespec_matches_internal_pages.mdwn b/doc/bugs/entirely_negated_pagespec_matches_internal_pages.mdwn new file mode 100644 index 000000000..012fcec2c --- /dev/null +++ b/doc/bugs/entirely_negated_pagespec_matches_internal_pages.mdwn @@ -0,0 +1,23 @@ +A [[PageSpec]] that is entirely negated terminals, such as "!foo and !bar" +matches all other pages, including all internal pages. This can lead to +unexpected results, since it will match a bunch of recentchanges pages, +etc. + +Recall that internal-use pages are not matched by a glob. So "*" doesn't +match them. So if the pagespec is "* and !foo and !bar", it won't match +them. This is the much more common style. + +There's an odd inconsistency with entirely negated pagespecs. If "!foo" +matches page bar, shouldn't "" also match bar? But, the empty pagespec is +actually special-cased to not match anything. + +Indeed, it seems what would be best would be for "!foo" to not match any +pages, unless it's combined with a terminal that positively matches pages +("* and !foo"). Although this would be a behavior change, with transition +issues. + +Another approach would be to try to detect the case of an entirely negated +pagespec, and implicitly add "and !internal()" to it. + +Either approach would require fully parsing the pagespec. And consider cases +like "!(foo and !bar)". Doesn't seem at all easy to solve. --[[Joey]] diff --git a/doc/todo/comment_by_mail.mdwn b/doc/todo/comment_by_mail.mdwn index 085c4896f..6d3eeb044 100644 --- a/doc/todo/comment_by_mail.mdwn +++ b/doc/todo/comment_by_mail.mdwn @@ -46,8 +46,8 @@ Any comments? Write them here or send them to [[DavidBremner]] >> as a "moderation" interface. After I killed a debian BTS entry with >> clumsy pseudoheader editing I think any >> reference info should also be encoded into the address. ->>> Although it is in python, just from reading the Debian ITP, it ->>> looks like ->>> [mnemosyne-blog](http://www.red-bean.com/~decklin/mnemosyne/) ->>> might be an interesting backend to use or at least steal ideas ->>> from :-) --[[DavidBremner]] + +The current version of this plugin is now running on my home page. See for example +[a recent post in my blog](http://www.cs.unb.ca/~bremner/blog/posts/can-i-haz-a-distributed-rss/). +Unfortunately although the [[mailbox|todo/mbox]] renderer supports threading, I haven't had +a chance to implement comments on comments yet. [[DavidBremner]] diff --git a/doc/todo/softlinks.mdwn b/doc/todo/softlinks.mdwn index 1e474185f..af99a9f82 100644 --- a/doc/todo/softlinks.mdwn +++ b/doc/todo/softlinks.mdwn @@ -4,3 +4,9 @@ The page "foo/" does not exist. This is too bad, because sometimes it is convenient to have several different names for the same page. Could softlinks be handled gracefully by ikiwiki? + +> Soft links are explicitly not handled by IkiWiki as a [[security]] measure. If you want several names for +> the same page, I suggest using the [[ikiwiki/directive/meta]] directive to make one page redirect to +> another. -- [[Will]] + +>> Will is right. I don't plan to support symlinks. [[done]] --[[Joey]] diff --git a/ikiwiki.in b/ikiwiki.in index f96daab0b..973ae3b31 100755 --- a/ikiwiki.in +++ b/ikiwiki.in @@ -184,7 +184,7 @@ sub main () { #{{{ # do nothing } else { - if (! $config{refresh}) { + if ($config{rebuild}}) { debug(gettext("rebuilding wiki..")); } else { diff --git a/po/ikiwiki.pot b/po/ikiwiki.pot index 6614bfd87..6f8136413 100644 --- a/po/ikiwiki.pot +++ b/po/ikiwiki.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-09-29 18:05-0400\n" +"POT-Creation-Date: 2008-09-30 15:31-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/t/pagespec_match.t b/t/pagespec_match.t index 9d5573747..c61d16122 100755 --- a/t/pagespec_match.t +++ b/t/pagespec_match.t @@ -1,11 +1,13 @@ #!/usr/bin/perl use warnings; use strict; -use Test::More tests => 54; +use Test::More tests => 56; BEGIN { use_ok("IkiWiki"); } ok(pagespec_match("foo", "*")); +ok(!pagespec_match("foo", "")); +ok(pagespec_match("foo", "!bar")); ok(pagespec_match("page", "?ag?")); ok(! pagespec_match("page", "?a?g?")); ok(pagespec_match("foo.png", "*.*"));