From 5556e46cc453c024defa833b964648465ddc9e39 Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Sat, 2 May 2026 16:41:33 +0200 Subject: build(zig): link statically typst --- go/typdown.go | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'go/typdown.go') diff --git a/go/typdown.go b/go/typdown.go index 386b779..d4bf569 100644 --- a/go/typdown.go +++ b/go/typdown.go @@ -28,7 +28,11 @@ var ( ErrInvalidLink = errors.New("invalid link") ) -func Parse(content string) (template.HTML, error) { +type Document struct { + ptr unsafe.Pointer +} + +func Parse(content string) (*Document, error) { code := C.uchar(0) conv := C.CString(content) raw := C.typdown_parse(conv, &code) @@ -38,8 +42,25 @@ func Parse(content string) (template.HTML, error) { if code == 1 { panic(err) } - return "", err + return nil, err } + return &Document{raw}, nil +} + +func (d *Document) Deinit() { + C.typdown_free(d.ptr) +} + +func (d *Document) RenderHTML() (template.HTML, error) { + code := C.uchar(0) + raw := C.typdown_renderHTML(d.ptr, &code) defer C.free(unsafe.Pointer(raw)) + if code > 0 { + err := codeErrors[uint8(code)] + if code == 1 { + panic(err) + } + return "", err + } return template.HTML(C.GoString(raw)), nil } -- cgit v1.2.3