cmark-syntax 0.6.0

Syntax highlighting for pulldown-cmark
Documentation
<pre><code class="language-rust"><span class="keyword">use</span> <span class="identifier">cmark_syntax</span><span class="glyph">::</span><span class="strong-identifier">SyntaxPreprocessor</span>;
<span class="keyword">use</span> <span class="identifier">pulldown_cmark</span><span class="glyph">::</span>{<span class="identifier">html</span>, <span class="strong-identifier">Parser</span>};

<span class="comment">// Test highlighting rust code</span>
<span class="comment">/* Multiline
 * comment */</span>

<span class="keyword">struct</span> <span class="special-identifier">_Unused</span><span class="glyph">&lt;</span><span class="special-identifier">'a</span><span class="glyph">&gt;</span>(<span class="glyph">&amp;</span><span class="special-identifier">'a</span> <span class="strong-identifier">str</span>);

<span class="glyph">#[test]</span>
<span class="keyword">fn</span> <span class="special-identifier">rust_highlight</span>() {
    <span class="keyword">static</span> <span class="identifier">RUST_CODE</span><span class="glyph">:</span> <span class="glyph">&amp;</span><span class="strong-identifier">str</span> <span class="glyph">=</span> <span class="identifier">concat!</span>(<span class="literal">&quot;```rust\n&quot;</span>, <span class="identifier">include_str!</span>(<span class="literal">&quot;rust.rs&quot;</span>), <span class="literal">&quot;```&quot;</span>);
    <span class="keyword">let</span> <span class="identifier">parser</span> <span class="glyph">=</span> <span class="strong-identifier">Parser</span><span class="glyph">::</span><span class="special-identifier">new</span>(<span class="identifier">RUST_CODE</span>);
    <span class="keyword">let</span> <span class="identifier">processed</span> <span class="glyph">=</span> <span class="strong-identifier">SyntaxPreprocessor</span><span class="glyph">::</span><span class="special-identifier">new</span>(<span class="identifier">parser</span>);

    <span class="keyword">let</span> <span class="keyword">mut</span> <span class="identifier">rendered</span> <span class="glyph">=</span> <span class="strong-identifier">String</span><span class="glyph">::</span><span class="special-identifier">new</span>();
    <span class="identifier">html</span><span class="glyph">::</span><span class="special-identifier">push_html</span>(<span class="glyph">&amp;</span><span class="keyword">mut</span> <span class="identifier">rendered</span>, <span class="identifier">processed</span>);
    <span class="comment">// let _ = std::fs::write(&quot;rust.html&quot;, &amp;rendered);</span>
    <span class="identifier">assert_eq!</span>(<span class="identifier">rendered</span>, <span class="identifier">include_str!</span>(<span class="literal">&quot;rust.html&quot;</span>));
}
</code></pre>