const marked = require('marked');// 要轉換的 Markdown 文本
const markdownText = `
# Hello, Markdown!This is a paragraph.- List item 1
- List item 2
`;// 使用 marked 將 Markdown 轉換為 HTML
const html = marked(markdownText);console.log(html);
我直接讀取md文件轉換結果有誤,第1行本應是標題1卻變成了段落。文件內容跟上面字符串完全一樣。后來打印二進制才知道從文件讀取的前面多了些東西,原因是文件用了UTF8 BOM編碼,最后改成UTF8編碼問題解決。
markdownContent = fs.readFileSync('.test.md', 'utf8');
const encoder = new TextEncoder();
console.log(encoder.encode(markdownContent));
marked用法
覆蓋默認的渲染函數
const marked = require('marked');// 覆蓋默認的渲染函數
const renderer = {// 處理標題的渲染函數,text 是標題文本,depth 是標題級別heading(text, depth) {// 將文本轉換為小寫,并將非單詞字符替換為連字符 -const escapedText = text.toLowerCase().replace(/[^\w]+/g, '-');// 返回生成的 HTML 代碼片段,包含錨點和標題文本return `<h${depth}><a name="${escapedText}" class="anchor" href="#${escapedText}"><span class="header-link"></span></a>${text}</h${depth}>`;},code(raw, lang) {return `<pre><code class="prism language-${lang}">${raw}</code></pre>`;
}
};// 將自定義的渲染函數應用于 marked 模塊
marked.use({ renderer });// 解析并輸出 Markdown 文本
console.log(marked.parse('# heading+'));
const markdownText = `
\`\`\`python
print("Hello, World!")
\`\`\`
`;
console.log(marked.parse(markdownText));
官方資料:
https://marked.js.org/using_pro