Como Criar um Pipeline de Importação do Bear para o Notion Preservando Tags
🔍 WiseChecker

Como Criar um Pipeline de Importação do Bear para o Notion Preservando Tags

Se você está migrando do Bear para o Notion, precisa de uma maneira confiável de transferir suas notas sem perder as tags que organizou cuidadosamente. O Bear armazena tags inline no corpo da nota usando o formato #tag, mas o Notion não reconhece esse formato nativamente. Este artigo explica como construir um pipeline de importação repetível que converte as tags inline do Bear em tags de banco de dados do Notion. Você aprenderá as etapas exatas para exportar do Bear, transformar a marcação e importar para um banco de dados estruturado do Notion.

Principais conclusões: Pipeline de conversão de tags do Bear para o Notion

  • Bear > Preferências > Exportar > Bear Backup (.bearbackup): Exporta todas as notas com tags incorporadas no corpo do texto.
  • Script Python com regex (re.sub e re.findall): Extrai padrões #tag e os reformata em tags separadas por vírgula compatíveis com o Notion.
  • API do Notion ou importação CSV com coluna Tags: Insere os dados transformados em um banco de dados do Notion onde cada tag se torna uma propriedade Select.

ADVERTISEMENT

O que torna as tags do Bear diferentes das tags do Notion

O Bear armazena tags como texto inline usando a sintaxe #hashtag. Por exemplo, uma nota pode conter “Anotações da reunião #trabalho #projeto-alfa”. O Notion, por outro lado, usa uma propriedade Select ou Multi-Select separada dentro de uma linha do banco de dados. O Notion não interpreta a sintaxe inline #tag. Se você colar uma nota do Bear diretamente no Notion, as #tags permanecem como texto simples e não são reconhecidas como dados estruturados. Para preservar as tags como metadados filtráveis, você deve extrair cada tag do corpo da nota e colocá-la em uma coluna Tags dedicada durante a importação.

Pré-requisitos para construir o pipeline de importação

Antes de começar, verifique se você possui as seguintes ferramentas e acessos:

  • Bear app (macOS): Você precisa do Bear instalado para exportar suas notas no formato correto.
  • Python 3.7 ou superior: O script deste guia usa Python com os módulos integrados json, re e csv. Nenhuma biblioteca de terceiros é necessária.
  • Conta Notion com direitos de criação de banco de dados: Você precisa da capacidade de criar um novo banco de dados ou modificar um existente.
  • Integração com a API do Notion (opcional, mas recomendado): Se você planeja automatizar a importação, crie uma integração Notion em https://www.notion.so/my-integrations e copie o token Internal Integration Secret.

ADVERTISEMENT

Pipeline passo a passo: Exportar, transformar e importar

Etapa 1: Exportar notas do Bear com tags intactas

  1. Abra o Bear e selecione todas as notas
    Clique em qualquer nota na barra lateral e pressione Cmd+A para selecionar todas as notas. Alternativamente, escolha uma tag ou pasta específica se quiser mover apenas um subconjunto.
  2. Exportar como Bear Backup
    Vá em Arquivo > Exportar Notas > Bear Backup (.bearbackup). Este formato preserva o corpo completo da nota, incluindo #tags inline, datas de criação e modificação. Salve o arquivo em sua área de trabalho como bear_export.bearbackup.
  3. Extrair o JSON do backup
    Os arquivos Bear Backup são na verdade arquivos ZIP. Renomeie a extensão do arquivo de .bearbackup para .zip e clique duas vezes para extrair. Dentro você encontrará uma pasta contendo um arquivo database.sqlite e um arquivo notes.json. Copie notes.json para um diretório de trabalho.

Etapa 2: Transformar tags do Bear em formato compatível com Notion

  1. Crie um script Python em seu diretório de trabalho
    Abra um editor de texto e cole o código a seguir. Salve como bear_to_notion.py.
    import json
    import re
    import csv
    
    with open('notes.json', 'r', encoding='utf-8') as f:
        notes = json.load(f)
    
    output = []
    for note in notes:
        title = note.get('title', '')
        body = note.get('text', '')
        # Extrai todas as #tags (apenas caracteres de palavra, sem espaços)
        tags = re.findall(r'#([a-zA-Z0-9_-]+)', body)
        # Remove duplicatas preservando a ordem
        seen = set()
        unique_tags = []
        for t in tags:
            if t not in seen:
                seen.add(t)
                unique_tags.append(t)
        # Remove #tag do corpo para evitar duplicação no Notion
        cleaned_body = re.sub(r'#[a-zA-Z0-9_-]+', '', body)
        # Remove espaços extras
        cleaned_body = re.sub(r'\s+', ' ', cleaned_body).strip()
        output.append({
            'Title': title,
            'Body': cleaned_body,
            'Tags': ', '.join(unique_tags)
        })
    
    # Escreve em CSV
    with open('notion_import.csv', 'w', newline='', encoding='utf-8') as f:
        writer = csv.DictWriter(f, fieldnames=['Title', 'Body', 'Tags'])
        writer.writeheader()
        writer.writerows(output)
    
    print(f'Convertidas {len(output)} notas. Arquivo de saída: notion_import.csv')
  2. Execute o script
    Abra o Terminal, navegue até seu diretório de trabalho e execute python3 bear_to_notion.py. O script cria um arquivo chamado notion_import.csv com três colunas: Title, Body e Tags. Cada tag é separada por vírgula e espaço.

Etapa 3: Importar o CSV para um banco de dados do Notion

  1. Crie um novo banco de dados no Notion
    No Notion, clique em + Nova Página na barra lateral. Digite /table e selecione Tabela – Embutida. Isso cria um banco de dados com propriedades padrão.
  2. Adicione uma coluna Tags do tipo Multi-Select
    Clique no botão + no cabeçalho da tabela. Nomeie a coluna como Tags e escolha Multi-Select como tipo de propriedade. Você não precisa predefinir nenhuma opção; o Notion as criará automaticamente durante a importação.
  3. Importe o CSV
    Clique no menu de três pontos no canto superior direito do banco de dados e selecione Importar. Escolha CSV e selecione seu arquivo notion_import.csv. Na caixa de mapeamento, mapeie a coluna Title para a propriedade Nome, Body para uma propriedade Texto (crie uma se necessário) e Tags para a propriedade Tags (Multi-Select). Clique em Importar.
  4. Verifique a preservação das tags
    Após a importação, abra qualquer nota. A coluna Tags deve exibir cada tag como um rótulo colorido. Se uma tag não foi criada, verifique se o cabeçalho da coluna CSV corresponde exatamente ao nome da propriedade (diferença entre maiúsculas e minúsculas).

Se a importação não preservar as tags corretamente

Tags aparecem como texto simples no corpo em vez da coluna Tags

Isso acontece quando o mapeamento da importação CSV não atribui a coluna Tags à propriedade Multi-Select. Durante a caixa de diálogo de importação, verifique se a coluna Tags do CSV está mapeada para a propriedade Tags (Multi-Select) no Notion. Se você a mapeou para uma propriedade Texto, exclua as linhas importadas, ajuste o mapeamento e importe novamente.

Tags com caracteres especiais não são reconhecidas

O Bear permite tags contendo hífens e underscores, mas as opções Multi-Select do Notion não podem conter vírgulas. O script Python usa re.findall(r'#([a-zA-Z0-9_-]+)') para extrair tags. Se suas tags incluírem caracteres como . ou # dentro do nome da tag, modifique o padrão regex para incluir esses caracteres. Por exemplo, altere o padrão para r'#([a-zA-Z0-9_-.]+)'.

Tags duplicadas são criadas para capitalização diferente

O Notion trata Trabalho e trabalho como opções Multi-Select separadas. Para evitar duplicatas, modifique o script Python para converter todas as tags para minúsculas antes da deduplicação. Substitua a linha if t not in seen: por if t.lower() not in seen: e armazene a versão em minúsculas no CSV.

ADVERTISEMENT

Exportação do Bear vs Importação do Notion: Principais diferenças

Item Bear Notion
Armazenamento de tags #tag inline no corpo da nota Propriedade Multi-Select separada no banco de dados
Formato de exportação Bear Backup (.bearbackup) contendo notes.json Importação CSV com colunas Title, Body, Tags
Delimitador de tag Espaço antes de # e espaço após a tag Valores separados por vírgula em uma única célula
Sensibilidade a maiúsculas/minúsculas Exibição insensível a maiúsculas/minúsculas Opções sensíveis a maiúsculas/minúsculas (duplicatas possíveis)

O pipeline acima converte as tags inline do Bear em um formato amigável para banco de dados do Notion. Após a importação, use os filtros e visualizações do banco de dados do Notion para classificar notas por tag. Para importações futuras, considere automatizar o processo com a API do Notion: crie uma nova página para cada nota usando o endpoint POST /pages e defina a propriedade Tags como um array de nomes de opções Multi-Select. Essa abordagem evita completamente problemas de mapeamento CSV.

ADVERTISEMENT