site - Jekyll mostrar mensajes por categoría
jekyll serve (6)
¡Lo tengo! Se necesitaba un bucle de publicaciones intermedias antes de enumerar las publicaciones individuales
<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>
rascando mi cabeza sobre esto - ayuda muy apreciada.
Quiero mostrar una lista de todas mis publicaciones de Jekyll, organizadas por categoría. Sé que la Línea 3 no es correcta, pero no puedo entender qué debería ser. ¿Algunas ideas? ¡Gracias!
{% for category in site.categories %}
<h3>{{ category | first }}</h3>
{% for post in page.categories.category %}
{{ post.title }}<br>
{% endfor %}
{% endfor %}
Ahora hay un plugin oficial disponible para esto. jekyll-archives
.
Para hacer uso de ella,
Agregue jekyll-archives
a su archivo Gemfile
y _config.yml
.
agregue una configuración similar a la siguiente según su necesidad.
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/''
Los layouts
pueden hacer uso de los siguientes atributos de página en función del archive type
.
- page.type - (Cualquiera de los siguientes.
year
,month
,day
,tag
,category
) - page.title - (Solo disponible para la etiqueta de tipo y categoría. De lo contrario, no)
- page.date - (Dependiendo de
page.type
debe analizar el campo de fecha y mes) - page.posts - (Lista de publicaciones para este archivo)
Aquí hay un ejemplo de diseño de archivo basado en años.
<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>
Aquí hay una respuesta que usa ordenación (¡útil!):
{% comment %}
#
# Change date order by adding ''| reversed''
# To sort by title or other variables use {% assign sorted_posts = category[1] | sort: ''title'' %}
#
{% endcomment %}
{% assign sorted_cats = site.categories | sort %}
{% for category in sorted_cats %}
{% assign sorted_posts = category[1] | reversed %}
<h2 id="{{category[0] | uri_escape | downcase }}">{{category[0] | capitalize}}</H2>
<ul>
{% for post in sorted_posts %}
<li><a href="{{ site.url }}{{ site.baseurl }}{{ post.url }}">{{ post.title }}</a></li>
{% endfor %}
</ul>
{% endfor %}
Esto no es mío, se toma de here .
No puedo recordar la sintaxis exacta de la mano, pero algo como el siguiente código debería recuperar los nombres de las categorías para permitirle recuperar publicaciones para cada categoría ...
{% for category in site.categories %}
{% assign cat_name = category[0] %}
{% for post in site.categories.cat_name %}
...
{% endfor%}
{% endfor %}
Para todos los gustos, si alguien solo quiere enumerar las publicaciones en una categoría, esto funciona (difiere del ejemplo anterior, ya que la categoría devuelve una lista de publicaciones ...
<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>
<h5>Categories</h5>
{% for category in site.categories %}
{% assign cat = category[0] %}
<h6><a href="#">{{ cat }}</a></h6>
{% for post in site.categories[cat] %}
<a href="{{ post.url }}">{{ post.title }}</a> <small>{{ post.date }}</small>
{% endfor %}
{% endfor %}