#svg #markdown #pic #md #html

pikchr

PIC-like diagramming language to SVG converter

5 releases

0.1.4 Mar 1, 2025
0.1.3 Sep 20, 2023
0.1.2 Aug 8, 2023
0.1.1 May 8, 2021
0.1.0 Oct 24, 2020

#80 in Visualization

Download history 141/week @ 2024-12-17 69/week @ 2024-12-24 61/week @ 2024-12-31 120/week @ 2025-01-07 211/week @ 2025-01-14 230/week @ 2025-01-21 261/week @ 2025-01-28 207/week @ 2025-02-04 145/week @ 2025-02-11 138/week @ 2025-02-18 306/week @ 2025-02-25 270/week @ 2025-03-04 199/week @ 2025-03-11 170/week @ 2025-03-18 159/week @ 2025-03-25 96/week @ 2025-04-01

633 downloads per month
Used in 18 crates (4 directly)

MIT/Apache

300KB
7K SLoC

C 7K SLoC // 0.1% comments Rust 163 SLoC // 0.0% comments

Pikchr - Diagram renderer

Taken from the pikchr homepage:

Pikchr (pronounced like "picture") is a PIC-like markup language for diagrams in technical documentation. Pikchr is designed to be embedded in fenced code blocks of Markdown (or in similar mechanisms in other markup languages) to provide a convenient means of showing diagrams.

This crate wrappers the pikchr.c version downloaded from that website on the 28th February 2025.

You can use it as follows:

use pikchr::{Pikchr, PikchrFlags};

let piccy = Pikchr::render(
    diagram_str,
    None,
    PikchrFlags::default()).unwrap();

println!("{}", piccy);

There is a little helper program that reads a Pikchr file named on the command line and renders it as SVG to the standard output:

cargo run -p pikchr-cli -q foo.pikchr > foo.svg

You can install it with cargo install pikchr-cli (cargo install --path=pikchr-cli from the source tree).

Dependencies

~0.4–315KB