2016-11-29 57 views
0

我遵循Compiling Markdown into HTML VSCode教程。我設法創建了一個帶有marked my.md -o my.html的html文件,但是這個文件只包含了我的降價內容。通過這個我的意思是沒有造型,沒有htmlbody標籤。該html是不完整使用VSCode創建完整的html頁面並標記爲

你知道如何創建一個完整的html頁面嗎? github for marked僅列出-o選項。它甚至可以呈現完整的HTML?

+0

但它是否將段落呈現爲p標籤,包含h1-6標籤的標題等? – Sandro

回答

1

標記只處理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輸出。

+0

經過一些試驗和錯誤,我設法運行它,它的工作就像一個魅力;-)我需要仔細看看任務和節點腳本,因爲目前我不明白一行。我很難接受任何答案,因爲他們都非常有幫助。 – t3chb0t

1

Markdown呈現爲HTML片段,而不是HTML文檔。事實上。大多數Markdown解析器(包括原始參考實現)僅輸出HTML片段。

部分的rules狀態:

HTML是一種出版格式;減價是格式的格式。

在包裝紙和<html><body>標記的HTML片段是出版和外的範圍爲減價。您有責任將片段包裝到文檔模板中。

在Markdown解析器中,有一些例外,但這些工具通常不僅僅是一個Markdown解析器。他們往往是發佈平臺,並且往往支持多於Markdown。他們將Markdown分析,模板(將Markdown輸出作爲一個變量插入到模板中)和各種其他功能組合起來,以創建完整的發佈工具(請參閱Pandoc)。標記不是這樣的工具。它只是一個Markdown解析器。但是,可能還有其他工具將標記爲發佈工具的一部分。或者您可以構建您自己的定製解決方案(使用標記)以滿足您的特定需求。

如果是這樣的話,爲什麼Marked(或任何其他Markdown解析器)具有命令行界面?所以你可以將輸出傳送給其他工具。

+0

哦,我沒有意識到這種區別,它確實有很大的意義。我想如果VSCode中的預覽是很好的風格,但沒有輸出,所以我做了一些非常錯誤的事情。 – t3chb0t