Interoperability & Standards between packages

After looking through the existing packages on the typst universe, both their usage and their code, I feel like even though the growth is pretty amazing, packages are very separated from each other and don’t even follow the same packaging file structure, naming structure, etc. Maybe there should be documentation from the typst team on how to properly create packages, what public facing interfaces should look like, and a guideline for how to design functions so other packages can use them (?) (for example some packages already do this well like “Zero”, adding more performant, input-data structures for package developers). Otherwise I’m afraid that Typst will become a fragmented mess of 200 different programming ideologies, workarounds and reimplementations like Latex.

1 Like

I agree that this is needed. Personally, I don’t focus on creating any standards/guidelines yet because I know there are some upcoming features that will have a large impact on how packages’ APIs will look in the future. If you want a teaser on how that could look, there was a talk at the recent Typst Meetup that gave an outlook: A Picture Is Worth a Thousand Words | Kyano Levi @ Typst Meetup (8m41s) (none of the necessary work has been done, so the code there is probably not (exactly) how this future Typst feature will look.)

That being said, there is a community initiative to work on guidelines: typst-community/guidelines – but that has stalled a bit. Personally, I’ll probably come back to contributing to it once Typst has HTML support, since PDF manuals are not exactly the best format for that kind of documentation.

1 Like

Ah great, didn’t know about the typst community github, I’ll take a look and maybe contribute sometime! I already saw the video, pretty cool stuff coming up!

2 Likes