关于我
 

xjpvictor's Blog
小老鼠,上灯台,两只耳朵竖起来

Jekyll


各种折腾·bloggithubweb

本文最后编辑于超过602天以前,部分内容可能已经失效

这几天折腾了一下 Jekyll,很不紧跟潮流,我知道,但是我并没有想换博客系统,所以本来都不打算折腾的,实在是机缘巧合。

起因是去年我为了照顾孩子而辞职,开始兼职做补习老师。作为个人品牌的一部分,我做了一个讲解化学知识的小博客。这个博客需要输入很多化学式,而大部分成熟博客平台的编辑器对这个需求的支持并不是很好,所以我自己写了一个。

Photo by Patrick Fore on Unsplash

今年我去了大学做实验室技术员,有了些空闲时间,于是就想着把这个编辑器独立出来。

可是编辑器是有了,用它写出来的博文放去哪里又成了问题。于是我就想到了 GitHub pages,免费,简单,支持 Markdown,对我的编辑器来说可以直接保存 .md 文件,上传就可以了。所以才折腾一下 Jekyll。

我没有在本地搭建 Jekyll 环境,而是完全依赖 GitHub pages 的自带 Jekyll。所以开始有点不得其法,研究一下才知道怎么用。

按照我的不专业的看法,Jekyll 其实是一个 .md 到 .html 的转换器,只是在转换的时候,会使用模版,也就是 themes,同时会生成一些有关博客页面的变量可供使用。

可以在本地使用 Jekyll 生成 html 文件后上传到服务器,再用 nginx / Apache 之类的展示出来。或者也可以直接把没有转换的 .md 文件上传到 GitHub pages,使用内建的 Jekyll 进行转换再展示,等于 GitHub 把生成 html 和展示 html 两步给做完了。

Jekyll 的主题,或者说模版,是可以用远程的源的,不需要下载到自己的博客目录下,Jekyll,包括 GitHub pages 的自带 Jekyll,在生成 html 文件时,可以自动从指定的主题的仓库里加载源文件。而且如果本地有同样位置的同名文件,又会自动用本地的文件替代源文件。这点很智能。

但是要想让 Jekyll 生成网站,文件的位置就需要按照 Jekyll 的规定。比如博客文章(post)需要放在 _post 目录,而图片则要放在其他的目录,因此在 .md 文件里图片的地址也需要做相应的调整。如果把 post 放在其他目录,虽然可以让图片和 .md 文件放在一起,但是 Jekyll 会把它们归类为页面(page),而不是文章。所以博客的目录结构要自己琢磨,一旦定下来就不好再更改,会影响对图片的加载。

当然可以有更进阶的方法,比如图片地址的重定向,但是如果只是想最简单的开通 GitHub pages,上传文件,就搞定网站架设的话,就需要考虑清楚图片地址了。

所以最终我选择了用我的编辑器导出一个压缩文件,里面包含了 .md 文件和用到的图片,解压以后整个目录传到 Github pages 的 post 目录下,并改名为日期,而 .md 文件的文件名根据文章修改,作为 slug,所以 Jekyll 会生成 /post/YYYY-mm-dd/slug.html 的网页,图片也可以直接用 ./image_filename.jpg 来加载显示。唯一的不足就是这些文章会被定义为 page,而不是 post。

不过折腾完以后我还是继续用 WordPress,并不想迁移了。

本文 "Jekyll" 由 K. Huang 首先发表于 xjpvictor's Blog 并以 CC BY-NC 4.0 许可证发布 © 2022
转载注明引用来源 https://blog.xjpvictor.info/2022/10/jekyll/


推广:使用 DigitalOcean 搭建属于你自己的博客,每月低至 5 美元,全球多数据中心,稳定高速

打赏我

评论

你的邮箱地址不会被公开。必填项以 * 标出

无意义或不相关评论将被删除

允许使用以下html标签:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

你可以上传文件,粘贴代码或长文至 Drop.it.r

本博客是言论不自由博客,评论只接受询问及赞同,不同观点请出门左转微博/发表于自己的博客。谢谢合作!

评论意味着你 同意 上传部分私人数据,包括邮箱和 IP, 这些数据不会被分享给第三方,不会用于商业用途或再推广用途。

更多相似文章