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
并因此引发验证错误,因为它期望所有 <script>
标记上都有几个附加属性(目前在相关标签上不存在),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 操作未能在 Github 页面上部署 Jekyll 网站