目标是拥有一个可以正确查看的HTML文件-line。
与StackOverflow上的一个老问题类似(但那里的答案似乎仅支持CSS,不支持Javascript)。 ),Unix,Windows都可以。
我认为可以通过将所有内容替换为以下内容来实现: />
<script type="text/javascript" src="x.js"></script>
以及类似的所有
<link rel="stylesheet" type="text/css" href="theme.css">
和 <script type="text/javascript">
And here goes the content of the x.js file
</script>
(或任何实际语法)
#1 楼
安装/用法:安装Python 2.7x-确保选择将其添加到PATH var的选项
安装Node.js
安装Windows SDK 7.1。它可以在XP +上运行。 Windows SDK 8不能立即使用-不包括所有工具。如果您已经安装了VS 2010可再发行组件,请尝试在Windows SDK的安装程序中取消选中它们-否则可能必须先卸载它们才能安装此组件,然后在需要时重新安装较新版本。
安装WebCombiner Node.js软件包。最好使用SDK命令行中的cmd行
npm install -g web-combiner
,而不是普通的cmd行最简单SDK显然是不需要的,但可能需要其他编译器。这可能很容易解决,但这是目前的弱点。最糟糕的是,它不会检查它是否是css链接,因此inliner path.html out.html true
下的atom / image引用也会引起问题。 显然,这意味着css / js必须是本地的,但只要从Firefox或Chrome浏览器将其另存为html页面,默认情况下就会保存这些内容,因此虽然有点烦人,但这不是一个严重的问题。
评论
感谢您的分享。似乎是非常基本的工具,并且存在一些问题,例如github.com/newghost/web-combiner/issues/1
– Grzegorz Oledzki
2014年7月22日在12:40
#2 楼
尼克·王尔德(Nick Wilde)的答案给了我另一个答案:另一个名为Inliner的nodejs项目。 -出现一些错误)
评论
“ Nick Wilde”的WebCombiner的源代码包含指向Inliner项目的注释:github.com/newghost/web-combiner/commit/…
– Grzegorz Oledzki
2014年7月22日在12:06
Inliner工具也有一些错误。我遇到了这个:github.com/remy/inliner/issues/13但除此之外,它似乎工作得很好。例如。 nodejs ./inliner.js -i“ http://softwarerecs.stackexchange.com/questions/9983/tool-to-automatically-inline-both-css-and-javascript-into-html”生成带有JQuery的大型HTML文件和其他内联。
– Grzegorz Oledzki
2014年7月22日在12:39
如果有人感兴趣,我设法解决了问题#13,并向存储库提交了拉取请求。为我工作。
– Grzegorz Oledzki
2014年7月22日15:14
我最近使用了这种内衬工具,效果很好。当前,它不内联已经缩小的javascript(* .min.js)。但是,如果需要,通过编辑源代码可以解决此问题。
–马塞尔
2015年11月10日在7:12
#3 楼
您的问题不是很清楚,但是我能更接近您的目标(单个HTML文件)是MHTML格式。好的,它不是单个HTML文件,而是单个MHTML文件,但是,您可以在其中包含JS,CSS和更多内容,例如图像! MHT文件。Firefox插件UnMHT允许您在每个OS上呈现此文件。
以下是与此有关的有趣页面:
如何在Linux上的Firefox中打开.mht文件
评论
他说,如果他愿意,那就是“拥有一个可以离线正确查看的HTML文件”。因此,这是实现同一目标的另一种方式……恕我直言,但他的问题尚不清楚
–Pascal Qyy
2014年7月21日在17:24
好的,我想这有相同的最终结果(离线查看),但是OP在考虑的方法与您所说的不同
–ᔕᖺᘎᕊ
14年7月21日在17:27
我知道,也许是因为他不知道其他方法是可行的(我不知道),所以这就是为什么我建议这种方法的原因。
–Pascal Qyy
2014年7月21日在17:35
@PascalQyy“恕我直言,但他的问题不清楚”-请帮助我使问题更清楚。您缺少什么信息?
– Grzegorz Oledzki
2014年7月21日在17:41
相关问题:XY问题-有时问者问的是错误的问题。如果是这样,这个答案可能是正确的答案。
–鲍勃森
14年7月21日在19:48
#4 楼
我添加这个是因为我最近需要执行确切的任务,但是此解决方案似乎更易于设置...。您可以安装python,然后运行
pip install htmlark[http,parsers]
来安装HTMLArk。
usage: htmlark [-h] [-o OUTPUT] [-E] [-I] [-C] [-J]
[-p {html.parser,lxml,html5lib,auto}] [-v] [--version]
[webpage]
Converts a webpage including external resources into a single HTML file. Note
that resources loaded with JavaScript will not be handled by this program, it
will only work properly with static pages.
positional arguments:
webpage URL or path of webpage to convert. If not specified,
read from STDIN.
optional arguments:
-h, --help show this help message and exit
-o OUTPUT, --output OUTPUT
File to write output. Defaults to STDOUT.
-E, --ignore-errors Ignores unreadable resources
-I, --ignore-images Ignores images during conversion
-C, --ignore-css Ignores stylesheets during conversion
-J, --ignore-js Ignores external JavaScript during conversion
-p {html.parser,lxml,html5lib,auto}, --parser {html.parser,lxml,html5lib,auto}
Select HTML parser. If not specifed, htmlark tries to
use lxml, html5lib, and html.parser in that order (the
'auto' option). See documentation for more
information.
-v, --verbose Prints information during conversion
--version Displays version information
结果html被打印到标准输出,因此您需要使用输出重定向将其保存到这样的文件中:
htmlark http://example.com/ > inlined.html
#5 楼
这个来自Wildbit(邮戳制造商)的开源工具刚刚发布,并且看起来很有希望...https://github.com/wildbit/style-merge
评论
您能否编辑您的问题并命名您对应运行的操作系统的要求?添加了说明。
源是在线的网页还是计算机上的源文件?
@NickWilde-我将在计算机上保存HTML文件,而链接将位于Internet(http://)等上。到公共托管的Javascript库(例如JQuery)。 |但是如果有问题,我总是可以获取所有资源。
好吧,我想我有一个不错的选择。在实际推荐它之前,我会先对其进行测试(我已经下载了一段时间,但还没有开始使用它)