尝试以下任一选项之前的一些注意事项
选项 0
即使使用也会增加构建时间--incremental
,实际上1
应该在大多数情况下使用Option ,但是,如果您在具有无法访问CDN的客户端的网络上进行部署,那么此选项以及占用的额外空间可能值得花费。
这两个选项都已在带有kramdown
markdown解释器的专用服务器上进行了测试,并mathjax: true
在项目_config.yml
文件中进行了设置;看到2
Soham Bhattacharyya的步骤及其序言,以及Caramdir的前两个代码块以获取有关这些位的方法。
选项0
下载并将解压缩的源复制到project-name
- 下载源码
cd ~
mkdir -p git/hub && cd git/hub
git clone --depth 1 https://github.com/mathjax/MathJax.git
- 在项目的目录中创建目录路径,然后将文件复制
MathJax/unpacked
到该路径
cd ~
mkdir -p git/lan/project-name/assets/JS_3rd_Party/MathJax
cp -r git/hub/MathJax/unpacked/* git/lan/project-name/assets/JS_3rd_Party/MathJax/
- 将源添加到
git
跟踪
cd git/lan/project-name/
git add assets/JS_3rd_Party/MathJax
git commit -m 'Added MathJax.js unpacked source to git tracking'
- 写一个包含文件
tee ./_includes/MathJax.html 1>/dev/null <<EOF
{%- if jekyll.environment == 'production' and site.mathjax == true -%}
<script type="text/javascript" src="{{'/assets/javascripts/JS_3rd_Party/latest.js?config=TeX-AMS-MML_HTMLorMML' | relative_url}}"></script>
{%- elsif jekyll.environment != 'production' and site.mathjax == true -%}
<script type="text/javascript" src="{{'/assets/javascripts/JS_3rd_Party/MathJax.js?config=TeX-AMS-MML_HTMLorMML' | relative_url}}"></script>
{%- endif -%}
EOF
私有服务器构建将使用上述LiquidMathJax.js
作为生产环境(GitHub)latest.js
使用的地方if
... elsif
...endif
语句。
- 撰写文章进行测试
tee ./_posts/$(date +'%Y-%d-%m')-math-tests.markdown 1>/dev/null <<EOF
---
layout: post
title: "Math Tests"
date: $(date +'%Y-%d-%m %H:%M:%S %z')
categories: math
---
{%- include MathJax.html -%}
<span>
for $x,y,z \in \{1, 2,\dots 9\}$
</span>
<span>
$$
\sum_{i=1}^n X_n
$$
</span>
EOF
我没有尝试过<span>
s,因为cboettig的建议似乎完全可以解决问题。此外,span
s中多余的换行符是没有错的,没有它们,渲染输出仍然存在问题。
- 将这些最新文件添加到
git
跟踪
git add _posts/$(date +'%Y-%d-')math-tests.markdown
git add _includes/MathJax.html
- 在本地构建,或在远程服务器上推送并构建
bundle exec jekyll build --destination /tmp/www/project-name --config _config.yml --incremental
选项 1
只是复制latest.js
使用CDN(内容交付网络)的
看到 Option 0
步骤1.
让第三方JavaScript的目录路径和复制MathJax/unpacked/latest.js
有
cd ~
mkdir -p git/lan/project-name/assets/JS_3rd_Party/MathJax
cp git/hub/MathJax/unpacked/latest.js git/lan/project-name/assets/JS_3rd_Party/MathJax/
- 写一个包含文件
cd git/lan/project-name
tee ./_includes/MathJax.html 1>/dev/null <<EOF
<script type="text/javascript" src="{{'/assets/javascripts/JS_3rd_Party/latest.js?config=TeX-AMS-MML_HTMLorMML' | relative_url}}"></script>
EOF
看到 Option 0
步骤5.
将这三个文件添加到git
跟踪中
git add _includes/MathJax.html
git add _posts/$(date +'%Y-%d-')math-tests.markdown
git add assets/JS_3rd_Party/MathJax
git commit -m 'Added `MathJax.html`, `latest.js`, and a test post to git tracking'
- 看到
Option 0
7.
本地构建步骤
对于任何一个选项
如果部署在专用服务器上,则可能还需要定义 baseurl
在项目的_config.yml
文件中,尤其是模拟username.tld/project-name
GitHub在私有服务器上使用的URL方案时。
如果同时部署到私有服务器和GitHub,最好在构建问题时使用单独的配置文件 --config _config.yml,_config_baseurl.yml
,例如...
tee ./_config_baseurl.yml 1>/dev/null <<EOF
baseurl: "project-name"
EOF
bundle exec jekyll build --destination /tmp/www/project-name --config _config.yml,_config_baseurl.yml --incremental
希望这有助于通过包含项加载资产。