mdbook-treesitter

Crates.iomdbook-treesitter
lib.rsmdbook-treesitter
version1.0.0
sourcesrc
created_at2023-04-02 17:59:46.764942
updated_at2024-11-24 10:55:37.085169
descriptionmdbook-treesitter is an mdBook preprocessor for html adding tree-sitter highlighting support.
homepagehttps://github.com/Corpauration/mdbook-treesitter
repositoryhttps://github.com/Corpauration/mdbook-treesitter
max_upload_size
id828517
size48,077
(alyrow)

documentation

README

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

   

🧃

Commit count: 24

cargo fmt