summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-05-26 08:24:36 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-05-26 08:24:36 +0000
commit282893be819eab14f3a2078f1741ec9c9ed363b1 (patch)
treecd9977f7ff30063dafd2dcb043f6507e6dd17790
parent03c98d3c79370157d94deef588415e778ab6ca87 (diff)
* Rebuilding on upgrade to this version is recommended.
* Add a html validity check to the test suite, using the wdg-html-validator, if available. * Make the html valid when there is nothing in the actions list by adding an empty <li> to the end of it. * Reordered some function call parameters for consistency.
-rw-r--r--IkiWiki/CGI.pm2
-rw-r--r--IkiWiki/Plugin/inline.pm2
-rw-r--r--IkiWiki/Render.pm12
-rw-r--r--debian/changelog8
-rw-r--r--debian/control2
-rw-r--r--doc/todo/utf8.mdwn5
-rwxr-xr-xt/html.t31
-rwxr-xr-xt/linkify.t24
-rw-r--r--templates/page.tmpl2
9 files changed, 65 insertions, 23 deletions
diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm
index 15e86651d..2483bf4d8 100644
--- a/IkiWiki/CGI.pm
+++ b/IkiWiki/CGI.pm
@@ -351,7 +351,7 @@ sub cgi_editpage ($$) { #{{{
require IkiWiki::Render;
$form->tmpl_param("page_preview",
htmlize($config{default_pageext},
- linkify($form->field('content'), $page)));
+ linkify($page, $form->field('content'))));
}
else {
$form->tmpl_param("page_preview", "");
diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm
index 61b4a8523..a11e5a52b 100644
--- a/IkiWiki/Plugin/inline.pm
+++ b/IkiWiki/Plugin/inline.pm
@@ -100,7 +100,7 @@ sub get_inline_content ($$) { #{{{
my $file=$pagesources{$page};
my $type=pagetype($file);
if ($type ne 'unknown') {
- return htmlize($type, linkify(readfile(srcfile($file)), $parentpage));
+ return htmlize($type, linkify($parentpage, readfile(srcfile($file))));
}
else {
return "";
diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm
index b59a721c0..5bc7f6ebb 100644
--- a/IkiWiki/Render.pm
+++ b/IkiWiki/Render.pm
@@ -8,8 +8,8 @@ use File::Spec;
use IkiWiki;
sub linkify ($$) { #{{{
- my $content=shift;
my $page=shift;
+ my $content=shift;
$content =~ s{(\\?)$config{wiki_link_regexp}}{
$2 ? ( $1 ? "[[$2|$3]]" : htmllink($page, titlepage($3), 0, 0, pagetitle($2)))
@@ -152,8 +152,8 @@ sub globlist_merge ($$) { #{{{
} #}}}
sub genpage ($$$) { #{{{
- my $content=shift;
my $page=shift;
+ my $content=shift;
my $mtime=shift;
my $title=pagetitle(basename($page));
@@ -218,8 +218,8 @@ sub mtime ($) { #{{{
} #}}}
sub findlinks ($$) { #{{{
- my $content=shift;
my $page=shift;
+ my $content=shift;
my @links;
while ($content =~ /(?<!\\)$config{wiki_link_regexp}/g) {
@@ -254,15 +254,15 @@ sub render ($) { #{{{
}
}
- $links{$page}=[findlinks($content, $page)];
+ $links{$page}=[findlinks($page, $content)];
- $content=linkify($content, $page);
+ $content=linkify($page, $content);
$content=preprocess($page, $content);
$content=htmlize($type, $content);
check_overwrite("$config{destdir}/".htmlpage($page), $page);
writefile(htmlpage($page), $config{destdir},
- genpage($content, $page, mtime($srcfile)));
+ genpage($page, $content, mtime($srcfile)));
$oldpagemtime{$page}=time;
$renderedfiles{$page}=htmlpage($page);
}
diff --git a/debian/changelog b/debian/changelog
index 9e26c8c78..12dc06178 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -11,8 +11,14 @@ ikiwiki (1.4) UNRELEASED; urgency=low
* Remove headercontent; the search plugin now adds the search box to the
header by registering a pagetemplate hook, and other plugins should do
similarly.
+ * Rebuilding on upgrade to this version is recommended.
+ * Add a html validity check to the test suite, using the wdg-html-validator,
+ if available.
+ * Make the html valid when there is nothing in the actions list by adding an
+ empty <li> to the end of it.
+ * Reordered some function call parameters for consistency.
- -- Joey Hess <joeyh@debian.org> Thu, 25 May 2006 20:57:07 -0400
+ -- Joey Hess <joeyh@debian.org> Fri, 26 May 2006 04:11:57 -0400
ikiwiki (1.3) unstable; urgency=low
diff --git a/debian/control b/debian/control
index d3ad66d7f..bd3921549 100644
--- a/debian/control
+++ b/debian/control
@@ -2,7 +2,7 @@ Source: ikiwiki
Section: web
Priority: optional
Build-Depends: debhelper (>= 5)
-Build-Depends-Indep: dpkg-dev (>= 1.9.0), markdown, libhtml-template-perl, libhtml-scrubber-perl
+Build-Depends-Indep: dpkg-dev (>= 1.9.0), markdown, libhtml-template-perl, libhtml-scrubber-perl, wdg-html-validator
Maintainer: Joey Hess <joeyh@debian.org>
Standards-Version: 3.7.2
diff --git a/doc/todo/utf8.mdwn b/doc/todo/utf8.mdwn
index 822177487..68195b729 100644
--- a/doc/todo/utf8.mdwn
+++ b/doc/todo/utf8.mdwn
@@ -1,4 +1,7 @@
-ikiwiki should support utf-8 pages, both input and output
+ikiwiki should support utf-8 pages, both input and output. To test, here's a
+utf-8 smiley:
+
+# ☺
Currently ikiwiki is belived to be utf-8 clean itself; it tells perl to use
binmode when reading possibly binary files (such as images) and it uses
diff --git a/t/html.t b/t/html.t
new file mode 100755
index 000000000..f2955f75f
--- /dev/null
+++ b/t/html.t
@@ -0,0 +1,31 @@
+#!/usr/bin/perl
+use warnings;
+use strict;
+use Test::More;
+
+my @pages;
+
+BEGIN {
+ @pages=qw(index todo features news);
+ if (! -x "/usr/bin/validate") {
+ plan skip_all => "/usr/bin/validate html validator not present";
+ }
+ else {
+ plan(tests => int @pages + 3);
+ }
+ use_ok("IkiWiki");
+ use_ok("IkiWiki::Render");
+}
+
+# Have to build the html pages first.
+# Note that just building them like this doesn't exersise all the possible
+# html that can be generated, in particular it misses some of the action
+# links at the top, etc.
+ok(system("make >/dev/null") == 0);
+
+foreach my $page (@pages) {
+ print "# Validating $page\n";
+ ok(system("validate html/$page.html") == 0);
+}
+
+# TODO: validate form output html
diff --git a/t/linkify.t b/t/linkify.t
index c231d734b..47eee6e0d 100755
--- a/t/linkify.t
+++ b/t/linkify.t
@@ -4,8 +4,8 @@ use strict;
use Test::More tests => 11;
sub linkify ($$$) {
- my $content=shift;
my $page=shift;
+ my $content=shift;
my @existing_pages=@{shift()};
# This is what linkify and htmllink need set right now to work.
@@ -17,7 +17,7 @@ sub linkify ($$$) {
}
%IkiWiki::config=IkiWiki::defaultconfig();
- return IkiWiki::linkify($content, $page);
+ return IkiWiki::linkify($page, $content);
}
sub links_to ($$) {
@@ -62,13 +62,13 @@ sub links_text ($$) {
BEGIN { use_ok("IkiWiki::Render"); }
-ok(links_to("bar", linkify("link to [[bar]] ok", "foo", ["foo", "bar"])), "ok link");
-ok(not_links_to("bar", linkify("link to \\[[bar]] ok", "foo", ["foo", "bar"])), "escaped link");
-ok(links_to("page=bar", linkify("link to [[bar]] ok", "foo", ["foo"])), "broken link");
-ok(links_to("bar", linkify("link to [[baz]] and [[bar]] ok", "foo", ["foo", "baz", "bar"])), "dual links");
-ok(links_to("baz", linkify("link to [[baz]] and [[bar]] ok", "foo", ["foo", "baz", "bar"])), "dual links");
-ok(links_to("bar", linkify("link to [[some_page|bar]] ok", "foo", ["foo", "bar"])), "named link");
-ok(links_text("some page", linkify("link to [[some_page|bar]] ok", "foo", ["foo", "bar"])), "named link text");
-ok(links_to("bar", linkify("link to [[some page|bar]] ok", "foo", ["foo", "bar"])), "named link, with whitespace");
-ok(links_text("some page", linkify("link to [[some page|bar]] ok", "foo", ["foo", "bar"])), "named link text, with whitespace");
-ok(links_text("Some long, & complex page name.", linkify("link to [[Some long, & complex page name.|bar]] ok, and this is not a link]] here", "foo", ["foo", "bar"])), "complex named link text");
+ok(links_to("bar", linkify("foo", "link to [[bar]] ok", ["foo", "bar"])), "ok link");
+ok(not_links_to("bar", linkify("foo", "link to \\[[bar]] ok", ["foo", "bar"])), "escaped link");
+ok(links_to("page=bar", linkify("foo", "link to [[bar]] ok", ["foo"])), "broken link");
+ok(links_to("bar", linkify("foo", "link to [[baz]] and [[bar]] ok", ["foo", "baz", "bar"])), "dual links");
+ok(links_to("baz", linkify("foo", "link to [[baz]] and [[bar]] ok", ["foo", "baz", "bar"])), "dual links");
+ok(links_to("bar", linkify("foo", "link to [[some_page|bar]] ok", ["foo", "bar"])), "named link");
+ok(links_text("some page", linkify("foo", "link to [[some_page|bar]] ok", ["foo", "bar"])), "named link text");
+ok(links_to("bar", linkify("foo", "link to [[some page|bar]] ok", ["foo", "bar"])), "named link, with whitespace");
+ok(links_text("some page", linkify("foo", "link to [[some page|bar]] ok", ["foo", "bar"])), "named link text, with whitespace");
+ok(links_text("Some long, & complex page name.", linkify("foo", "link to [[Some long, & complex page name.|bar]] ok, and this is not a link]] here", ["foo", "bar"])), "complex named link text");
diff --git a/templates/page.tmpl b/templates/page.tmpl
index c683d72a2..930d173c2 100644
--- a/templates/page.tmpl
+++ b/templates/page.tmpl
@@ -41,6 +41,8 @@
<TMPL_IF NAME="DISCUSSIONLINK">
<li><TMPL_VAR DISCUSSIONLINK><br /></li>
</TMPL_IF>
+
+<li></li>
</ul>
</div>