eval q{use MIME::Base64};
error($@) if $@;
return "<img src=\"data:image/png;base64,".
- encode_base64($png)."\" />";
+ encode_base64($png)."\">";
}
}
- return "<img src=\"".urlto($dest, $params{page})."\" />\n";
+ return "<img src=\"".urlto($dest, $params{page})."\">\n";
} #}}}
sub graph (@) { #{{{
selected shape size span src start summary
tabindex target title type usemap valign
value vspace width
- }, "/" => 1, # emit proper <hr /> XHTML
- }],
+ }}],
);
return $_scrubber;
} # }}}
my $pid;
my $sigpipe=0;
$SIG{PIPE}=sub { $sigpipe=1 };
- $pid=open2(*IN, *OUT, 'tidy -quiet -asxhtml -utf8 --show-body-only yes --show-warnings no --tidy-mark no');
+ $pid=open2(*IN, *OUT, 'tidy -quiet -ashtml -utf8 --show-body-only yes --show-warnings no --tidy-mark no');
# open2 doesn't respect "use open ':utf8'"
binmode (IN, ':utf8');
'" height="'.$im->Get("height").'"'.
(exists $params{class} ? ' class="'.$params{class}.'"' : '').
(exists $params{id} ? ' id="'.$params{id}.'"' : '').
- ' /></a>';
+ '></a>';
} #}}}
1
writefile($rssp, $config{destdir},
genfeed("rss", $rssurl, $desc, $params{page}, @list));
$toping{$params{page}}=1 unless $config{rebuild};
- $feedlinks{$params{destpage}}=qq{<link rel="alternate" type="application/rss+xml" title="RSS" href="$rssurl" />};
+ $feedlinks{$params{destpage}}=qq{<link rel="alternate" type="application/rss+xml" title="RSS" href="$rssurl">};
}
if ($atom) {
my $atomp=atompage($params{page});
writefile($atomp, $config{destdir},
genfeed("atom", $atomurl, $desc, $params{page}, @list));
$toping{$params{page}}=1 unless $config{rebuild};
- $feedlinks{$params{destpage}}=qq{<link rel="alternate" type="application/atom+xml" title="Atom" href="$atomurl" />};
+ $feedlinks{$params{destpage}}=qq{<link rel="alternate" type="application/atom+xml" title="Atom" href="$atomurl">};
}
}
eval q{use Markdown};
if (! $@) {
$markdown_sub=\&Markdown::Markdown;
+ $Markdown::g_empty_element_suffix=">"; # HTML output
}
else {
eval q{use Text::Markdown};
if (! $@) {
$markdown_sub=\&Text::Markdown::Markdown;
+ $Text::Markdown::g_empty_element_suffix=">"; # HTML output
}
else {
do "/usr/bin/markdown" ||
error(sprintf(gettext("failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)"), $@, $!));
$markdown_sub=\&Markdown::Markdown;
+ $Markdown::g_empty_element_suffix=">"; # HTML output
}
}
require Encode;
if (%params) {
$meta{$page}.=scrub("<link href=\"".encode_entities($value)."\" ".
join(" ", map { encode_entities($_)."=\"".encode_entities(decode_entities($params{$_}))."\"" } keys %params).
- " />\n");
+ ">\n");
}
else {
# hidden WikiLink
}
elsif ($key eq 'permalink') {
$permalink{$page}=$value;
- $meta{$page}.=scrub("<link rel=\"bookmark\" href=\"".encode_entities($value)."\" />\n");
+ $meta{$page}.=scrub("<link rel=\"bookmark\" href=\"".encode_entities($value)."\">\n");
}
elsif ($key eq 'date') {
eval q{use Date::Parse};
$meta{$page}.='<link href="'.$stylesheet.
'" rel="'.encode_entities($rel).
'" title="'.encode_entities($title).
- "\" style=\"text/css\" />\n";
+ "\" style=\"text/css\">\n";
}
elsif ($key eq 'openid') {
if (exists $params{server}) {
$meta{$page}.='<link href="'.encode_entities($params{server}).
- "\" rel=\"openid.server\" />\n";
+ "\" rel=\"openid.server\">\n";
}
$meta{$page}.='<link href="'.encode_entities($value).
- "\" rel=\"openid.delegate\" />\n";
+ "\" rel=\"openid.delegate\">\n";
}
else {
$meta{$page}.=scrub("<meta name=\"".encode_entities($key).
- "\" content=\"".encode_entities($value)."\" />\n");
+ "\" content=\"".encode_entities($value)."\">\n");
if ($key eq 'author') {
$author{$page}=$value;
}
$ret.="$choice ($choices{$choice})\n";
}
if ($open && exists $config{cgiurl}) {
- $ret.="<input type=\"hidden\" name=\"do\" value=\"poll\" />\n";
- $ret.="<input type=\"hidden\" name=\"num\" value=\"$pagenum{$params{page}}\" />\n";
- $ret.="<input type=\"hidden\" name=\"page\" value=\"$params{page}\" />\n";
- $ret.="<input type=\"hidden\" name=\"choice\" value=\"$choice\" />\n";
- $ret.="<input type=\"submit\" value=\"".gettext("vote")."\" />\n";
+ $ret.="<input type=\"hidden\" name=\"do\" value=\"poll\">\n";
+ $ret.="<input type=\"hidden\" name=\"num\" value=\"$pagenum{$params{page}}\">\n";
+ $ret.="<input type=\"hidden\" name=\"page\" value=\"$params{page}\">\n";
+ $ret.="<input type=\"hidden\" name=\"choice\" value=\"$choice\">\n";
+ $ret.="<input type=\"submit\" value=\"".gettext("vote")."\">\n";
}
- $ret.="</p>\n<hr class=poll align=left width=\"$percent%\"/>\n";
+ $ret.="</p>\n<hr class=poll align=left width=\"$percent%\">\n";
if ($open && exists $config{cgiurl}) {
$ret.="</form>\n";
}
eval q{use MIME::Base64};
error($@) if $@;
return "<img src=\"data:image/png;base64,".
- encode_base64($png)."\" />";
+ encode_base64($png)."\">";
}
}
- return '<img src="'.urlto($fn, $params{destpage}).'" alt="graph" />';
+ return '<img src="'.urlto($fn, $params{destpage}).'" alt="graph">';
} # }}}
1
if ($tagname =~ /^h(\d+)$/i) {
my $level=$1;
my $anchor="index".++$anchors{$level}."h$level";
- $page.="$text<a name=\"$anchor\" />";
+ $page.="$text<a name=\"$anchor\"></a>";
# Take the first header level seen as the topmost level,
# even if there are higher levels seen later on.
+ikiwiki (2.4) unstable; urgency=low
+
+ Ikiwiki now outputs HTML 4.01, not XHTML 1.0. For the many reasons, see
+ http://www.hixie.ch/advocacy/xhtml and note that even if a web server is
+ set up to serve XHTML appropriately as application/xhtml+xml, mozilla
+ doesn't support that mime type.
+
+ It's possible that your wiki contains some hardcoded XHTML tags. No
+ need to worry about these too much though. Since before ikiwiki generated
+ XHTML before, but your web server almost certianly served it up as
+ text/html, web browsers actually were processing it as HTML all along and
+ if an XHTML tag worked before, it will continue to work. Also,
+ both the htmlscrubber and htmlsanitizer modules will convert any such
+ XHTML tags to valid HTML tags.
+
+ You might want to rebuild your wiki on upgrade to this version, to switch
+ everything over to HTML 4.01 at once.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 08 Jul 2007 11:55:00 -0400
+
ikiwiki (2.1) unstable; urgency=low
Some wikis need to be rebuilt on upgrade to this version, due to changes to
+ikiwiki (2.4) UNRELEASED; urgency=low
+
+ * Ikiwiki now outputs HTML 4.01, not XHTML 1.0. See the NEWS file for
+ details. Closes: #432045
+
+ -- Joey Hess <joeyh@debian.org> Sun, 08 Jul 2007 11:51:29 -0400
+
ikiwiki (2.3) unstable; urgency=low
* Corrected a typo in an error handler in the image plugin.
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-06-29 20:49-0400\n"
+"POT-Creation-Date: 2007-07-08 12:25-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "%s is locked by %s and cannot be edited"
msgstr ""
-#: ../IkiWiki/Plugin/mdwn.pm:37
+#: ../IkiWiki/Plugin/mdwn.pm:39
#, perl-format
msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)"
msgstr ""
<p>
-<a href="<TMPL_VAR PAGEURL>"><TMPL_VAR TITLE></a><br />
+<a href="<TMPL_VAR PAGEURL>"><TMPL_VAR TITLE></a><br>
<i>
Posted <TMPL_VAR CTIME>
</i>
<TMPL_IF NAME="ENCLOSURE">
<link rel="enclosure" type="<TMPL_VAR TYPE>" href="<TMPL_VAR ENCLOSURE>" length="<TMPL_VAR LENGTH>" />
<TMPL_ELSE>
- <content type="xhtml" xml:lang="en">
- <div xmlns="http://www.w3.org/1999/xhtml">
- <TMPL_VAR CONTENT>
- </div>
- </content>
+ <content type="html"><![CDATA[<TMPL_VAR CONTENT>]]></content>
</TMPL_IF>
</entry>
<TMPL_IF NAME="ATOMURL">
<a class="feedbutton" type="application/atom+xml" href="<TMPL_VAR NAME=ATOMURL>">Atom</a>
</TMPL_IF>
-<input type="hidden" name="do" value="blog" />
-<input type="hidden" name="from" value="<TMPL_VAR ROOTPAGE>" />
-<input type="hidden" name="subpage" value="1" />
+<input type="hidden" name="do" value="blog">
+<input type="hidden" name="from" value="<TMPL_VAR ROOTPAGE>">
+<input type="hidden" name="subpage" value="1">
<TMPL_VAR POSTFORMTEXT>
-<input name="title" size="40" />
-<input type="submit" value="Edit" />
+<input name="title" size="40">
+<input type="submit" value="Edit">
</div>
</form>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
-<base href="<TMPL_VAR BASEURL>" />
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<base href="<TMPL_VAR BASEURL>">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title><TMPL_VAR FORM-TITLE></title>
-<link rel="stylesheet" href="<TMPL_VAR BASEURL>style.css" type="text/css" />
-<link rel="stylesheet" href="<TMPL_VAR BASEURL>local.css" type="text/css" />
+<link rel="stylesheet" href="<TMPL_VAR BASEURL>style.css" type="text/css">
+<link rel="stylesheet" href="<TMPL_VAR BASEURL>local.css" type="text/css">
<TMPL_IF NAME="FAVICON">
-<link rel="icon" href="<TMPL_VAR BASEURL><TMPL_VAR FAVICON>" type="image/x-icon" />
+<link rel="icon" href="<TMPL_VAR BASEURL><TMPL_VAR FAVICON>" type="image/x-icon">
</TMPL_IF>
</head>
<body>
Page location: <TMPL_VAR FIELD-PAGE>
Page type: <TMPL_VAR FIELD-TYPE>
<TMPL_ELSE>
-<br />
+<br>
<TMPL_VAR FIELD-PAGE>
<TMPL_VAR FIELD-TYPE>
</TMPL_IF>
-<TMPL_VAR FIELD-EDITCONTENT><br />
+<TMPL_VAR FIELD-EDITCONTENT><br>
<TMPL_IF NAME="CAN_COMMIT">
-Optional comment about this change:<br />
-<TMPL_VAR FIELD-COMMENTS><br />
+Optional comment about this change:<br>
+<TMPL_VAR FIELD-COMMENTS><br>
</TMPL_IF>
-<input id="_submit" name="_submit" type="submit" value="Save Page" /><input id="_submit_2" name="_submit" type="submit" value="Preview" /><input id="_submit_3" name="_submit" type="submit" value="Cancel" />
+<input id="_submit" name="_submit" type="submit" value="Save Page"><input id="_submit_2" name="_submit" type="submit" value="Preview"><input id="_submit_3" name="_submit" type="submit" value="Cancel">
<TMPL_VAR HELPONFORMATTINGLINK>
<TMPL_VAR FORM-END>
<TMPL_IF NAME="PAGE_PREVIEW">
-<hr />
+<hr>
<div class="header">
<span>Page preview:</span>
</div>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
-<base href="<TMPL_VAR BASEURL>" />
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<base href="<TMPL_VAR BASEURL>">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title><TMPL_VAR TITLE></title>
-<link rel="stylesheet" href="<TMPL_VAR BASEURL>style.css" type="text/css" />
-<link rel="stylesheet" href="<TMPL_VAR BASEURL>local.css" type="text/css" />
+<link rel="stylesheet" href="<TMPL_VAR BASEURL>style.css" type="text/css">
+<link rel="stylesheet" href="<TMPL_VAR BASEURL>local.css" type="text/css">
<TMPL_IF NAME="FAVICON">
-<link rel="icon" href="<TMPL_VAR BASEURL><TMPL_VAR FAVICON>" type="image/x-icon" />
+<link rel="icon" href="<TMPL_VAR BASEURL><TMPL_VAR FAVICON>" type="image/x-icon">
</TMPL_IF>
</head>
<body>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title><TMPL_VAR TITLE></title>
<TMPL_IF NAME="FAVICON">
-<link rel="icon" href="<TMPL_VAR BASEURL><TMPL_VAR FAVICON>" type="image/x-icon" />
+<link rel="icon" href="<TMPL_VAR BASEURL><TMPL_VAR FAVICON>" type="image/x-icon">
</TMPL_IF>
-<link rel="stylesheet" href="<TMPL_VAR BASEURL>style.css" type="text/css" />
-<link rel="stylesheet" href="<TMPL_VAR BASEURL>local.css" type="text/css" />
+<link rel="stylesheet" href="<TMPL_VAR BASEURL>style.css" type="text/css">
+<link rel="stylesheet" href="<TMPL_VAR BASEURL>local.css" type="text/css">
<TMPL_IF NAME="FEEDLINKS"><TMPL_VAR FEEDLINKS></TMPL_IF>
<TMPL_IF NAME="META"><TMPL_VAR META></TMPL_IF>
</head>
<li><a href="<TMPL_VAR PREFSURL>">Preferences</a></li>
</TMPL_IF>
<TMPL_IF NAME="DISCUSSIONLINK">
-<li><TMPL_VAR DISCUSSIONLINK><br /></li>
+<li><TMPL_VAR DISCUSSIONLINK><br></li>
</TMPL_IF>
</ul>
</div>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
-<base href="<TMPL_VAR BASEURL>" />
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<base href="<TMPL_VAR BASEURL>">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title><TMPL_VAR TITLE></title>
-<link rel="stylesheet" href="<TMPL_VAR BASEURL>style.css" type="text/css" />
-<link rel="stylesheet" href="<TMPL_VAR BASEURL>local.css" type="text/css" />
+<link rel="stylesheet" href="<TMPL_VAR BASEURL>style.css" type="text/css">
+<link rel="stylesheet" href="<TMPL_VAR BASEURL>local.css" type="text/css">
<TMPL_IF NAME="FAVICON">
-<link rel="icon" href="<TMPL_VAR BASEURL><TMPL_VAR FAVICON>" type="image/x-icon" />
+<link rel="icon" href="<TMPL_VAR BASEURL><TMPL_VAR FAVICON>" type="image/x-icon">
</TMPL_IF>
</head>
<body>
</div>
<div id="content">
-<br />
+<br>
<table border="1" frame="border" rules="groups">
<thead>
<tr class="changeheader">
<TMPL_LOOP NAME="PAGES">
<TMPL_IF NAME="DIFFURL">
<a href="<TMPL_VAR NAME="DIFFURL">">
- <img alt="diff" src="wikiicons/diff.png" />
+ <img alt="diff" src="wikiicons/diff.png">
</a>
<TMPL_VAR NAME="LINK">
<TMPL_ELSE>
<td class="changelog" colspan="4">
<TMPL_LOOP NAME="MESSAGE">
<TMPL_IF NAME="LINE">
- <TMPL_VAR NAME="LINE" ESCAPE="HTML"><br />
+ <TMPL_VAR NAME="LINE" ESCAPE="HTML"><br>
</TMPL_IF>
</TMPL_LOOP>
</td>
<form method="get" action="<TMPL_VAR SEARCHACTION>" id="searchform">
<div>
-<input type="text" name="phrase" value="" size="16" />
-<input type="hidden" name="enc" value="UTF-8" />
-<input type="hidden" name="do" value="hyperestraier" />
+<input type="text" name="phrase" value="" size="16">
+<input type="hidden" name="enc" value="UTF-8">
+<input type="hidden" name="do" value="hyperestraier">
</div>
</form>