Как использовать npm, отмеченные HighlightJS
Как вы используете npm, отмеченные HighlightJS? Я пытаюсь автоматизировать мои документы для анализа и разработки. Рассмотрим следующий пример из отмеченных документов:
// Using async version of marked
marked(markdownString, function (err, content) {
if (err) throw err;
// console.log(content);
});
// Synchronous highlighting with highlight.js
marked.setOptions({
highlight: function (code) {
return require('highlight.js').highlightAuto(code).value;
}
});
console.log(marked(markdownString));
Я не вижу, как использовать README.md
файл вместо строки с экранированными вручную специальными символами. Примеры использования не содержат никаких ссылок на .md
документ в качестве входных данных для markdownString
,
Как я могу передать строку уценки как документ (например, сформировать файл с именем README.md
) вместо строки, экранированной вручную, и есть ли окончательный вывод, включающий стилизацию?
Цель состоит в том, чтобы быть в состоянии пройти в замкнутом (я использую код VS markdownlint
) README.md, основной документ CSS и / или highlightJS css и возвращаемое значение последней строки (marked(markdownString)
) быть чем-то, что я могу написать прямо .html
файл.
Еще одно замечание, если это имеет значение: мои файлы уценки также указывают язык в многострочных блоках кода. Например, многострочный блок JSON в моем файле README.md выглядит следующим образом:
**BODY**:
```JSON
{
"username": "example@example.com",
"p2setting": "4xx72"
}
```
1 ответ
Основываясь на этом посте, документы однажды указали следующее, но оно было удалено из документов:
var fs = require('fs');
var hljs = require('highlight.js');
var marked = require('marked');
var markdownString = fs.readFileSync('./README.md');
marked.setOptions({
highlight: function(code, lang) {
return hljs.highlight(lang, code).value;
}
});
var output = marked(markdownString);
Обратите внимание, что вам нужно указать кодировку fs.readFileSync('./README.md', "utf8")
,
Рабочий пример:
const fs = require('fs');
const hljs = require('highlight.js');
const marked = require('marked');
const markdownString = fs.readFileSync('./README.md', "utf8");
const style1 = fs.readFileSync('./node_modules/highlight.js/styles/railscasts.css', "utf8");
// const style1 = fs.readFileSync('./node_modules/highlight.js/styles/solarized-dark.css', "utf8");
marked.setOptions({
highlight: function(code) {
return hljs.highlightAuto(code).value;
}
});
const doc = `<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Marked</title>
<style>${style1}</style>
</head>
<body>${marked(markdownString)}</body>
</html>
`
fs.writeFileSync('./index.html', doc);