diff options
author | Joey Hess <joey@kodama.kitenet.net> | 2007-11-23 11:40:02 -0500 |
---|---|---|
committer | Joey Hess <joey@kodama.kitenet.net> | 2007-11-23 11:40:02 -0500 |
commit | c9c0f271b60e4a6ef8392cd3a5339d9c2368b494 (patch) | |
tree | 08dd0e236dff5678d45e257551e1c3c42b8a0b7b | |
parent | e72825619d14c68e9ad6a73c2c0d726056141f1f (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.pm | 22 | ||||
-rw-r--r-- | debian/changelog | 2 |
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 |