tiny.zen.parseFrontmatter
Defined in tiny.zen.
Source
Source: lib/zen/src/frontmatter/parse.zig:6
zig
pub fn parse(storage: *storage_mod.Storage, markdown: []const u8) model.Error!model.Parsed { const regions = try storage.acquire(markdown); var iterator = scan.Iterator.init(markdown[regions.plan.metadata_start..regions.plan.metadata_end]); var pair_index: usize = 0; var byte_index: usize = 0; var current: ?usize = null; var continuation_start: usize = 0; var continuing = false; while (iterator.next()) |field| switch (field) { .pair => |pair| { std.debug.assert(pair_index < regions.pairs.len); regions.pairs[pair_index] = .{ .key = pair.key, .value = pair.value }; current = pair_index; continuing = false; pair_index += 1; }, .continuation => |value| if (current) |index| { const active = ®ions.pairs[index]; if (!continuing) { continuation_start = byte_index; append(regions.continuation, &byte_index, active.value); if (active.value.len != 0) append(regions.continuation, &byte_index, " "); continuing = true; } else { append(regions.continuation, &byte_index, " "); } append(regions.continuation, &byte_index, value); active.value = regions.continuation[continuation_start..byte_index]; }, }; std.debug.assert(pair_index == regions.pairs.len); std.debug.assert(byte_index == regions.continuation.len); return .{ .metadata = .{ .pairs = regions.pairs }, .body = markdown[regions.plan.body_start..], };}Source: lib/zen/src/root.zig:110
zig
/// Parses into active storage; the result borrows it until `reset`.pub const parseFrontmatter = frontmatter.parse;Also reachable as
Audit
| Definitions | 1 |
|---|---|
| Public names | 2 |
| Members | 0 |
| Version | 26.7.0 |
| Revision | daab053ee433 |