Skip to content

Category Feature Mapping

Neylon Santos edited this page Jun 17, 2025 · 1 revision

🗂️ Mapeamento de Categorias

O Mapeamento de Categorias (Category Feature Mapping) é um mecanismo essencial do Sistema de Funcionalidades Modulares que conecta categorias de posts às respectivas funcionalidades controladas.

📋 O que é o Mapeamento de Categorias?

É um sistema que permite decidir quais categorias de posts serão exibidas ou ocultadas com base nas funcionalidades ativas ou inativas. Este mapeamento:

  • Conecta categorias de posts às funcionalidades correspondentes
  • Permite filtragem automática de conteúdo
  • Garante consistência na visualização do site

⚙️ Como Configurar

O mapeamento é configurado no arquivo _config.yml através da chave category_feature_map:

# ========================================
# MAPEAMENTO CATEGORIA → FUNCIONALIDADE
# ========================================

category_feature_map:
  # Categorias de conteúdo
  "Frases": "quotes_page"
  "Blog": "blog_page"
  "Reflexões": "blog_page"
  "Pensamentos": "blog_page"

🧠 Como Funciona

Cada entrada no mapeamento segue o formato:

"Nome da Categoria": "nome_da_funcionalidade"

Onde:

  • Nome da Categoria: A categoria exata como aparece nos posts
  • nome_da_funcionalidade: A funcionalidade correspondente em features

🎬 Exemplo Prático

1️⃣ Definir Funcionalidades

features:
  quotes_page: false
  blog_page: true

2️⃣ Configurar Mapeamento

category_feature_map:
  "Frases": "quotes_page"
  "Blog": "blog_page"
  "Reflexões": "blog_page"

3️⃣ Resultado

Com esta configuração:

  • ✅ Posts com categoria "Blog" e "Reflexões" serão exibidos (blog_page está ativo)
  • ❌ Posts com categoria "Frases" serão ocultados (quotes_page está inativo)

🧩 Regras de Mapeamento

O sistema segue estas regras ao processar posts:

  1. Sem categoria: Posts sem categorias são sempre exibidos
  2. Categoria não mapeada: Posts com categorias que não aparecem no mapeamento são sempre exibidos
  3. Categoria mapeada: Posts com categorias mapeadas são exibidos somente se a funcionalidade correspondente estiver ativa
  4. Múltiplas categorias: Posts com várias categorias são exibidos se pelo menos uma categoria estiver ativa ou não for mapeada

📊 Categorias para Múltiplas Funcionalidades

Uma mesma categoria pode ser usada em várias funcionalidades:

features:
  highlights_page: true
  blog_page: true

category_feature_map:
  "Destaques": "highlights_page"
  "Blog": "blog_page"
  "Reflexões": "blog_page"

🎮 Exemplos Avançados

Categorias Compartilhadas

Posts podem aparecer em múltiplas seções do site:

# Post com duas categorias
---
title: "Reflexão Importante"
categories: [Blog, Destaques]
---

Este post será exibido se qualquer uma das funcionalidades blog_page OU highlights_page estiver ativa.

Categorias para Temporadas/Eventos

features:
  summer_content: false  # Conteúdo sazonal de verão

category_feature_map:
  "Verão": "summer_content"
  "Praia": "summer_content"

🛠️ Resolução de Problemas

Problema: Posts não são filtrados corretamente

Verificações:

  1. Ortografia exata: As categorias são sensíveis a maiúsculas/minúsculas e acentos

    # Correto - exatamente como aparece no post
    "Reflexões": "blog_page"
    
    # Incorreto - não vai funcionar se o post usar "Reflexões"
    "reflexoes": "blog_page"
  2. Reinicie o Jekyll: Mudanças no _config.yml exigem reinício do servidor

    bundle exec jekyll clean
    bundle exec jekyll serve
  3. Arrays de categorias: Caso use arrays, verifique o processamento correto

    # Nos posts
    categories: [Blog, Reflexões]
    
    # OU
    categories:
      - Blog
      - Reflexões

🔍 Verificação de Categorias Ativas

Para verificar quais categorias estão ativas:

<!-- Debug de categorias ativas -->
<div style="background: #f0f0f0; padding: 10px; margin: 10px 0;">
  <h4>Categorias Ativas:</h4>
  <ul>
  {% for category in site.data.active_categories %}
    <li>{{ category }}</li>
  {% endfor %}
  </ul>
</div>

📚 Boas Práticas

  1. Use nomes descritivos para categorias e funcionalidades
  2. Seja consistente na nomenclatura das categorias
  3. Mantenha o mapeamento organizado com comentários
  4. Documente claramente novas categorias adicionadas
  5. Faça atualizações em lote para evitar inconsistências