Grunt任务>在html文件中缩小内联Json-ld脚本> Jekyll Build

时间:2015-09-03 18:40:52

标签: gruntjs inline minify json-ld

短片

是否有一项笨拙的任务会缩​​小html文件中<script type="application/ld+json">标签中包含的内联json?

LONG VERSION

我正在使用jekyll和grunt。

Jekyll构建创建静态html文件,页面/帖子特定内联json-ld。

json-ld包含在<script type="application/ld+json">标签中。

我想缩小整个HTML文件。

我在文件上运行了 grunt-contrib-htmlmin (htmlmin)。

Htmlmin很好地缩小了所有内容:

  1. <script type="application/ld+json">标记放入1行之前;以及

  2. <script type="application/ld+json">标记放入1行后。

  3. <script type="application/ld+json">标记及其内容已被忽略。

    Htmlmin有一个名为MinifyJS的选项“在脚本元素和*属性上缩小Javascript(使用UglifyJS)”

    我已尝试将该选项设置为true和false,并且完全没有选项。 json-ld标签仍然被忽略。

    我在在线缩小器中测试了json-ld语法。它将代码(~100行)作为一行返回。

    我搜索了其他Grunt任务。看起来还有一些其他的html minifiers,但似乎没有像grunt-contrib-htmlmin那样开发和支持。我怀疑他们会有同样的问题,但如果我没有得到答复,我会考虑测试其他问题。

    我是Grunt的新手。

    任何人都可以建议可以处理此问题的Grunt任务吗?

    或提供有关如何执行此操作的指导?

    感谢您提前获得任何帮助! :)

1 个答案:

答案 0 :(得分:2)

我赢得了这个(yay)的杂草奖,但更好的是:我有一个答案!

Grunt-contrib-htmlmin 有一个名为processScripts的选项,用于指定要处理的脚本类型。通过指定application/ld+json,您将强制它处理Json-LD。

这对大多数人来说可能是显而易见的,现在对我来说很明显,但是当我第一次问这个时,我并没有这样做。这表明,一旦你理解了某些东西,你就会在提出解决方案时得到更好的解决 - 而且我的陡峭&#34;编码&#34;学习曲线终于得到了回报!