summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/bugs/entirely_negated_pagespec_matches_internal_pages.mdwn23
-rw-r--r--doc/todo/comment_by_mail.mdwn10
-rw-r--r--doc/todo/softlinks.mdwn6
-rwxr-xr-xikiwiki.in2
-rw-r--r--po/ikiwiki.pot2
-rwxr-xr-xt/pagespec_match.t4
6 files changed, 39 insertions, 8 deletions
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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", "*.*"));