rust-lang / rust-lang/mdBook

Highlight.js Theme for EBNF

Open
#2,716 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-Highlighting C-enhancement
Dominant language
Rust
Stars
22.2k
Forks
1.9k
Avg merge
2d 21h
Merged PRs (30d)
12

Description

Problem

Extended Backus-Naur Form (EBNF) is supported by highlight.js, but the default theme has the appearance of no syntax highlighting. This likely applies to BNF and ABNF also.

Here are some examples:

GitHub
letter = "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" |
         "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z" |
         "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" |
         "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z" ;
digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
identifier = letter , { letter | digit | "-" | "_"  } ;
topic = identifier , "/" , identifier ;
values = identifier , { ":" , identifier } ;
key = topic , "/" values ;
VS Code

Image

MdBook

This is using the Ayu theme, but reverting to the default theme appears to produce similar results.

Image

Proposed Solution

There's probably a way to custom the default them to make it work, but I'm 100% sure how. Ideally, the default theme should retain minimal syntax highlighting.

Notes

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue provides EBNF examples rendered in GitHub, VS Code, and MdBook, and focuses on the default theme's syntax highlighting. Start by reproducing the examples with the default theme and determine where the theme handles EBNF, BNF, or ABNF. Done means these code blocks retain minimal visible syntax highlighting without relying on a custom theme.

Written by the indexing model from the issue text.

Assessment

Domain
documentation
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.