web commit by http://ethan.betacantrips.com/: update for 1.42; reformat

master
joey 2007-02-12 08:04:19 +00:00
parent 12da89d7a3
commit f7006ef06b
1 changed files with 87 additions and 22 deletions

View File

@ -1,19 +1,40 @@
Instead of having files foo.html "in front of" foo/, I prefer to have foo/index.html. This patch allows that. Specifically, foo/index.type is translated to $links{'foo/'}, and bestlink looks for either "foo" or "foo/" when linking to pages. There are other miscellaneous changes that go with that: Instead of having files foo.html "in front of" foo/, I prefer to have
foo/index.html. This patch allows that. Specifically, foo/index.type
is translated to $links{'foo/'}, and bestlink looks for either "foo" or
"foo/" when linking to pages. There are other miscellaneous changes that
go with that:
1. change the `cgi_editpage` `@page_locs` code so that creating foo from a/b/c prefers a/b/foo and then a/b/c/foo, but if creating foo from a/b/c/, then prefer a/b/c/foo. I'm not really sure why the original was doing what it did (why trim terminal `/` if no pages end in `/`?), so this part might break something. 1. change the `cgi_editpage` `@page_locs` code so that creating foo from
2. backlinks from "foo/bar" to "foo/" trim common prefixes as long as there would be something left when the trimming is done (i.e. don't trim "foo/") a/b/c prefers a/b/foo and then a/b/c/foo, but if creating foo from a/b/c/,
3. parentlinks for "foo/" are the same as for "foo", except one directory higher then prefer a/b/c/foo. I'm not really sure why the original was doing what
it did (why trim terminal `/` if no pages end in `/`?), so this part might
break something.
2. tweak things so that index.rss and index.atom are generated if inlining
from 'foo/'
2. backlinks from "foo/bar" to "foo/" trim common prefixes as long as there
would be something left when the trimming is done (i.e. don't trim "foo/")
3. parentlinks for "foo/" are the same as for "foo", except one directory
higher
4. rewrite parentlinks so that bestlink is called at each level 4. rewrite parentlinks so that bestlink is called at each level
5. basename("foo/") => basename("foo") 5. basename("foo/") => basename("foo")
6. links to "foo/" are translated to "foo/index.html" rather than "foo/.html". (Links to "foo/" might be preferred, but that causes an infinite loop in writefile, because apparently dirname("foo/") == "foo/" on my system for reasons that aren't clear to me.) 6. links to "foo/" are translated to "foo/index.html" rather than "foo/.html".
(Links to "foo/" might be preferred, but that causes an infinite loop in
writefile, because apparently dirname("foo/") == "foo/" on my system for
reasons that aren't clear to me.)
7. pagetitle("foo/") => pagetitle("foo") 7. pagetitle("foo/") => pagetitle("foo")
8. clip the final slash when matching a relative pagespec, even if there are
no characters after it (otherwise inlining "./a" from "foo/" gets
translated to "foo//a")
In case whitespace gets garbled, I'm also leaving a copy of the patch on [my site](http://ikidev.betacantrips.com/patches/index.patch). It should apply cleanly to a freshly unpacked ikiwiki-1.40. You can also see it in action [here](http://ikidev.betacantrips.com/one/). --Ethan In case whitespace gets garbled, I'm also leaving a copy of the patch on
[my site](http://ikidev.betacantrips.com/patches/index.patch). It should apply
cleanly to a freshly unpacked ikiwiki-1.42. You can also see it in action
[here](http://ikidev.betacantrips.com/one/). --Ethan
diff -urx .svn -x doc -x '*.po' -x '*.pot' ikiclean/IkiWiki/CGI.pm ikidev/IkiWiki/CGI.pm diff -urX ignorepats ikiclean/IkiWiki/CGI.pm ikidev/IkiWiki/CGI.pm
--- ikiclean/IkiWiki/CGI.pm 2007-01-17 22:11:41.794805000 -0800 --- ikiclean/IkiWiki/CGI.pm 2007-02-11 21:40:32.419641000 -0800
+++ ikidev/IkiWiki/CGI.pm 2007-01-17 21:43:33.750363000 -0800 +++ ikidev/IkiWiki/CGI.pm 2007-02-11 21:54:36.252357000 -0800
@@ -400,8 +400,8 @@ @@ -408,8 +408,8 @@
@page_locs=$best_loc=$page; @page_locs=$best_loc=$page;
} }
else { else {
@ -24,7 +45,7 @@ In case whitespace gets garbled, I'm also leaving a copy of the patch on [my sit
if ((defined $form->field('subpage') && length $form->field('subpage')) || if ((defined $form->field('subpage') && length $form->field('subpage')) ||
$page eq gettext('discussion')) { $page eq gettext('discussion')) {
@@ -412,7 +412,9 @@ @@ -420,7 +420,9 @@
} }
push @page_locs, $dir.$page; push @page_locs, $dir.$page;
@ -35,9 +56,44 @@ In case whitespace gets garbled, I'm also leaving a copy of the patch on [my sit
while (length $dir) { while (length $dir) {
$dir=~s![^/]+/+$!!; $dir=~s![^/]+/+$!!;
push @page_locs, $dir.$page; push @page_locs, $dir.$page;
diff -urx .svn -x doc -x '*.po' -x '*.pot' ikiclean/IkiWiki/Render.pm ikidev/IkiWiki/Render.pm diff -urX ignorepats ikiclean/IkiWiki/Plugin/inline.pm ikidev/IkiWiki/Plugin/inline.pm
--- ikiclean/IkiWiki/Render.pm 2007-01-11 15:01:51.000000000 -0800 --- ikiclean/IkiWiki/Plugin/inline.pm 2007-02-11 21:40:31.996007000 -0800
+++ ikidev/IkiWiki/Render.pm 2007-01-17 22:25:13.526856000 -0800 +++ ikidev/IkiWiki/Plugin/inline.pm 2007-02-11 21:54:36.008358000 -0800
@@ -110,8 +110,8 @@
add_depends($params{page}, $params{pages});
- my $rssurl=rsspage(basename($params{page}));
- my $atomurl=atompage(basename($params{page}));
+ my $rssurl=basename(rsspage($params{page}));
+ my $atomurl=basename(atompage($params{page}));
my $ret="";
if (exists $params{rootpage} && $config{cgiurl}) {
@@ -285,14 +285,18 @@
sub rsspage ($) { #{{{
my $page=shift;
+ $page = htmlpage($page);
+ $page =~s/\.html$/.rss/;
- return $page.".rss";
+ return $page;
} #}}}
sub atompage ($) { #{{{
my $page=shift;
+ $page = htmlpage($page);
+ $page =~s/\.html$/.atom/;
- return $page.".atom";
+ return $page;
} #}}}
sub genfeed ($$$$@) { #{{{
diff -urX ignorepats ikiclean/IkiWiki/Render.pm ikidev/IkiWiki/Render.pm
--- ikiclean/IkiWiki/Render.pm 2007-02-11 21:40:32.413641000 -0800
+++ ikidev/IkiWiki/Render.pm 2007-02-11 21:54:36.246356000 -0800
@@ -40,6 +40,7 @@ @@ -40,6 +40,7 @@
my $dir; my $dir;
1 while (($dir)=$page_trimmed=~m!^([^/]+/)!) && 1 while (($dir)=$page_trimmed=~m!^([^/]+/)!) &&
@ -67,10 +123,10 @@ In case whitespace gets garbled, I'm also leaving a copy of the patch on [my sit
} }
else { else {
$skip=0; $skip=0;
diff -urx .svn -x doc -x '*.po' -x '*.pot' ikiclean/IkiWiki.pm ikidev/IkiWiki.pm diff -urX ignorepats ikiclean/IkiWiki.pm ikidev/IkiWiki.pm
--- ikiclean/IkiWiki.pm 2007-01-12 12:47:09.000000000 -0800 --- ikiclean/IkiWiki.pm 2007-02-11 21:40:35.118406000 -0800
+++ ikidev/IkiWiki.pm 2007-01-15 16:56:58.973680000 -0800 +++ ikidev/IkiWiki.pm 2007-02-11 22:22:49.146071000 -0800
@@ -185,6 +185,7 @@ @@ -188,6 +188,7 @@
sub basename ($) { #{{{ sub basename ($) { #{{{
my $file=shift; my $file=shift;
@ -78,7 +134,7 @@ In case whitespace gets garbled, I'm also leaving a copy of the patch on [my sit
$file=~s!.*/+!!; $file=~s!.*/+!!;
return $file; return $file;
} #}}} } #}}}
@@ -211,12 +212,14 @@ @@ -214,12 +215,14 @@
my $type=pagetype($file); my $type=pagetype($file);
my $page=$file; my $page=$file;
$page=~s/\Q.$type\E*$// if defined $type; $page=~s/\Q.$type\E*$// if defined $type;
@ -93,7 +149,7 @@ In case whitespace gets garbled, I'm also leaving a copy of the patch on [my sit
return $page.".html"; return $page.".html";
} #}}} } #}}}
@@ -300,6 +303,7 @@ @@ -307,6 +310,7 @@
my $page=shift; my $page=shift;
my $link=shift; my $link=shift;
@ -101,7 +157,7 @@ In case whitespace gets garbled, I'm also leaving a copy of the patch on [my sit
my $cwd=$page; my $cwd=$page;
if ($link=~s/^\/+//) { if ($link=~s/^\/+//) {
# absolute links # absolute links
@@ -314,6 +318,9 @@ @@ -321,6 +325,9 @@
if (exists $links{$l}) { if (exists $links{$l}) {
return $l; return $l;
} }
@ -111,7 +167,7 @@ In case whitespace gets garbled, I'm also leaving a copy of the patch on [my sit
elsif (exists $pagecase{lc $l}) { elsif (exists $pagecase{lc $l}) {
return $pagecase{lc $l}; return $pagecase{lc $l};
} }
@@ -344,6 +351,7 @@ @@ -351,6 +358,7 @@
$page=~s/__(\d+)__/&#$1;/g; $page=~s/__(\d+)__/&#$1;/g;
} }
$page=~y/_/ /; $page=~y/_/ /;
@ -119,6 +175,15 @@ In case whitespace gets garbled, I'm also leaving a copy of the patch on [my sit
return $page; return $page;
} #}}} } #}}}
@@ -879,7 +887,7 @@
# relative matching
if ($glob =~ m!^\./!) {
- $from=~s!/?[^/]+$!!;
+ $from=~s!/?[^/]*$!!;
$glob=~s!^\./!!;
$glob="$from/$glob" if length $from;
}
I independently implemented a similar, but smaller patch. I independently implemented a similar, but smaller patch.
(It's smaller because I only care about rendering; not CGI, for example.) (It's smaller because I only care about rendering; not CGI, for example.)