[英]Fully self-contained HTML files with Pandoc
我對 HTML 和 Javascript 知之甚少,我想知道以下內容:
我有一個主 HTML 文件,其中包含一些文本、圖像......,它還包含對其他本地 HTML 文件的內部引用,這些文件放在相對目錄中。 是否可以制作一個完全獨立的 HTML 文件,其中其他文件仍由 URL 鏈接引用,但它們的內容只是記錄在主文件中?
我在使用 Pandoc 中的--self-contained
選項時遇到了這個問題,它只將所有必要的東西(CSS 樣式表,...)寫入 HTML 標題,而主 HTML 文檔仍然需要“查看”實際的本地文件.
到目前為止,我嘗試了iframe
標簽,但它總是打開的,並不是簡單的放在一個頁面中,就像一個單行的 URL 鏈接。 我已經使用 HTML+javascript 閱讀了這個答案,但我不確定這是否與 Pandoc 兼容。
誰能幫助我了解此類任務的難度?
您可以將子 HTML 轉換為Base64字符串,並使用主 HTML 中的數據 URI 方案鏈接它們:
<!-- sub.html -->
<html>
<head>
<title>
Sub HTML
</title>
</head>
<body>
<h1>Sub HTML</h1>
<p>This is the Sub HTML.</p>
</body>
</html>
PCEtLSBzdWIuaHRtbCAtLT4NCjxodG1sPg0KIDxoZWFkPg0KICA8dGl0bGU + DQogICBTdWIgSFRNTA0KICA8L3RpdGxlPg0KIDwvaGVhZD4NCjxib2R5Pg0KIDxoMT5TdWIgSFRNTDwvaDE + DQogPHA + VGhpcyBpcyB0aGUgU3ViIEhUTUwuPC9wPg0KPC9ib2R5Pg0KPC9odG1sPg ==
<!-- main.html -->
<html>
<head>
<title>
Main HTML
</title>
</head>
<body>
<h1>Main HTML</h1>
<p> This is the Main HTML. </p>
<p>
<a href="sub.html">
This link to the sub HTML
</a>
references the target by its (relative) path and won't work without the
2nd file.
<br>
<a href="data:text/html
;UFT8
;base64,PCEtLSBzdWIuaHRtbCAtLT4NCjxodG1sPg0KIDxoZWFkPg0KICA8dGl0b
GU+DQogICBTdWIgSFRNTA0KICA8L3RpdGxlPg0KIDwvaGVhZD4NCjxib2
R5Pg0KIDxoMT5TdWIgSFRNTDwvaDE+DQogPHA+VGhpcyBpcyB0aGUgU3V
iIEhUTUwuPC9wPg0KPC9ib2R5Pg0KPC9odG1sPg==
">
This link to the sub HTML
</a>
references the target by its Base64 encoding and will work without the
2nd file.
</p>
</body>
</html>
編輯:
由於問題是專門詢問pandoc
,這里是上面使用 Markdown 的示例:
# Sub HTML
This is the sub HTML.
pandoc
將您的子 Markdown 文件轉換為 HTML:pandoc sub.md > sub.html
base64 < sub.html
PGgxIGlkPSJzdWItaHRtbCI+U3ViIEhUTUw8L2gxPgo8cD5UaGlzIGlzIHRoZSBzdWIgSFRNTC48 L3A+Cg==
# Main HTML
This is the main HTML.
[This link to the sub HTML][relative_path] references the target by its
(relative) path and won't work without the 2nd file.
[This link to the sub HTML][data_uri] references the target by its Base64
encoding and will work without the 2nd file.
[relative_path]: sub.html
[data_uri]: data:text/html;ASCII-US;base64,PGgxIGlkPSJzdWItaHRtbCI+U3ViIEhU
TUw8L2gxPgo8cD5UaGlzIGlzIHRoZSBzdWIgSFRNTC48L3A+Cg==
pandoc
將您的主要 Markdown 文件轉換為 HTML:pandoc main.md > main.html
通常一個 HTML 文件由一個 URL 引用,因此當您點擊鏈接並更改 URL 時,您會導航到一個新文件。 為了以某種方式打包多個文件,例如已經發明了 EPUB 文件格式(本質上是 HTML 文件的壓縮集合,pandoc 也可以生成它)。
除此之外,您可以使用哈希鏈接鏈接到同一 HTML 文件中的數據,例如:
See <a href="#my-section">section 1</a>.
<h1 id="my-section">My section</h1>
然后,您還可以制作一些 JavaScript 並將其嵌入到 HTML 文件中。 然后,該 JavaScript 將隱藏除當前在瀏覽器哈希中的部分之外的所有部分(如myhtmlfile.html#my-section
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.