Skip to content

v0.5.0

Choose a tag to compare

@tannevaled tannevaled released this 19 Oct 20:53
be20994
go install github.com/go-slides/slides/cmd/slides@v0.5.0
  • Editable PPTX and ODP (#18): --pptx and --odp now write slides made of text boxes, shapes and pictures, instead of one picture per slide. Text keeps its position, font, size, colour and links. Shapes, borders and linear gradients stay editable. Each picture is embedded once. Speaker notes are kept. Elements with no editable form (opacity, filters, blur, formulas, radial gradients, and every ODP gradient) are drawn as a picture of that element, with their text kept underneath. Lato, Roboto Mono and Inter (all OFL) are embedded, so the deck shows in its fonts on a machine that lacks them, and new text can still be typed in them. --pptx-raster and --odp-raster keep the old picture decks. On the 100-slide deck on an M4 Max:

    PPTX, 100 slides go-slides v0.5.0 go-slides v0.4.0 marp-cli 4.5.1
    Time 348 ms 4.7 s 7.8 s
    Size 760 KiB 4.8 MiB 7.2 MiB
    Memory 204 MiB 540 MiB 1.4 GiB

    marp-cli's PPTX holds pictures. Its --pptx-editable prints a PDF and converts it through LibreOffice, losing the notes; go-slides needs neither. internal/cmd/officecheck renders the decks back through LibreOffice and compares them with the PNG export: 1.7 % (PPTX) and 1.4 % (ODP) of pixels differ, on glyph edges. The layout comes from go-webengine's new officecanvas (go-webengine v0.10.1). The writers are in go-ooxml v0.5.0 and go-odf v0.9.0. Only LibreOffice was tested; PowerPoint and Keynote were not.

  • SVG fidelity (#16, #17): clipPath, fill-rule: evenodd, arc commands with several parameter sets, and arc flags written without separators now draw as Chrome draws them, through the fleet's new fork go-gfx/oksvg v0.2.0. One Twemoji (🪇) and 211 others changed, and SVG logos such as the octocat are no longer garbled.