【问题标题】:Jekyll compilation: Process completed with exit code 1 on GithubJekyll 编译:进程在 Github 上以退出代码 1 完成
【发布时间】: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 上产生错误(附图片)。我无法解决这个错误,我有点担心它可能会在以后产生更大的问题。

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

【问题讨论】:

标签: github jekyll github-pages mathjax


【解决方案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 支持是一项开放功能请求。
猜你喜欢
  • 2021-07-10
  • 2022-07-20
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
  • 2020-01-31
  • 1970-01-01
  • 1970-01-01
  • 2018-05-24
相关资源
最近更新 更多