Jekyll 编译:进程在 Github 上以退出代码 1 完成

Posted

技术标签:

【中文标题】Jekyll 编译:进程在 Github 上以退出代码 1 完成【英文标题】:Jekyll compilation: Process completed with exit code 1 on Github 【发布时间】:2021-10-14 03:08:00 【问题描述】:

我正在使用cayman theme for github 撰写可以在 Github 页面上托管的科学文章。我正在使用 mathjax 来渲染方程式。

我在cayman/_includes/head-custom.html 文件中粘贴了以下行。

<script type="text/javascript" id="MathJax-script" async
  src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js">
</script>

Mathjax 正确呈现数学方程(本地和远程),但它在 Github 上产生错误(附图片)。我无法解决这个错误,我有点担心它可能会在以后产生更大的问题。

任何猜测为什么会出现此错误以及如何修复它。

【问题讨论】:

Please do not upload images of code/errors when asking a question. 【参考方案1】:

您的 html-proofer 测试脚本实现似乎设置为检查外部 js 资源上的 CORS/SRI 并因此引发验证错误,因为它期望所有 &lt;script&gt; 标记上都有几个附加属性(目前在相关标签上不存在),crossorigin="anonymous"integrity="...insert-sha256-value-here..."

我的理解是 SRI 需要得到开发者的支持,因此 integrity 的值应该来自他们。

如果MathJax 没有提供integrity 值及其CDN 脚本代码,那么我认为您可能需要禁用检查CORS/SRI 以消除错误。

您是否有权访问包含运行html-proofer 的命令的脚本,如果可以,您能否查看它是否正在检查 SRI?可能看起来像这样:

htmlproofer --check-sri ...

根据html-proofer docs,--check-sri默认为false,所以如果设置了这个选项并且你可以禁用它,我会试一试。

【讨论】:

仅供参考,根据this SO question 有一种方法可以生成自己的integrity 值,但听起来很脆弱。如果您的脚本 src 路径包含特定版本号,则可能会出现问题。 this GitHub issue 表示,向 MathJax 添加 SRI 支持是一项开放功能请求。

以上是关于Jekyll 编译:进程在 Github 上以退出代码 1 完成的主要内容,如果未能解决你的问题,请参考以下文章

在github上搭建个人博客并在线更新

[Html]Jekyll 代码高亮的几种选择

Github 操作未能在 Github 页面上部署 Jekyll 网站

Github+Jekyll 搭建个人网站详细教程

Jekyll/Github 站点没有在 Github 上显示正确的示例博客文章

如何在 github 页面上使用 jekyll 设置集合?