-
Notifications
You must be signed in to change notification settings - Fork 0
Feature Activation
A Ativação de Funcionalidades é o mecanismo central do Sistema Modular do Contramaré que permite ligar e desligar funcionalidades completas do site com apenas uma linha de código.
É um sistema de chaves booleanas que controla quais recursos estão disponíveis no site:
- Define quais páginas são acessíveis
- Determina quais links aparecem no menu
- Controla quais posts são exibidos em listas e individualmente
- Mantém a experiência do usuário consistente
As funcionalidades são controladas no arquivo _config.yml através da chave features:
# ========================================
# CONTROLE DE FUNCIONALIDADES
# ========================================
features:
# Página de frases inspiradoras
quotes_page: false
# Página principal do blog
blog_page: true
# Página de contato
contact_page: true
# Página sobre/manifesto
about_page: truePara ativar uma funcionalidade, defina seu valor como true:
features:
quotes_page: true # ← Mudança de false para true- Links no menu relacionados são exibidos automaticamente
- Páginas associadas se tornam acessíveis
- Posts da categoria correspondente aparecem em listas
- Posts individuais das categorias associadas ficam acessíveis
Para desativar uma funcionalidade, defina seu valor como false:
features:
quotes_page: false # ← Mudança de true para false- Links no menu relacionados são automaticamente removidos
- Páginas associadas mostram mensagem de "em desenvolvimento"
- Posts da categoria correspondente são ocultados das listas
- Posts individuais das categorias associadas mostram mensagem de indisponibilidade
-
Reinicie o Jekyll após alterar o arquivo
_config.yml:
# O Jekyll não monitora mudanças no _config.yml automaticamente
bundle exec jekyll clean
bundle exec jekyll serve- Verifique o mapeamento de categorias para garantir que os posts sejam filtrados corretamente:
category_feature_map:
"Frases": "quotes_page" # Deve corresponder a uma feature ativa- Teste as páginas protegidas para garantir que mostrem a mensagem de indisponibilidade corretamente
Controla o sistema de frases inspiradoras.
-
Quando ATIVA:
- Menu "FRASES" visível
- Página
/quotes/acessível - Posts da categoria "Frases" visíveis em listas
- Posts individuais de frases acessíveis
-
Quando INATIVA:
- Menu "FRASES" oculto
- Página
/quotes/mostra "em desenvolvimento" - Posts de frases ocultos em todas as listas
- Posts individuais de frases mostram "indisponível"
Controla o sistema principal de artigos.
-
Quando ATIVA:
- Menu "BLOG" visível
- Página
/blog/acessível - Posts das categorias associadas visíveis em listas
- Posts individuais acessíveis
-
Quando INATIVA:
- Menu "BLOG" oculto
- Página
/blog/mostra "em desenvolvimento" - Posts das categorias associadas ocultos
- Posts individuais mostram "indisponível"
Controla o formulário de contato.
-
Quando ATIVA:
- Menu "CONTATO" visível
- Página
/contact/acessível
-
Quando INATIVA:
- Menu "CONTATO" oculto
- Página
/contact/mostra "em desenvolvimento"
Controla a página sobre/manifesto.
-
Quando ATIVA:
- Menu "SOBRE" visível
- Página
/about/acessível
-
Quando INATIVA:
- Menu "SOBRE" oculto
- Página
/about/mostra "em desenvolvimento"
Libere funcionalidades gradualmente:
# Fase 1: Site minimalista
features:
quotes_page: false
blog_page: true
contact_page: false
about_page: true
# Fase 2: Adicionando contato
features:
quotes_page: false
blog_page: true
contact_page: true # ← Novidade!
about_page: true
# Fase 3: Site completo
features:
quotes_page: true # ← Novidade!
blog_page: true
contact_page: true
about_page: trueDesative temporariamente uma seção problemática:
# Durante manutenção do formulário de contato
features:
quotes_page: true
blog_page: true
contact_page: false # ← Temporariamente desativado
about_page: trueCompare diferentes configurações do site:
# Versão A: Blog como destaque
features:
quotes_page: false
blog_page: true
contact_page: true
about_page: true
# Versão B: Frases como destaque
features:
quotes_page: true
blog_page: false
contact_page: true
about_page: truePara adicionar uma nova funcionalidade controlável:
features:
quotes_page: false
blog_page: true
contact_page: true
about_page: true
newsletter_page: false # ← Nova funcionalidadecategory_feature_map:
"Frases": "quotes_page"
"Blog": "blog_page"
"Newsletter": "newsletter_page" # ← Nova categoria mapeada<!-- pages/newsletter.html -->
{% if site.features.newsletter_page %}
<h1>Newsletter</h1>
<!-- Conteúdo da newsletter -->
{% else %}
{% include content_unavailable.html %}
{% endif %}<!-- _includes/header.html -->
{% if site.features.newsletter_page %}
<li class="nav-item">
<a class="nav-link" href="/newsletter/">NEWSLETTER</a>
</li>
{% endif %}Para checar quais funcionalidades estão ativas:
<!-- Debug de funcionalidades -->
<div style="background: #f0f0f0; padding: 10px; margin: 10px 0;">
<h4>Estado das Funcionalidades:</h4>
<ul>
<li>quotes_page: {{ site.features.quotes_page }}</li>
<li>blog_page: {{ site.features.blog_page }}</li>
<li>contact_page: {{ site.features.contact_page }}</li>
<li>about_page: {{ site.features.about_page }}</li>
</ul>
</div>- Entenda o mapeamento de categorias
- Aprenda sobre a filtragem de posts
- Explore casos de uso avançados
Custom footer