Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >合并 Jekyll 多种类型的页面

合并 Jekyll 多种类型的页面

作者头像
walterlv
发布于 2018-09-18 05:10:57
发布于 2018-09-18 05:10:57
74100
代码可运行
举报
运行总次数:0
代码可运行

合并 Jekyll 多种类型的页面

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

使用如下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{% 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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
为带有多种语言的 Jekyll 博客添加多语言选择
发布于 2018-03-06 06:47 更新于 2018-09-01 00:13
walterlv
2018/09/18
1.6K0
转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题
发布于 2017-10-12 16:08 更新于 2018-08-12 06:49
walterlv
2018/09/18
1.4K0
如何搭建免费博客
对于经常写博客的人,都很想拥有一个属于自己的独立博客,但一个独立的博客可能需要以下几个东西:
付威
2018/12/05
1.2K0
Understand folder and path configuration in Jekyll
在使用 Jekyll 构建静态网站时,了解如何配置文件夹和路径对于网站的组织和内容管理至关重要。Jekyll 是一个功能强大的静态网站生成器,具有独特的文件夹结构和处理规则。本文将介绍 Jekyll 如何处理不同的文件夹,以及如何通过配置使网站更灵活。
alanzeng
2025/01/14
710
Jekyll 优化合集
  Jekyll 是一款采用 Ruby 语言编写的、非常方便简单又功能强大的静态站点生成器,适合于搭建个人博客、静态网站等。我们知道,Github Page 默认支持的也是 Jekyll,而非 Hexo、Hugo等静态站点生成器。Hexo 是用 NodeJS 语言编写的,Hugo 是用 Go 语言编写的,它们三者背后其实都有非常丰富的插件来增强它们自身,从而为用户提供一个可插拔式的个人定制功能。由于本站目前是采用 Jekyll 来搭建的,所以为了提供给读者更加高效的阅读条件,笔者在廖柯杰大佬开发的 H2O 主题的基础上做了一些功能上的增加和优化,接下来就来详细介绍一下。
zhonger
2022/10/28
2.1K0
如何给 GitHub Pages 配置多个域名?
因为以前对域名进行了一些调整,所以实际上我的博客在历年来经历了两个域名 blog.walterlv.com(新)和 walterlv.com(旧)。然而 GitHub Pages 只支持一个自定义域名,所以为了兼容旧域名的访问,如何可以让多个域名对应同一个 GitHub Pages 呢?
walterlv
2023/10/22
6160
如何给 GitHub Pages 配置多个域名?
为 Web 页面添加 iPhone 固定标签页的图标
2017-10-27 16:16
walterlv
2018/09/18
1.1K0
为 Web 页面添加 iPhone 固定标签页的图标
搭建一个免费的,无限流量的Blog----github Pages和Jekyll入门
喜欢写Blog的人,会经历三个阶段。   第一阶段,刚接触Blog,觉得很新鲜,试着选择一个免费空间来写。   第二阶段,发现免费空间限制太多,就自己购买域名和空间,搭建独立博客。   第三阶段
ruanyf
2018/04/13
1.7K0
搭建一个免费的,无限流量的Blog----github Pages和Jekyll入门
图片点击放大,你的网页也能做到!
发布于 2018-07-28 05:27 更新于 2018-08-12 06:52
walterlv
2018/09/18
4.1K0
图片点击放大,你的网页也能做到!
基于 task 为 VSCode 添加自定义的外部命令
2018-08-12 12:47
walterlv
2018/09/18
2.6K0
基于 task 为 VSCode 添加自定义的外部命令
如何快速给自己构建一个温馨的"家"——用Jekyll搭建静态博客
我相信,每个程序员都有一个愿望,都想有一个属于自己的"家"——属于自己的博客,专属的网站。在自己的“家”中,可以和志同道合的兄弟一起分享和讨论任何技术,谈天说地。更重要的是可以当做自己的技术积累,提升自己实力。那么接下来就来说说我博客搭建过程。
一缕殇流化隐半边冰霜
2018/08/30
1.3K0
如何快速给自己构建一个温馨的"家"——用Jekyll搭建静态博客
开发工具总结(14)之Jekyll制作文档并发布到GitHub
版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/d5f9763c11fc
AWeiLoveAndroid
2019/07/08
1.1K0
使用Jekyll显示Jupyter笔记本
Jekyll是一个用Ruby编写的静态站点生成器,支持博客并与Github页面整合。因为Github只负责托管,这种设置使数据分析共享和可视化变得简单。Jekyll提供了各种主题和插件,因此用户无需担心Web开发。
eru
2018/09/13
3.9K0
使用Jekyll显示Jupyter笔记本
如何为你的 Windows 应用程序关联一种或多种文件类型
对于 Windows 桌面应用来说,让应用关联一种或多种文件类型是通过修改注册表来实现的。
walterlv
2020/02/10
2.3K0
如何将 Jekyll 部署到云开发静态网站托管
云开发静态托管是云开发提供的静态网站托管的能力,静态资源(HTML、CSS、JavaScript、字体等)的分发由腾讯云对象存储 COS 和拥有多个边缘网点的腾讯云 CDN 提供支持
腾讯云开发TCB
2020/04/13
3.7K0
将美化进行到底,把 PowerShell 做成 oh-my-zsh 的样子
发布于 2017-12-26 07:00 更新于 2018-02-19 22:53
walterlv
2018/09/18
4.5K0
将美化进行到底,把 PowerShell 做成 oh-my-zsh 的样子
利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误
发布于 2018-03-20 11:54 更新于 2018-03-20 12:35
walterlv
2018/09/18
1.6K0
利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误
.NET 中创建支持集合初始化器的类型
对象初始化器和集合初始化器只是语法糖,但是能让你的代码看起来更加清晰。至少能让对象初始化的代码和其他业务执行的代码分开,可读性会好一些。
walterlv
2020/02/10
5710
如何使用GitHub搭建自己的个人博客
大家都知道,阿粉有自己的博客,而且博客的地址,也是托管在Github上面的,而且很多的小伙伴们也想问怎么搭建这个,毕竟如果要是自己做个网站,弄个域名,再弄个服务器,这也是一笔不小的花费,但是使用GitHub来托管自己的的网站的话,这样的问题就不复存在了呀。虽然有时候这个GitHub确实访问起来是有点慢,但是不影响呀。
Java极客技术
2022/12/04
1.2K0
如何使用GitHub搭建自己的个人博客
Jekyll 文章侧边索引导航
  Jekyll 与 Hexo 不同之处有很多,其中一处是在文章页面中不支持原生 [TOC] Markdown 语法来自动生成目录。而在 Hexo 中,即使主题不支持侧边悬浮的优化目录导航,也可以通过最简单的方式在文章的开始位置生成目录。虽然这种目录永远固定在文章开始的地方,但是总算是能够通过大小标题来给读者一个大概的思路。
zhonger
2022/10/28
1.6K0
推荐阅读
相关推荐
为带有多种语言的 Jekyll 博客添加多语言选择
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验