前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >合并 Jekyll 多种类型的页面

合并 Jekyll 多种类型的页面

作者头像
walterlv
发布2018-09-18 13:10:57
7030
发布2018-09-18 13:10:57
举报

合并 Jekyll 多种类型的页面

发布于 2017-10-12 15:48 更新于 2018-08-12 06:49

以前胡思乱想时,有时会讲给小伙伴们听,有时会将想法在微信上发给自己,但多数时候是没有后文的,让胡思乱想烂在脑中。还好多数时候我记得,就像我亲自记得 3 岁时候的一些故事一样。

但今天大脑被一些凌乱的事情撑爆了,心情极度低落。正好近期学着写博客,于是想把一些胡思乱想的事情写在自己的站点上。

阅读本文,将学到如何用 Jekyll 做多种类型的页面,并在首页的列表中将这些不同种类的页面合并按日期排序。


制作除博客之外的新页面类型

Jekyll 不止支持博客(post)页面类型,也可以支持自定义页面类型。当然博客是它唯一的内建类型(hard-coded type)。

我希望独立于博客写一些其他的胡思乱想的随笔。为了避免影响到正常博客的列表,我决定采用自定义页面类型。

第一步:在 _config.yml 文件中添加自定义页面类型集合
代码语言:javascript
复制
collections:
  article:
    output: true

其中,article 是我为自定义类型取的名称。

第二步:添加自定义页面类型文件夹

需要在 Jekyll 项目根目录建立一个 _article 文件夹,此名称与第一步的类型名称一致,前面加下划线。

此后,在这个文件夹里放跟 _posts 文件夹中一样规则的文件用于写文章。

(可选)第三步:添加自定义页面类型默认元数据
代码语言:javascript
复制
defaults:
  - scope:
      path: "_article"
      type: "article"
    values:
      layout: "post"
      author: "walterlv 吕毅"

这里我让 article 类型使用 post 类型的页面布局。

(可选)第四步:添加自定义页面类型的页面列表

就像 posts 列表的页面一样制作一个 article 列表。

可以参考我的 posts 布局文件和 article 布局文件,两者几乎一样都是可以的,只是 article 遍历的时候使用 site.article

制作一个合并了博客和其他页面类型的页面列表

我希望在首页中混杂我的博客和胡思乱想,于是必须将两种不同类型的集合合并。

使用如下代码:

代码语言:javascript
复制
{% assign all_posts = "" | split: "" %}
{% for article in site.article %}
    {% assign all_posts = all_posts | push: article %}
{% endfor %}
{% for post in site.posts %}
    {% assign all_posts = all_posts | push: post %}
{% endfor %}
{% assign all_posts = all_posts | sort: date | reverse %}

由于 Jekyll 没有 concat 方法,所以只好一个个地将集合项添加进新集合。集合生成好后,按照日期排序。

此后,遍历以生成列表的时候使用 all_posts 集合即可。


参考资料

本文会经常更新,请阅读原文: https://walterlv.com/post/jekyll/jekyll-concat.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 (walter.lv@qq.com)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-10-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 合并 Jekyll 多种类型的页面
    • 制作除博客之外的新页面类型
      • 制作一个合并了博客和其他页面类型的页面列表
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档