summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@kodama.kitenet.net>2007-11-23 11:40:02 -0500
committerJoey Hess <joey@kodama.kitenet.net>2007-11-23 11:40:02 -0500
commitc9c0f271b60e4a6ef8392cd3a5339d9c2368b494 (patch)
tree08dd0e236dff5678d45e257551e1c3c42b8a0b7b
parente72825619d14c68e9ad6a73c2c0d726056141f1f (diff)
* toc: Handle html elements embedded inside a header, rather than
stopping collecting the header text at the first element.
-rw-r--r--IkiWiki/Plugin/toc.pm22
-rw-r--r--debian/changelog2
2 files changed, 17 insertions, 7 deletions
diff --git a/IkiWiki/Plugin/toc.pm b/IkiWiki/Plugin/toc.pm
index 070c07b0e..639cae4a9 100644
--- a/IkiWiki/Plugin/toc.pm
+++ b/IkiWiki/Plugin/toc.pm
@@ -86,17 +86,25 @@ sub format (@) { #{{{
}
$liststarted=0;
}
+
+ $index.=&$indent."</li>\n" unless $liststarted;
+ $liststarted=0;
+ $index.=&$indent."<li class=\"L$curlevel\">".
+ "<a href=\"#$anchor\">";
$p->handler(text => sub {
$page.=join("", @_);
- $index.=&$indent."</li>\n" unless $liststarted;
- $liststarted=0;
- $index.=&$indent."<li class=\"L$curlevel\">".
- "<a href=\"#$anchor\">".
- join("", @_).
- "</a>\n";
- $p->handler(text => undef);
+ $index.=join("", @_);
}, "dtext");
+ $p->handler(end => sub {
+ my $tagname=shift;
+ if ($tagname =~ /^h(\d+)$/i) {
+ $p->handler(text => undef);
+ $p->handler(end => undef);
+ $index.="</a>\n";
+ }
+ $page.=join("", @_);
+ }, "tagname, text");
}
else {
$page.=$text;
diff --git a/debian/changelog b/debian/changelog
index 4ee2f7c80..5fddab963 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -24,6 +24,8 @@ ikiwiki (2.13) UNRELEASED; urgency=low
directories, to improve browsing of file:// urls.
Patch by Daniel Burrows. Closes: #451728
* Allow html5 video and audio tags and their attributes in the htmlscrubber.
+ * toc: Handle html elements embedded inside a header, rather than
+ stopping collecting the header text at the first element.
-- Joey Hess <joeyh@debian.org> Sat, 17 Nov 2007 19:56:46 -0500