Como criar fórmula no Notion para converter Markdown em rich text
🔍 WiseChecker

Como criar fórmula no Notion para converter Markdown em rich text

Bancos de dados do Notion armazenam texto como strings simples. Ao colar conteúdo Markdown em uma propriedade, o Notion exibe a sintaxe bruta em vez de renderizar o texto estilizado. Este artigo explica como construir uma fórmula do Notion que converte a sintaxe Markdown em formatação rich text dentro de uma propriedade de fórmula. Você aprenderá as etapas exatas para interpretar padrões de negrito, itálico, código e links do Markdown e gerar um resultado formatado.

Principais conclusões: Construindo uma fórmula de Markdown para rich text no Notion

  • Propriedade de fórmula com replaceAll e style: Converte padrões Markdown como negrito em negrito rich text na saída da fórmula.
  • Funções replaceAll aninhadas: Lida com várias sintaxes Markdown — negrito, itálico, código inline e links — em uma única fórmula.
  • A ordem das propriedades importa: Coloque o texto Markdown de origem em uma propriedade separada (ex.: “Entrada Markdown”) e referencie-a na propriedade de fórmula.

ADVERTISEMENT

Como as fórmulas do Notion interpretam a sintaxe Markdown

As fórmulas do Notion não interpretam Markdown nativamente. A propriedade de fórmula gera texto que pode incluir negrito, itálico, código inline e links, mas você deve definir explicitamente esses estilos usando a função style(). A função replaceAll() permite encontrar padrões Markdown e substituí-los por substrings estilizadas. Como o replaceAll opera em strings, você encadeia várias chamadas para lidar com cada tipo de Markdown uma após a outra.

A fórmula lê uma propriedade de texto de origem — por exemplo, uma propriedade chamada “Entrada Markdown” — e gera uma string formatada na propriedade de fórmula. Cada token Markdown (como ou __ para negrito, ou _ para itálico, ` para código inline) deve ser correspondido por uma chamada replaceAll que envolve o texto correspondido na função style() adequada.

Pré-requisitos

Você precisa de um banco de dados do Notion com pelo menos duas propriedades de texto: uma para armazenar o texto Markdown bruto (chame-a de “Entrada Markdown”) e uma propriedade de fórmula (chame-a de “Saída Formatada”). O texto Markdown deve usar sintaxe padrão: negrito, itálico, `código` e [texto do link](url). A fórmula não lidará com Markdown aninhado (ex.: negrito dentro de itálico) ou elementos de nível de bloco como cabeçalhos ou listas.

Etapas para construir a fórmula de Markdown para rich text

  1. Crie a propriedade de origem
    No seu banco de dados do Notion, adicione uma nova propriedade de texto chamada “Entrada Markdown”. Cole ou digite seu texto Markdown nesta propriedade. Esta propriedade servirá como entrada bruta para a fórmula.
  2. Adicione uma propriedade de fórmula
    Clique no ícone + no cabeçalho do banco de dados e selecione “Fórmula”. Nomeie-a como “Saída Formatada”. Abra o editor de fórmula clicando no nome da propriedade.
  3. Escreva a substituição de negrito
    Insira o seguinte código para converter negrito em negrito:
    replaceAll(prop("Entrada Markdown"), "\\\\(.?)\\\\", style("$1", "b"))
    Isso corresponde ao texto entre asteriscos duplos e aplica o estilo negrito. O .
    ? captura o texto interno. As barras invertidas escapam os asteriscos no padrão regex.
  4. Adicione a substituição de itálico
    Envolva a chamada anterior em outro replaceAll para lidar com itálico:
    replaceAll(replaceAll(prop("Entrada Markdown"), "\\\\(.?)\\\\", style("$1", "b")), "\\(.?)\\", style("$1", "i"))
    O replaceAll interno primeiro lida com negrito, depois o externo lida com itálico. Isso evita que o padrão de itálico corresponda dentro do texto em negrito já processado.
  5. Adicione a substituição de código inline
    Estenda a fórmula para converter `código` em código:
    replaceAll(replaceAll(replaceAll(prop("Entrada Markdown"), "\\\\(.?)\\\\", style("$1", "b")), "\\(.?)\\", style("$1", "i")), "`(.?)`", style("$1", "c"))
    O argumento "c" em style() aplica formatação de código inline.
  6. Adicione a substituição de links
    Por fim, adicione uma substituição para [texto do link](url):
    replaceAll(replaceAll(replaceAll(replaceAll(prop("Entrada Markdown"), "\\
    \\(.?)\\\\", style("$1", "b")), "\\(.?)\\", style("$1", "i")), "`(.?)`", style("$1", "c")), "\\[(.?)\\]\\((.?)\\)", style("$1", "a", "$2"))
    O style("$1", "a", "$2") cria um hiperlink onde $1 é o texto do link e $2 é a URL.
  7. Teste a fórmula
    Insira um Markdown de exemplo na propriedade “Entrada Markdown”, como Isto é negrito e itálico e `código` e [um link](https://exemplo.com). A propriedade “Saída Formatada” deve exibir o texto com a formatação rich text adequada. Se a saída mostrar Markdown bruto, verifique se todas as barras invertidas estão corretas e se os padrões regex usam barras invertidas duplas.

ADVERTISEMENT

Erros comuns e limitações

A fórmula exibe a sintaxe Markdown bruta

A causa mais comum é a falta de barras invertidas duplas antes de asteriscos ou colchetes no padrão regex. As fórmulas do Notion exigem duas barras invertidas para representar uma barra invertida literal no regex. Por exemplo, \\ corresponde a um asterisco literal. Se você usar uma barra invertida simples, a fórmula trata o asterisco como um quantificador regex e falha ao corresponder.

Markdown aninhado não é suportado

A fórmula usa correspondência não gananciosa (.?) que funciona para casos simples. Sintaxe aninhada como negrito e itálico dentro não será renderizada corretamente porque o padrão de negrito externo captura a string inteira, deixando o padrão de itálico sem correspondência. A fórmula processa as substituições em ordem, então qualquer Markdown não processado permanece como texto simples.

Links com caracteres especiais na URL

O regex de link \\[(.?)\\]\\((.?)\\) espera que a URL esteja entre parênteses sem espaços. Se a URL contiver parênteses (ex.: https://pt.wikipedia.org/wiki/Notion_(software)), o regex para no primeiro parêntese de fechamento. Para esses casos, codifique os parênteses na URL como %28 e %29 antes de colar na propriedade de entrada.

Capacidades da fórmula: saída de texto simples vs. rich text

Item Saída de fórmula em texto simples Saída de fórmula em rich text
Suporte a negrito Exibe texto literalmente Renderiza texto usando style("$1","b")
Suporte a itálico Exibe texto literalmente Renderiza texto usando style("$1","i")
Suporte a código inline Exibe `texto` literalmente Renderiza texto usando style("$1","c")
Suporte a links Exibe [texto](url) literalmente Renderiza link clicável usando style("$1","a","$2")
Markdown aninhado Não aplicável Não suportado — o padrão externo captura tokens internos
Desempenho em textos grandes Sem atraso Pode ficar lento para textos acima de 500 caracteres devido a múltiplas passagens de regex

Agora você pode converter texto Markdown em entradas formatadas do banco de dados do Notion usando uma única propriedade de fórmula. Teste a fórmula com seus padrões Markdown mais comuns primeiro. Para conversões mais avançadas, considere encadear chamadas adicionais de replaceAll para tachado (~~texto~~) ou sintaxe de imagem, mas lembre-se de que a complexidade da fórmula aumenta o risco de atingir o limite de caracteres do Notion para expressões de fórmula.

ADVERTISEMENT