Как использовать 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);
Другие вопросы по тегам