]> sipb.mit.edu Git - ikiwiki.git/commitdiff
* Rebuilding on upgrade to this version is recommended.
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Fri, 26 May 2006 08:24:36 +0000 (08:24 +0000)
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Fri, 26 May 2006 08:24:36 +0000 (08:24 +0000)
* 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.

IkiWiki/CGI.pm
IkiWiki/Plugin/inline.pm
IkiWiki/Render.pm
debian/changelog
debian/control
doc/todo/utf8.mdwn
t/html.t [new file with mode: 0755]
t/linkify.t
templates/page.tmpl

index 15e86651d419f64e4b8e48dd5797feaafe8057ef..2483bf4d8de28699a24e6033beb4134af883b73f 100644 (file)
@@ -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", "");
index 61b4a8523f2dfaf9156238b0ab54adedc9f77b42..a11e5a52bbb916dcef8a30396c6fedb5f8b74d88 100644 (file)
@@ -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 "";
index b59a721c0408d398e367ca320cb28b5265e9d2f5..5bc7f6ebba91c4ebbb68e4a8d9a511082a47c3a8 100644 (file)
@@ -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);
        }
index 9e26c8c78ee70faa340b6f1787b56f4486363804..12dc0617845b96ce5610b8bbcde41646e9f6961c 100644 (file)
@@ -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
 
index d3ad66d7fdd358a38a4619b8b00389d2e76853a6..bd392154978dc9796c1f4aa56a26bc6e92750dd5 100644 (file)
@@ -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
 
index 822177487cb92a19111f19754ff06cac8ce7a07e..68195b729be007800690bf42289a7abc1cc77626 100644 (file)
@@ -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 (executable)
index 0000000..f2955f7
--- /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
index c231d734bf6491cea5684e75e0de7b0dd6f83694..47eee6e0df9fed2d94836943d694435cffbffede 100755 (executable)
@@ -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");
index c683d72a24f88127de9cd3e159b6f814cb48183f..930d173c23f0027358a6d3e9a23e69b59f41bbbb 100644 (file)
@@ -41,6 +41,8 @@
 <TMPL_IF NAME="DISCUSSIONLINK">
 <li><TMPL_VAR DISCUSSIONLINK><br /></li>
 </TMPL_IF>
+
+<li></li>
 </ul>
 </div>