Создание полной 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.