An open API service indexing awesome lists of open source software.

https://github.com/loqusion/typix

Deterministic Typst compilation with Nix
https://github.com/loqusion/typix

nix typst

Last synced: 10 months ago
JSON representation

Deterministic Typst compilation with Nix

Awesome Lists containing this project

README

          


Typix Logo

Typix



FlakeHub version

Typix aims to make it easier to use [Nix](https://nixos.org/) in
[Typst](https://github.com/typst/typst) projects.

- **Dependency management**: supports arbitrary dependencies including fonts,
images, and data
- **Reproducible**: via a hermetically sealed build environment
- **Extensible**: fully compatible with [Typst packages](https://typst.app/docs/packages/)

## Features

- Automatically fetch dependencies and compile in a single command (`nix run
.#build`)
- Watch input files and recompile on changes (`nix run .#watch`)
- Set up a shell environment with all dependencies made available via
environment variables and symlinks
- Extensible via
[`mkTypstDerivation`](https://loqusion.github.io/typix/api/derivations/mk-typst-derivation.html)
- Support for dependencies such as [fonts](https://typst.app/docs/reference/text/text/#parameters-font),
[images](https://typst.app/docs/reference/visualize/image/), and [data](https://typst.app/docs/reference/data-loading/)

[Typst packages](https://typst.app/docs/packages/) are not _officially_ supported,
however there is a
[workaround](https://loqusion.github.io/typix/recipes/using-typst-packages.html).

## Getting Started

After [installing Nix](https://github.com/DeterminateSystems/nix-installer) and
[enabling
flakes](https://nixos.wiki/wiki/Flakes#Enable_flakes_permanently_in_NixOS), you
can initialize a flake from the default template:

```bash
nix flake init -t github:loqusion/typix
```

Here are some commands you can run from the default template:

- `nix run .#watch` — watch the input files and recompile on changes
- `nix run .#build` — compile and copy the output to the current directory

---

For more information, check out [the docs](https://loqusion.github.io/typix/).