from Hacker News

Pikchr – PIC-like markup language for diagrams in technical documentation

by leonim on 1/12/22, 5:07 PM with 12 comments

  • by paulsmith on 1/12/22, 6:44 PM

    If it's not immediately apparent, Pikchr is by SQLite creator D. Richard Hipp, and is how SQLite's syntax diagrams are generated on its website.

    It's a great little diagram language that's quite capable, and I think of it like a modern web upgrade to Brian Kernighan's PIC.

  • by fabiospampinato on 1/12/22, 6:14 PM

    Pikchr is awesome! I'll just mention that the Markdown-based note-taking app I'm working on as far as I know is the only app on the planet that can syntax-highlight Pikchr code: https://github.com/notable/notable-insiders/releases/tag/v1....
  • by electroly on 1/12/22, 8:58 PM

    Pikchr is really great. The syntax looks strange at first, but the learning curve is actually low. Within 5 minutes of looking at the pikchr source of some SQLite diagrams, you'll get it. I use it to produce railroad syntax diagrams in the same style as the ones in the SQLite docs. I don't use the Markdown integration; I just generate SVGs using PikchrShow[0] and treat them as images in my HTML-based docs.

    [0] https://pikchr.org/home/pikchrshow

  • by danshearer on 1/13/22, 9:40 AM

    I have used both Pikchr and several of the Mediawiki extensions for diagrams (the most recently-maintained of which is https://www.mediawiki.org/wiki/Extension:Flex_Diagrams )

    Here is my earliest Pikchr effort: https://lumosql.org/src/not-forking (click to see source.)

    Pikchr diagrams are crisp and precise with zero configuration. Mermaid diagrams are difficult to make render as nicely as the screenshots show (https://mermaid-js.github.io ) and easier to confuse with ambiguous syntax.

    With the addition of 5 lines Lua, Pandoc now handles Pikchr in Markdown documents: https://groups.google.com/g/pandoc-discuss/c/zZSspnHHsg0/m/m...

  • by OJFord on 1/12/22, 7:42 PM

    > Pikchr is designed to be embedded in fenced code blocks of Markdown

    Odd choice, usually that's how you'd show the (possibly syntax-highlighted) code as-is, not execute/render it in situ.

    E.g. what if I want a document that says 'this pikchr code generates this'? I'd expect to write something like:

        ```pikchr
        arrow 200% "whatever"
        ```
        renders:
        $pikchr
        arrow 200% "whatever"
        $
    
    (Or some other syntax) not the code block twice, once with some kind of escaping.
  • by srvmshr on 1/13/22, 4:50 PM

    I wasn't aware of this & looks like worth learning. I was looking ahead to learn Penrose (https://penrose.ink/) for making diagrams in my notes.
  • by otherflavors on 1/12/22, 7:18 PM

    contrary to pikchr documentation, troff is not obsolete