Создание полной HTML-страницы с VSCode и помечены

Я следовал инструкциям по компиляции Markdown в HTML для VSCode. Мне удалось создать HTML-файл с marked my.md -o my.html но этот файл содержит только содержимое моей уценки. Под этим я подразумеваю, что нет стиля, нет html а также body теги. HTML является неполным.

Знаете ли вы, как создать полную HTML-страницу? Github для отмеченных списков только -o вариант. Может ли он даже сделать полный HTML?

2 ответа

Markdown отображает фрагмент HTML, а не документ HTML. По факту. большинство анализаторов Markdown (включая исходную ссылочную реализацию) выводят только фрагменты HTML.

Правила гласят частично:

HTML - это формат публикации; Markdown - это формат письма.

Обтекание фрагмента HTML в <html> а также <body> Тэги публикуются и выходят за рамки Markdown. Вы несете ответственность за завершение фрагмента в шаблоне документа.

Из анализаторов Markdown есть несколько исключений, но эти инструменты обычно больше, чем просто анализатор Markdown. Они, как правило, публикуют платформы и часто поддерживают не только Markdown. Они объединяют разбор Markdown, создание шаблонов (где вывод Markdown вставляется в шаблон как одна переменная) и различные другие функции для создания полноценного инструмента публикации (см., Например, Pandoc). Отмеченный не такой инструмент. Это только анализатор Markdown. Однако могут существовать и другие инструменты, которые помечают помеченные как часть инструмента публикации. Или вы можете создать собственное индивидуальное решение (используя Marked) для ваших конкретных потребностей.

Если это так, то почему у Marked (или любого другого анализатора Markdown) есть интерфейс командной строки? Таким образом, вы можете передать вывод другим инструментам.

Marked обрабатывает только основное содержимое уценки в html-конвертации и ожидает, что вы принесете свой собственный документ и стилизацию. Вы можете собрать простой сценарий узла для обработки этого:

// convertMd.js
var marked = require('marked')
var fs = require('fs')

const inFile = process.argv[2]
const outFile = process.argv[3]

const inputContent = fs.readFileSync(inFile, 'utf8')

const content = `<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
${marked(inputContent)}
</body>
</html>`

fs.writeFileSync(outFile, content)

где tasks.json будет:

{
  // See http://go.microsoft.com/fwlink/?LinkId=733558
  //  for the documentation about the tasks.json format
  "version": "0.1.0",
  "command": "node",
  "isShellCommand": true,
  "args": ["./convertMd.js", "sample.md", "sample.html"],
  "showOutput": "always"
}

Другие инструменты командной строки могут обеспечить более полный вывод html.

Другие вопросы по тегам