#mdbook #tree-sitter #highlighting #html

bin+lib mdbook-treesitter

mdbook-treesitter is an mdBook preprocessor for html adding tree-sitter highlighting support

3 releases (1 stable)

1.0.0 Nov 24, 2024
0.1.1 Apr 5, 2023
0.1.0 Apr 2, 2023

#715 in Text processing

Download history 8/week @ 2024-09-20 1/week @ 2024-09-27 130/week @ 2024-11-22 10/week @ 2024-11-29 10/week @ 2024-12-06

150 downloads per month

MIT license

19KB
388 lines

mdbook-treesitter

mdbook-treesitter is an mdBook preprocessor for html adding tree-sitter highlighting support.

It simply translates the tree-sitter highlighting into highlightjs one.

Installation

Install the preprocessor:

cargo install mdbook-treesitter

Configure mdBook

Add this in your book.toml:

[output.html]
additional-js = ["treesitter.js"]

[preprocessor.treesitter]
command = "mdbook-treesitter"
languages = ["javascript"]

Add this javascript in the file treesitter.js at the root of your project:

let t = document.getElementsByClassName("language-treesitter");
for (let i = 0; i < t.length; i++) {
  t[i].innerHTML = t[i].innerText;
}

Usage

Use usual codeblocks like that:

```javascript
console.log(this.a + b + "c" + 4);
```

Wait, you need to add related tree-sitter files:

  • Create a folder treesitter in the root of your mdBook project
  • Then, add your language_name.so in the created folder
  • Next, create a folder language_name in the tree-sitter folder
  • Finally, add in it your scm files

Example for javascript:

- My awesome mdBook/
    - book.toml
    - treesitter.js
    - book/
    - src/
    - treesitter/
        - javascript.so
        - javascript/
            - highlights.scm
            - injections.scm
            - locals.scm

   

🧃

Dependencies

~14–25MB
~379K SLoC