Arquivo LeiaMe para o TreeLine

um programa para armazenamento de informações

por Doug Bell
Versão 1.0.2
1 de junho de 2006

Conteúdo

Informações Gerais
Características
Questões Legais
Requisitos do Sistema
    Linux
    Windows
Instalação
    Linux
    Windows
Usando o TreeLine
Histórico das Revisões
Perguntas, Comentários, Críticas?

Informações Gerais

Você tem montes de anotações espalhadas por aí com vários tipos de informações úteis? Ou muitas listas de livros, filmes, links, senhas de websites, contatos pessoais, ou coisas a fazer? Você consegue encontrá-las quando precisa delas? Bem, eu freqüentemente não consigo. Então, aqui está minha resposta.

Alguns diriam que TreeLine é um Outliner, outros diriam que é um PIM. Basicamente, ele apenas armazena quase qualquer tipo de informação. Uma estrutura em árvore torna fácil manter as coisas organizadas. E cada nó na árvore pode conter diversos campos, formando um mini-banco de dados. O formato de saída de cada nó pode ser definido, e a saída pode ser exibida na tela, impressa, ou exportada para HTML.

Como eu não trabalho no ramo de software, este programa é gratuito para qualquer um usar, distribuir e modificar, desde que ele não seja incorporado em qualquer programa proprietário. Se você gostar do software, sinta-se à vontade para falar dele a outras pessoas. E deixe-me saber o que você pensa dele - veja a seção Perguntas, Comentários, Críticas? para obter informações de contato.


Características


Questões Legais

TreeLine é software livre; você pode redistribui-lo e/ou modificá-lo sob os termos da GNU General Public License como publicada pela Free Software Foundation; a Versão 2 da Licença, ou (conforme sua opção) qualquer versão posterior.

Este programa é distribuído na esperança de que será útil, mas SEM NENHUMA GARANTIA. Veja o arquivo LICENSE fornecido com este programa para maiores informações.

Como uma exceção especial, o autor dá permissão para linkar e distribuir este programa com a versão Não-Comercial da biblioteca Qt sem incluir o código fonte da mesma.


Requisitos do Sistema

Linux

TreeLine requer as seguintes bibliotecas e programas:

Windows


Instalação

Linux

Descompacte os arquivos fonte a partir do arquivo tar do TreeLine, então mude para o diretório do TreeLine em um terminal. Para uma instalação básica, simplesmente execute o seguinte comando como root: "python install.py"

Para ver todas as opções de instalação, use: "python install.py -h"

Para instalar TreeLine em um prefixo diferente (o padrão é /usr/local), use: "python install.py -p /prefix/path"

Quaisquer arquivos de configuração ~/.treeline antigos devem ser excluídos ou renomeados se esta for uma atualização maior (como de 0.8.x para 0.9.x) ou se você planeja editar novos atalhos de teclado.

Para instalar traduções para o TreeLine, faça o download do arquivo tar "treeline-i18n-..." que combine com o número de versão do arquivo TreeLine principal (ignore a letra de sufixo no número de versão da tradução). Para instalar simultaneamente o programa e os arquivos de tradução, descompacte o arquivo de traduções no mesmo diretório onde foi descompactado o arquivo principal do treeline e execute o comando de instação como descrito acima. Se o TreeLine já foi instalado, descompacte o arquivo de traduções em qualquer diretório e execute o comando de instalação das traduções como descrito acima.

Windows

Simplesmente execute o instalador (treeline-x.x.x-install.exe). Ele instalará o programa com suas bibliotecas e opcionalmente criará associações de arquivo e atalhos.

Se você já tem uma instalação funcional do TreeLine, versão 0.7.0 ou superior, você pode usar um download menor. Simplesmente execute treeline-x.x.x-upgrade.exe para atualizar os arquivos de sua instalação anterior.

Para usar o verificador ortográfico do TreeLine, é preciso instalar um programa externo (aspell ou ispell - veja a seção Requisitos do sistema).

Quaisquer arquivos de configuração treeline.ini antigos devem ser excluídos ou renomeados se esta for uma atualização maior (como de 0.8.x para 0.9.x) ou se você planeja editar novos atalhos de teclado.

Para instalar traduções para o TreeLine, faça o download do arquivo exe "treeline-i18n-..." que combine com o número de versão do arquivo TreeLine principal (ignore a letra de sufixo do número de versão do arquivo de traduções). Para instalar as traduções, simplesmente execute o arquivo.

If you wish to modify the source code or write your own PyQt programs for Windows, do not use the above procedure. Instead, you need to install Python (see www.python.org), Qt (see www.trolltech.com), and PyQt (see www.riverbankcomputing.co.uk). Then extract the source code files from the Linux version (treeline tar file) to a directory of your choice and execute the treeline.py file.


Usando o TreeLine


Conteúdo

Começando
Fundamentos
    Visões
    Comandos
Navegação da Árvore
    Atalhos de Teclado
    Busca
Editando a Árvore
Formatação e Tipos de Nós
Tipos de Campos
Manipulação de Dados da Árvore
Impressão
Gerenciamento de Arquivos
Importação de Arquivos
Exportação de Arquivos
    HTML
    Texto Delimitado
    Arquivos de Favoritos
    XML Genérico
    XSLT
Plugins
    Descrição
    Instalação
    Interface
Problemas Comuns
    Erro de XML
    Problemas com Unicode
    Impressão

Começando

Introdução

TreeLine é um programa mais complexo do que parece à primeira vista. É altamente recomendável ler a maior parte desta documentação para aprender a usá-lo de forma efetiva.

A seção
Fundamentos descreve visões e seleções. Para aprender a mover-se e alterar a árvore, veja a seção Tree Navigation and Navegação da Árvore. Depois, é hora de ir além de usar o TreeLine com uma única linha de texto para cada nó. Para aprender a definir dados personalizados para cada nó, veja as seções Formatação e Tipos de Nós e Tipos de Campos.

Arquivos de Exemplo

Vários arquivos TreeLine de exemplo poder ser abertos usando o comando "Arquivo->Abrir Exemplo". Eles são (aproximadamente em ordem ascendente de complexidade):


Fundamentos

Visões

A janela do TreeLine divide-se em dois painéis. O esquerdo mostra a estrutura em árvore inteira, enquanto o direito exibe diversas informações sobre o nó que estiver selecionado na árvore do painel esquerdo.

O painel direito possui abas para exibir uma de três visões diferentes dos dados. "Exibir" mostra o texto formatado de cada nó e é apenas para leitura. "Editar" mostra um campo de edição de texto para cada campo dentro do nó. "Títulos" mostra uma lista de títulos dos nós que pode ser modificada usando métodos típicos de edição de texto.

Comandos

A maioria dos comandos nos menus e na barra de ferramentas aplica-se aos itens selecionados no painel esquerdo. Em geral, eles executam operações nos próprios nós ou nos descendentes dos mesmos. Múltiplos nós podem ser selecionados mantendo pressionadas as teclas "Ctrl" e "Shift" ao clicar com o mouse. Mas alguns comandos, como "Arquivo->Exportar" e "Arquivo->Imprimir", usam dados apenas do nó atual, que é destacado com um retângulo. O painel direito também faz referência apenas ao nó atual.

Para incluir informações em um novo documento TreeLine, use o comando "Editar->Inserir Filho" para criar um novo nó. Então, combinações dos comandos para inserir podem ser usadas para nós adicionais. Alternativamente, os títulos de novos nós podem ser digitados diretamente na visão "Títulos" no painel direito.


Navegação da Árvore

Atalhos de Teclado

Há diversos atalhos de teclado que podem ser usados para a navegação da árvore. As setas para cima e para baixo movem a seleção. As setas para a esquerda e para a direita, abrem e fecham o nó atual. Segurar a tecla CTRL ao usar as setas para cima e para baixo fará com que elas movam-se apenas entre nós irmãos, pulando os nós filhos. A tecla CTRL mais a letra "U" move a seleção para o nó pai do nó atual. As teclas "Home","End", "Page Up" e "Page Down" podem ser usadas para mover-se rapidamente pela árvore. Segurar a tecla SHIFT ao usar as teclas "Page Up" e "Page Down" fará rolar a visão dos nós filhos no painel direito.

Todas estas teclas e os atalhos de teclado para os comandos dos menus podem ser customizadas editando o arquivo de configuração do TreeLine ("~/.treeline" no Linux, "treeline.ini" no windows).

Outro modo de mover-se pela árvore é teclar a primeira letra do título de um nó que esteja visível. Uma letra minúscula moverá para baixo, uma maiúscula para cima. Teclar a mesma letra novamente levará para a próxima possibilidade.

Busca

Há dois modos de busca de nós. Estes métodos podem encontrar nós profundamente escondidos na estrutura em árvore. O primeiro é o comando "Ferramentas->Procurar". Com ele, você pode digitar palavras-chave num diálogo. Um nó será encontrado se as palavras-chave forem encontradas em qualquer dos campos do nó. O próximo método é uma busca incremental. Tecle um "/" seguido pelo texto a procurar. A busca irá avançar conforme você for digitando o texto. A busca incremental procura pelo texto apenas nos títulos dos nós. A última busca pode ser repetida com a tecla "F3" e em sentido inverso com "Shift-F3".

Por padrão, os nós pais serão automaticamente abertos e fechados quando encontrados pelos métodos de busca, ao teclar a primeira letra, e com o comando de teclado "próximo irmão". Este comportamento pode ser desativado em "Ferramentas->Opções Gerais".


Editando a Árvore

Menu Editar

Os comandos no menu "Editar" (exceto por desfazer e refazer) operam nos nós selecionados na árvore do painel esquerdo. Os comandos copiar, cortar e colar também podem ser uma exceção a esta regra, pois eles operam no painel direito quando algo estiver selecionado nele. E tenha em mente que, em geral, os descendentes dos nós selecionados também são afetados.

Colar irá incluir um nó copiado como o último filho do nó atual. Alternativamente, o comando "Editar->Colar Texto do Nó" na verdade renomeia a seleção com base no nó que estiver no topo do clipboard.

Atalhos

Há diversos atalhos que podem ser usados ao editar a árvore. Você pode arrastar e soltar os nós para movê-los ou copiá-los e torná-los filhos do nó de destino. Clicar em um nó que já está selecionado irá renomeá-lo. Teclar Enter irá inserir um novo nó, e teclar Delte irá remover os nós selecionados. Se desejado, estes atalhos podem ser desativados em "Ferramentas->Opções Gerais"

Visões do Painel Direito

No painel direito, a visão "Editar" fornece o modo mais direito de editar os dados de um nó. Se o campo editado é usado na formatação do título, o título do nó na árvore mostrará as mudanças. O editor do campo pode rolar, permitindo que múltiplas linhas de texto sejam informadas.

Há itens nos menus de contexto da visão "Editar" para inserir tags HTML de formatação de fonte em torno do texto selecionado. Elas incluem negrito, itálico, sublinhado, tamanho e cor. Note que os campos devem estar configurados para exibir conteúdo HTML (veja a seção
Tipos de Campos ) para que isso funcione.

Um editor externo também pode ser invocado a partir desse menu de contexto. Depois que o editor salvar as alterações e for fechado, o texto alterado será carregado no editor do campo. A variável de ambiente EDITOR pode ser usada para especificar o editor a invocar, ou, se a variável não existir, o TreeLine irá perguntar qual executável deve ser usado como padrão.

Ainda no painel direito, a visão "Títulos" pode ser útil para renomear rapidamente os títulos dos nós filhos ou para acrescentar novos nós filhos. Uma lista de texto de novos nós pode até mesmo ser colada diretamente nesta visão.

Verificação Ortográfica

Há um comando para verificação ortográfica no menu "Ferramentas". O uso deste comando requer que um programa externo esteja instalado (aspell ou ispell - veja a seção Requisitos do Sistema). Se houver palavras escritas incorretamente no ramo selecionado, um diálogo permitirá que a palavra seja ignorada, incluída no dicionário, substituída por uma sugestão ou editada. A verificação ortográfica será feita em todos os campos de dados de cada nó.

Por padrão, a verificação ortográfica usará os dicionários para a linguagem atual do sistema operacional. Se estiver usando o aspell, há uma opção em "Ferramentas->Opções de Arquivo" para especificar um código de linguagem alternativo de duas letras para o arquivo TreeLine atual. Note que os dicionários apropriados para o aspell precisam estar instalados e que esta opção não funciona com o ispell.


Formatação e Tipos de Nós

Configurando o Tipo de um Nó

Inicilamente, um novo documento TreeLine contém dois tipos de nós: "RAIZ" e "PADRÃO". O tipo é exibido no topo de cada nó na visão "Editar" do painel direito. A criação de novos tipos e a personalização dos tipos é descrita abaixo. Para configurar os nós selecionados como sendo de um determinado tipo, use o comando "Dados->Configurar Tipo de Nó". Alternativamente, para configurar uma série de nós filhos e descendentes para um tipo específico, use o comando "Dados->Configurar Tipos de Descendentes". O diálogo resultante permite configurar para o tipo escolhido todos os nós selecionados, seus filhos, todos os descendentes, ou descendentes que combinem com condições lógicas definidas. O diálogo pode ser deixado aberto enquanto a seleção na árvore é alterada para modificar mais nós.

Diálogo Configurar Tipos de Dados

Os tipos de dados são configurados com o diálogo "Dados->Configurar Tipos de Dados" (veja a Figura 1). O tipo é selecionado no topo do diálogo, e o botão "Modificar Lista" é usado para acrescentar, remover e renomear os tipos disponíveis. A metade esquerda do diálogo de configuração exibe os campos. Esses são os campos de dados que estarão em cada nó desse tipo. Há botões para incluir, excluir e reordenar os campos. O botão para alterar o tipo dos campos será coberto mais tarde.

A metade direita do diálogo "Configurar Tipos de Dados" exibe a formatação do título (usada para o texto do nó exibido na visão de árvore) e a saída do nó. A formatação consistem em linhas de texto com campos embutidos. Os campos são exibidos como "{*nome_do_campo*}". Eles podem ser acrescentados ou removidos com os botões ">>" e "<<".

Outras Referências de Campos

Referências a campos dos nós pais e avós são exibidas como "{**nome_do_campo*}" e "{***nome_do_campo*}", respectivamente. Há também referências gerais a nós ancestrais, exibidas como "{*?nome_do_campo*}", que obtém seus dados do nó ancestral mais próximo que possua o campo procurado.

Estas referências podem ser incluídas com o botão "Outros Campos" na parte esquerda do diálogo. Ele irá perguntar pelo nível do ancestral (qualquer ancestral, pai, avô, etc.) e o tipo de dados do ancestral. Então, o botão ">>" irá acrescentar os campos selecionados à formatação.

Referências à nós filhos também podem ser incluídas a partir do diálogo "Outros Campos". Os dados do filho são embutidos na saída do pai. Os dados dos filhos são delimitados por um texto separador que é definido como uma opção de arquivo. O separador padrão é uma vírgula seguida por um espaço, mas pode ser definido como <br> ou qualquer outra coisa.

O diálogo "Outros Campos" contém também referências a informações do arquivo. Esses campos contém metadados do arquivo, incluindo o nome, caminho, tamanho, e data de modificação. Eles são exibidos como "{*!nome_do_campo*}" nos editores de título e formatação.

Para exemplos desses campos, veja o arquivo "sample_other_fields" (usando o comando "Arquivo->Abrir Exemplo").

Formatação dos Títulos

Quando um nó na árvore é renomeado, o programa tenta combinar o padrão de formatação do título com os campos corretos a serem preenchidos. Se a formatação for complexa demais, ele pode não conseguir fazer isso de forma correta. Coisas como campos adjacentes sem caracteres separadores devem ser evitadas a menos que você não deseje renomear os nós a partir da árvore.

Se os dados textuais para o título a ser exibido na árvore tiverem múltiplas linhas, apenas a primeira linha será usada como título.

Linhas Omitidas

Se uma linha na saída formatada contém um ou mais campos e todos esses campos em um dado nó estão vazios, essa linha será omitida. Não haverá linha em branco ou texto embutido emitidos para essa linha. Note que isso não se aplica a uma linha sem nenhum campo (apenas texto embutido). Além disso, quando uma linha encerrada em <br/> ou <hr/> for omitida, a tag final será retida.

Tags HTML

Tags de formatação simples em HTML podem ser usadas na formatação da saída dos nós. As tags mais comumente usadas incluem "<b>negrito</b>", "<u>sublinhado</u>", "quebra de linha<br/>", "<hr/>linha horizontal", e várias tags de fonte. Tags complexas devem ser evitadas. Quando a opção de arquivo "Permitir texto enriquecido com HTML nos formatos" estiver desativada, tags de formatação serão tratadas como texto comum. Para um exemplo de uso das tags, veja o arquivo "sample_color_items" (usando o comando "Arquivo->Abrir Exemplo").

Uma quebra de linha é automaticamente emitida após cada linha de formatação, a menos que a opção de arquivo "Incluir quebras de linha depois de cada linha" esteja desativada. Além disso, a opção de arquivo "Incluir linhas em branco entre os nós" determina se haverá ou não uma linha em branco automática entre as saídas de cada nó. Uma tag de quebra de linha ("<br>") pode ser usada no fim da formatação para obter o mesmo efeito, ou uma tag de linha horizontal ("<hr>") pode ser usada em seu lugar para separar os nós.

Exemplos de Formatação

Eis um exemplo de formatação da saída para uma lista de livros:

<hr/>"{*Título*}"
(c) {*Copyright*}, Avaliação: {*Avaliação*}
{*DescriçãoDaTrama*}

Arquivos de exemplo com vários tipos de formatação estão inclusos na distribuição do programa. Eles podem ser abertos com o comando "Arquivo->Abrir Exemplos". Eles também estão listados na seção
Arquivos de Exemplo.

Ícones da Árvore

Os ícones exibidos para cada nó na árvore podem ser configurados com base no tipo de dados. O botão 'Modificar Ícone" no diálogo "Configurar Tipos de Dados" abre um diálogo para configurar o ícone. Se a seleção nesse diálogo for removida, nenhum ícone será exibido para esse tipo de dados. Para evitar exibir quaisquer ícones na árvore, a opção geral "Exibir ícones na visão de árvore" pode ser desativada.

Tipos dos Filhos

O diálogo "Configurar Tipos de Dados" também contém uma opção para determinar o tipo de filho padrão. Se configurado, esse será o tipo de dados usado inicialmente para novos filhos de nós deste tipo. Se não estiver configurado, será usado o mesmo tipo do pai ou dos irmãos.

Opções Avançadas

O botão "Avançado" no diálogo "Configurar Tipos de Dados" exibe opções adicionais. A primeira permite configurar um dos campos como o campo de referência, usado para os comandos para organizar e achatar por referência e para referências de links internos. O campo de referência é o primeiro campo por padrão.

O diálogo avançado tampém tem opções para tags de prefixo e sufixo. Essas tags podem freqüentemente ser deixadas em branco, mas são úteis para criar tabelas ou listas com marcadores. As tags serão colocadas antes e depois de grupos de irmãos do tipo apropriado. Por exemplo, para emitir uma tabela, o prefixo poderia ser configurado para "<table border="1">" e o sufixo para "</table>". Então, o formato de saída poderia ser:

<tr><td>"{*Título*}"</td><td>(c) {*Copyright*}</td></tr>

Veja também o arquivo de exemplo "sample_table_booklist" (usando o comando "Arquivo->Abrir Exemplo" ).

Irmãos devem ser geralmente do mesmo tipo, ou pelo menos ter as mesmas tags de sufixo e prefixo.

Tipos Genéricos e Derivados

Tipos de dados podem ser configurados para derivar suas opções de campos de um tipo genérico. Isto permite que tipos com formatações de saída diferentes usem os mesmos dados. Quaisquer alterações na lista de campos ou nos tipos dos campos do tipo genérico são automaticamente refletidas nos campos de todos os tipos derivados. Isto não se aplica à formatação de saída dos campos, que ainda pode ser configurada de forma independente.

Há dois métodos para criar tipos derivados. Primeiro, há uma opção de derivação que pode ser selecionada ao copiar um tipo no diálogo "Incluir/Excluir Tipos de Dados" (acessível a partir do botão "Modificar Lista" no diálogo "Configurar Tipos de Dados"). Alternativamente, um tipo genérico pode ser especificado a partir do diálogo "Configuração Avançada" do tipo derivado.

Tipos Condicionais

Expressões condicionais podem ser usadas para atribuir automaticamente um tipo de dados com base no conteúdo de cada nó. Condições só podem ser atribuídas a um tipo genérico e seus tipos derivados associados. Isso permite a atribuição automática de formatação de saída ou ícones diferentes dependendo dos dados de cada campo do nó.

O diálogo condicional é acessado a partir de um botão no diálogo "Configuração Avançada" de um tipo. Cada linha da condição inclui um campo, um operador e um valor para comparação (veja a
Figura 2). Os operadores incluem igualdade, maior que, menor que, começa com, termina com, e contém. Há também operadores Verdadeiro e Falso que irão trocar o tipo de todos os nós simultaneamente.

Para tipos de campo especiais como datas, horas, e booleanos, o valor de comparação deve ser informado no mesmo formato que é usado na visão "Editar" do painel direito. Em geral, os operadores começa com, temina com, e contém, não devem ser usados com esses campos especiais, pois a comparação é feita usando uma representação interna dos dados. Datas e horas também suportam um valor especial de comparação, "now", que é sempre interpretado como a data e a hora atuais.

O botão "Incluir Nova Regra" é usado para incluir linhas de condição adicionais. As linhas podem ser ligadas com os operadores "e" e "ou". O botão "Excluir Regras" apaga a última linha de condição. Se apenas uma linha estiver presente, esse botão remove completamente a condição.

Condições não precisam ser configuradas para todos os tipos em uma família. Se nenhuma condição for verdadeira para um nó, o programa irá selecionar uma condição em branco no lugar de uma falsa.

Para um exemplo, veja o arquivo "sample_conditional_todo" (usando o comando "Arquivo->Abrir Exemplo").

Copiando Formatos

Outro método para mudar a formatação dos tipos de dados é copiar os formatos de outro arquivo TreeLine. Isto é feito com o comando "Dados->Copiar Tipos do Arquivo". Todos os tipos no arquivo escolhido são copiados. Quaisquer tipos no arquivo atual com nomes iguais serão sobrescritos, mas tipos com nomes únicos serão mantidos.


Tipos de Campos

Opções de Campo

No diálogo "Configurar Tipos de Dados", o botão "Tipo do Campo" abre um diálogo para formatar o campo selecionado (veja a Figura 3). O tipo do campo pode ser configurado como texto, número, escolha, combinação, auto escolha, data, hora, booleano, URL, caminho, link interno, link executável, email, ou imagem. Texto para prefixo e sufixo pode ser informado e será exibido sempre que o campo não estiver vazio.

Também há opções para gerenciamento de conteúdo de texto que podem ser configuradas para permitir texto enriquecido com HTML nos campos de dados ou para preservar quebras de linha (ignorando o código HTML). Se texto com HTML for usado, quebras de linha serão ignoradas e os símbolos "<", ">" e "&" não serão exibidos a menos que sejam usados com caracteres de escape. Há também uma opção geral disponível para fazer com que novos campos usem conteúdo HTML por padrão. Para um exemplo do uso de texto enriquecido, veja o arquivo de exemplo "sample_char_format" (usando o comando "Arquivo->Abrir Exemplo" ).

Vários dos tipos de campos usam um texto de formatação para definir sua saída. Para uma lista de caracteres de formatação disponíveis, use o botão "Ajuda do Formato". Entrada na visão "Editar" do painel direito que não combinem com o formato do campo farão com que o nome do campo seja exibido em negrito, e a saída para esse campo será substituída por "#####".

Tipo Texto

O tipo de campo padrão é um campo de texto. Estes campos são editados em campos de edição na visão "Editar" do painel direito. A altura do campo de edição expande-se ao ser reexibida após a inclusão de diversas linhas de texto. A altura do campo de edição também pode ser configurada explicitamente no diálogo de formato do campo.

Tipos Escolha, Combinação e Booleano

Os tipos Escolha e Combinação permite selecionar itens de texto a partir de uma lista pull-down. O texto de formatação para esses tipos lista os itens separados por um caractere "/" (use "//" para obter um "/" literal em um item). Escolha é usado para selecionar um único item e Combinação para selecionar múltiplos itens. A lista pull-down para Combinação também permite que itens sejam acrescentados ou removidos. Além disso, o texto inicial de um item pode ser digitado e auto-completado.

O tipo Booleano é semelhante ao tipo Escolha, mas tem por padrão opções como "Falso/Verdadeiro", "sim/não" e "1/0".

Há um tipo AutoEscolha. Como Escolha, ele fornece itens pull-down para seleção, mas ele não usa um texto de formatação. A lista pull-down é preenchida automaticamente com todas as entradas usadas anteriormente.

Tipo Número

No tipo Número, caracteres especiais no formato definem como os números serão exibidos. O formato usa uma cadeia de caracteres "#" (dígito opcional) e "0" (dígito requerido) para definir a formatação da saída. Por exemplo, pi formatado com "#.#" é "3.1" e formatado com "00.00" é "03.14". Independente da formatação, dígitos à esquerda do ponto decimal não são truncados, pois isso levaria à um resultado incorreto. Mas tome o cuidado de exibir casas decimais suficientes (opcionais ou requeridas) para evitar problemas de arredondamento.

O separador decimal pode ser especificado como "." ou "," para permitir a internacionalização. Para uso como separador de milhares, use "\," ou "\.". Por exemplo, um número longo pode ser formatado como "#\,###\,###.##" ou "#\.###\.###,##". Pressione o botão "Ajuda do Formato" no diálogo de formatação do campo para maiores detalhes sobre a formatação.

Ao contrário da maioria dos outros formatos, o tipo Número também usa o formato de saída para exibição na visão "Editar". Claro, qualquer nova entrada em um formato razoável é interpretada corretamente (mas o separador decimal correto precisa ser usado).

Tipos Data e Hora

Nos tipos de campo Data e Hora, caracteres especiais no formato são substituídos por elementos dos dados, de forma similar aos campos do tipo Número. Pressione o botão "Ajuda do Formato' no diálogo de formatação do campo para obter detalhes.

Há também formatos para esses tipos sob "Ferramentas->Opções Gerais->Formatos do Editor de Dados". Essas opções controlam como esses campos são exibidos na visão "Editar". Geralmente, entradas em diversos formatos serão interpretadas de forma correta independente desta configuração, mas datas precisam usar a seqüência dia-mês-ano correta. Note ainda que o editor de datas não suporta dias da semana. Entradas que não puderem ser interpretadas farão com que o nome do campo seja exibido em negrito.

Um valor inicial padrão "Now" pode ser usado para obter a data ou hora da criação do nó.

Tipos Link

Os tipos URL, Caminho e Email são usados para criar links na saída. URL é para um link da web padrão (http:// a menos que outro protocolo seja especificado), Caminho é para um link a um arquivo local (protocolo file:/// por padrão), e Email é para um link de email (protocolo mailto: por padrão). Ao serem clicados na janela de saída, esses links abrem um navegador externo ou programa de email. Em HTML exportado, eles agem como links comuns. Simplesmente informe o caminho desejado (como "www.bellz.org/treeline/index.html") no campo de dados. No Linux, definir a variável de ambiente "BROWSER" para um texto como "mozilla %s" fará com que o navegador desejado seja utilizado.

Há também um tipo LinkInterno. Ele cria um link clicável na saída de dados que seleciona o próximo nó com texto que combine em seu campo de referência. Se campos de link ou referência contém múltiplas linhas, cada linha é tratada como um link ou referência separado. Se desejado, o mesmo campo pode ser usado como link e referência, de forma que, ao clicar em uma palavra-chave no campo de um nó seleciona o próximo nó que também possua essa palavra-chave. Se exportado para HTML, os links internos funcionam como links para âncoras de página, mas, em casos com referências duplicadas, eles acham apenas a referência mais acima na página. Para um exemplo, veja o arquivo "sample_intern_links" (usando o comando "Arquivo->Abrir Exemplo").

O tipo LinkExecutável executa um programa externo ao ser clicado. O comando a executar é dado pelo texto do campo. Ou o prefixo do campo pode conter o nome do programa, de forma que o texto do campo passa a ser usado para passar argumentos ou nomes de arquivo ao programa. Uma opção geral pode desativar esses links quando houver preocupação com segurança.

O tipo Imagem irá exibir uma imagem referida na saída. Informe o caminho de um arquivo de imagem local no editor de dados. Com a Qt2 (usada nos binários para windows) a janela de saída suporta apenas imagens nos formatos GIF e PNG. Com a Qt3, JPEG e outros tipos de imagens são suportados. É claro que, ao exportar para HTML, a imagem será exibida desde que o navegador suporte o formato.

Opções Avançadas

O botão "Avançado" no diálogo "Formato do Campo" abre configurações adicionais. Um valor inicial padrão para o campo pode ser especificado para cada campo. Quaisquer nós novos receberão esse valor para o campo quando forem criados.

Campos Link podem exibir um texto alternativo no lugar da ULR alvo. Isso é feito especificando um campo alternativo de onde obter o texto.

Há também uma opção para marcar campos como sendo de preenchimento obrigatório. Esses campos serão marcados com um asterisco na visão "Editar".

Campos também podem ser configurados como ocultos, para impedi-los de aparecerem na visão "Editar".


Manipulação de Dados da Árvore

Comandos baseados em Categorias

O menu "Dados" contém comandos para organizar e achatar os dados por categoria e por referência. Estes métodos são usados para acrescentar e remover automaticamente níveis de nós abaixo do nó atual na árvore.

O comando "Incluir Nível de Categorias" permite selecionar um ou mais dos campos que os nós filhos têm em comum. Esses campos são usados para criar novos nós pais para os nós filhos, agrupando-os por categorias comuns. Por exemplo, em uma lista de livros, escolher os campos "autor_primeiro_nome" e "autor_último_nome" irá resultar em uma árvore com os livros organizados sob novos nós para cada autor único.

O comando "Achatar por Categoria" é quase que o oposto de "Incluir Nível de Categorias". Ele elimina qualquer nó descendente que possua filhos, transferindo os campos de dados do mesmo para os filhos. Ele irá renomear os campos ao invés de sobrescrever dados em campos que tenham o mesmo nome, mas este comando é mais útil quando os nós filhos e os nós pais são de tipos diferentes com nomes de campos únicos.

Comandos baseados em Referência

Os comandos "Organizar por Referência" e "Achatar por Referência" organizam nós usando ponteiros para o valor do campo de referência nos respectivos nós pais. Estes comandos dependem dos nós possuirem valores únicos no campo de referência, como um número de identificação, por exemplo. O comando "Achatar por Referência" inclui um campo contendo o ID do nó pai em cada nó descendente. Ele então coloca todos esses nós sob o nó raiz selecionado. O comando "Organizar por Referência" faz o contrário, colocando cada nó sob o nó pai com o ID referido. Se houver múltiplos nós com o mesmo ID, o nó mais próximo acima do nó filho será escolhido. Quaisquer nós com pais ausentes serão colocados diretamente sob o nó raiz selecionado.

O comando "Atualizar por Referência" usa um arquivo separado para atualizar os valores de campos que estejam faltando. Valores únicos são combinados com o campo de referência. Quaisquer campos presentes no nó no outro arquivo mas não no original serão acrescentados. Campos podem ser excluídos no arquivo original para forçar a atualização, pois o campo deve estar faltando para que ela ocorra (não basta que esteja vazio).

Ordenação

O menu "Dados" também contém os comandos "Ordenar Filhos do Nó", "Ordenar Tipo no Ramo" e "Ordenar Ramo por Título". Os dois primeiros permite selecionar diversos campos para serem usados como chave primária, secundária, etc. As chaves são selecionadas em ordem com o botão esquerdo do mouse e a direção é alterada com o botão central do mouse. O comando "Ordenar Filhos do Nó" ordena apenas os filhos da seleção, enquanto o comando "Ordenar Tipo no Ramo" ordena todos os descendentes de um tipo dado. O comando "Ordenar Ramo por Título" ordenará todos os descendentes, mas apenas pelo texto do título de cada nó, não por chaves particulares.

Filtragem

O comando "Filtrar Dados" permite remover nós com base em regras definidas pelo usuário. Se há mais de um tipo de dados entre os descendentes da seleção, o tipo a ser filtrado será selecionado. A seguir, regras lógicas podem ser definidas com base em qualquer dos campos do tipo. Múltiplas regras podem ser ligadas pelos operadores "e" e "ou" (pressione o botão "Incluir Regra"). Quaisquer nós descedentes do tipo selecionado que não combinarem com as regras serão excluídos (incluindo seus nós filhos). O nome do arquivo atual receberá o prefixo "_filter" para evitar sobrescrever o documento completo. Se o documento já havia sido modificado, haverá um aviso permitindo salvar os dados de antes da filtragem. Uma vez feita, não há como desfazer a filtragem.

Numeração

O comando "Numeração" é usado para incluir campos de numeração nos nós descendentes. Esses campos não são atualizados automaticamente quando a árvore é modificada - é preciso repetir o comando "Numeração". No diálogo, o nome de um campo novo ou existente é informado, e o nó raiz (selecionado) pode ser incluido na numeração se desejado. Um de três estilos pode ser escolhido: o estilo outline reinicia a numeração para cada grupo de filhos, o estilo seção anexa o número do filho ao número do pai, e o estilo nível único numera apenas o primeiro nível de filhos. Os formatos padrão podem ser usados("I, II..., A, B..., 1, 2..." para outlines; "1, 2..., 1.1, 1.2..." para seções), ou formatos personalizados podem ser especificados para cada nível. Os formatos personalizados devem conter um dos seguintes caracteres: "1", "A", "a", "I", ou "i". A série irá continuar daí (usando números, letras ou numerais romanos, respectivamente). A última ocorrência de um destes caracteres no texto do formato será usada - assume-se que as anteriores são parte do formato.

Modificar Seleções

Finalmente, o comando "Modificar Dados Selecionados" permite modificar o valor de um campo simultaneamente em todos os nós selecionados. Simplesmente selecione o campo desejado e informe o novo valor.


Impressão

Opções de Impressão

A visão "Exibir" do painel direito mostra o texto formatado do nó atual e seus filhos. A saída formatada pode ser impressa. Para impressão, começando do nó atual, os descendentes do nó são exibidos com os nós filhos indentados. O nó raiz pode ser incluído ou excluído, e itens com pais fechados na árvore podem ser omitidos.

Há opções adicionais no diálogo "Opções de Impressão" para configurar fontes de impressão, tamanho das margens, o número de colunas, e para acrescentar linhas à estrutura em árvore. Essas linhas conectam os nós pais a seus nós filhos. Eles podem tornar mais fácil visualizar as relações pai/filho, especialmente através de múltiplas páginas. As linhas podem não ser exibidas de forma correta quando estiverem sendo usadas algumas das tags HTML para formatação.

Por padrão, TreeLine evitará quebrar páginas entre um nó pai e seu primeiro nó filho. Este comportamento pode ser desativado alterando a opção de impressão "Manter o primeiro filho com o pai".

Cabeçalhos e Rodapés

Também no diálogo de opções de impressão está um botão para configurar os cabeçalhos e rodapés de impressão. Ele abre um diálogo com campos de informações do arquivo à esquerda e seis campos de edição de cabeçalho/rodapé (justificados à esquerda, centro e direita) à direita. Estes campos podem ser acrescentados e combinados com outros textos nos campos de edição, exatamente como no diálogo "Dados->Configurar Tipos de Dados". As configurações de cabeçalhos e rodapés são salvas com o arquivo TreeLine.

Visualização da Impressão

Uma prévia será exibida antes da impressão (mas depois de clicar 'OK' no diálogo de impressão normal), por padrão. Essa prévia irá exibir mais detalhes se sua janela for tornada maior.

Problemas de Impressão

Alguns problemas de impressão, especialmente problemas com margens e quebra de parágrafos, podem ser eliminados mudando a fonte de impressão para uma fonte que seja melhor suportada pela impressora.


Gerenciamento de Arquivos

Compressão de Arquivos

Um arquivo TreeLine é um texto XML. Há opções para trabalhar com arquivos comprimidos (formato gzip) para economizar espaço. Arquivos individuais pode ser configurados para o modo comprimido a partir de "Ferramentas->Opções de Arquivo" ou do diálogo "Salvar Como". Há também uma opção geral para configurar o modo padrão para novos arquivos.

Criptografia de Arquivos

Há uma opção de criptografia de arquivos para proteger com senha os arquivos TreeLine. Arquivos individuais pode ser configurados para o modo criptografado a partir de "Ferramentas->Opções de Arquivo" ou do diálogo "Salvar Como". Há também uma opção geral para configurar o modo padrão para novos arquivos. A criptografia usa a função hash SHA - ela dever ser suficientemente segura.

Salvamento Automático

Uma função de salvamento automático pode armazenar arquivos que ainda não foram salvos com um "~" anexado ao nome. Os arquivos de backup são automaticamente removidos quando o arquivo é salvo ou quando o TreeLine termina de modo normal. O intervalo de tempo para salvamento automático é configurado nas opções gerais. Configurar esse intervalo como zero desativa esta função.

Salvamento do Estado da Árvore

Ao abrir um arquivo usado recentemente, TreeLine irá restaurar o estado dos nós abertos e selecionados. Esta informação é armazenada no arquivo de configuração do TreeLine do usuário. Se desejado, esta função pode ser desativada com uma opção geral.

Linha de Comando

Opções de linha de comando permitem a importação e exportação não-interativa de arquivos. Isso permite o agendamento de execuções automatizadas. Para maiores detalhes, execute "treeline -h" a partir da linha de comando. Se estiver usando um binário para windows, a saída no console é suprimida, então ela precisa ser redirecionada para um arquivo de log ("treeline -h > log.txt").


Importação de Arquivos

Texto Delimitado

Um arquivo TreeLine é um arquivo de texto marcado em XML. Outros tipos de arquivo de texto podem ser importados simplesmente abrindo-os. Abrir um arquivo que não é XML TreeLine válido resultará em um aviso perguntando pelo tipo de importação desejada.

TreeLine pode abrir um arquivo de texto com uma estrutura em árvore representada pelas tabulações antes de cada linha. Nesse caso, apenas o título do nó é importado, sem nenhum campo adicional. Este método é usado para abrir arquivos de versões antigas do TreeLine.

Uma tabela delimitada por tabulações também pode ser importada. Ela se torna um único nível de nós filhos sob o nó raiz, com cada nó contendo campos de cada coluna da tabela. A primeira linha da tabela é usada como nomes dos campos e cada linha posterior torna-se um nó.

Texto Simples

Há dois tipos de importação de texto simples. Um cria um nó separado para cada linha no arquivo. O outro cria um nó para cada parágrafo, assumindo que parágrafos são separados por linhas em branco. Em ambos os casos, o arquivo TreeLine resultante terá todo o texto sob um único nó pai, mas é um bom ponto de partida. Estrutura adicional pode ser acrescentada depois.

Arquivos Treepad

Há também um filtro para importar arquivos do programa shareware Treepad. Apenas os nós de texto do Treepad são suportados.

Arquivos de Favoritos

TreeLine pode importar arquivos de favoritos no formato Mozilla HTML (dos navegadores Mozilla, Firefox e Netscape) e no formato XBEL (dos navegadores Konqueror, Galeon e Elinks). Cada favorito torna-se um nó com um nome e um campo do tipo link. Algumas das informações disponíveis nos arquivos, como datas de visita e referências a ícones, não serão importadas. Pàra um exemplo, veja o arquivo "sample_bookmarks" (usando o comando"Arquivo->Abrir Exemplo").

XML Genérico

TreeLine pode importar e exportar arquivos XML genéricos. Estas rotinas não possuem muita inteligência - cada nó torna-se um elemento XML e cada campo torna-se um atributo XML. Conteúdo de texto XML torna-se um campo chamado "Element_Data". Isso permite ao TreeLine funcionar como um editor de XML rudimentar.


Exportação de Arquivos

HTML

Arquivos são exportados com o comando "Arquivo->Exportar". Ele exibe um diálogo com os tipos de exportação e opções disponíveis.

A saída em um único arquivo HTML é semelhante à impressão, com opções similares. Ela pode incluir o cabeçalho e o rodapé de impressão no arquivo HTML, e o número de colunas pode ser definido.

Há também a exportação de HTML em arquivos múltiplos, que cria uma estrutura de diretórios. Os diretórios recebem seus nomes a partir do conteúdo do primeiro campo de dados, que precisa conter nomes de arquivo permitidos pelo sistema operacional e não ter duplicatas sob o mesmo nó pai. Cada arquivo HTML é uma tabela de dados para um conjunto de nós irmãos, com links para as páginas do nó pai e dos nós filhos.

Texto Delimitado

Os dados podem ser exportados para o formato de texto dos títulos indentado por tabulações (o velho formato de texto do TreeLine) e tabelas delimitadas por tabulações. Estes formatos são os mesmos que os formatos de importação correspondentes. Ao exportar para uma tabela, apenas o primeiro nível de nós filhos é utilizado, então você pode desejar achatar os dados antes de exportar.

Arquivos de Favoritos

TreeLine pode exportar arquivos de favoritos no formato Mozilla HTML (dos navegadores Mozilla, Firefox e Netscape) e no formato XBEL (usado pelos navegadores Konqueror, Galeon e Elinks).

XML Genérico

TreeLine pode importar e exportar arquivos XML genéricos. Estas rotinas não possuem muita inteligência - cada nó torna-se um elemento XML e cada campo torna-se um atributo XML, exceto por campos chamados "Element_Data", que se tornam o texto do elemento. Isso permite ao TreeLine funcionar como um editor de XML rudimentar.

XSLT

Além de exportar os dados, o formato usado por um arquivo pode ser exportado para um arquivo XSLT. isso pode ser usado para exibir os dados XML de um arquivo TreeLine nativo em um navegador obediente aos padrões sem precisar exportar os dados para HTML. Versões recentes da maioria dos navegadores obedecem ao padrão XSLT. Note que formatação complexa de campos será ignorada pelo XSLT.

Ao exportar para XSLT, um link para o arquivo XSL será incluído no arquivo TreeLine. Note que o arquivo TreeLine deverá então ser salvo. Em geral, o arquivo TreeLine deverá ter uma extensão .xml para poder ser aberto em um navegador. Depois disso, o arquivo XSL não precisará ser re-exportado quando houver alterações nos dados (apenas se houver alterações na formtação).

Se tags HTML forem usadas em formatos de dados que serão exportados para XSLT, elas devem usar o estilo xHTML style (<br /> ao invés de <br>). Ao exportar, haverá um aviso perguntando o nome de uma folha de estilo opcional (css). Este nome será armazenado no arquivo TreeLine como padrão para exportações futuras. Além disso, a referência ao arquivo XSLT no arquivo TreeLine pode ser removida com o comando "Ferramentas->Remover Referência XSLT".


Plugins

Descrição

TreeLine possui uma interface para módulos de extensão "plugin". Isso permite que extensões possam ser escritas por vários programadores para fornecer funcionalidades necessárias a poucos usuários sem aumentar desnecessariamente o aplicativo principal. Os plugins podem acrescentar novos itens aos menus, acessar os dados dos arquivos TreeLine, e ler e escrever arquivos TreeLine.

Plugins disponíveis atualmente são listados na página de "Downloads" do website do TreeLine.

Instalação

Os plugins são instalados copiando seu arquivo Python (*.py) no diretório de plugins ("<prefix>/lib/treeline/plugins/" no Linux ou "TreeLine\lib\plugins\" no Windows). Uma lista de plugins carregados pode ser obtida usando o comando "Ajuda->Sobre os Plugins".

Há também uma opção no arquivo de configuração, "UserPluginDir", que permite especificar um diretório de plugins alternativo. Isso permite instalar plugins sem ter o acesso de administrador/root. Esta opção só pode ser alterada editando o arquivo de configuração diretamente (~/.treeline no Linux, treeline.ini no Windows).

Interface

Informações sobre como escrever novos plugins pode ser encontrada no arquivo "plugininterface.py" no código fonte do TreeLine.


Problemas Comuns

Erros de XML

Uma mensagem de erro, "Error loading XML Parser", tipicamente significa que o TreeLine não conseguiu encontrar uma biblioteca XML necessária. Sob Linux, Python usa bibliotecas externas para análise de XML. Instalar a biblioteca expat ou o pacote PyXML deve resolver o problema. Sob Windows, Python inclui um parser, então este erro não deve acontecer a menos que alguns arquivos estejam faltando ou corrompidos.

Problemas com Unicode

Há um problema que faz com que o texto na árvore e na saída de dados apareça com quadrados entre cada caractere e truncado antes do fim. Isto geralmente é devido a um problema de Unicode com certos pacotes RPM da PyQt em sistemas Red Hat. A solução é atualizar para um RPM da PyQt versão 3.7 ou superior. Um RPM da biblioteca sip da mesma versão também deve ser instalado.

Impressão

Alguns problemas de impressão, especialmente problemas com margens e quebra de parágrafos, podem ser eliminados mudando a fonte de impressão para uma fonte que seja melhor suportada pela impressora.


Histórico das Revisões

O histórico completo das revisões pode ser encontrado na versão em inglês do arquivo LeiaMe.


Perguntas, Comentários, Críticas?

Há uma lista de email para usuários discutirem toda e qualquer coisa a respeito do TreeLine. Este é o lugar para discussões de desenvolvimento (de roadmaps a sugestões de características a beta testing), anúncios de lançamento de novas versões, relatórios de erros, e discussões de usuários em geral (de novos usuários a dicas & truques a exemplos de configuração).

Para inscrever-se, entre em
www.bellz.org/mailman/listinfo/treeline. Eu espero que esta seja uma lista com baixo volume de mensagens.

Se você não quiser inscrever-se na lista de email, eu posso ser contatado por email em: doug101 AT bellz DOT org

Eu aceito qualquer tipo de retorno, incluindo relatórios de quaisquer erros que você encontre. Além disso, você pode checar periodicamente em www.bellz.org para quaisquer atualizações.