Skip to content

Commit c35956e

Browse files
committed
Updated CUSTOMIZE sections about creating collections
Signed-off-by: George Araújo <george.gcac@gmail.com>
1 parent 351f663 commit c35956e

File tree

2 files changed

+124
-17
lines changed

2 files changed

+124
-17
lines changed

CUSTOMIZE.md

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -346,31 +346,40 @@ To create a new collection, follow these steps. We will create a `teaching` coll
346346
defaults:
347347
layout: post
348348
output: true
349+
permalink: /:collection/:title/
349350
projects:
350351
output: true
352+
permalink: /:collection/:title/
351353
teaching:
352354
output: true
353-
permalink: /teaching/:path/
355+
permalink: /:collection/:title/
354356
```
355357

356358
- `output: true` makes the collection items accessible as separate pages
357-
- `permalink` defines the URL path for each collection item (`:path` is replaced with the filename)
358-
- Note: You can customize the [permalink structure](https://jekyllrb.com/docs/permalinks/#collections) as needed. If not set, it uses `/COLLECTION_NAME/:name/`.
359+
- `permalink: **must be set** to avoid adding language codes to the URL path (see the comment in [\_config.yml](_config.yml)), which would break the template structure
360+
- For other permalink options, see the [Jekyll permalink documentation](https://jekyllrb.com/docs/permalinks/#collections)
359361

360-
2. **Create a folder for your collection items**
362+
2. **Create language-specific folders for your collection items**
361363

362-
Create a new folder in the root directory with an underscore prefix, matching your collection name. For a `teaching` collection, create `_teaching/`:
364+
This is a multilingual theme, so you must create language-specific folders for your collection. Create folders in the root directory with an underscore prefix and language code. For a `teaching` collection with English and Portuguese, create:
363365

364366
```text
365367
_teaching/
366-
├── course_1.md
367-
├── course_2.md
368-
└── course_3.md
368+
├── en-us/
369+
│ ├── course_1.md
370+
│ ├── course_2.md
371+
│ └── course_3.md
372+
└── pt-br/
373+
├── course_1.md
374+
├── course_2.md
375+
└── course_3.md
369376
```
370377

371-
3. **Create a landing page for your collection**
378+
> **Important:** You must create one folder for each language defined in the `languages` list in [\_config.yml](_config.yml). For example, if you have `languages: ["en-us", "pt-br", "fr-ca"]`, you must create `en-us/`, `pt-br/`, and `fr-ca/` folders.
372379

373-
Add a Markdown file in `_pages/` (e.g., `teaching.md`) that will serve as the main page for your collection. You can use [\_pages/projects.md](_pages/projects.md) or [\_pages/books.md](_pages/books.md) as a template and adapt it for your needs.
380+
3. **Create language-specific landing pages for your collection**
381+
382+
Add Markdown files in `_pages/LANG/` directories (e.g., `_pages/en-us/teaching.md` and `_pages/pt-br/teaching.md`) that will serve as the main pages for your collection in each language. You can use [\_pages/en-us/projects.md](_pages/en-us/projects.md) or [\_pages/en-us/books.md](_pages/en-us/books.md) as a template and adapt it for your needs.
374383

375384
In your landing page, access your collection using the `site.COLLECTION_NAME` variable:
376385

@@ -385,13 +394,13 @@ To create a new collection, follow these steps. We will create a `teaching` coll
385394

386395
Replace `COLLECTION_NAME` with your actual collection name (e.g., `site.teaching`).
387396

388-
4. **Add a link to your collection page**
397+
4. **Add links to your collection pages**
389398

390-
Update [\_pages/dropdown.md](_pages/dropdown.md) or the navigation configuration in [\_config.yml](_config.yml) to add a menu link to your new page.
399+
Update [\_pages/LANG/dropdown.md](_pages/en-us/dropdown.md) in each language to add menu links to your new collection page or the navigation configuration in [\_config.yml](_config.yml).
391400

392-
5. **Create collection items**
401+
5. **Create language-specific collection items**
393402

394-
Add Markdown files in your new collection folder (e.g., `_teaching/`) with appropriate frontmatter and content.
403+
Add Markdown files in each language folder of your collection (e.g., `_teaching/en-us/` and `_teaching/pt-br/`) with appropriate frontmatter and content. Make sure to create the equivalent content in all active languages.
395404

396405
For more information regarding collections, check [Jekyll official documentation](https://jekyllrb.com/docs/collections/) and [step-by=step guide](https://jekyllrb.com/docs/step-by-step/09-collections/).
397406

CUSTOMIZE.pt-br.md

Lines changed: 101 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ Note que, ao longo dos arquivos [README.md](README.pt-br.md) e [CUSTOMIZE.md](CU
3030
- [Criando novos projetos](#criando-novos-projetos)
3131
- [Adicionando algumas notícias](#adicionando-algumas-notícias)
3232
- [Adicionando Coleções](#adicionando-coleções)
33+
- [Criando uma nova coleção](#criando-uma-nova-coleção)
34+
- [Usando campos de frontmatter em sua coleção](#usando-campos-de-frontmatter-em-sua-coleção)
35+
- [Coleções com categorias e tags](#coleções-com-categorias-e-tags)
3336
- [Adicionando uma nova publicação](#adicionando-uma-nova-publicação)
3437
- [Anotação do autor](#anotação-do-autor)
3538
- [Botões (através de palavras-chave BibTeX personalizadas)](#botões-através-de-palavras-chave-bibtex-personalizadas)
@@ -301,11 +304,106 @@ Você pode adicionar notícias na página "Sobre" adicionando novos arquivos Mar
301304

302305
Este tema Jekyll implementa [coleções](https://jekyllrb.com/docs/collections/) para que você possa dividir seu trabalho em categorias. O tema já vem com três coleções padrão: `news`, `projects` e `books`. Os itens da coleção `news` são exibidos automaticamente na página inicial, enquanto os itens da coleção `projects` são exibidos em uma grade responsiva na página de projetos e os itens da coleção `books` são exibidos em sua própria página de estante de livros dentro dos submenus.
303306

304-
Você pode facilmente criar suas próprias coleções, como apps, contos, cursos ou qualquer outro trabalho criativo. Para isso, edite as coleções no arquivo [\_config.yml](_config.yml), crie uma pasta correspondente e crie uma página de destino para sua coleção, semelhante a [\_pages/LANG/projects.md](_pages/en-us/projects.md).
307+
Você pode facilmente criar suas próprias coleções para qualquer tipo de conteúdo—materiais de ensino, cursos, apps, contos ou o que se adequar às suas necessidades.
305308

306-
Se desejar criar uma coleção com suporte para categorias e tags, como os posts do blog, basta adicionar essa coleção à seção `jekyll-archives` do arquivo [\_config.yml](_config.yml). Você pode ver como isso é feito com a coleção `books`. Para mais informações sobre como personalizar a seção de arquivos ou criar sua própria página de arquivos, consulte a [documentação do jekyll-archives-v2](https://george-gca.github.io/jekyll-archives-v2/).
309+
### Criando uma nova coleção
307310

308-
Para acessar as coleções, você pode utilizar a variável `site.COLLECTION_NAME` em seus templates.
311+
Para criar uma nova coleção, siga estes passos. Vamos criar uma coleção `teaching`, mas você pode substituir `teaching` por qualquer nome que preferir:
312+
313+
1. **Adicione a coleção ao `_config.yml`**
314+
315+
Abra a seção `collections` em [\_config.yml](_config.yml) e adicione sua nova coleção:
316+
317+
```yaml
318+
collections:
319+
news:
320+
defaults:
321+
layout: post
322+
output: true
323+
permalink: /:collection/:title/
324+
projects:
325+
output: true
326+
permalink: /:collection/:title/
327+
teaching:
328+
output: true
329+
permalink: /:collection/:title/
330+
```
331+
332+
- `output: true` torna os itens da coleção acessíveis como páginas separadas
333+
- `permalink: **deve ser definido** para evitar adicionar códigos de idioma no caminho da URL (veja o comentário em [\_config.yml](_config.yml)), o que quebraria a estrutura do template
334+
- Para outras opções de permalink, veja a [documentação de permalinks do Jekyll](https://jekyllrb.com/docs/permalinks/#collections)
335+
336+
2. **Crie pastas específicas de idioma para seus itens de coleção**
337+
338+
Este é um tema multilíngue, portanto você deve criar pastas específicas de idioma para sua coleção. Crie pastas no diretório raiz com um prefixo de sublinhado e código de idioma. Para uma coleção `teaching` com inglês e português, crie:
339+
340+
```text
341+
_teaching/
342+
├── en-us/
343+
│ ├── course_1.md
344+
│ ├── course_2.md
345+
│ └── course_3.md
346+
└── pt-br/
347+
├── course_1.md
348+
├── course_2.md
349+
└── course_3.md
350+
```
351+
352+
> **Importante:** Você deve criar uma pasta para cada idioma definido na lista `languages` em [\_config.yml](_config.yml). Por exemplo, se você tiver `languages: ["en-us", "pt-br", "fr-ca"]`, deve criar as pastas `en-us/`, `pt-br/` e `fr-ca/`.
353+
354+
3. **Crie páginas de entrada específicas de idioma para sua coleção**
355+
356+
Adicione arquivos Markdown nos diretórios `_pages/LANG/` (por exemplo, `_pages/en-us/teaching.md` e `_pages/pt-br/teaching.md`) que servirão como páginas principais para sua coleção em cada idioma. Você pode usar [\_pages/en-us/projects.md](_pages/en-us/projects.md) ou [\_pages/en-us/books.md](_pages/en-us/books.md) como modelo e adaptá-lo para suas necessidades.
357+
358+
Em sua página de entrada, acesse sua coleção usando a variável `site.COLLECTION_NAME`:
359+
360+
```liquid
361+
{% assign teaching_items = site.teaching | sort: 'date' | reverse %}
362+
363+
{% for item in teaching_items %}
364+
<h3>{{ item.title }}</h3>
365+
<p>{{ item.content }}</p>
366+
{% endfor %}
367+
```
368+
369+
Substitua `COLLECTION_NAME` pelo nome real de sua coleção (por exemplo, `site.teaching`).
370+
371+
4. **Adicione links para suas páginas de coleção**
372+
373+
Atualize [\_pages/LANG/dropdown.md](_pages/en-us/dropdown.md) em cada idioma para adicionar links de menu para sua nova página de coleção ou a configuração de navegação em [\_config.yml](_config.yml).
374+
375+
5. **Crie itens de coleção específicos de idioma**
376+
377+
Adicione arquivos Markdown em cada pasta de idioma de sua coleção (por exemplo, `_teaching/en-us/` e `_teaching/pt-br/`) com frontmatter e conteúdo apropriados. Certifique-se de criar o conteúdo equivalente em todos os idiomas ativos.
378+
379+
Para mais informações sobre coleções, consulte a [documentação oficial do Jekyll](https://jekyllrb.com/docs/collections/) e o [guia passo a passo](https://jekyllrb.com/docs/step-by-step/09-collections/).
380+
381+
### Usando campos de frontmatter em sua coleção
382+
383+
Ao criar itens em sua coleção, você pode definir campos de frontmatter personalizados e usá-los em sua página de destino. Por exemplo:
384+
385+
```markdown
386+
---
387+
layout: page
388+
title: Introdução aos Métodos de Pesquisa
389+
importance: 1
390+
category: methods
391+
---
392+
393+
Descrição e conteúdo do curso aqui...
394+
```
395+
396+
Depois em seu modelo de página de destino:
397+
398+
```liquid
399+
{% if item.category == 'methods' %}
400+
<span class="badge">{{ item.category }}</span>
401+
{% endif %}
402+
```
403+
404+
### Coleções com categorias e tags
405+
406+
Se você desejar adicionar suporte a categorias e tags (como os posts de blog têm), você precisa configurar a seção `jekyll-archives` em [\_config.yml](_config.yml). Veja como isso é feito com a coleção `books` como referência. Para mais detalhes, consulte a [documentação do jekyll-archives-v2](https://george-gca.github.io/jekyll-archives-v2/).
309407

310408
## Adicionando uma nova publicação
311409

0 commit comments

Comments
 (0)