A small go module to utilize Typst for PDF, SVG or PNG document/report generation.
Go to file
2024-12-18 23:20:12 +01:00
.github/workflows Add github action for testing 2024-12-18 20:32:37 +01:00
.vscode Add MIT license 2024-12-18 20:48:49 +01:00
documentation/images Update README.md & Add test for README.md code 2024-12-18 21:24:36 +01:00
examples/passing-objects Add example for passing go values 2024-12-18 23:20:12 +01:00
.gitignore Initial commit 2024-12-01 15:03:28 +01:00
cli_test.go Add MIT license 2024-12-18 20:48:49 +01:00
cli_unix.go Add MIT license 2024-12-18 20:48:49 +01:00
cli_windows.go Add MIT license 2024-12-18 20:48:49 +01:00
cli-options.go Add MIT license 2024-12-18 20:48:49 +01:00
cli.go Add MIT license 2024-12-18 20:48:49 +01:00
errors_test.go Add MIT license 2024-12-18 20:48:49 +01:00
errors.go Add MIT license 2024-12-18 20:48:49 +01:00
go.mod Several changes 2024-12-18 17:25:28 +01:00
go.sum Several changes 2024-12-18 17:25:28 +01:00
identifier_test.go Add MIT license 2024-12-18 20:48:49 +01:00
identifier.go Add MIT license 2024-12-18 20:48:49 +01:00
LICENSE Add MIT license 2024-12-18 20:48:49 +01:00
readme_test.go Update README.md & Add test for README.md code 2024-12-18 21:24:36 +01:00
README.md Update README.md & Add test for README.md code 2024-12-18 21:24:36 +01:00
variable-encoder_test.go Add MIT license 2024-12-18 20:48:49 +01:00
variable-encoder.go Add MIT license 2024-12-18 20:48:49 +01:00

go-typst test

A library to generate documents and reports by utilizing the command line version of typst.

Features

  • Encoder to convert go objects into typst objects which then can be injected into typst documents.
  • Parsing of stderr into an go error object.
  • Uses stdio; No temporary files need to be created.
  • Good test coverage of features.

Installation

  1. Use go get github.com/Dadido3/go-typst inside of your project to add this module to your project.
  2. Install typst by following the instructions in the typst repository.

Runtime requirements

You need to have typst installed on any machine that you want to run your go project on. You can install it by following the instructions in the typst repository.

Usage

Here we will create a simple PDF document by passing a reader with typst markup into typstCLI.Render and then let it write the resulting PDF data into a file:

func main() {
    r := bytes.NewBufferString(`#set page(width: 100mm, height: auto, margin: 5mm)
= go-typst

A library to generate documents and reports by utilizing the command line version of typst.
#footnote[https://typst.app/]

== Features

- Encoder to convert go objects into typst objects which then can be injected into typst documents.
- Parsing of returned errors into go error objects.
- Uses stdio; No temporary files need to be created.
- Test coverage of most features.`)

    typstCLI := typst.CLI{}

    f, err := os.Create("output.pdf")
    if err != nil {
        t.Fatalf("Failed to create output file: %v.", err)
    }
    defer f.Close()

    if err := typstCLI.Render(r, f, nil); err != nil {
        t.Fatalf("Failed to render document: %v.", err)
    }
}

The resulting document will look like this:

readme-1.svg