* 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
parent
03c98d3c79
commit
282893be81
|
@ -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", "");
|
||||||
|
|
|
@ -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 "";
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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,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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
24
t/linkify.t
24
t/linkify.t
|
@ -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");
|
||||||
|
|
|
@ -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>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue