From e41dd1e24e345c974fe4a070088f0d09d1b6ddac Mon Sep 17 00:00:00 2001
From: joey
and
in templates -
add an alt attribute to inline images, based on the WikiLink to the image.
Allows things like [[my_image|img.png]] to customise alt text.
---
IkiWiki/CGI.pm | 13 +++++++------
IkiWiki/Render.pm | 8 ++++----
doc/todo/html.mdwn | 31 +++++++++++++++++++++++++++++--
ikiwiki | 12 ++++++++++--
templates/blogpost.tmpl | 4 ++--
templates/editpage.tmpl | 12 +++++++-----
templates/misc.tmpl | 2 ++
templates/page.tmpl | 8 +++++---
templates/recentchanges.tmpl | 8 +++++---
9 files changed, 71 insertions(+), 27 deletions(-)
diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm
index 7c12bee5b..52da67b9a 100644
--- a/IkiWiki/CGI.pm
+++ b/IkiWiki/CGI.pm
@@ -144,12 +144,13 @@ sub cgi_signin ($$) { #{{{
$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});
diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm
index f897b9b13..1fc047a62 100644
--- a/IkiWiki/Render.pm
+++ b/IkiWiki/Render.pm
@@ -186,7 +186,7 @@ sub postprocess_html_inline { #{{{
$ret.=$template->output;
}
- return $ret;
+ return "
"; } #}}} sub genpage ($$$) { #{{{ @@ -202,10 +202,10 @@ 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")); } } diff --git a/doc/todo/html.mdwn b/doc/todo/html.mdwn index ba167ea62..cb77774b5 100644 --- a/doc/todo/html.mdwn +++ b/doc/todo/html.mdwn @@ -6,8 +6,35 @@ editing the [[templates]] BTW. 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 &. + + 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) diff --git a/ikiwiki b/ikiwiki index 44a7abaf4..62a9767b9 100755 --- a/ikiwiki +++ b/ikiwiki @@ -259,6 +259,12 @@ sub titlepage ($) { #{{{ return $title; } #}}} +sub cgiurl (@) { #{{{ + my %params=@_; + + return $config{cgiurl}."?".join("&", map "$_=$params{$_}", keys %params); +} #}}} + sub htmllink ($$;$$$) { #{{{ my $page=shift; my $link=shift; @@ -286,13 +292,15 @@ sub htmllink ($$;$$$) { #{{{ $bestlink=htmlpage($bestlink); } if (! grep { $_ eq $bestlink } values %renderedfiles) { - return "?$linktext" + return " "create", page => $link, from =>$page). + "\">?$linktext" } $bestlink=File::Spec->abs2rel($bestlink, dirname($page)); if (! $noimageinline && isinlinableimage($bestlink)) { - return ""; + return ""; } return "$linktext"; } #}}} diff --git a/templates/blogpost.tmpl b/templates/blogpost.tmpl index 5ded359a1..8e4bb6a7d 100644 --- a/templates/blogpost.tmpl +++ b/templates/blogpost.tmpl @@ -1,4 +1,4 @@ -
Links: diff --git a/templates/recentchanges.tmpl b/templates/recentchanges.tmpl index b42975e95..4ab53b892 100644 --- a/templates/recentchanges.tmpl +++ b/templates/recentchanges.tmpl @@ -1,3 +1,5 @@ +