Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Use marked and prism.js to parse markdown and add syntax highlighting in Node.js
// Versions: marked v0.6.2, prismjs v1.15.0
let marked = require('marked');
let prism = require('prismjs');
let loadLanguages = require('prismjs/components/');
loadLanguages(['javascript', 'jsx', 'css', 'markup', 'bash', 'json']);
highlight: function(code, lang) {
if (prism.languages[lang]) {
return prism.highlight(code, prism.languages[lang], lang);
} else {
return code;
let someMarkdown = "```javascript\nlet x = 2;```";
let html = marked.parse(someMarkdown)
Copy link

diegozanon commented Apr 7, 2021

Worked fine! Thanks! Just made a small change: used loadLanguages() with no parameters so all of them were loaded and I don't need to worry about which languages I may need in the future.

Copy link

rahuldahal-zz commented Jun 11, 2021

Now the library says, "loadLanguages is not a function"

Copy link

NoelTheis commented Nov 8, 2021

For me at least, the example was not working because marked does not seem to recognize ```javascript\nlet x = 2;``` as a proper code block?
It only works for me with a line break before the closing "```" : ```javascript\nlet x = 2;\n```

Leaving this in case someone else stumbles upon this

Copy link

lai32290 commented Mar 7, 2022

Thanks! it works!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment