Skip to content

ahmadrosid/hl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌴 HL (WIP)

Syntax highlighting written in Rust inspired by github syntax highlighter. The project is designed to generate html syntax highlighting. Originally I used at heline.dev.

πŸ’‘ Example

cargo run --package hl --example html examples/html.rs -l rust

πŸ’‘ Example Result

demo

It will produce html code like this:

<table class="highlight-table">
<tbody>
<tr><td class="hl-num" data-line="1"></td><td><span class="hl-cmt">// The comment section</span></td></tr>
<tr><td class="hl-num" data-line="2"></td><td><span class="hl-k">fn</span> <span class="hl-en">main</span>() {</td></tr>
<tr><td class="hl-num" data-line="3"></td><td>    <span class="hl-k">let</span> matches = App::<span class="hl-en">new</span>(<span class="hl-c">"hl"</span>)</td></tr>
<tr><td class="hl-num" data-line="4"></td><td>        .<span class="hl-en">version</span>(<span class="hl-c">"0.1.0"</span>);</td></tr>
<tr><td class="hl-num" data-line="5"></td><td>    <span class="hl-k">let</span> ada = <span class="hl-c">5</span>;</td></tr>
<tr><td class="hl-num" data-line="6"></td><td>    <span class="hl-k">if</span> <span class="hl-c">true</span> {</td></tr>
<tr><td class="hl-num" data-line="7"></td><td>        <span class="hl-k">String</span>::<span class="hl-en">new</span>();</td></tr>
<tr><td class="hl-num" data-line="8"></td><td>        <span class="hl-k">let</span> a : <span class="hl-k">Vec</span><<span class="hl-k">char</span>> = <span class="hl-en">vec</span>!['0'];</td></tr>
<tr><td class="hl-num" data-line="9"></td><td>    }</td></tr>
<tr><td class="hl-num" data-line="10"></td><td>}</td></tr>
<tr><td class="hl-num" data-line="11"></td><td></td></tr>
<tr><td class="hl-num" data-line="12"></td><td><span class="hl-k">fn</span> <span class="hl-en">process</span>(a: &<span class="hl-k">str</span>, b: <span class="hl-k">char</span>) {</td></tr>
<tr><td class="hl-num" data-line="13"></td><td>    <span class="hl-en">println</span>!(a, b);</td></tr>
<tr><td class="hl-num" data-line="14"></td><td>}</td></tr>
<tr><td class="hl-num" data-line="15"></td><td></td></tr>
</tbody>
</table>

See the result in browser here.

Lexers

  • ActionScript ( βœ… Done )
  • Ada ( βœ… Done )
  • Bash ( βœ… Done )
  • C ( βœ… Done )
  • Clojure ( 🚧 In Progress )
  • CSS ( βœ… Done )
  • CUDA ( βœ… Done )
  • Dart ( βœ… Done )
  • CPP ( βœ… Done )
  • C# ( βœ… Done )
  • Go ( βœ… Done )
  • HTML ( 🚧 In Progress )
  • Ruby ( βœ… Done )
  • Rust ( 🚧 In Progress )
  • Java ( βœ… Done )
  • Javascript ( βœ… Done )
  • JSON ( βœ… Done )
  • Kotlin ( βœ… Done )
  • Lua ( βœ… Done )
  • Markdown ( βœ… Done )
  • Nim ( βœ… Done )
  • PHP ( βœ… Done )
  • Python ( 🚧 In Progress )
  • Typescript ( βœ… Done )
  • Vue ( 🚧 In Progress )
  • Yaml ( βœ… Done )
  • Zig ( βœ… Done )
  • Toml ( βœ… Done )
  • Lua ( βœ… Done )
  • Groovy ( βœ… Done )
  • Makefile ( βœ… Done )
  • Erlang ( βœ… Done )
  • Vlang ( βœ… Done )
  • Coffescript ( βœ… Done )
  • Protocol Buffer ( βœ… Done )

About

🌴 Syntax highlighting in Rust.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages