Skip to content

v0.3.0

Choose a tag to compare

@tannevaled tannevaled released this 19 Oct 07:54
· 5 commits to main since this release
8d64a92
go install github.com/go-slides/slides/cmd/slides@v0.3.0
  • Faster and lighter than marp-cli (#11): slides render on a bounded worker pool, are written as they finish, and the fonts are installed once. On a 100-slide deck on an M4 Max:

    Format go-slides marp-cli 4.5.1 go-slides memory marp-cli memory
    PDF 1.14 s 1.88 s 242 MiB 1.5 GiB
    PNG 0.97 s 5.44 s 225 MiB 1.3 GiB
    PPTX 3.4 s 8.0 s 530 MiB 1.3 GiB

    The method and all the figures are in BENCHMARKS.md. go-webengine v0.8.0 and go-pdfkit v0.14.1 carry the shared optimisations.

  • OpenDocument (#12): --odp (or -o deck.odp) writes one picture per slide with its speaker notes, through go-odf v0.8.0's new WritePresentation.

  • HCL2 (#13): front matters opened with ---hcl, slides.hcl, and kinds and data files ending in .hcl accept HCL, with its expressions and functions: cty's standard library, plus page(), total(), env(), file() and now(). slides expand writes the YAML back for Marp.

  • Fitting headings (#9): # <!-- fit --> Title fills the slide width on one line, in the page and in every export.

  • Italics (#10): Lato and Roboto Mono italics are embedded.

Known limit: a PDF holds one image per slide, so it is larger than marp's vector PDF (about 10 MiB against 0.8 MiB for 100 slides).