Skip to content

Vaelatern/mdbook-d2-go

Repository files navigation

mdbook-d2-go

Tiny preprocessor that uses d2 as a library to inline processed SVG in your mdBook documents.

Quickstart

go build

then copy the file to your $PATH so mdBook can find it

Or you can docker build . -t mdbook-d2-go and put a COPY --from=mdbook-d2-go:latest /mdbook-d2-go . in whatever Dockerfile runs the mdBook code.

In your book.toml:

[preprocessor.d2-go]
layout = "elk"
theme_id = 0

Check out the example-with-d2 folder for a working mdbook example.

Keeping SVGs skinny

Your SVGs will be full size when loaded in mdbook by default.

Fortunately, a small mdbook theme fixes it:

$ cat theme/head.hbs
<style type="text/css">
svg {
        width: inherit;
        height: inherit;
}
</style>

Known bugs

  • Currently the SVG generated by d2 claims the element id d2-svg suggesting that two or more of these on the same page may lead to misbehaviours.
  • Width may overflow
  • The layout engine is not configurable despite most of the plumbing being there

License

OpenBSD-style ISC

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages