From dca42e27fe9c7d28c72bb6cb8e5cc4ec481572e8 Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Sun, 26 Apr 2026 21:38:06 +0200 Subject: feat(): support image --- src/lexer/Lexer.zig | 23 +++++++++++++++++++++++ src/lexer/Token.zig | 7 +++++++ 2 files changed, 30 insertions(+) (limited to 'src/lexer') diff --git a/src/lexer/Lexer.zig b/src/lexer/Lexer.zig index cdf1bd8..983aa23 100644 --- a/src/lexer/Lexer.zig +++ b/src/lexer/Lexer.zig @@ -223,6 +223,29 @@ test "lexer common" { try std.testing.expect(l.next() == null); } +test "lexer image" { + var l = try init("![alt](src)"); + + try doTest(&l, .image, "!"); + try doTest(&l, .link, "["); + try doTest(&l, .literal, "alt"); + try doTest(&l, .link, "]("); + try doTest(&l, .literal, "src"); + try doTest(&l, .link, ")"); + + try std.testing.expect(l.next() == null); + + l = try init("![](src)"); + + try doTest(&l, .image, "!"); + try doTest(&l, .link, "["); + try doTest(&l, .link, "]("); + try doTest(&l, .literal, "src"); + try doTest(&l, .link, ")"); + + try std.testing.expect(l.next() == null); +} + test "lexer multiline" { var l = try init( \\# Title diff --git a/src/lexer/Token.zig b/src/lexer/Token.zig index 18b2d10..bd2a07b 100644 --- a/src/lexer/Token.zig +++ b/src/lexer/Token.zig @@ -27,6 +27,13 @@ pub const Kind = enum { else => false, }; } + + pub fn isPar(self: @This()) bool { + return switch (self) { + .literal, .link, .code, .math, .bold, .italic, .ref => true, + else => false, + }; + } }; kind: Kind, -- cgit v1.2.3