什么是FastPages

FASTAI出品的一个易用的博客框架,尤其突出的特性是对JupyterNoteBook的支持。

如何安装FastPages

非常简单。

(1)通过这个链接生成一份fork;

(2)GitHub会在约30s后为你的fork开一个Pull Request;

(3)进入Pull Request,按要求首先创建一对 RSA 密钥对。你可以在本地用ssh-key-gen命令创建;

(4)配置RSA密钥对。注意private key命名必须是SSH_DEPLOY_KEY,不然后边部署时会报错;

(5)Merge这个Pull Request,30s后就可以见到你的博客了;

(5)如果Merge过程中出现错误,可以到Actions页面里边点击重试.

如何配置FastPages

FastPages安装完成后,初始页面看起来是这个样子的:

8217404509.png
8217404509.png
修改① - 在_config.yml中修改title字段

修改② - 在_pages中修改about.md

修改③ - 在根目录下修改index.html

修改④ - 在_config.yml中修改description字段

修改⑤ - 在_config.yml中修改social_links字段

问题

(1)如果你遇到了类似这样的错误--

jekyll_1     |   Liquid Exception: Permission denied @ rb_sysopen - /data/.tweet-cache/ee341900d3bc668607abd8cba365fd1b.cache in /data/_posts/2020-01-14-test-markdown-post.md
jekyll_1     | /usr/local/bundle/ruby/2.6.0/gems/jekyll-twitter-plugin-2.1.0/lib/jekyll-twitter-plugin.rb:41:in `initialize': Permission denied @ rb_sysopen - /data/.tweet-cache/ee341900d3bc668607abd8cba365fd1b.cache (Errno::EACCES)

请在目录下执行以下命令:

mkdir .jekyll-cache _site .tweet-cache && touch .jekyll-metadata

如果仍有问题,则在docker-compose.yml中,jekyll -> command节点下,加入以下语句:

chmod 777 * .tweet-cache

(2) 如果你发现笔记本中粘贴的图片无法展示 -- 请升级到最新版本的fastpages。

(3) 如果你发现在粘贴图片后CI状态变为Fail --

请按照代码方式更新你的nb2post.py文件。

(4) 如何用Jupyter Lab快速打开目录(windows)

Jupyter Lab默认打开的是用户目录,如何实现快速打开任意路径下的fastpages文件呢?建符号链接 --

  • 复制fastpages的_notebooks路径 {dir}

  • 用户目录下打开文件资源管理器,ctrl+L,输入cmd打开命令提示符

  • 输入mklink /J notebook {dir}

  • jupyter lab启动后直接打开notebook文件夹即可

(5) Jekyll build very slow - Jekyll Rendering Liquid非常缓慢

如果你在文章中包含了大量的base64编码图片,会造成Jekyll Rendering特别慢(超过1h)

解决方案 :预处理的时候将base64编码保存为图片,再链接到文章中即可。参考代码方式更新你的nb2post.py文件。

总结

FastPages博客的配置和更新方式都和维护一般Git项目类似,对NoteBook的支持应该会催生一批数据科学家用户。

PS:这篇文章同步发表于Gridea