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