Prazos e vencimentos
Registrar prazos como atributos, calcular dias restantes e destacar automaticamente o que está atrasado.
Prazos e vencimentos🔗
Problema. Saber, sem procurar, o que vence esta semana e o que já passou do prazo.
Solução. Atributo prazo em ISO, fórmula de dias restantes e estilos condicionais.
Antes de começar
- Saber criar atributos
- Saber criar estilos condicionais
O que você vai aprender
- Registrar prazos num formato que ordena e parseia sem ambiguidade
- Calcular dias restantes por fórmula
- Fazer o mapa se colorir sozinho conforme o prazo se aproxima
Passos🔗
-
Registre a chave
prazoem Gerenciar atributos do mapa e restrinja o formato mentalmente aAAAA-MM-DD. Esse formato ordena corretamente como texto e é parseável sem ambiguidade. -
Preencha
prazonas tarefas que têm data. -
Crie o atributo
diascom a fórmula:=if (!node['prazo']) return '' def p = Date.parse('yyyy-MM-dd', node['prazo']) def d = (p - new Date()) as int d < 0 ? "atrasado ${-d}d" : (d == 0 ? 'hoje' : "faltam ${d}d") -
Crie um atributo auxiliar
situacao, mais fácil de usar em condições:=if (!node['prazo']) return 'sem prazo' def d = ((Date.parse('yyyy-MM-dd', node['prazo']) - new Date()) as int) d < 0 ? 'atrasado' : (d <= 7 ? 'esta semana' : 'futuro')
Estilos condicionais🔗
Em Formatar → Gerenciar estilos → Estilos condicionais do mapa:
| Condição | Estilo |
|---|---|
situacao = atrasado | Atrasado (fundo vermelho claro) |
situacao = esta semana | Urgente (fundo amarelo) |
Nó tem button_ok | Concluído (texto cinza, riscado) |
A ordem importa: ponha Concluído acima dos outros dois, para que uma tarefa feita não apareça como atrasada.
Filtros salvos🔗
| Nome | Condição |
|---|---|
Atrasados | situacao é igual a atrasado E não tem button_ok |
Esta semana | situacao é igual a esta semana E não tem button_ok |
Sem prazo | prazo não existe |
Salve os três; eles ficam no .mm e reaparecem na barra de filtro.
Limitação a conhecer🔗
Fórmulas que dependem de new Date() não são recalculadas sozinhas ao virar o dia. Ao abrir o mapa pela manhã, os valores podem estar defasados.
Solução: Ferramentas → Atualizar fórmulas ao começar o dia. Ou um script no menu que faça isso com um atalho.
Por que não usar lembretes🔗
O lembrete do Freeplane só dispara com o mapa aberto. Não há serviço de fundo nem integração com calendário.
O atributo prazo não avisa, mas responde à pergunta quando você faz — e continua consultável com grep mesmo com o mapa fechado:
grep -o 'NAME="prazo" VALUE="[^"]*"' mapa.mm | sort
Para compromissos que realmente importam, o calendário do sistema é a ferramenta; o mapa é onde o trabalho vive.
Erros comuns
- Escrever a data em
DD/MM/AAAA: não ordena como texto e o parse falha - Confiar na cor sem abrir o mapa — o cálculo só roda quando o mapa é aberto
- Criar estilos condicionais sobrepostos sem cuidar da ordem das regras
- Encher o mapa de prazos que ninguém revisa, treinando você a ignorar o vermelho
Você aprendeu
AAAA-MM-DDordena corretamente como texto e parseia sem ambiguidade- A fórmula transforma a data em uma frase legível de dias restantes
- O estilo condicional transforma o cálculo em cor, sem intervenção
- A revisão periódica é o que mantém o sistema honesto
Perguntas para reflexão
- Por que o formato ISO é obrigatório nesta receita?
- Quando a fórmula de dias restantes é reavaliada?
- Como o estilo condicional entra no fluxo, e o que ele consulta?
- Que risco existe em ter muitos prazos vencidos visíveis o tempo todo?