I have moved the webpage (https://boxesandglue.dev) from MkDocs to Hugo. Hugo is so much faster than MkDocs. And the Hextra theme is lightweight and customisable (https://imfing.github.io/hextra/)
Also did some re-organisation of the content.
The boxes and glue PDF library for Go
I have moved the webpage (https://boxesandglue.dev) from MkDocs to Hugo. Hugo is so much faster than MkDocs. And the Hextra theme is lightweight and customisable (https://imfing.github.io/hextra/)
Also did some re-organisation of the content.
A small follow-up from last post on high speed PDF generation with boxes and glue at
Finally created a first real world example for the boxes and glue command line interface at https://github.com/boxesandglue/boxesandglue-examples/tree/main/commandline/zugferdinvoice
Creating 1,000 EN 16931 compliant invoices in 14 seconds on an 2021 m1 MacBook Pro is not bad...
Next attempt for a command line interface for #boxesandglue is now available at
https://github.com/boxesandglue/cli
There are binaries for Window, Linux and macOS and some sort of documentation at https://boxesandglue.dev/cli/. Very early stage, but it shows the direction. Great thank to the hackers at https://risor.io for the great language / Go bindings.
I am still looking for a good (pure Go) scripting language as a frontend for boxes and glue.
I have tried https://github.com/dop251/goja (JavaScript), https://github.com/yuin/gopher-lua (Lua), https://github.com/google/starlark-go (Python-like) and now https://github.com/risor-io/risor (Go like syntax).
My current candidate is risor, which takes a lot of code to glue boxes and glue and the scripting language, but much control since there is almost no magic involved (reflection). The author is super responsive and helpful.
Just found another TeX implementation in Go. Totally unlike boxes and glue. It looks good (not tried it yet)
I have greatly reduced the memory footprint to 1/10 of the previous size. Stay tuned for more optimizations.
@tajpulo Actually boxes and glue®, since ™ is for unregistered trademarks only. But using ® is optional, as far as I know.
Yay! boxes and glue is now a registered trademark!
New blog post: creating PDF with JavaScript
I have just released the first version of ets, a JavaScript binding for boxes and glue. Not complete yet, but you can already experiment with it.
https://github.com/boxesandglue/ets
Have fun!
@drj I use github.com/yuin/gopher-lua sucessfully, but this is limited to Lua 5.1 and a bit messy to implement. I think JavaScript (never really used myself) would be more attractive to other users and https://github.com/dop251/goja seems to be a good implementation, but I have not much experience with it. The microsoft implementation of Lua seems to be outdated, so I don't want to rely on that.
4/4
Final thoughts: Because the core is pretty stable, I can now think of creating a Lua or JavaScript based frontend to boxes and glue which would make a whole lot of new applications possible. My experiments before that were a bit unlucky, since the API changed quite a bit and cause a lot of out-of-sync code.
3/4
There are still a few loose ends. The HTML subsystem is still not usable. I have reorganised libraries which broke almost anything related to HTML. The reorganisation has been necessary because there have been issues with nested tables for example. But don't expect a stable API soon, I need time to experiment.
2/4
* expect API changes without prior notice until I create a version tag. After that, I will establish some kind of change log. Probably baseline-pdf (the PDF writer) will get a stable tag first.
* The website (https://boxesandglue.dev) gets updates and more documentation.
* The separation of packages seems to finalise. baseline-pdf for PDF writing, boxesandglue for the core stuff, htmlbag / csshtml for HTML handling.
1/4
Before going on vacation, a short update on boxes and glue.
* It is getting some love! After moving to the new GitHub location, all go.mod files are updated to reflect the new location.
* I have created a small table for the stability / usage of the main boxes and glue libraries at https://github.com/boxesandglue The basic libraries are stable (pdf writer and boxes and glue itself)
I'd like to share with you the "State of Text Rendering 2024", a survey of the Free & Open Source fonts & text rendering landscape advancements since 2009.
The boxes and glue repositories will move to their own GitHub organization. See https://github.com/speedata/boxesandglue/discussions/8 #boxesandglue
Linebreak tester updated at https://linebreak.boxesandglue.dev/ and https://github.com/speedata/linebreak-web to latest boxes and glue.
This is pre alpha / experimental and just for me....
I'd like to have a visual test for the line breaking algorithm of boxes and glue, so I created a little HTML / canvas fronted with Go / Web Assembly (wasm)
https://linebreak.boxesandglue.dev
and
https://github.com/speedata/linebreak-web
More bells and whistles will follow.