From 9b47b7ee8b80bf427116b4d2cf42e6f3c9d8be62 Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Sat, 18 Apr 2026 19:25:54 +0200 Subject: feat(ast): parse title --- src/title.zig | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/title.zig (limited to 'src/title.zig') diff --git a/src/title.zig b/src/title.zig new file mode 100644 index 0000000..88848e5 --- /dev/null +++ b/src/title.zig @@ -0,0 +1,23 @@ +const std = @import("std"); +const Allocator = std.mem.Allocator; +const Lexed = @import("lexer/Lexed.zig"); +const Lexer = @import("lexer/Lexer.zig"); +const Element = @import("dom/Element.zig"); +const paragraph = @import("paragraph.zig"); + +pub const Error = paragraph.Error || Lexer.Error; + +pub fn parse(alloc: Allocator, l: *Lexer) Error!Element { + const v = (try l.next(alloc)).?; + var el = try Element.init(alloc, .content, switch (v.content.items.len) { + 1 => "h1", + 2 => "h2", + 3 => "h3", + 4 => "h4", + 5 => "h5", + 6 => "h6", + else => unreachable, + }); + try el.appendContent(try paragraph.parseContent(alloc, l)); + return el; +} -- cgit v1.2.3