aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/root.zig1
-rw-r--r--src/typst.zig11
2 files changed, 12 insertions, 0 deletions
diff --git a/src/root.zig b/src/root.zig
index 6fd15f5..648fb77 100644
--- a/src/root.zig
+++ b/src/root.zig
@@ -2,6 +2,7 @@ const std = @import("std");
const builtin = @import("builtin");
const Allocator = std.mem.Allocator;
const parser = @import("parser.zig");
+const typst = @import("typst.zig");
pub const Document = parser.Document;
pub const Error = parser.Error;
/// Parse the content.
diff --git a/src/typst.zig b/src/typst.zig
new file mode 100644
index 0000000..9608af5
--- /dev/null
+++ b/src/typst.zig
@@ -0,0 +1,11 @@
+const std = @import("std");
+const typst = @cImport(@cInclude("typdown_typst.h"));
+
+pub fn generateSVG(alloc: std.mem.Allocator, content: []const u8) ![]const u8 {
+ const source = try alloc.dupeZ(u8, content);
+ defer alloc.free(source);
+ const raw_res = typst.typst_generateSVG(source);
+ const res = try alloc.dupe(u8, std.mem.span(raw_res));
+ defer typst.typst_freeString(raw_res);
+ return res;
+}