Jekyll按类别显示帖子

时间:2014-01-01 20:22:04

标签: jekyll liquid

对此嗤之以鼻 - 非常感谢。

我想显示按类别组织的所有Jekyll帖子的列表。我知道第3行不正确,但我无法弄清楚应该是什么。有任何想法吗?谢谢!

{% for category in site.categories %}
    <h3>{{ category | first }}</h3>
    {% for post in page.categories.category %}
      {{ post.title }}<br>
    {% endfor %}            
{% endfor %}

6 个答案:

答案 0 :(得分:66)

知道了!在列出个别帖子之前需要一个中间帖子循环

<ul>
{% for category in site.categories %}
  <li><a name="{{ category | first }}">{{ category | first }}</a>
    <ul>
    {% for post in category.last %}
      <li><a href="{{ post.url }}">{{ post.title }}</a></li>
    {% endfor %}
    </ul>
  </li>
{% endfor %}
</ul>

答案 1 :(得分:19)

fyi,如果有人想只列出一个类别的帖子,这是有效的(与上面的例子不同,因为该类别返回一个帖子列表......

<p>Posts in category "basic" are:</p>

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

答案 2 :(得分:1)

现在有一个官方插件可用于此。 jekyll-archives

为了使用它,

jekyll-archives添加到您的Gemfile_config.yml文件中。

根据需要添加类似于以下内容的配置。

jekyll-archives:
  enabled: all
  layouts:
    year: archive/year
    month: archive/month
    day: archive/day
    tag: archive/tag
    category: archive/category
  permalinks:
    year: '/:year/'
    month: '/:year/:month/'
    day: '/:year/:month/:day/'
    tag: '/tags/:name/'
    category: '/category/:name/'

layouts可以使用以下页面属性,具体取决于archive type

  • page.type - (以下任何一个。yearmonthdaytagcategory
  • page.title - (仅适用于类型标记和类别。Nil否则。)
  • page.date - (根据page.type,您应该解析日期和月份字段)
  • page.posts - (此档案的帖子列表)

以下是基于年份的存档示例布局

<h1>Archive of posts from {{ page.date | date: "%Y" }}</h1>
<ul class="posts">
{% for post in page.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>

答案 3 :(得分:1)

gnatmake --enable-stdcall-fixup main.adb
gnatmake: invalid switch: --enable-stdcall-fixup

答案 4 :(得分:0)

我无法回想起确切的语法,但以下代码应该检索类别名称以允许您检索每个类别的帖子...

att

答案 5 :(得分:0)

这是一个使用排序的答案(有用!):

if (trigger[0] == true)
        {
            //Create a project
            Microsoft.Office.Interop.PowerPoint.Application app = new Microsoft.Office.Interop.PowerPoint.Application();
            app.Visible = Microsoft.Office.Core.MsoTriState.msoTrue;

            //Create a presentation in thie project
            Microsoft.Office.Interop.PowerPoint.Presentations pre = app.Presentations;
            Microsoft.Office.Interop.PowerPoint.Presentation pr01 = pre.Add(Microsoft.Office.Core.MsoTriState.msoTrue);

            Microsoft.Office.Interop.PowerPoint.Presentation pr02 = app.ActivePresentation;

            //Create a slide in the project
            Microsoft.Office.Interop.PowerPoint.Slides sl = pr02.Slides;
            Microsoft.Office.Interop.PowerPoint.CustomLayout Cus01 = pr01.SlideMaster.CustomLayouts[Microsoft.Office.Interop.PowerPoint.PpSlideLayout.ppLayoutPictureWithCaption];
            Microsoft.Office.Interop.PowerPoint.Slide sl01 = pr02.Slides.AddSlide(1, Cus01);


            //nsert Picture
            Microsoft.Office.Interop.PowerPoint.Shape shape = sl01.Shapes[2];
            sl01.Shapes.AddPicture("D:\\AliceProject\\sd.jpg", Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoTriState.msoFalse, 1, 1, 3, 3);

        }

这不是我的,它取自here