$session->param("name", $form->field("name"));
if (defined $form->field("do") &&
$form->field("do") ne 'signin') {
- print $q->redirect(
- "$config{cgiurl}?do=".$form->field("do").
- "&page=".$form->field("page").
- "&title=".$form->field("title").
- "&subpage=".$form->field("subpage").
- "&from=".$form->field("from"));;
+ print $q->redirect(cgiurl(
+ do => $form->field("do"),
+ page => $form->field("page"),
+ title => $form->field("title"),
+ subpage => $form->field("subpage"),
+ from => $form->field("from"),
+ ));
}
else {
print $q->redirect($config{url});
$ret.=$template->output;
}
- return $ret;
+ return "</p>$ret<p>";
} #}}}
sub genpage ($$$) { #{{{
filename => "$config{templatedir}/page.tmpl");
if (length $config{cgiurl}) {
- $template->param(editurl => "$config{cgiurl}?do=edit&page=$page");
- $template->param(prefsurl => "$config{cgiurl}?do=prefs");
+ $template->param(editurl => cgiurl(do => "edit", page => $page));
+ $template->param(prefsurl => cgiurl(do => "prefs"));
if ($config{rcs}) {
- $template->param(recentchangesurl => "$config{cgiurl}?do=recentchanges");
+ $template->param(recentchangesurl => cgiurl(do => "recentchanges"));
}
}
Current problems:
- * A doctype should be added: do we want XHTML 1.0 or HTML 4.01 Trans as default?
- * If XHTML: In templates <hr> should become <hr\> etc.
+ * A doctype should be added: do we want XHTML 1.0 or HTML 4.01 Trans as
+ default?
+
+ Need to choose a doctype that corresponds to what [[MarkDown]]
+ generates. For example, it does generate <hr />
+ So xhml seems a good fit and I'm going to add that to the
+ templates.
+
+ One consideration of course is that regular users might embed html
+ that uses deprecated presentational elements like <center>.
+ --[[Joey]]
+
+ * If XHTML: In templates <hr> should become <hr /> etc.
* Image wikilinks should provide an alt text (maybe '$filname wiki-image'?).
+
+ Now it will be the text of the [[WikiLink]], which even allows
+ setting a custom alt text like this: \[[my_alt_text|image.png]]
+ --[[Joey]]
+
* &'s in (cgi-)url's must be escaped as &amp;.
+
+ Fixed --[[Joey]]
+
* [ [inlinepage] ] gets wrapped in <p>...</p> which has a high chance of invalidating the page.
+
+ Since markdown does this, the only way I can think to fix it is to
+ make the inlined page text start with </p> and end with
+ <p>. Ugly, and of course there could be problems with
+ markdown enclosing it in other spanning tags in some cases.
+ I've implemented this hack now. :-/ --[[Joey]]
+
+Test: [validate this page](http://validator.w3.org/check?url=referer)
return $title;
} #}}}
+sub cgiurl (@) { #{{{
+ my %params=@_;
+
+ return $config{cgiurl}."?".join("&", map "$_=$params{$_}", keys %params);
+} #}}}
+
sub htmllink ($$;$$$) { #{{{
my $page=shift;
my $link=shift;
$bestlink=htmlpage($bestlink);
}
if (! grep { $_ eq $bestlink } values %renderedfiles) {
- return "<span><a href=\"$config{cgiurl}?do=create&page=$link&from=$page\">?</a>$linktext</span>"
+ return "<span><a href=\"".
+ cgiurl(do => "create", page => $link, from =>$page).
+ "\">?</a>$linktext</span>"
}
$bestlink=File::Spec->abs2rel($bestlink, dirname($page));
if (! $noimageinline && isinlinableimage($bestlink)) {
- return "<img src=\"$bestlink\">";
+ return "<img src=\"$bestlink\" alt=\"$linktext\">";
}
return "<a href=\"$bestlink\">$linktext</a>";
} #}}}
-<hr>
+<hr />
<form action="<TMPL_VAR CGIURL>" method="GET">
<input type="hidden" name="do" value="blog">
<input type="hidden" name="from" value="<TMPL_VAR ROOTPAGE>">
Add a new post titled: <input name=title size=40>
<input type="submit" value="Edit">
</form>
-<hr>
+<hr />
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head><title><TMPL_VAR FORM-TITLE></title></head>
<body>
<TMPL_VAR FIELD-FROM>
<TMPL_VAR FIELD-RCSINFO>
<TMPL_IF NAME="PAGE_SELECT">
-Page location: <TMPL_VAR FIELD-PAGE><br>
+Page location: <TMPL_VAR FIELD-PAGE><br />
<TMPL_ELSE>
<TMPL_VAR FIELD-PAGE>
</TMPL_IF>
-<TMPL_VAR FIELD-CONTENT><br>
+<TMPL_VAR FIELD-CONTENT><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>
<TMPL_VAR FORM-SUBMIT>
<TMPL_VAR FORM-END>
-<hr>
+<hr />
<TMPL_IF NAME="PAGE_PREVIEW">
<h1>Page preview:</h1>
<TMPL_VAR PAGE_PREVIEW>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head><title><TMPL_VAR TITLE></title></head>
<body>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head><title><TMPL_VAR TITLE></title></head>
<body>
<a href="<TMPL_VAR PREFSURL>">Preferences</a>
</TMPL_IF>
-<TMPL_VAR DISCUSSIONLINK><br>
+<TMPL_VAR DISCUSSIONLINK><br />
-<hr>
+<hr />
<TMPL_VAR CONTENT>
-<hr>
+<hr />
<TMPL_IF NAME="BACKLINKS">
<p>Links:
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head><title><TMPL_VAR TITLE></title></head>
<body>
<TMPL_VAR INDEXLINK>/ <TMPL_VAR TITLE>
</h1>
-<hr>
+<hr />
<ul>
<TMPL_LOOP NAME="CHANGELOG">
(<a href="<TMPL_VAR NAME="DIFFURL">">diff</a>)
</TMPL_IF>
</TMPL_LOOP>
- <br>
+ <br />
<!-- <TMPL_VAR NAME="COMMITTYPE"> -->
changed <TMPL_VAR NAME="WHEN"> by <TMPL_VAR NAME="USER">:
<i>
<TMPL_LOOP NAME="MESSAGE">
<TMPL_IF NAME="LINE">
- <TMPL_VAR NAME="LINE"><br>
+ <TMPL_VAR NAME="LINE"><br />
</TMPL_IF>
</TMPL_LOOP>
</i>