* 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.
master
joey 2006-05-26 08:24:36 +00:00
parent 03c98d3c79
commit 282893be81
9 changed files with 65 additions and 23 deletions

View File

@ -351,7 +351,7 @@ sub cgi_editpage ($$) { #{{{
require IkiWiki::Render; require IkiWiki::Render;
$form->tmpl_param("page_preview", $form->tmpl_param("page_preview",
htmlize($config{default_pageext}, htmlize($config{default_pageext},
linkify($form->field('content'), $page))); linkify($page, $form->field('content'))));
} }
else { else {
$form->tmpl_param("page_preview", ""); $form->tmpl_param("page_preview", "");

View File

@ -100,7 +100,7 @@ sub get_inline_content ($$) { #{{{
my $file=$pagesources{$page}; my $file=$pagesources{$page};
my $type=pagetype($file); my $type=pagetype($file);
if ($type ne 'unknown') { if ($type ne 'unknown') {
return htmlize($type, linkify(readfile(srcfile($file)), $parentpage)); return htmlize($type, linkify($parentpage, readfile(srcfile($file))));
} }
else { else {
return ""; return "";

View File

@ -8,8 +8,8 @@ use File::Spec;
use IkiWiki; use IkiWiki;
sub linkify ($$) { #{{{ sub linkify ($$) { #{{{
my $content=shift;
my $page=shift; my $page=shift;
my $content=shift;
$content =~ s{(\\?)$config{wiki_link_regexp}}{ $content =~ s{(\\?)$config{wiki_link_regexp}}{
$2 ? ( $1 ? "[[$2|$3]]" : htmllink($page, titlepage($3), 0, 0, pagetitle($2))) $2 ? ( $1 ? "[[$2|$3]]" : htmllink($page, titlepage($3), 0, 0, pagetitle($2)))
@ -152,8 +152,8 @@ sub globlist_merge ($$) { #{{{
} #}}} } #}}}
sub genpage ($$$) { #{{{ sub genpage ($$$) { #{{{
my $content=shift;
my $page=shift; my $page=shift;
my $content=shift;
my $mtime=shift; my $mtime=shift;
my $title=pagetitle(basename($page)); my $title=pagetitle(basename($page));
@ -218,8 +218,8 @@ sub mtime ($) { #{{{
} #}}} } #}}}
sub findlinks ($$) { #{{{ sub findlinks ($$) { #{{{
my $content=shift;
my $page=shift; my $page=shift;
my $content=shift;
my @links; my @links;
while ($content =~ /(?<!\\)$config{wiki_link_regexp}/g) { 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=preprocess($page, $content);
$content=htmlize($type, $content); $content=htmlize($type, $content);
check_overwrite("$config{destdir}/".htmlpage($page), $page); check_overwrite("$config{destdir}/".htmlpage($page), $page);
writefile(htmlpage($page), $config{destdir}, writefile(htmlpage($page), $config{destdir},
genpage($content, $page, mtime($srcfile))); genpage($page, $content, mtime($srcfile)));
$oldpagemtime{$page}=time; $oldpagemtime{$page}=time;
$renderedfiles{$page}=htmlpage($page); $renderedfiles{$page}=htmlpage($page);
} }

8
debian/changelog vendored
View File

@ -11,8 +11,14 @@ ikiwiki (1.4) UNRELEASED; urgency=low
* Remove headercontent; the search plugin now adds the search box to the * Remove headercontent; the search plugin now adds the search box to the
header by registering a pagetemplate hook, and other plugins should do header by registering a pagetemplate hook, and other plugins should do
similarly. 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 ikiwiki (1.3) unstable; urgency=low

2
debian/control vendored
View File

@ -2,7 +2,7 @@ Source: ikiwiki
Section: web Section: web
Priority: optional Priority: optional
Build-Depends: debhelper (>= 5) 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> Maintainer: Joey Hess <joeyh@debian.org>
Standards-Version: 3.7.2 Standards-Version: 3.7.2

View 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 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 binmode when reading possibly binary files (such as images) and it uses

31
t/html.t 100755
View File

@ -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

View File

@ -4,8 +4,8 @@ use strict;
use Test::More tests => 11; use Test::More tests => 11;
sub linkify ($$$) { sub linkify ($$$) {
my $content=shift;
my $page=shift; my $page=shift;
my $content=shift;
my @existing_pages=@{shift()}; my @existing_pages=@{shift()};
# This is what linkify and htmllink need set right now to work. # This is what linkify and htmllink need set right now to work.
@ -17,7 +17,7 @@ sub linkify ($$$) {
} }
%IkiWiki::config=IkiWiki::defaultconfig(); %IkiWiki::config=IkiWiki::defaultconfig();
return IkiWiki::linkify($content, $page); return IkiWiki::linkify($page, $content);
} }
sub links_to ($$) { sub links_to ($$) {
@ -62,13 +62,13 @@ sub links_text ($$) {
BEGIN { use_ok("IkiWiki::Render"); } BEGIN { use_ok("IkiWiki::Render"); }
ok(links_to("bar", linkify("link to [[bar]] ok", "foo", ["foo", "bar"])), "ok link"); ok(links_to("bar", linkify("foo", "link to [[bar]] ok", ["foo", "bar"])), "ok link");
ok(not_links_to("bar", linkify("link to \\[[bar]] ok", "foo", ["foo", "bar"])), "escaped link"); ok(not_links_to("bar", linkify("foo", "link to \\[[bar]] ok", ["foo", "bar"])), "escaped link");
ok(links_to("page=bar", linkify("link to [[bar]] ok", "foo", ["foo"])), "broken link"); ok(links_to("page=bar", linkify("foo", "link to [[bar]] ok", ["foo"])), "broken link");
ok(links_to("bar", linkify("link to [[baz]] and [[bar]] ok", "foo", ["foo", "baz", "bar"])), "dual links"); ok(links_to("bar", linkify("foo", "link to [[baz]] and [[bar]] ok", ["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("baz", linkify("foo", "link to [[baz]] and [[bar]] ok", ["foo", "baz", "bar"])), "dual links");
ok(links_to("bar", linkify("link to [[some_page|bar]] ok", "foo", ["foo", "bar"])), "named link"); ok(links_to("bar", linkify("foo", "link to [[some_page|bar]] ok", ["foo", "bar"])), "named link");
ok(links_text("some page", linkify("link to [[some_page|bar]] ok", "foo", ["foo", "bar"])), "named link text"); ok(links_text("some page", linkify("foo", "link to [[some_page|bar]] ok", ["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_to("bar", linkify("foo", "link to [[some page|bar]] ok", ["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 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("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_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");

View File

@ -41,6 +41,8 @@
<TMPL_IF NAME="DISCUSSIONLINK"> <TMPL_IF NAME="DISCUSSIONLINK">
<li><TMPL_VAR DISCUSSIONLINK><br /></li> <li><TMPL_VAR DISCUSSIONLINK><br /></li>
</TMPL_IF> </TMPL_IF>
<li></li>
</ul> </ul>
</div> </div>