From 282893be819eab14f3a2078f1741ec9c9ed363b1 Mon Sep 17 00:00:00 2001 From: joey Date: Fri, 26 May 2006 08:24:36 +0000 Subject: [PATCH] * 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
  • to the end of it. * Reordered some function call parameters for consistency. --- IkiWiki/CGI.pm | 2 +- IkiWiki/Plugin/inline.pm | 2 +- IkiWiki/Render.pm | 12 ++++++------ debian/changelog | 8 +++++++- debian/control | 2 +- doc/todo/utf8.mdwn | 5 ++++- t/html.t | 31 +++++++++++++++++++++++++++++++ t/linkify.t | 24 ++++++++++++------------ templates/page.tmpl | 2 ++ 9 files changed, 65 insertions(+), 23 deletions(-) create mode 100755 t/html.t 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 =~ /(? to the end of it. + * Reordered some function call parameters for consistency. - -- Joey Hess Thu, 25 May 2006 20:57:07 -0400 + -- Joey Hess 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 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 @@

  • + +
  • -- 2.32.0.93.g670b81a890