如何将带有内容文件夹的HMTL文件转换为自包含的HTML文件

时间:2017-01-20 22:49:37

标签: html self-contained

如何将带有内容文件夹的HTML文件转换为自包含的HTML文件,可以从任何地方查看其文件等。

如何才能使其可编辑并在编辑后保持自包含。

我基本上需要制作基于HTML文件的文档,可以从任何地方查看。不幸的是,它必须是HTML,否则我会制作PDF

谢谢

4 个答案:

答案 0 :(得分:2)

最直接的方法是将所有资产网址转换为data: urls。 (有可用的在线变换器将获取提供的资产并从中生成data: URL。)

一种可能更简单的方法是将图像和字体网址转换为data:网址,而不是内联脚本和CSS。

编辑:可能感兴趣:inliner,一个用于执行此类操作的Node实用程序。 “将您的网页变为单个HTML文件,内嵌所有内容”。还执行一些缩小优化。

答案 1 :(得分:2)

您可以使用pandoc,它具有创建独立HTML文件https://pandoc.org/MANUAL.html#option--self-contained的选项。

如果您以html开头,这就是命令。

pandoc in.html --self-contained -o out.html

该工具可以做很多事情,例如,您还可以从降价文件生成html或生成pdf

答案 2 :(得分:1)

我并不确切地知道你想象的是什么,但HTML从来就不是完全自足的。最终可能存在一些允许它的漏洞,但据我所知,没有任何预制工具能够实现这一目标。转换'。 这需要以下几点:

  • 将所有链接的样式表和脚本转换为内联样式表和脚本。这意味着只要有<script src="http://url.to/foo.js"></script>,您就必须下载foo.js并将其包含在内:<script type="text/javascript"> [this is the content of foo.js] </script>。类似的东西适用于CSS和其他链接的源文件。
  • 下载所有链接的媒体(主要是我假设的图像)并将它们转换为blob(为您提供可在HTML文件中使用的base64 blob的服务是https://www.base64-image.de/)。这意味着将<img src="http://url.to/image.jpg" />替换为<img src="data:image/png;base64,[converted image data goes here] />。 因此,那里会涉及一些体力劳动,但可能(几乎)完全可以完成。

可能有一种方法可以达到你想要做的另一种方式,你想要这个的原因究竟是什么?

答案 3 :(得分:0)

以下是另一种选择:在标记中编写文档,然后使用&#34;标记为2&#34; (http://marked2app.com)转换为自包含 html。工作光滑。此外,您可以在需要更新文档时返回并编辑标记,然后只需重新导出html文件。