Show HN: Decksh – a DSL for presentations and data visualizations

2 ajstarks 1 6/4/2025, 5:02:11 PM github.com ↗
decksh is a domain-specific language for presentations, information displays, and data visualizations. I built decksh as a way to have complete control over my presentations, and to have a portable, documented, long-lasting format for information.

decksh generates the deck[1] markup language which uses a percentage-based coordinate system, and may be rendered as PDF, SVG, or PNG. decksh is written in the Go programming language, and may be called as a library. The decksh object reference[2] describes the language.

decksh works with text in many orientations (left, centered, end, rotated) as well as text and code blocks, images (GIF, PNG, JPG), graphics (lines, curve, arc, circle, rectangle, square, ellipse, polygon, polylines), along with composite objects (lists, arrows, braces, brackets). Charts and graphs are also included: (bar, line, scatter, donut, dot, lego, proportional maps, fan, bowtie, slope, and radial charts).

decksh supports variables, color naming, (SVG names, rgb, hex rgb, and hsv), user-defined functions, loops, and conditionals.

Examples of decksh use are collected in the deckviz[3] repo, and may be seen on SpeakerDeck[4]. The Du Bois data visualization re-creations[5] were done with decksh.

[1] https://github.com/ajstarks/deck [2] https://speakerdeck.com/ajstarks/decksh-object-reference [3] https://github.com/ajstarks/deckviz [4] https://speakerdeck.com/ajstarks [5] https://speakerdeck.com/ajstarks/recreating-the-dubois-data-...

Comments (1)

rootnod3 · 22h ago
Just add some parentheses and Greenspun's 10th rule is achieved yet again :D

[1] https://en.wikipedia.org/wiki/Greenspun%27s_tenth_rule