Describe feature
New feature is syntax highlighting
, code blocks are text blocks wrapped around by strings of 3 backticks.
What did you build it?
I modified the unwrapMdxCodeBlocks
function from Docusaurus
and created a new function unwrapCodeBlocks
to my project.
export function unwrapCodeBlocks(content: string): string {
const regex = /```
{% endraw %}
(.*?)\n(.*?)\n
{% raw %}
```/gs;
content.replace(regex, function (match, lang, code) {
if (lang === "") {
content = `<pre><code>
${code}
</code></pre>`;
} else {
content =
`<pre><code class="language-${lang}">` +
`
${code}
</code></pre>`;
}
return content;
});
return content;
}
Also, I added Prism
to the .html
to highlight code blocks automatically.
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/0.0.1/prism.min.js"></script>
<link
href="https://cdnjs.cloudflare.com/ajax/libs/prism/0.0.1/prism.min.css"
rel="stylesheet"
/>
There are lots of supported languages on Prism and the class name depends on what user put in.
function helloWord(){
console.log("helloWord");
}
This is codeblocks.txt
and javascript
value is going to be class name like class="language-javascript"
and when I run the app the output is as below:
Issues
The app looks fine when I run codeblocks.txt
file, but there are couple of issues, one is that <p>
tags are automatically added to code blocks in .html
file. The other is that code blocks and other tags are not working together, so when unwrapCodeBlocks
function runs it replaces other texts with <pre><code>
tags. The next step is to fix these bugs.
Top comments (0)