Merge branch 'master' into tova

master
Joey Hess 2008-09-30 16:35:44 -04:00
commit 2bfbad7af4
6 changed files with 39 additions and 8 deletions

View File

@ -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]]

View File

@ -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 >> as a "moderation" interface. After I killed a debian BTS entry with
>> clumsy pseudoheader editing I think any >> clumsy pseudoheader editing I think any
>> reference info should also be encoded into the address. >> reference info should also be encoded into the address.
>>> Although it is in python, just from reading the Debian ITP, it
>>> looks like The current version of this plugin is now running on my home page. See for example
>>> [mnemosyne-blog](http://www.red-bean.com/~decklin/mnemosyne/) [a recent post in my blog](http://www.cs.unb.ca/~bremner/blog/posts/can-i-haz-a-distributed-rss/).
>>> might be an interesting backend to use or at least steal ideas Unfortunately although the [[mailbox|todo/mbox]] renderer supports threading, I haven't had
>>> from :-) --[[DavidBremner]] a chance to implement comments on comments yet. [[DavidBremner]]

View File

@ -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. 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? 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]]

View File

@ -184,7 +184,7 @@ sub main () { #{{{
# do nothing # do nothing
} }
else { else {
if (! $config{refresh}) { if ($config{rebuild}}) {
debug(gettext("rebuilding wiki..")); debug(gettext("rebuilding wiki.."));
} }
else { else {

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -1,11 +1,13 @@
#!/usr/bin/perl #!/usr/bin/perl
use warnings; use warnings;
use strict; use strict;
use Test::More tests => 54; use Test::More tests => 56;
BEGIN { use_ok("IkiWiki"); } BEGIN { use_ok("IkiWiki"); }
ok(pagespec_match("foo", "*")); ok(pagespec_match("foo", "*"));
ok(!pagespec_match("foo", ""));
ok(pagespec_match("foo", "!bar"));
ok(pagespec_match("page", "?ag?")); ok(pagespec_match("page", "?ag?"));
ok(! pagespec_match("page", "?a?g?")); ok(! pagespec_match("page", "?a?g?"));
ok(pagespec_match("foo.png", "*.*")); ok(pagespec_match("foo.png", "*.*"));