Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/roms1383/mdbook-codeblocks

A mdbook preprocessor to prepend customizable vignette to code blocks.
https://github.com/roms1383/mdbook-codeblocks

Last synced: about 2 months ago
JSON representation

A mdbook preprocessor to prepend customizable vignette to code blocks.

Awesome Lists containing this project

README

        

# mdbook-codeblocks

![build](https://github.com/Roms1383/mdbook-codeblocks/actions/workflows/quality.yml/badge.svg) [![crates.io](https://img.shields.io/crates/v/mdbook-codeblocks.svg)](https://crates.io/crates/mdbook-codeblocks)

A preprocessor for [mdbook](https://rust-lang.github.io/mdBook/) which prepend a vignette above code blocks.

## usage

First you need to install the pre-processor by running the following command.

```sh
cargo install mdbook-codeblocks
```

Next you need to add the preprocessor to your `book.toml`. Customization is at its early stage, but you can already define language's custom `icon`, `label`, `color` and `link`:

```toml
[book]
authors = ["Roms1383"]
title = "Code blocks preprocessor example"

[output.html]

[preprocessor.codeblocks]
renderers = ["html"]
cpp = { color = "#FFFF99", link = "https://wiki.redmodding.org/red4ext" }
redscript = { color = "tomato", link = "https://wiki.redmodding.org/redscript" }
rust = { color = "#ac4313", link = "https://github.com/jac3km4/red4ext-rs" }
lua = { link = "https://wiki.redmodding.org/cyber-engine-tweaks" }
swift = { label = "Swift code snippet", color = "skyblue" }
```

Here's what it will produce:

![example](https://raw.githubusercontent.com/Roms1383/mdbook-codeblocks/main/example.png)

You can actually find it in `example` folder.

⚠️ also, do not forget to embed [FontAwesome css](https://cdnjs.com/libraries/font-awesome), see `example/theme/head.hbs`.

## roadmap

This tool is very rudimentary, but contributions are welcomed!

Especially for the HTML/CSS :)

Likewise it only supports a small subset of 5 languages so far, please add more!

## attribution

This tool uses icons from [FontAwesome](https://fontawesome.com/) by default.