目录:

路径名不支持中文

解决方法: jekyll中文文件名本地预览问题

  • 引用: (如果使用引用格式则代码可读性过低, 故如此.)

    修改安装目录\Ruby22-x64\lib\ruby\2.2.0\webrick\httpservlet下的filehandler.rb文件,建议先备份。

    找到下列两处,添加一句( + 的一行为添加部分)

    path = req.path_info.dup.force_encoding(Encoding.find("filesystem"))
    + path.force_encoding("UTF-8") # 加入编码
    if trailing_pathsep?(req.path_info)
    
    break if base == "/"
    + base.force_encoding("UTF-8") # 加入編碼
    break unless File.directory?(File.expand_path(res.filename + base))
    

    然后重启服务器即可jekyll clean && jekyll s

经测试, 我这里(Windows的Linux子系统)的文件地址为 /usr/lib/ruby/2.7.0/webrick/httpservlet/filehandler.rb.

不支持数学公式

参考链接:

首先使用bundle info minima查询minima的位置。我的运行结果:

  * minima (2.5.1)
        Summary: A beautiful, minimal theme for Jekyll.
        Homepage: https://github.com/jekyll/minima
        Path: /var/lib/gems/2.7.0/gems/minima-2.5.1

然后将_includes/head.html文件复制到网页所在文件夹。

cp /var/lib/gems/2.7.0/gems/minima-2.5.1/_includes/head.html ./_includes/head.html

最后在本地的head.html中添加如下代码即可(记得加在<head></head>之间):

<!-- Enable mathjax -->
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    tex2jax: {
      skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
      inlineMath: [['$','$']]
    }
  });
</script>
<script type="text/javascript" async
  src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML">
</script>

我还在_config.yaml中增加了如下段落(未验证其作用,仅为方便读者复现本节效果):

markdown: kramdown
kramdown:
    math_engine: mathjax