feat(archive): allow multiple sources in Archive (#249)

main
Óscar 1 year ago committed by GitHub
parent e2baa36ddc
commit b518e13c5d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -235,16 +235,27 @@ Quan un usuari faci clic a la imatge o al títol d'un projecte, serà portat a l
La pàgina del projecte individual es renderitza amb la plantilla predeterminada, tret que estableixis una altra, per exemple, `template = "info-page.html"`. La pàgina del projecte individual es renderitza amb la plantilla predeterminada, tret que estableixis una altra, per exemple, `template = "info-page.html"`.
### Archivo ### Arxiu
Agregar una página de archivo es similar a agregar una página de proyectos. Puedes crear un directorio en `content/archive/`. Allí, puedes crear un archivo `_index.md` con el siguiente bloque de metadatos: Afegir una pàgina d'arxiu és similar a afegir una pàgina de projectes. Pots crear un directori a `content/archive/`. Allà, pots crear un fitxer `_index.md` amb el següent encapçalament:
```toml ```toml
title = "Archivo" title = "Arxiu"
template = "archive.html" template = "archive.html"
``` ```
De forma predeterminada, el archivo listará las publicaciones ubicadas en `/blog/`. Si deseas cambiar esto, puedes establecer `section_path = "/otra-ruta/"` en la sección `[extra]` del archivo `_index.md`. Asegúrate de incluir la barra inclinada al final. Per defecte, l'arxiu llistarà les publicacions situades a `blog/`. Per personalitzar això, pots modificar la secció `[extra]` de l'arxiu `_index.md`:
- **Per a un sol directori**: Estableix `section_path = "directori/"` per llistar publicacions d'un directori específic. Assegura't d'incloure la barra inclinada al final.
- **Per a múltiples directoris**: Si vols agregar publicacions de diversos directoris, especifica la llista a `section_path`. Per exemple:
```toml
[extra]
section_path = ["blog/", "notes/", "camí-tres/"]
```
**Nota**: la pàgina d'arxiu només llistarà publicacions que tinguin una data al seu encapçalament.
### Etiquetes ### Etiquetes

@ -235,14 +235,25 @@ La página del proyecto individual se renderiza con la plantilla predeterminada,
### Archivo ### Archivo
Agregar una página de archivo es similar a agregar una página de proyectos. Puedes crear un directorio en `content/archive/`. Allí, puedes crear un archivo `_index.md` con el siguiente bloque de metadatos: Agregar una página de archivo es similar a agregar una página de proyectos. Puedes crear un directorio en `content/archive/`. Allí, puedes crear un archivo `_index.md` con el siguiente encabezado:
```toml ```toml
title = "Archivo" title = "Archivo"
template = "archive.html" template = "archive.html"
``` ```
De forma predeterminada, el archivo listará las publicaciones ubicadas en `/blog/`. Si deseas cambiar esto, puedes establecer `section_path = "/otra-ruta/"` en la sección `[extra]` del archivo `_index.md`. Asegúrate de incluir la barra inclinada al final. Por defecto, el archivo mostrará las publicaciones ubicadas en `blog/`. Para personalizar esto, puedes modificar la sección `[extra]` del archivo `_index.md`:
- **Para una sola ruta**: Establece `section_path = "tu-ruta/"` para listar publicaciones de un directorio específico. Asegúrate de incluir la barra inclinada al final.
- **Para múltiples rutas**: Si deseas agregar publicaciones de varios directorios, `section_path` puede especificarse como una lista de rutas. Por ejemplo:
```toml
[extra]
section_path = ["blog/", "notas/", "ruta-tres/"]
```
**Nota**: la página de Archivo sólo listará publicaciones con fecha.
### Etiquetas ### Etiquetas

@ -244,7 +244,18 @@ title = "Archive"
template = "archive.html" template = "archive.html"
``` ```
By default, the archive will list posts located in `/blog/`. If you'd like to change this, you can set `section_path = "/another-path/"` in the `[extra]` section of the `_index.md` file. Make sure to include the trailing slash. By default, the archive will list posts located in `blog/`. To customise this, you can modify the `[extra]` section of the `_index.md` file:
- **For a single source path**: Set `section_path = "your-path/"` to list posts from a specific directory. Make sure to include the trailing slash.
- **For multiple source paths**: If you want to aggregate posts from various directories, `section_path` can be specified as a list of paths. For example:
```toml
[extra]
section_path = ["blog/", "notes/", "path-three/"]
```
**Note**: the Archive page will only list posts that have a date in their front matter.
### Tags ### Tags

@ -9,16 +9,24 @@
<div class="archive"> <div class="archive">
<ul class="list-with-title"> <ul class="list-with-title">
{%- set section_path = section.extra.section_path | default(value="blog/") -%} {%- set source_paths = section.extra.section_path | default(value="blog/") -%}
{%- if lang == config.default_language %} {%- if source_paths is iterable -%}
{%- set section_item = get_section(path=section_path ~ "_index.md") %} {%- set paths = source_paths -%}
{%- else %} {%- else -%}
{%- set section_item = get_section(path=section_path ~ "_index." ~ lang ~ ".md") %} {%- set paths = [source_paths] -%}
{%- endif %} {%- endif %}
{%- set all_posts = [] -%}
{%- for path in paths -%}
{%- if lang == config.default_language %}
{%- set section_item = get_section(path=path ~ "_index.md") -%}
{%- else %}
{%- set section_item = get_section(path=path ~ "_index." ~ lang ~ ".md") -%}
{%- endif %}
{%- set_global all_posts = all_posts | concat(with=section_item.pages) -%}
{%- endfor %}
{% for year, posts in {% for year, posts in all_posts | group_by(attribute="year") %}
section_item.pages | group_by(attribute="year") %} {% if posts | length > 0 {% if posts | length > 0 %}
%}
<li> <li>
<h2 class="listing-title">{{ year }}</h2> <h2 class="listing-title">{{ year }}</h2>
<ul class="listing"> <ul class="listing">
@ -29,13 +37,13 @@
{{ post.date | date(format="%d %b", locale=date_locale) }} {{ post.date | date(format="%d %b", locale=date_locale) }}
</span> </span>
</div> </div>
<a href="{{ post.permalink }}" title="{{ post.title }}" <a href="{{ post.permalink }}" title="{{ post.title }}">{{ post.title }}</a>
>{{ post.title }}</a>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
{% endif %} {% endfor %}
</li> </li>
{% endif %}
{% endfor %}
</ul> </ul>
</div> </div>

Loading…
Cancel
Save