【问题标题】:Add a project page to site.posts on a Jekyll blog将项目页面添加到 Jekyll 博客上的 site.posts
【发布时间】:2015-09-28 13:42:14
【问题描述】:

我有一个 Jekyll blog,其中主页是一堆指向帖子的链接,但我还想在其中包含指向项目的 gh-pages 页面的链接,并且我希望列表保持按日期排序。现在,我只是在页面顶部手动插入它。

  <ul class="posts">
    <li>
      <span class="post-date">Jul 8, 2015</span>
      <a class="post-link" href="/QuisCustodiet/">The Most Influential Works, According to TvTropes</a>
    </li>
    {% for post in site.posts %}
      <li>
        <span class="post-date">{{ post.date | date: "%b %-d, %Y" }}</span>
        <a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
      </li>
    {% endfor %}
  </ul>

这看起来不错,但是当我发布另一个帖子时,它会在一两周内中断。有没有办法创建另一个“帖子”并以保持排序的方式将其插入到 site.posts 列表中?还有其他我不知道的更好的方法吗?

【问题讨论】:

  • 想解释一下否决票?
  • 人们只会在这里投反对票 - 你很少会得到一个理由(根据我的经验,但我没有花太多时间在 SO)。更多关于主题,为什么就您的项目发表一篇简短的文章?
  • this question 会激发你的想象力吗?
  • 我想在其 gh-pages 分支中发布关于该项目的帖子,该分支与我在主博客中发布的帖子是分开的。
  • 为什么没有“活动项目”侧边栏?

标签: jekyll liquid


【解决方案1】:

如果我对您的问题的理解正确,您希望在您的帖子列表中包含一些“特殊项目帖子”,这些帖子只是指向另一个特定项目站点的链接,但有一个日期,因此可以与其他帖子一起排序。

这是我想出的:

你在 _posts/ 中创建一个空的帖子,前面的内容如下:

---
layout: post
title: "Project Example"
customlink: http://www.example.org
date:   2015-07-12 12:50:25
---

customlink 属性用于链接到您的项目页面。在您列出所有帖子的 html 中,您创建一个 if 语句来检查属性并正确处理它。比如这样:

<ul>
  {% for post in site.posts %}
    <li>
      {% if post.customlink %}
        <a href="{{ post.customlink }}">{{ post.title }}</a>
      {% else %}
        <a href="{{ post.url }}">{{ post.title }}</a>
      {% endif %}
    </li>
  {% endfor %}
</ul>

您的项目帖子被视为您的其他帖子,并按日期与它们一起排序,但其链接会将用户引导至您的项目页面。

Jekyll 仍然会为这篇文章创建 html 并像其他所有文章一样在特定路径下提供它。为了防止这种情况,您可以在帖子前面添加一个空的permalink 属性,例如permalink: "",您的帖子将位于您博客的根目录下。 Jekyll 仍然会在 _site 文件夹中为这篇文章创建一个“.html”文件。

您需要手动为每个外部项目创建帖子,但我不知道更好的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-08
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多