1

VSCodeのCompiling Markdown into HTMLチュートリアルに従いました。でhtmlファイルを作成できましたmarked my.md -o my.htmlが、このファイルにはマークダウンのコンテンツしか含まれていません。これは、スタイリングもタグもタグもないことを意味htmlbodyます。html が不完全です。

完全な HTML ページを作成する方法を知っていますか? マークされたリストのgithub は、オプションのみをリストし-oます。完全な html をレンダリングすることさえできますか?

4

2 に答える 2

1

Markdown は、HTML ドキュメントではなく、HTML フラグメントにレンダリングします。実際には。ほとんどの Markdown パーサー (元のリファレンス実装を含む) は、HTML フラグメントのみを出力します。

規則の一部は次のように述べられています。

HTML は発行形式です。マークダウンは書き込み形式です。

タグでHTML フラグメントをラップする<html>ことは公開されており、Markdown の範囲外です。ドキュメント テンプレートでフラグメントをラップするのは、ユーザーの責任です。<body>

Markdown パーサーの中にはいくつかの例外がありますが、それらのツールは通常、単なる Markdown パーサーではありません。それらはパブリッシングプラットフォームである傾向があり、多くの場合、Markdown だけではありません。これらは、Markdown 解析、テンプレート作成 (Markdown 出力が 1 つの変数としてテンプレートに挿入される)、およびその他のさまざまな機能を組み合わせて、完全な公開ツールを作成します (たとえば、Pandoc を参照)。Marked はそのようなツールではありません。これは Markdown パーサーのみです。ただし、公開ツールの一部として Marked をラップする他のツールが存在する可能性があります。または、特定のニーズに合わせて (Marked を使用して) 独自のカスタム ソリューションを構築することもできます。

その場合、Marked (またはその他の Markdown パーサー) にコマンドライン インターフェイスがあるのはなぜでしょうか? したがって、出力を他のツールにパイプできます。

于 2016-11-29T23:49:56.027 に答える
1

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 出力が得られる場合があります。

于 2016-11-29T23:40:27.773 に答える