tutorial secciones pestañas hacer crear como blog ruby tags tagging liquid jekyll

ruby - secciones - jekyll themes



Una manera fácil de admitir etiquetas en un blog de jekyll (6)

Estoy usando la instalación estándar de jekyll para mantener un blog, todo va bien. Excepto que me gustaría etiquetar mis publicaciones.

Puedo etiquetar una publicación usando el material principal de YAML, pero ¿cómo puedo generar páginas para cada etiqueta que pueda enumerar todas las publicaciones de una etiqueta?


Aquí hay una solución con etiquetas ordenadas alfabéticamente en una sola página .
Utiliza Liquid Only, lo que significa que funciona en GitHub Pages:

{% capture tags %} {% for tag in site.tags %} {{ tag[0] }} {% endfor %} {% endcapture %} {% assign sortedtags = tags | split:'' '' | sort %} {% for tag in sortedtags %} <h3 id="{{ tag }}">{{ tag }}</h3> <ul> {% for post in site.tags[tag] %} <li><a href="{{ post.url }}">{{ post.title }}</a></li> {% endfor %} </ul> {% endfor %}

Puedes verlo en acción here .

EDITAR:

También hay una forma de generar una página separada para cada etiqueta sin complementos (que funcionará en las páginas de GitHub) .

Tengo una explicación más detallada en mi blog:
Separar páginas por etiqueta / categoría con Jekyll (sin complementos)

Primero, necesitas un nuevo archivo de diseño:

/_layouts/tagpage.html :

--- layout: default --- <h1>{{ page.tag }}</h1> <ul> {% for post in site.tags[page.tag] %} <li> {{ post.date | date: "%B %d, %Y" }}: <a href="{{ post.url }}">{{ post.title }}</a> </li> {% endfor %} </ul>

Con este archivo de diseño, puede agregar una nueva página de etiquetas agregando un nuevo archivo con solo dos líneas de frente de YAML.

Aquí hay un ejemplo para la etiqueta jekyll :

/tags/jekyll/index.html :

--- layout: tagpage tag: jekyll ---

La única desventaja de este enfoque: cada vez que utiliza una nueva etiqueta por primera vez, debe recordar crear un nuevo archivo de dos líneas para ella.

Para generar el archivo de índice raíz (es decir, la lista de etiquetas que enlaza con /tags/jekyll/index.html etc.) , puede usar una solución similar a la que se encuentra en la parte superior de esta respuesta donde genero una sola página con alphebetically sorted etiquetas:

{% capture tags %} {% for tag in site.tags %} {{ tag[0] }} {% endfor %} {% endcapture %} {% assign sortedtags = tags | split:'' '' | sort %} {% for tag in sortedtags %} <a href="/tags/{{ tag }}/">{{ tag }}</a><br> {% endfor %}

Esto generará una lista de enlaces como este:

<ul> <li><a href="/tags/.net/">.net</a></li> <li><a href="/tags/authentication/">authentication</a></li> <li><a href="/tags/backup/">backup</a></li> </ul>

Tenga en cuenta que esta solución utiliza un espacio en blanco para dividir las etiquetas, por lo que no funciona cuando las etiquetas contienen espacios en blanco y el comentario de Yevgeniy Brikman también se aplica aquí.


Basado en la respuesta de Christian anterior hice un script bash que hace lo que describió.

https://github.com/ObjectiveTruth/objectivetruth.github.io/blob/master/rebuild_tags.sh

Asegúrese de tener la secuencia de comandos de 14 líneas vim en el directorio /non_website_resources/

Y

Haz que /_layouts/tagpage.html en la respuesta de Christian arriba, pero /_layouts/tag_pages.html a /_layouts/tag_pages.html

La estructura del archivo debería ser así:

.jekyll_website_root ├── _posts ├── _layout │ ├── tag_pages.html ├── rebuild_tags.sh

Ejecutar desde el directorio raíz ./rebuild_tags.sh

Si obtiene un error de permiso denegado, asegúrese de ejecutar chmod 777 rebuild_tags.sh

Si miras los comentarios de los scripts, es bastante simple:

  • Usa sed para encontrar todas las etiquetas en cada archivo _post en el directorio _post

  • Utiliza sed para dar masajes a los datos al formato correcto

  • Toma todas las etiquetas únicas y crea un directorio y un index.html para cada

De esta manera, si tiene alguna etiqueta nueva, simplemente ejecute la secuencia de comandos para reconstruir las páginas antes de presionar a Github.

Una buena y sencilla forma de hacer etiquetas sin plugins

EDITAR

Se eliminó la dependencia de otros archivos. Solo necesito el guion!


Echa un vistazo a los sitios que usan jekyll . Hay algunas horquillas personalizadas que han implementado la funcionalidad de etiquetado, ojalá también en la forma que desee :-)


Esta idea generará una página por categoría para usted: https://gist.github.com/524748

Utiliza un plugin Jekyll Generator, más una subclase de página.



Uso el gran plugin de etiquetado Jekyll que genera automáticamente una nube de etiquetas y páginas de etiquetas. Fácil de instalar y usar.

Aquí hay una página para la etiqueta "foto" en mi blog (en francés), y puedes ver la nube de etiquetas en la parte inferior.