微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Jekyll GitHub Pages 上按页面分隔帖子?

如何解决如何在 Jekyll GitHub Pages 上按页面分隔帖子?

我刚开始使用 GitHub 页面我有一个问题。

制作“类别”页面后,我想添加一些类别的帖子(不是所有帖子!)。但如果我设置为

---
title: "Project"
permalink: /project/
layout: categories
---

然后他们会显示所有帖子。但我只想显示一些帖子(我不确定,但也许是“项目”页面下的一些帖子?)。

很抱歉,即使我不知道如何问这个,但如果你得到这个,有人可以帮助我吗...?

解决方法

在您博客的前文中(三重虚线之间), 您可以设置预定义变量或创建自定义变量。

预定义变量 datecategory/categoriestags 是开箱即用的,可用于帖子的前台。

首先,对于您想要标记和分类的每篇文章,您的前台应该是这样的。

示例,

---
layout: post
title:  Building a CRUD API using Node.js
tags: [ API,Node.js,Javascript ]
categories: [Software Development,Long Posts]
---

---
layout: post
title:  My dog bruno
tags: [ Pets,Dogs,Fun ]
categories: [ Lifestyle,Short Posts ]
---

现在,创建一个 tag.html 和一个 categories.html 文件。

如果您在根目录中创建它们,您将能够访问 页面通过 your_site_url/tagsyour_site_url/categories

例如

http://localhost:4000/tags
http://localhost:4000/categories

如果您在文件夹 pages 中创建它们,则通过 url/pages/tagsurl/pages/categories

例如

http://localhost:4000/pages/tags
http://localhost:4000/pages/categories

根据https://jekyllrb.com/docs/variables/site.tags.TAG 将给出所有 带有 TAG 标签的帖子。类似地,site.categories.CATEGORY 将给出所有帖子的列表 类别 CATEGORY

它以 [tag,post] 或 [category,post] 的格式存在。如果您遍历 site.tagssite.categories 使用

   {% for tag in site.tags %}
       tag[0] -> Will be the tag value.
       tag[1] -> Will be the entire post.
   {% endfor %}

   {% for tag in site.categories %}
       tag[0] -> Will be the category value.
       tag[1] -> Will be the entire post.
   {% endfor %}

现在使用来自 https://github.com/codinfox/codinfox-lanyon/tree/dev/blog/

的这些片段

在 tags.html 中添加以下代码段

---
layout: page
title: Tags
---

<div class="tags-expo">
  
  <div class="tags-expo-list">
    {% for tag in site.tags %}
    <a href="#{{ tag[0] | slugify }}">
      <div class="tag">{{ tag[0] }}</div>  
    </a>
    {% endfor %}
  </div>
  
  <hr />

  <div class="tags-expo-section">
    {% for tag in site.tags %}
    <h2 id="{{ tag[0] | slugify }}">{{ tag[0] }}</h2>
    <ul class="tags-expo-posts">
      {% for post in tag[1] %}
      <a class="ay-list" href="{{ site.baseurl }}{{ post.url }}">
        <li>
          {{ post.title }}
          <!-- Add the below line if you want the date to be displayed -->
          <small class="post-date">{{ post.date | date_to_string }}</small> 
        </li>
      </a>
      {% endfor %}
    </ul>
    {% endfor %}
  </div>

</div>

在categories.html 中添加以下带有site.categories 而非site.tags 的片段。

---
layout: page
title: Categories
---

<div class="tags-expo">
  <div class="tags-expo-list">
    {% for tag in site.categories %}
    <a href="#{{ tag[0] | slugify }}"> <div class="tag">{{ tag[0] }}</div></a>
    {% endfor %}
  </div>
  <hr />
  <div class="tags-expo-section">
    {% for tag in site.categories %}
    <h2 id="{{ tag[0] | slugify }}">{{ tag[0] }}</h2>
    <ul class="tags-expo-posts">
      {% for post in tag[1] %}
      <a class="post-title" href="{{ site.baseurl }}{{ post.url }}">
        <li>
          {{ post.title }}
          <!-- Add the below line if you want the date to be displayed -->
          <small class="post-date">{{ post.date | date_to_string }}</small> 
        </li>
      </a>
      {% endfor %}
    </ul>
    {% endfor %}
  </div>
</div>

  • slugify 用于将字符串转换为小写 URL“slug”。

这应该为您提供两个带有标签和类别的单独页面,其中帖子根据给定的标签/类别显示。

这些片段来自 https://github.com/codinfox/codinfox-lanyon,因此您需要参考 CSS 或使用您的自定义 CSS。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。