Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/matthiasbeyer/mdbook-svgbob2

A preprocessor for mdbook to convert svgbob codeblocks into SVG using svgbob
https://github.com/matthiasbeyer/mdbook-svgbob2

hacktoberfest markdown mdbook mdbook-plugin mdbook-plugins mdbook-preprocessor rust svg svgbob

Last synced: 19 days ago
JSON representation

A preprocessor for mdbook to convert svgbob codeblocks into SVG using svgbob

Awesome Lists containing this project

README

        

# svgbob preprocessor for mdbook

[![Crates.io](https://img.shields.io/crates/v/mdbook-svgbob2)](https://crates.io/crates/mdbook-svgbob2)
[![GitHub last commit](https://img.shields.io/github/last-commit/matthiasbeyer/mdbook-svgbob2)](https://github.com/matthiasbeyer/mdbook-svgbob2)
[![License](https://img.shields.io/github/license/matthiasbeyer/mdbook-svgbob2)](https://github.com/matthiasbeyer/mdbook-svgbob2/blob/master/LICENSE)

A preprocessor for [mdbook](https://github.com/rust-lang/mdBook) to convert
`svgbob` codeblocks into nice SVG images using
[svgbob](https://github.com/ivanceras/svgbob).

This crate serves as an alternative to
[mdbook-svgbob](https://github.com/fzzr-/mdbook-svgbob) which was a big
inspiration while writing the code for this crate.

The reason why I created this was that the original uses outdated dependencies
and seems to break tables some reason, and it requires the source to have Unix
line endings as it breaks with Windows line endings. I also wanted to learn how
to write mdbook preprocessors and had a usecase for an updated svgbob
integration.

## Installation

Install with cargo:

```sh
cargo install mdbook-svgbob2
```

Or to install from the git mirror:

```sh
cargo install --git https://github.com/matthiasbeyer/mdbook-svgbob2.git
```

## Usage

Add this to your cargo.toml:
```toml
[preprocessor.svgbob2]
```

Optionally add any arguments for the
[svgbob settings](https://docs.rs/svgbob/0.6.2/svgbob/buffer/fragment/struct.Settings.html):

```toml
[preprocessor.svgbob2]
font_size = "14"
font_family = "monospace"
fill_color = "black"
background = "transparent"
stroke_color = "var(--fg)" # variable from the mdbook css files
stroke_width = "2.0"
scale = "8.0"
enhance_circuitries = "true"
include_backdrop = "true"
include_styles = "true"
include_defs = "true"
merge_line_with_shapes = "false"

# this is a non-svgbob custom setting
font_color = "var(--fg)"
```

The above are the default settings. Most of them are the svgbob defaults, with
the exception of `background` and `stroke_color` which have been changed to
better fit mdbook.

svgbob currently does not support changing the font color (although there are
[feature requests](https://github.com/ivanceras/svgbob/issues/78) for this to be
added), and because a pure black font color doesn't work well with different
mdbook themes, the ability to change the font color was added.

Simply include `svgbob` codeblocks in some chapter:

````md
```svgbob
.---.
/-o-/--
.-/ / /->
( * \/
'-. \
\ /
'
```
````

and it should display as a nicely rendered svg when rendered with mdbook.