Adds cross-linked TOC.

wch-ch32v003
Felix (xq) Queißner 4 years ago
parent aff9a092bd
commit e49ab53acb

2
deps/koino vendored

@ -1 +1 @@
Subproject commit 0be309f6c47582ecb8d8ca577c998b72226a1ecd Subproject commit 0f243e26609be75fd4adb45653c6865a2fcb246e

@ -422,6 +422,9 @@ const Website = struct {
try self.renderHeader(writer); try self.renderHeader(writer);
{ {
var renderer = koino.html.makeHtmlFormatter(writer, &self.arena.allocator, markdown_options);
defer renderer.deinit();
var iter = doc.first_child; var iter = doc.first_child;
while (iter) |item| : (iter = item.next) { while (iter) |item| : (iter = item.next) {
if (item.data.value == .HtmlBlock) { if (item.data.value == .HtmlBlock) {
@ -460,7 +463,9 @@ const Website = struct {
current_heading_level += 1; current_heading_level += 1;
} }
try writer.writeAll("<li>"); try writer.writeAll("<li><a href=\"#");
try writer.writeAll(try renderer.getNodeAnchor(child));
try writer.writeAll("\">");
{ {
var i = child.first_child; var i = child.first_child;
@ -473,6 +478,7 @@ const Website = struct {
); );
} }
} }
try writer.writeAll("</a>");
while (current_heading_level > heading.level) { while (current_heading_level > heading.level) {
try writer.writeAll("</ul>"); try writer.writeAll("</ul>");
@ -519,12 +525,7 @@ const Website = struct {
std.log.err("Unhandled HTML inline: {s}", .{string}); std.log.err("Unhandled HTML inline: {s}", .{string});
} }
} else { } else {
try koino.html.print( try renderer.format(item, false);
writer,
&self.arena.allocator,
markdown_options,
item,
);
} }
} }
} }

Loading…
Cancel
Save