summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-12-21 19:36:15 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-12-21 19:36:15 +0000
commit472dabbb6002219d324ae8480df57d02b6f0ca94 (patch)
treed35aeb732eb885d7e1bcc2337e1cc1f452c6801b /doc
parentc648b2b79b2a0b19364183e700764292d0a0d521 (diff)
* Turn $config{wiki_file_prune_regexps} into an array that is easier to
manipulate. * Only exclude rss and atom files from processing if the inline plugin is enabled and that feed type is enabled. Else it's just a copyable file type. * Move rss and atom option handling code into the inline plugin. * Applied a rather old patch from Recai to fix the "pruning is too strict" issue. Now you can have wiki source directories inside dotdirs and the like, if you want.
Diffstat (limited to 'doc')
-rw-r--r--doc/bugs/pruning_is_too_strict.mdwn6
-rw-r--r--doc/patchqueue/pruning_is_too_strict.mdwn80
2 files changed, 4 insertions, 82 deletions
diff --git a/doc/bugs/pruning_is_too_strict.mdwn b/doc/bugs/pruning_is_too_strict.mdwn
index ef8d887e9..628cdc6d4 100644
--- a/doc/bugs/pruning_is_too_strict.mdwn
+++ b/doc/bugs/pruning_is_too_strict.mdwn
@@ -3,6 +3,8 @@ ikiwiki compiles my wiki successfully. But the svn post-commit hook it installs
I think the prune regexp would be more useful if it was only used to check the relative path from the src root to a file in the wiki.
> I agree with this feature wish. Here is a _first cut_
-> [[implementation|patchqueue/pruning_is_too_strict]] for this feature.
+> implementation for this feature.
>
-> --[[roktas]] \ No newline at end of file
+> --[[roktas]]
+
+[[bugs/Done]], and sorry it took so long to apply --[[Joey]]
diff --git a/doc/patchqueue/pruning_is_too_strict.mdwn b/doc/patchqueue/pruning_is_too_strict.mdwn
deleted file mode 100644
index 0b7ea76f9..000000000
--- a/doc/patchqueue/pruning_is_too_strict.mdwn
+++ /dev/null
@@ -1,80 +0,0 @@
-Preliminary patch for a feature wishlist item: [[bugs/pruning_is_too_strict]].
-
- diff -ur ikiwiki-orig/IkiWiki/CGI.pm ikiwiki/IkiWiki/CGI.pm
- --- ikiwiki-orig/IkiWiki/CGI.pm 2006-10-27 20:15:17.000000000 -0700
- +++ ikiwiki/IkiWiki/CGI.pm 2006-11-07 22:32:41.000000000 -0800
- @@ -405,7 +405,7 @@
- my ($page)=$form->field('page');
- $page=titlepage(possibly_foolish_untaint($page));
- if (! defined $page || ! length $page ||
- - $page=~/$config{wiki_file_prune_regexp}/ || $page=~/^\//) {
- + is_prune($page) || $page=~/^\//) {
- error("bad page name");
- }
-
- @@ -495,8 +495,7 @@
- my $best_loc;
- if (! defined $from || ! length $from ||
- $from ne $form->field('from') ||
- - $from=~/$config{wiki_file_prune_regexp}/ ||
- - $from=~/^\// ||
- + is_prune($from) || $from=~/^\// ||
- $form->submitted eq "Preview") {
- @page_locs=$best_loc=$page;
- }
- diff -ur ikiwiki-orig/IkiWiki/Render.pm ikiwiki/IkiWiki/Render.pm
- --- ikiwiki-orig/IkiWiki/Render.pm 2006-10-27 20:15:17.000000000 -0700
- +++ ikiwiki/IkiWiki/Render.pm 2006-11-07 22:36:48.000000000 -0800
- @@ -189,7 +193,7 @@
- no_chdir => 1,
- wanted => sub {
- $_=decode_utf8($_);
- - if (/$config{wiki_file_prune_regexp}/) {
- + if (is_prune($_)) {
- $File::Find::prune=1;
- }
- elsif (! -d $_ && ! -l $_) {
- @@ -209,7 +213,7 @@
- no_chdir => 1,
- wanted => sub {
- $_=decode_utf8($_);
- - if (/$config{wiki_file_prune_regexp}/) {
- + if (is_prune($_, $config{underlaydir})) {
- $File::Find::prune=1;
- }
- elsif (! -d $_ && ! -l $_) {
- diff -ur ikiwiki-orig/IkiWiki.pm ikiwiki/IkiWiki.pm
- --- ikiwiki-orig/IkiWiki.pm 2006-10-27 20:15:23.000000000 -0700
- +++ ikiwiki/IkiWiki.pm 2006-11-07 22:21:17.000000000 -0800
- @@ -21,6 +21,8 @@
- # Optimisation.
- use Memoize;
- memoize("abs2rel");
- +memoize("basefile");
- +memoize("is_prune");
- memoize("pagespec_translate");
-
- my $installdir=''; # INSTALLDIR_AUTOREPLACE done by Makefile, DNE
- @@ -343,6 +352,22 @@
- return $page;
- } #}}}
-
- +sub basefile ($;$) { #{{{
- + my $file=shift;
- + my $base=shift || $config{srcdir};
- +
- + require File::Spec;
- + $base=File::Spec->canonpath($base);
- + my $ret=File::Spec->canonpath($file);
- +
- + $ret=~s#^$base/*##;
- + return $ret;
- +} #}}}
- +
- +sub is_prune ($;$) { #{{{
- + return basefile($_[0], $_[1])=~m/$config{wiki_file_prune_regexp}/;
- +} #}}}
- +
- sub abs2rel ($$) { #{{{
- # Work around very innefficient behavior in File::Spec if abs2rel
- # is passed two relative paths. It's much faster if paths are