
Tempo de leitura: 2 minutos
Obtenha uma lista de categorias baseadas em subpastas no Jekyll
Visão geral
No Jekyll, as postagens localizadas em subpastas obtêm automaticamente suas pastas pais como categorias de postagens.
Por exemplo, vamos considerar a seguinte estrutura de diretórios que será útil no restante da postagem:Por exemplo, vamos considerar a seguinte estrutura de diretórios que será útil no restante da postagem:
├── about.md
├── _config.yml
├── index.md
├── _posts
│ └── 2017-03-03-bem-vindo-ao-meu-blog.markdown
├── dicas-e-tutoriais
│ ├── index.md
│ ├── linux
│ │ ├── index.md
│ │ └── _posts
│ │ └── 2016-08-08-when-to-test-or-write-code-first-in-web-development.md
│ └── windows
│ ├── index.md
│ └── _posts
│ └── 2016-08-17-authorization-versus-authentication-in-web-apps.md
└── web
├── index.md
├── _posts
│ ├── 2016-11-10-automatically-tweet-new-blog-posts-based-in-rss.md
│ └── 2016-12-09-colors-palettes-for-web-design.md
├── seo
│ ├── index.md
│ └── _posts
│ └── 2017-01-26-essential-seo-tips-and-techniques-from-trusted-sources.md
└── servers
├── apache
│ ├── index.md
│ └── _posts
│ └── 2017-01-07-protect-web-directories-with-http-basic-authentication-in-apache-server.md
└── index.md
A postagem será atribuída automaticamente pelo Jekyll às seguintes categorias: /web/seo/_posts/2017-01-26-essential-seo-tips-and-techniques-from-trusted-sources.md["web", "seo"]
Existem outras soluções para construir uma lista de categorias, mantendo um arquivo de dados com a estrutura, a desvantagem dessa abordagem é que você sempre terá que se manter sincronizado com sua estrutura de diretórios ou eles ficarão de fora da lista de categorias.Existem outras soluções para construir uma lista de categorias, mantendo um
Desenvolver uma solução capaz de obter o caminho completo das categorias dos posts, possibilita detectar novas categorias a cada build, sem a necessidade de digitá-las manualmente.Desenvolver uma solução capaz de obter o caminho completo das categorias dos posts, possibilita detectar novas categorias a cada build, sem a necessidade de digitá-las manualmente.
Nesta solução iremos criar um include onde você pode especificar qual nível do caminho deseja, então por exemplo se quiser as categorias na primeira posição (nível 0), então você obterá .Nesta solução criaremos um[“web”, “theory”]
Mas se você quiser as subcategorias de web , você obterá .Mas se você quiser as subcategorias de[“seo”, servers]
Desta forma é muito fácil ter um layout com este snippet incluído, e gerar automaticamente a lista de subcategorias em cada página de subcategoria.Desta forma é muito fácil ter um index.md
Processo de desenvolvimento
Caso ainda não tenhamos, criamos a pasta e um arquivo.Se ainda não temos, criamos o _includes subcategories.html
Em definiremos um array líquido que conterá nossas categorias: Em _includes/subcategories.html
{% assign categories = "" | split: '/'%}
Em seguida, iteramos por todas as postagens
{% assign categories = "" | split: '/'%}
{% for page in site.pages %}
{% assign page_cats = page.dir | split:'/' %}
{% if page_cats[1] == site.docs_dir %}
{% assign category = page_cats[2] | strip %}
{% unless category == "" %}
{% unless categories contains category %}
{% assign categories = categories | push: category %}
{% endunless %}
{% endunless %}
{% endif %}
{% endfor %}
Bom acredito que com esses pequenos passos você será capaz de obter a lista das categorias de seu site ou blog com base em pastas e subpastas.
Até breve!
Publicidade
📢 Quer ficar por dentro de todas as novidades do nosso blog? Não perca os últimos artigos, dicas valiosas e informações relevantes!
Junte-se a nós nas redes sociais para receber em primeira mão:
- Artigos exclusivos;
- Dicas práticas;
- Ofertas especiais e descontos exclusivos para nossos seguidores.
Não vamos inundar sua caixa de entrada com newsletters! Simplesmente nos siga em uma de nossas redes sociais para garantir que você não perca nenhum conteúdo interessante. Estamos ansiosos para tê-lo(a) conosco! 🚀