Importar uma lista indentada🔗

Problema. Você tem um outline pronto — num editor de texto, num e-mail, num sumário — e não quer redigitá-lo nó a nó.

Solução. Colar como estrutura.

Antes de começar

  • Ter um outline pronto em texto, com indentação consistente

O que você vai aprender

  • Transformar uma lista indentada em ramos, sem redigitar
  • Corrigir indentação inconsistente antes de colar
  • Saber quando o caminho é colar como estrutura e quando é importar

Colar como estrutura🔗

  1. No editor de origem, deixe a lista indentada com tabulações ou espaços consistentes:

    Projeto Aurora
    	Infraestrutura
    		Servidores
    		Rede
    	Equipe
    		Desenvolvimento
    		Design
    	Cronograma
  2. Copie tudo.

  3. No Freeplane, selecione o nó que será o pai.

  4. Editar → Colar → Como estrutura (ou Ctrl+Shift+V, conforme a versão).

O Freeplane lê a indentação e monta a hierarquia.

O que funciona como indentação🔗

OrigemFunciona
Tabulações✅ Melhor caso
Espaços consistentes (2, 4)
Markdown com - e indentação✅ Em geral
Markdown com #, ##, ###⚠️ Depende da versão
Numeração 1., 1.1., 1.1.1.❌ Vira texto plano
Indentação mista❌ Resultado imprevisível

Se a origem usa numeração hierárquica, converta antes com um sed ou no editor.

Da linha de comando🔗

Converter numeração em indentação:

sed -E 's/^([0-9]+\.)+ /\t/; s/^[0-9]+\. //' sumario.txt

Converter uma árvore de diretórios:

find projeto -type f | sed 's|[^/]*/|\t|g'

O resultado, colado como estrutura, vira o mapa da pasta.

Importar uma árvore de diretórios direto🔗

O Freeplane tem isso pronto: Arquivo → Importar → Estrutura de pastas. Escolha o diretório e ele gera o mapa correspondente, com hiperlinks para os arquivos.

É excelente para mapear um projeto existente antes de reorganizá-lo.

Importar de outros programas🔗

OrigemCaminho
FreeMindAbrir direto
MindManager .mmapArquivo → Importar
Workflowy, DynalistExporte OPML, importe OPML
Obsidian, ZettlrExporte Markdown, cole como estrutura
PlanilhaCole a coluna, use indentação por espaços

Gerando o mapa por programa🔗

Para importações repetidas ou grandes, escrever o .mm direto é mais confiável que colar:

import xml.etree.ElementTree as ET

def construir(pai, linhas, i=0, nivel=0):
    while i < len(linhas):
        linha = linhas[i]
        n = len(linha) - len(linha.lstrip('\t'))
        if n < nivel:
            return i
        if n > nivel:
            i = construir(pai[-1], linhas, i, n)
            continue
        ET.SubElement(pai, 'node', TEXT=linha.strip(), ID=f'ID_{i}')
        i += 1
    return i

linhas = [l.rstrip() for l in open('outline.txt', encoding='utf-8') if l.strip()]
mapa = ET.Element('map', version='freeplane 1.11.1')
raiz = ET.SubElement(mapa, 'node', TEXT=linhas[0].strip(), ID='ID_0')
construir(raiz, linhas[1:], 0, 1)
ET.ElementTree(mapa).write('gerado.mm', encoding='utf-8', xml_declaration=True)

Erros comuns

  • Misturar tabulações e espaços na origem — a hierarquia sai errada e é difícil ver por quê
  • Colar com Ctrl+V comum, obtendo um nó só com o texto inteiro
  • Esquecer que linhas em branco no meio do outline podem quebrar a leitura da estrutura
  • Colar um outline gigante de uma vez, sem conferir o resultado em um trecho pequeno antes

Você aprendeu

  • Indentação consistente é o único requisito real da técnica
  • Colar como estrutura é uma variante de colagem, não o Ctrl+V comum
  • Vale testar com um trecho antes de colar o outline inteiro
  • Para árvores de diretórios existe o caminho dedicado: Importar → estrutura de pastas

Perguntas para reflexão

  1. Qual é o requisito de formatação da lista de origem?
  2. Por que Ctrl+V comum não serve aqui?
  3. Como você testaria a importação sem arriscar o outline inteiro?
  4. Que caminho alternativo existe para importar uma árvore de diretórios?

Artigos relacionados

Referências🔗

  1. Freeplane — Scripting: clipboard
  2. Freeplane — Working with mind map files