对于大多数网站(尤其是博客),当文章越来越多的时候,就会有分页显示文章列表的需求。Jekyll 已经自建分页功能,你只需要根据约定放置文件即可。
分页功能只支持 HTML 文件
Jekyll 的分页功能不支持 Markdown 或 Textile 文件,而是只支持 HTML 文件。当然,这不会让你不爽。
开启分页功能
开启分页功能很简单,只需要在 _config.yml
里边加一行,并填写每页需要几行:
paginate: 5
下边是对需要带有分页页面的配置:
paginate_path: "blog/page:num"
blog/index.html
将会读取这个设置,把他传给每个分页页面,然后从第 2
页开始输出到 blog/page:num
, :num
是页码。如果有 12 篇文章并且做如下配置 paginate: 5
, Jekyll 会将前 5 篇文章写入 blog/index.html
,把接下来的 5 篇文章写入 blog/page2/index.html
,最后 2 篇写入 blog/page3/index.html
。
与 paginator
相同的属性
|
当前页码 |
|
每页文章数量 |
|
当前页的文章列表 |
|
总文章数 |
|
总页数 |
|
上一页页码 或 |
|
上一页路径 或 |
|
下一页页码 或 |
|
下一页路径 或 |
不支持对“标签”和“类别”分页
分页功能仅仅遍历文章列表并计算出结果,并未读取 YAML 头信息,现在不支持对“标签”和“类别”分页。
生成带分页功能的文章
接下来要做的事情就是展现在页面上了,下边是一个简单的例子:
---
layout: default
title: My Blog
---
<!-- 遍历分页后的文章 -->
{% for post in paginator.posts %}
<h1><a href="{{ post.url }}">{{ post.title }}</a></h1>
<p class="author">
<span class="date">{{ post.date }}</span>
</p>
<div class="content">
{{ post.content }}
</div>
{% endfor %}
<!-- 分页链接 -->
<div class="pagination">
{% if paginator.previous_page %}
<a href="/page{{ paginator.previous_page }}" class="previous">Previous</a>
{% else %}
<span class="previous">Previous</span>
{% endif %}
<span class="page_number ">Page: {{ paginator.page }} of {{ paginator.total_pages }}</span>
{% if paginator.next_page %}
<a href="/page{{ paginator.next_page }}" class="next">Next</a>
{% else %}
<span class="next ">Next</span>
{% endif %}
</div>
注意首尾页
Jekyll 没有生成文件夹 ‘page1’ ,所以上边的代码有 bug ,下边的代码解决了这个问题。
下边的 HTML 片段是第一页,他除自己外,为每个页面生成了链接。
<div id="post-pagination" class="pagination">
{% if paginator.previous_page %}
<p class="previous">
{% if paginator.previous_page == 1 %}
<a href="/">Previous</a>
{% else %}
<a href="{{ paginator.previous_page_path }}">Previous</a>
{% endif %}
</p>
{% else %}
<p class="previous disabled">
<span>Previous</span>
</p>
{% endif %}
<ul class="pages">
<li class="page">
{% if paginator.page == 1 %}
<span class="current-page">1</span>
{% else %}
<a href="/">1</a>
{% endif %}
</li>
{% for count in (2..paginator.total_pages) %}
<li class="page">
{% if count == paginator.page %}
<span class="current-page">{{ count }}</span>
{% else %}
<a href="/page{{ count }}">{{ count }}</a>
{% endif %}
</li>
{% endfor %}
</ul>
{% if paginator.next_page %}
<p class="next">
<a href="{{ paginator.next_page_path }}">Next</a>
</p>
{% else %}
<p class="next disabled">
<span>Next</span>
</p>
{% endif %}
</div>
相关推荐
Jekyll ::分页 Jekyll的默认分页生成器。 安装 将此行添加到您的应用程序的Gemfile中: gem 'jekyll-paginate' 然后执行: $ bundle 或自己安装为: $ gem install jekyll-paginate 用法 一旦您的系统上安装了gem...
`jekyll-pagination` 插件就是为了解决 Jekyll 的默认分页功能不足而设计的,提供了更强大和灵活的分页方案。 ### 1. Jekyll 的默认分页 Jekyll 内置的分页功能在 `_config.yml` 配置文件中开启,通过 `paginate` ...
分页宝石是专为Jekyll 3及更高版本制造的,完全向后兼容,并且可以替代以前内置的。 在上查看它。 在部分或通过电子邮件,您也可以与项目的。“彼此优秀” :red_heart:安装gem install jekyll-paginate-v2更新您的...
比如,你可以创建一个`_includes/head.html`文件来存放页头代码,然后在布局文件中使用`{% include head.html %}`将其引入。 对于网站的样式和脚本,你可以在`assets`目录下创建`css`和`js`子目录,将CSS样式表和...
例如,`jekyll-paginate`用于分页,`jekyll-sitemap`生成站点地图。 2. **Jekyll主题**: 主题是预先设计好的样式和布局,可快速改变站点外观。Awesome Jekyll会列举各种开源和商业主题,满足不同的设计需求。 3. **...
Jekyll的插件系统非常丰富,支持多种功能扩展,例如显示Jekyll版本信息、文章分页、生成网站地图和归档页面等。这些插件在很大程度上扩展了Jekyll的功能,使其更加灵活和强大。 Jekyll也支持数据文件的使用,用户...
title : jekyll,分页功能,附带分类分页! tags: ['jekyll','blog'] categories: ['网站','博客'] header: jekyll tagline: jekyll,分页功能,附带分类分页! date: 2016-11-02 19:20: ascription: study group: ...
例如,`jekyll-paginate`用于分页,`jekyll-sitemap`生成网站地图,`jekyll-seo-tag`优化SEO等。另外,你还可以选择Jekyll主题来自定义博客外观。 ### 10. JavaScript的应用 虽然Jekyll主要处理静态内容,但可以...
接下来,分页效果是网页设计中常见的一种交互功能,特别是在处理大量数据时,如博客列表、商品展示等。实现分页有多种方法: 1. **客户端分页**:通过JavaScript在浏览器端处理,利用AJAX异步请求获取更多数据,...
要在 Jekyll 站点中使用 `jekyll-paginate-v2`,首先需要将其添加到你的 `_config.yml` 文件的 `gems` 部分: ```yaml gems: - jekyll-paginate-v2 ``` 然后,通过配置文件设定分页参数,例如: ```yaml ...
2. **使用Jekyll插件**: 有些插件允许在Jekyll生成过程中动态插入JavaScript,如`jekyll-assets`插件,它可以管理CSS、JS资源并进行压缩。 3. **GitHub Pages限制**: 若在GitHub Pages上托管,注意其不支持自定义...
例如,你可以使用 Jekyll 的 `jekyll-paginate` 插件实现分页,或者使用 `jekyll-seo-tag` 添加 SEO 优化。此外,Jekyll-Materialize 可能已经集成了 Google Analytics 或 Disqus 评论,这些都需要在 `_config.yml` ...
如果您只想在网站上使用此主题,则只需更改Jekyll项目主题。 如果您需要其他功能, scripts/的脚本可能会为您提供帮助。 该主题可能正是您需要的,也可能是您想避免的。 因此,如果您不想要使用JSON或学习此主题...
对于标签"JavaScript",在Jekyll博客中,你可以使用JavaScript来增强动态功能。虽然Jekyll生成的是静态页面,但仍然可以在HTML文件中引入JavaScript库或脚本来实现交互效果。例如,你可以添加Google Analytics追踪...
Jekyll特有的功能: 分页(默认值:每页5个帖子) 与Jekyll 3.x和GitHub Pages完全兼容 SEO优化 支持 评论支持 使用和带编号的代码行的语法荧光笔 其它功能: 封存页面 关于页面 标签功能和标签页面 链接帖子功能...
强迫症福利,主题内置了包括solarized-light和monokai等共25套代码高亮样式,默认是solarized-light,你可以在配置文件中快速切换,也可以很方便的加入自己想要的高亮样式 rss订阅采用更好的atom格式 使用标准的sitemap...
“非纯池”是博客的一个简单,美丽且功能强大的Jekyll主题。 它基于和构建。 普尔(Boole)解释说,吉基尔已经要求一种特定的化学品已有数天了,但是每次被他拿走时,他都拒绝说它不是纯正的化学品。...
- 通过分页功能,可以自动将博客文章分组到不同的页面上,便于用户浏览和导航。 5. **RSS 支持**: - 集成了 RSS(Really Simple Syndication)订阅功能,使得用户可以通过 RSS 阅读器获取博客更新。 6. **标签...
将gem "jekyll-theme-hydeout", "~> 4.1"到您的Gemfile中,然后运行bundle install 。 如果要在Github页面上安装,则可能还必须将remote_theme: fongandrew/hydeout添加到_config.yml 。 Hydeout使用分页,因此,...
这是 Ghost 的默认主题 for Jekyll 的端口,灵感来自 。 此时您可能会问,为什么要制作一个新的 Casper 克隆? 尽管这是受到 Kasper 的启发,但还有一些附加功能使此端口更接近原始主题。 新功能:查看 ,Casper ...