/doc/Portuguese/userguide-pt.t2t
http://txt2tags.googlecode.com/ · Unknown · 1736 lines · 1235 code · 501 blank · 0 comment · 0 complexity · ff6cc7b6181103b19ee14898de320836 MD5 · raw file
- Guia do Usuário Txt2tags
- Aurelio, %%date(%c)
- Tradução para o português: César A. K. Grossman
- %!target: html
- %!encoding: UTF-8
- %!options: --toc --toc-level 2
- %!preproc: IMGPATH ../userguide
- %!postproc(html): '(<LI>.*include </A>)$' '\1 <b>[NOVO!]</b>'
- %!postproc(html): '(<LI>.*%!Target</A>)$' '\1 <b>[NOVO!]</b>'
- %!postproc(html): '(<LI>.*%!Options</A>)$' '\1 <b>[NOVO!]</b>'
- %!postproc(html): '(<LI>.*linha de comando</A>)$' '\1 <b>[NOVO!]</b>'
- %!postproc(html): '(<LI>.*Editores de Texto</A>)$' '\1 <b>[NOVO!]</b>'
- %%% Embedded CSS code
- %
- %!postproc(html): ^<HEAD>$ '<HEAD>\n<STYLE TYPE="text/css">\n@#@'
- %!postproc(html): (@#@)$ 'body {background-color:#ddeeff; color:black; \n\1'
- %!postproc(html): (@#@)$ ' margin:2em; text-align:justify;} \n\1'
- %!postproc(html): (@#@)$ 'a {text-decoration:none;}\na:hover {color:red;}\n\1'
- %!postproc(html): (@#@)$ 'a:visited {color:purple;}\ndl {margin:1em;} \n\1'
- %!postproc(html): (@#@)$ 'h1 {text-align:center; background-color:blue; \n\1'
- %!postproc(html): (@#@)$ ' color:white; padding:8px;} \n\1'
- %!postproc(html): (@#@)$ 'h2 {padding-top:20px;}\nhr {border-style:none;}\n\1'
- %!postproc(html): (@#@)$ 'code {background-color:lightblue;} \n\1'
- %!postproc(html): (@#@)$ 'table {border-style:solid; border-color:black;}\n\1'
- %!postproc(html): (@#@)$ 'th {background-color:lightblue; padding:1em;} \n\1'
- %!postproc(html): (@#@)$ 'td {border-style:none; background-color:white;}\n\1'
- %!postproc(html): (@#@)$ 'pre {border-style:solid; border-width:1px 1px; \n\1'
- %!postproc(html): (@#@)$ ' background-color:lightblue; padding:8px; \n\1'
- %!postproc(html): (@#@)$ ' border-color:black;} \n\1'
- %!postproc(html): @#@$ </STYLE>
- % 23/08/2003 grossman: traduzido para o português
- % 13/07/2004 jic : revisado e atualizado por jic conforme V2.0 beta 4
- % 22/07/2004 aurelio : revisado para a v2.0
- = Sobre este documento =
- Olá, eu sou o guia do usuário do txt2tags!
-
- Aqui você encontra toda a informação disponível sobre a
- ferramenta de conversão de textos txt2tags.
-
- Minha versão atualizada pode ser encontrada em
- http://txt2tags.org/userguide/
-
- Para mais informações e versões recentes, visite
- [o website do txt2tags http://txt2tags.org/].
-
- Bom proveito!
- ========================================================================
- = Parte I - Introdução ao Txt2tags =
- == Suas Primeiras Questões ==
- Este capítulo apresenta o txt2tags, introduzindo as funcionalidades e
- objetivo do programa.
- ------------------------------------------------------------------------
- === O Que É? ===
- O txt2tags é uma ferramenta de formatação e conversão de texto.
- O txt2tags converte um arquivo texto com algumas marcas para qualquer um
- dos tipos de arquivos suportados:
- - Documento HTML
- - Documento XHTML
- - Documento SGML
- - Documento LaTeX
- - Página man UNIX
- - Apresentação Magic Point
- - Página MoinMoin
- - Documento PageMaker 6.0
- - Texto Plano (sem marcações)
- ------------------------------------------------------------------------
- === Por Quê Eu Devo Usá-lo? ===
- Você achará o txt2tags bastante útil se você:
- - precisa publicar documentos em diferentes formatos
- - precisa manter documentos atualizados em diferentes formatos
- - escreve manuais ou documentos técnicos
- - não sabe como escrever um documento em um formato específico
- - não tem um editor específico para um certo formato.
- - quer usar um editor de texto simples para atualizar seus documentos
- E a motivação principal é:
- - economizar tempo, escrevendo **conteúdo**, sem se preocupar com
- **formatação**
- ------------------------------------------------------------------------
- === Quais vantagens oferece em relação a outras ferramentas? ===
- O txt2tags possui uma forma bem direta de crescimento, seguindo alguns
- conceitos básicos. Os conceitos a seguir se destacam:
- | //Arquivo fonte legível// | As marcações do txt2tags são bastante simples, quase naturais.
- | //Documento destino legível// | Da mesma forma que o arquivo fonte, o código do documento gerado também é legível, alinhado e possui linhas curtas.
- | //Consistência na Marcação// | As marcações txt2tags são únicas, atendendo todos os tipos de documentos e não sendo confundidas com o conteúdo.
- | //Regras Consistentes// | Da mesma forma que as marcas, as regras aplicadas a elas são uniformes, não há "exceções" ou "casos especiais".
- | //Estruturas Simples// | Toda a formatação suportada é **simples**, sem opções extras ou modificadores complexos de comportamento. Uma marcação é só uma marcação, sem opções adicionais.
- | //Fácil de aprender// | Com marcações simples e o código fonte legível, a curva de aprendizado é bem amigável.
- | //Bons Exemplos// | Os **arquivos de exemplo** incluídos com o pacote dão mostras reais de documentos simples e super-estruturados, escritos no formato txt2tags.
- | //Ferramentas Valiosas// | Os **arquivos de sintaxe** incluídos com o pacote (para os editores vim, emacs, nano e kate) ajudam a escrever documentos sem erros sintáticos.
- | //Três interfaces ao usuários// | Há uma **interface Gráfica Tk** que é bastante amigável, uma **inteface Web** para usar remotamente ou na intranet, e uma **interface de Linha de Comando**, para usuários avançados e scripts.
- | //Suporte a Scripts// | Com o modo completo de linha de comando, um usuário experiente pode **automatizar** tarefas e efetuar **pós-edições** nos arquivos convertidos.
- | //Baixe e Execute / Multiplataforma// | O txt2tags é apenas um **script Python**. Não há necessidade de compilá-lo ou carregar módulos extras. Assim, ele pode ser executado sem problemas em máquinas *NIX, Linux, Windows e Macintosh.
- | //Atualizações Freqüentes// | O programa possui uma lista de discussões com usuários ativos que sugerem correções e melhorias. O próprio autor é um usuário intenso em casa e no trabalho, por isto o desenvolvimento não irá parar tão cedo.
- ------------------------------------------------------------------------
- === Tenho que pagar por ele? ===
- || Absolutamente NÃO! |
- O txt2tags é um programa gratuito, GPL, open source, domínio público,
- etc...
- Você pode copiar, usar, modificar, vender, liberar como seu. As
- políticas de software e copyright não são uma das maiores preocupações
- do autor.
- ------------------------------------------------------------------------
- == Estruturas de Formatação Suportadas ==
- Segue uma lista de todas as estruturas suportadas pelo txt2tags.
- - cabeçalho (título, nome do autor, data)
- - títulos de seções (numeradas ou não)
- - parágrafos
- - modificadores de fontes
- - negrito
- - itálico
- - sublinhado
- - fonte monoespaço (verbatim)
- - monoespaço no meio de um parágrafo
- - linha monoespaçada
- - trecho em monoespaçado
- - citações
- - links
- - Links de Internet (URL)
- - links de email
- - links locais
- - links nomeados
- - listas
- - listas com marcadores
- - listas numeradas
- - listas de definição
- - linha horizontal de separação
- - imagems (com alinhamento inteligente)
- - tabela (com ou sem borda, com alinhamento inteligente)
- - marcação especial para texto que não deve ser formatado
- - macro especial para a data atual (com formatação flexível)
- - comentários (para notas, A FAZER, CORREÇÕES, etc.)
- ------------------------------------------------------------------------
- == Formatos Suportados ==
- : **HTML**
- Todo mundo sabe o que o HTML é (dica: Internet).
- O txt2tags gera documentos HTML limpos, que tem boa apresentação e cujo
- código fonte é legível. Ele NÃO USA javascript, frames ou outras
- técnicas de formatação fúteis, que não são necessárias para documentos
- técnicos simples. Mas um arquivo CSS separado pode ser utilizado, se for
- desejado. O Txt2tags gera código "//HTML 4.0 Transitional//".
- Desde a versão 2.0, o código HTML gerado pelo txt2tags é 100% aprovado
- pelo [validador w3c vhttp://validator.w3.org/].
- : **XHTML**
- Esta é a nova generação do HTML, com regras mais restritas, como fechar
- todas as marcas que forem abertas. Isto torna o código mas fácil de ser
- avaliado e entendido. Para propósitos gerais, considere como HTML. O
- txt2tags gera código "//HTML 4.0 Transitional//".
- Desde a versão 2.0, o código XHTML gerado pelo txt2tags é 100% aprovado
- pelo [validador w3c vhttp://validator.w3.org/].
- : **SGML**
- O SGML é um formato de documento comum que possui aplicações de
- conversão, como [sgmltools http://www.sgmltools.org/]. De um arquivo
- sgml pode-se gerar documentos html, pdf, ps, info, latex, lyx, rtf e
- xml. As ferramentas sgml2* também criam índices (TOC) e quebra de seções
- em subpáginas (sgml2html).
- O txt2tags gera arquivos SGML válidos para a DTD linuxdoc, prontos para
- serem convertidos com uma ferramenta sgml2* sem qualquer arquivo de
- catálogo extra ou outras exigências incômodas do SGML.
- : **LATEX**
- O formato de documentação preferido nos meios acadêmicos, é mais potente
- do que normalmente se considera. Livros completos, fórmulas complicadas
- e qualquer texto complexo pode ser escrito em LaTeX. Mas se prepare para
- perder os cabelos se tentar escever as marcações à mão...
- O txt2tags gera arquivos LaTeX prontos para usar, realizando todos os
- complexos truques de escape e exceções. O escritor deve se preocupar
- exclusivamente com o texto.
- : **MAN**
- As páginas man do UNIX resistiram pelos anos. Formatos de documento vem
- e vão, e elas estão aí, imbatíveis.
- Existem outras ferramentas para gerar documentos man, mas o txt2tags tem
- uma vantagem: uma fonte, múltiplos formatos destino. Assim, o conteúdo
- da mesma página man pode ser convertido para uma página HTML, uma
- apresentação Magic Point, etc.
- : **MGP**
- O [Magic Point http://www.mew.org/mgp/] é uma ferramenta de apresentação
- bastante útil (dica: Microsoft PowerPoint), que usa uma linguagem de
- marcação para definir todas as telas. Desta forma, você pode criar
- apresentações complexas no vi/emacs/notepad.
- O txt2tags gera um arquivo .mgp pronto para ser usado, definindo todos
- os cabeçalhos necessários para as definições de fontes e aparência, bem
- como o suporte aos caracteres acentuados da página de código ISO-8859.
- **Observação 1:** os arquivos .mgp criados pelo txt2tags usam as fontes
- Type1 do XFree86! Desta forma, não é necessário incluir fontes TrueType
- com sua apresentação.
- **Observação 2:** as definições de cor para as fontes são limpas, de
- forma que mesmo com uma paleta de cores de sistema pobre (como em
- ``startx -- -bpp 8``) a apresentação vai ter boa aparência.
- A chave é: converta e use. Não há necessidade de remendos ou de outros
- requisitos.
- : **MOIN**
- Você não sabe o que é o [MoinMoin http://moin.sourceforge.net]? Ele é
- um [WikiWiki http://www.c2.com/cgi/wiki]!
- A sintaxe do Moin é um pouco chata, quando você tem que ficar
- ``{{{'''''acrescentando chaves e plicas'''''}}}``, mas o txt2tags vem
- com as marcações simplificadas e uma solução unificada: uma fonte,
- múltiplos formatos destino.
- : **PM6**
- Aposto que você não sabia, mas o Adobe PageMaker 6.0 tem sua própria
- linguagem de marcação! Estilos, tabelas de cores, embelezadores, e a
- maior parte das funcionalidades acessíveis via cliques de mouse também
- estão disponíveis em sua linguagem de marcação. Você só precisa acessar
- o item de menu "Import tagged text". Apenas para registro, é um formato
- de marcação semelhante ao HTML.
- O txt2tags gera todas as tags e já define um cabeçalho extenso e
- funcional, configurando os estilos de parágrafo e formatações. Esta é a
- parte difícil. **EPA:** Sem quebras de linha! Um parágrafo deve ser uma
- única linha.
- Nota do Autor:
- //Todo meu livro em português sobre [expressões regulares http://guia-er.sf.net/]//
- //foi escrito no vi, convertido para o formato do PageMaker com o//
- //txt2tags e então mandado para o prelo.//
- : **TXT**
- TXT é texto. O único tipo de formatação verdadeiro.
- Apesar das marcações do txt2tags serem bem intuitivas e discretas,
- pode-se removê-las ao converter o arquivo para TXT puro.
- Os títulos são sublinhados, e o texto é basicamente deixado como está no
- código fonte.
- ------------------------------------------------------------------------
- == Situação dos Formatos-Destino para as Estruturas Suportadas ==[estruturas]
- || Estrutura | html | xhtml | sgml | tex | man | mgp | moin | pm6 | txt |
- | cabeçalhos | S | S | S | S | S | S | N | N | S |
- | título de seções | S | S | S | S | S | S | S | S | S |
- | parágrafos | S | S | S | S | S | S | S | S | S |
- | negrito | S | S | S | S | S | S | S | S | - |
- | itálico | S | S | S | S | S | S | S | S | - |
- | sublinhado | S | S | - | S | - | S | S | S | - |
- | pré-formatado | S | S | S | S | - | S | S | S | - |
- | linha pré-formatada | S | S | S | S | S | S | S | S | - |
- | área pré-formatada | S | S | S | S | S | S | S | S | - |
- | área cotada | S | S | S | S | S | S | S | S | S |
- | links internet | S | S | S | - | - | - | S | - | - |
- | links e-mail | S | S | S | - | - | - | S | - | - |
- | links locais | S | S | S | N | - | - | S | - | - |
- | links nomeados | S | S | S | - | - | - | S | - | - |
- | lista não-numerada | S | S | S | S | S | S | S | S | S |
- | lista numerada | S | S | S | S | S | S | S | S | S |
- | lista de definições | S | S | S | S | S | N | N | N | S |
- | linha horizontal | S | S | - | S | - | S | S | N | S |
- | imagem | S | S | S | S | - | S | S | N | - |
- | tabela | S | S | S | S | S | N | S | N | N |
- || Extras | html | xhtml | sgml | tex | man | mgp | moin | pm6 | txt |
- | image align | S | S | N | N | - | S | N | N | - |
- | table cell align | S | S | S | S | S | N | S | N | N |
- || | Legenda
- | **S** | //suportada//
- | **N** | //não suportada (talvez em uma versão futura)//
- | **-** | //não suportada (não pode ser feita neste formato)//
- % | **?** | //não suportada (não estou bem certo se pode ou não ser feito)//
- ------------------------------------------------------------------------
- == As Três Interfaces ao Usuário: GUI, Web e Linha de Comando ==
- Assim como diferentes usuários possuem diferentes necessidades e
- ambientes, o txt2tags é bastante flexivel na forma de ser usado.
- Existem três Interfaces de Usuário para o programa, cada uma atendendo a
- um objetivo definido e com funcionalidades próprias.
- - **GUI**: Escrita em Tk, traz as janelas e os cliques para o txt2tags.
- - **Web**: Escrita em PHP, permite que o usuário execute o txt2tags no
- navegador, não exigindo instalação do lado do cliente.
- - **Linha de Comando**: Escrita em Python, é o núcleo do programa.
- Todas as funcionalidades estão disponíveis como opções de
- linha de comando.
- ------------------------------------------------------------------------
- === Interface Gráfica Tk ===[gui]
- Desde a versão 1.0, há uma bela Interface Gráfica, que funciona do
- Linux, Windows, Mac e outros.
- O programa automaticamente detecta se seu sistema pode apresentar a
- interface e a lança quando é chamado sem argumentos. Pode-se forçar a
- apresentação da Interfaca Gráfica com a opção ``--gui``. Se estiver
- faltando algum recurso o programa irá alertar.
- **Nota:** O módulo Tkinter é necessário. Como ele vem com a
- distribição padrão do Python você já deve tê-lo.
- Ela é bastante simples e fácil de usar:
- [IMGPATH/gui.png]
- + Você localiza o arquivo fonte .t2t no disco e suas opções são
- carregadas.
- + Se o destino ainda estiver vazio, você deve escolher um.
- + Há algumas opões que podem ser escolhidas, mas nenhuma delas é
- essencial.
- + Finalmente, pressione o botão "Converter!".
- Uma boa opção a selecionar é "//Dump to screen//", assim se pode
- verificar o código resultante em uma janela separada, sem que o arquivo
- seja salvo. Quando o código estiver correto, basta desmarcá-la e o
- arquivo será gravado.
- As cores padrão podem ser mudadas no arquivo ``~/.txt2tagsrc``,
- configurando em ``%!guicolors``. Por exemplo:
- ```
- % minhas cores para a interface (fundo1, texto1, fundo2, texto2)
- %!guicolors: blue white brown yellow
- ```
- ------------------------------------------------------------------------
- === Interface Web ===[web]
- A Interface Web está em funcionamento na Internet no endereço
- http://txt2tags.org/online.php, permitindo que o programa possa ser
- usado e testado antes de ser copiado.
- [IMGPATH/web.png]
- Esta interface também pode ser colocada na intrant para uso local,
- evitando a instalação do txt2tags em todas as máquinas.
- ------------------------------------------------------------------------
- === Interface de Linha de Comando ===[linhadecomando]
- Para usuários de linha de comando acostumados, o parâmetro --help deve
- ser suficiente:
- ```
- Uso: txt2tags [OPÇÕES] [arquivo.t2t ...]
- -t, --target define o formato do destino. tipos suportados:
- html, xhtml, sgml, tex, man, mgp, moin, pm6, txt
- -i, --infile=ARQ define ARQ como o arquivo fonte ('-' para STDIN)
- -0, --outfile=ARQ define ARQ como o arquivo destino ('-' para STDOUT)
- -n, --enum-title numera todos os títulos como 1, 1.1, 1.1.1, etc
- -H, --no-headers suprime os cabeçalhos, título e rodapé
- --headers exibe os cabeçalhos, título e rodapé (padrão LIGADO)
- --encoding informa a codificação de destino (utf-8, iso-8859-1, etc)
- --style=ARQ utiliza ARQ como estilo do documento (CSS no Html)
- --css-sugar insere tags compatíveis com CSS em destinos HTML e XHTML
- --mask-email esconde e-mails dos robôs de SPAM. x@y.z vira <x (a) y z>
- --toc inclui o Índice (Table of Contents) no documento destino
- --toc-only exibe o Índice do documento e sai
- --toc-level=N define o nível máximo do Índice para N
- --rc lê a config do usuário em ~/.txt2tagsrc (padrão LIGADO)
- --gui carrega a interface gráfica escrita em TK
- -v, --verbose exibe mensagens informativas durante a conversão
- -h, --help exibe este texto de ajuda e sai
- -V, --version exibe a versão do programa e sai
- --dump-config exibe todas as configurações encontradas e sai
- Opções para DESLIGAR funcionalidades:
- --no-outfile, --no-infile, --no-style, --no-encoding, --no-headers
- --no-toc, --no-toc-only, --no-mask-email, --no-enum-title, --no-rc
- --no-css-sugar
- Exemplo:
- txt2tags -t html --toc meuarquivo.t2t
- Normalmente a saída convertida é gravada em 'arquivo.<tipo>'.
- Utilize --outfile para forçar um nome para o arquivo de saída.
- Se o arquivo de entrada é '-', lê de STDIN.
- Se o arquivo de saída é '-', envia a saída para STDOUT.
- ```
- ==== Exemplos ====
- Supondo que exista um arquivo de marcação chamado ``file.t2t``, vamos nos
- divertir um pouco.
- | **Convertendo para HTML** | ``$ txt2tags -t html file.t2t``
- | **O mesmo, usando redirecionamento** | ``$ txt2tags -t html -o - file.t2t > file.html``
- | | .
- | **Incluindo uma Tabela de Conteúdo** | ``$ txt2tags -t html --toc file.t2t``
- | **Idem, numerando os títulos** | ``$ txt2tags -t html --toc --enum-title file.t2t``
- | | .
- | **Visualização Rápida do Conteúdo** | ``$ txt2tags --toc-only file.t2t``
- | **Quem sabe com números?** | ``$ txt2tags --toc-only --enum-title file.t2t``
- | | .
- | **Linha simples de STDIN** | ``$ echo -e "\n**bold**" | txt2tags -t html --no-headers -``
- | **Testando o Mascaramento de Email** | ``$ echo -e "\njohn.wayne@farwest.com" | txt2tags -t txt --mask-email --no-headers -``
- | **Edição pós-conversão** | ``$ txt2tags -t html -o- file.t2t | sed "s/<BODY .*/<BODY BGCOLOR=green>/" > file.html``
- : //Nota//
- Desde a versão 1.6 você pode fazer pre e pós processamento usando as
- macros de configuração ``%!preproc`` e ``%!postproc``.
- ========================================================================
- = Parte II - OK, eu quero um. E agora? =[instalacao]
- Basta baixar o programa e executar o mesmo no seu computador.
- == Download e Instalação do Python ==
- Antes de mais nada, deve-se baixar e instalar o interpretador Python
- para o seu sistema. Se você já o tem, então pule eset passo.
- O Python é uma das melhores linguagens de programação que existem, ela
- pode ser utilizada no Windows, Linux, UNIX, Macintosh, e outras
- plataformas, e pode ser baixada do
- [web site do Python http://www.python.org]. As dicas de instalação podem
- ser encontradas no mesmo site. O txt2tags funciona com o Python 1.5 ou
- posterior.
- Se você não tem certeza de ter o Python ou não, abra um console (tty,
- xterm, MSDOS) e escreva ``python``. Se ele não estiver instalado, o
- sistema vai lhe informar.
- == Copiando o txt2tags ==
- O local oficial de distribuição do txt2tags é na homepage do programa,
- em http://txt2tags.org/src.
- Todos os arquivos do programa estão em um tarball (arquivo .tgz), que
- pode ser expandido pela maioria dos utilitários de compressão (incluindo
- o Winzip).
- Simplesmente pegue a **última** versão (data mais recente, número de
- versão maior). As versões anteriores estão lá apenas por razões
- históricas.
- == Instalação do txt2tags ==
- Como é apenas um script Python, o txt2tags não precisa ser instalado.
- O único arquivo necessário para usar o programa é o script txt2tags. Os
- outros arquivos do tarball compreendem a documentação, ferramentas e
- arquivos de exemplo.
- O modo mais seguro de usar o txt2tags é chamar o Python com ele:
- ``` prompt$ python txt2tags
- Se você quiser "instalar" o txt2tags no sistema como um programa
- independente, basta copiar (ou criar um link) o script txt2tags para um
- diretório que esteja no PATH do sistema e certificar-se que o sistema
- saiba como executar o mesmo.
- : **UNIX/Linux**
- Torne o script executável (``chmod +x txt2tags``) e copie o mesmo para
- um diretório no $PATH (``cp txt2tags /usr/local/bin``)
- : **Windows**
- Renomeie o script, acrescentando a extensão .py
- (``ren txt2tags txt2tags.py``) e o copie para um diretório que esteja
- no PATH do sistema (``copy txt2tags.py C:\WINNT``)
- Depois disto, pode-se criar um ícone no desktop para o programa, se
- quiser usar a Interface Gráfica do programa.
- === Pacotes Especiais para Usuários Windows ===
- Existem dois arquivos de distribuição .EXE para o txt2tags, que instalam
- o programa em máquinas Windows com apenas alguns cliques:
- - O script txt2tags para aqueles que tem o interpretador Python
- instalado
- - A versão stand-alone, que não requer a instalação do interpretador
- Pyton para ser executada (já tem uma versão pequena incluída).
- Visite o site //Txt2tags-Win// para baixar estes pacotes:
- http://txt2tags-win.sf.net/
- == Instalar os Arquivos de Sintaxe dos Editores de Texto ==[sintaxe]
- O txt2tags possui arquivos de sintaxe práticos que podem ser usados com
- os seguintes editores de texto:
- - Vim (www.vim.org)
- - Emacs (www.emacs.org)
- - Nano (www.nano-editor.org)
- - Kate (http://kate.kde.org)
- Os arquivos de sintaxe têm registro de todas as regras e marcações do
- txt2tags, ajudando ao usuário a escrever documentos sem erros. As marcas
- são mostradas coloridas, assim se pode ver se tudo foi escrito
- corretamente.
- | [IMGPATH/vim.png] |
- | O arquivo de exemplo aberto no Editor Vim
- Cada editor tem um procedimento diferente para usar seu arquivo de
- sintaxe. Por favor verifique no cabeçalho de cada arquivo e na
- documentação do editor.
- ========================================================================
- = Parte III - Escrevendo e Convertendo Seu Primeiro Documento =
- Desculpe, este capítulo ainda está em desenvolvimento.
- == As Áreas do documento .t2t ==
- Os arquivos de marcação txt2tags são divididos em 3 áreas. Cada área tem
- suas próprias regras e finalidade. São elas:
- : //Área de Cabeçalho//
- É o lugar para informações sobre o Título do Documento, Autor, Versão e
- Data. (opcional)
- : //Área de Configuração//
- É o local para colocar as configurações Gerais do documento e
- modificadores do funcionamento do analisador. (opcional)
- : //Corpo do Texto//
- É o local para o Conteúdo do Documento (requerida)
- Como vemos acima, as duas primeiras áreas são opcionais, sendo que o
- //Corpo do Texto// é a única área indispensável.
- (//Nota: A **Área de Configuração** foi introduzida no txt2tags na versão 1.3//)
- As áreas são delimitadas por regras especiais, que serão vistas em
- detalhe no próximo capítulo. Por enquanto, esta é uma representação
- gráfica das áreas de um documento:
- ```
- ____________
- | |
- | CABEÇALHO | 1. Primeiro, o cabeçalho
- | |
- | CONFIG | 2. Então a configuração
- | |
- | CORPO | 3. E, finalmente, o corpo do documento
- | |
- | ... | que segue até o final do arquivo.
- | ... |
- |____________|
- ```
- Em resumo, é assim que as áreas são definidas:
- | **Cabeçalhos** | As primeiras 3 linhas do arquivo, ou a primeira linha é deixada em branco se não são usados cabeçalhos
- | **Configuração** | Começam logo depois do cabeçalho (4a. ou 2a. linha) e termina quando a //Área de Conteúdo// começa.
- | **Corpo** | A primeira linha de texto válida (que não é comentário ou configuração) após a //Área de Cabeçalho//.
- === Exemplo Completo ===
- ```
- Título do meu belo documento
- Sr. Fulano da Silva
- Última atualização: %%date(%c)
- %! Target : html
- %! Style : fancy.css
- %! Encoding: UTF-8
- %! Options : --toc --enum--title
- Oi! Este é o meu documento de teste.
- E o seu conteúdo termina aqui.
- ```
- =======================================================================
- = Parte IV - Dominando o Txt2tags =
- == A Área de Cabeçalho ==
- Localização:
- - Posição fixa: **Primeiras 3 linhas** do arquivo. Ponto.
- - Posição fixa: **A Primeira Linha** do arquivo está em branco. Isto
- significa que o cabeçalho está vazio.
- A Área de Cabeçalho é a única que tem uma posição fixa, orientada a
- linhas. Ela está localizada nas três primeiras linhas do código fonte.
- O conteúdo destas linhas é livre, sem necessidade de nenhuma informação
- estática de nenhum tipo. Mas recomenda-se o seguinte para a maioria dos
- documentos:
- - //linha 1//: título do documento
- - //linha 2//: nome e/ou email do autor
- - //linha 3//: data e/ou versão do documento
- (um bom lugar para colocar ``%%date``)
- Tenha em mente que as 3 primeiras linhas do arquivo fonte serão as 3
- primeiras linhas no documento gerado, separadas e com um grande
- contraste em relação ao corpo do texto (ou seja, letras grandes,
- negrito). Se a paginação for permitida, os cabeçalhos estarão separados
- e centralizados na primeira página.
- ==== Menos (ou Nenhuma) Linhas de Cabeçalho ====
- Às vezes os usuários querem especificar menos de três linhas nos
- cabeçalhos, dando apenas o título do documento e/ou informação de data.
- Basta deixar a 2a. e/ou a 3a. linhas em branco e estas linhas não serão
- incluídas no documento gerado. Mas tenha em mente que, mesmo em branco,
- estas linhas ainda são parte dos cabeçalho, e o corpo do documento deve
- começar **após** a 3a. linha.
- O título é o único cabeçalho requerido (a primeira linha), mas se você
- deixar ela em branco, está dizendo que seu documento
- **não tem cabeçalho**. Desta forma, a //Área de Texto// irá começar em
- seguida, na 2a. linha.
- Não usar cabeçalhos no documento é útil se você quiser especificar seus
- próprios cabeçalhos customizados após a conversão. A opção de linha de
- comando ``--no-headers`` é geralmente necessária para este tipo de coisa.
- ==== Direto ao ponto ====
- || Em resumo: "Cabeçalhos são apenas __posições__, não conteúdo " |
- Coloque um texto na primeira linha, ele irá aparecer na primeira linha
- do arquivo gerado. O mesmo para a 2a. e 3a. linhas de cabeçalho.
- ------------------------------------------------------------------------
- == A Área de Configuração ==
- Localização:
- - Começa logo após a Área de Cabeçalhos
- - Começa na **4a. linha** do arquivo se forem especificados **Cabeçalhos**
- - Começa na **2a. linha** se **não** forem especificados **Cabeçalhos**
- - Termina quando a Área de Conteúdo começa
- - Termina com uma linha que não seja de Configuração, ou de
- Comentário, ou que seja uma linha em Branco.
- A Área de Configuração é opcional. A maioria dos usuários pode escrever
- carradas de arquivos txt2tags mesmo sem saber que ela existe, mas os
- usuários experientes irão gostar do poder e controle que ela oferece.
- O uso primário desta área é para definir configurações que afetam o
- comportamento do programa.
- ==== Então, como configurar algo? Qual a sintaxe? ====
- As linhas de configuração são //linhas de comentário especiais//,
- marcadas com um identificador no início ("``!``") que torna estes
- comentários diferentes dos comentários normais. A sintaxe é tão simples
- quanto uma atribuição de valor a uma variável, composta por uma
- palavra-chave e um valor, separados um do outro pelo separador canônico
- dois-pontos ("``:``").
- || %! palavra-chave : valor |
- **``Detalhes da Sintaxe:``** O ponto de exclamação deve ser colocado
- junto com o caractere de comentário, sem espaço entre eles ("``%!``").
- Os espaços em torno da //palavra-chave// e o separador são opcionais, e
- tanto a //palavra-chave// quanto o //valor// podem estar
- indiferentemente em maiúsculas ou minúsculas.
- ==== O que eu posso configurar? Quais são as palavra-chave válidas? ====
- As configurações que podem ser feitas são //Target//, //Options//, //Style//,
- //Encoding//, //PreProc// e //PostProc//.
- A configuração **//Target//** define o destino padrão na qual o
- documento deve ser convertido.
- A configuração **//Options//** é útil para especificar as opções de
- linha de comando padrão para o arquivo fonte. Estas opções podem ser
- sobrescritas pela linha de comando real. Usar esta opção juntamente com
- ``%!target`` permite converter o documento simplesmente comandando:
- ``txt2tags file.t2t``
- A configuração **//Style//** só é suportada pelo tipo de documento
- destino HTML, para definir uma folha de estilo
- (//Cascading Style Sheets - CSS//).
- A configuração **//Encoding//** é necessária para escritores não
- ingleses, que usem letras acentuadas e outros detalhes específicos de
- localização, de forma que o //Conjunto de Caracteres// do documento seja
- personalizado (se permitido).
- A configuração **//PreProc//** é um filtro. Ela define regras do tipo
- "busca e troca" que serão aplicadas ao arquivo original __antes__ que
- qualquer análise por parte do txt2tags ocorra.
- A configuração **//PostProc//** é um filtro. Ela define regras do tipo
- "busca e troca" que serão aplicadas ao arquivo destino __depois__ de
- todo o processamento por parte do txt2tags.
- Exemplo:
- ```
- %! Target : html
- %! Options : --toc --toc-level 3
- %! Style : fancy.css
- %! Encoding: UTF-8
- %! PreProc : "amj" "Aurelio Marinho Jargas"
- %! PostProc: '<BODY.*?>' '<BODY bgcolor="yellow">'
- ```
- ==== Algumas regras sobre as Configurações ====
- - As configurações são válidas somente dentro da Área de Configuração,
- e serão consideradas comentários simples se forem encontradas no
- Corpo do documento.
- - Se a mesma palavra-chave aparece mais de uma vez na Área de
- Configuração, apenas a última será usada. Exceção: options, preproc e
- postproc, que são acumulativas.
- - Uma linha de configuração com uma palavra-chave inválida será
- considerada um comentário.
- - Estas configurações têm precedência sobre o arquivo ``txt2tagsrc``,
- as não sobre as opções de linha de comando.
- ----------------------------------------------------------------
- == O Corpo do Texto ==
- Localização:
- - Começa na primeira linha válida de texto do arquivo
- - Cabeçalhos, Configurações e Comentários **não** são linhas de texto
- válidas
- - Termina no fim do arquivo (EOF)
- Bem, o corpo do texto é tudo que estiver fora das Áreas de Cabeçalho e
- de Configuração.
- O corpo do texto é onde está o conteúdo do documento e todas as
- estruturas e formatações que o txt2tags reconhece. Dentro do corpo podem
- ser também colocados comentários para //A FAZER// e anotações
- particulares.
- Pode-se utilizar a opção de linha de comando ``--no-headers`` para
- converter somente o corpo do documento, suprimindo os cabeçalhos. Esta
- opção é útil quando os cabeçalhos estão em um arquivo separado, que será
- unido ao corpo depois da conversão.
- -----------------------------------------------------------------------
- == Marcações (REGRAS) ==[regras]
- Todas as marcações e sintaxe usadas pelo txt2tags estão detalhadas em
- um [arquivo REGRAS a parte REGRAS].
- -----------------------------------------------------------------------
- == A macro %%date ==[data]
- A macro ``%%date`` chamada sem nenhum parâmetro adicional retorna a data
- atual no formato ISO //yyyymmdd//. Uma formatação opcional pode ser
- especificada usando a sintaxe ``%%date(formato)``.
- O //formato// contém texto de diretivas de formatação, que são compostas
- por um sinal de porcentagem (``%``) seguido por um caractere de
- identificação.
- Segue uma lista de algumas diretivas comuns. A lista completa pode ser
- encontrada em http://www.python.org/doc/current/lib/module-time.html.
- || Diretiva | Descrição |
- | %a | Dia da semana local abreviado.
- | %A | Dia da semana completo.
- | %b | Nome do mês abreviado.
- | %B | Nome do mês.
- | %c | Dia e hora formatados apropriadamente.
- | %d | Dia do mês como um número decimal [01,31].
- | %H | Hora (24 horas) como um número decimal [00,23].
- | %I | Hora (12 horas) como um número decimal [01,12].
- | %m | O mês como um número decimal [01,12].
- | %M | O minuto como um número decimal [00,59].
- | %p | O equivalente local a AM e PM.
- | %S | Os segundos como um número decimal [00,61]. (1)
- | %x | Representação local da data.
- | %X | Representação local da hora.
- | %y | O ano sem o século como um número decimal [00,99].
- | %Y | O ano com o século como um número decimal.
- | %% | Um caractere "%".
- ==== Exemplos ====
- || ``%%date(format)`` | Resultado para: 2004, Jul13, 18:49 |
- | Last Update: %c | Last Update: Tue Jan 13 18:49:32 2004
- | %Y-%m-%d | 2004-07-13
- | %I:%M %p | 18:49 PM
- | Hoje e %A, em %B. | Hoje e Tuesday, em July.
- -----------------------------------------------------------------------
- == O comando %!include ==[include]
- A partir da versão 1.7, é possível usar o comando ``include`` para
- inserir o conteúdo de um arquivo externo dentro do corpo do documento
- original.
- O ``%!include`` não é uma configuração, mas um comando, sendo somente
- válido na área de CORPO do texto.
- O comando ``include`` é útil para dividir um documento grande em vários
- arquivos menores (como capítulos de um livro) ou para incluir todo o
- conteúdo de um arquivo qualquer no documento. Por exemplo:
- ```
- Meu Primeiro Livro
- Dr. Fulano da Silva
- 1ª Edição
- %!include: introducao.t2t
- %!include: capitulo1.t2t
- %!include: capitulo2.t2t
- ...
- %!include: capitulo9.t2t
- %!include: conclusao.t2t
- ```
- Como se pode ver, basta informar o nome do arquivo logo após o comando
- ``%!include``. Também é possível atrelar o comando a um destino
- específico, como em:
- ``` %!include(html): arquivo.t2t
- Note que o ``include`` vai inserir o CORPO do documento .t2t, ignorando
- seu CABEÇALHO e suas CONFIGURAÇÕES. Assim é possível converter o arquivo
- incluído de maneira isolada ou como parte do documento mãe.
- Além de incluir arquivos .t2t, há mais três tipos de inclusão:
- - Inclusão de texto pré-formatado (Verbatim)
- - Inclusão de texto protegido (Raw)
- - Inclusão de texto já convertido (Tagged)
- No tipo **Verbatim** o texto é incluído preservado seus espaços e
- formatação originais. É como se esse texto estivesse entre as marcações
- (```) da área VERB do txt2tags. Para incluir um arquivo dessa maneira,
- basta colocar seu nome entre crases:
- ``` %!include: ``/etc/fstab``
- No tipo **Raw** o texto é incluído "como está", sem tentar encontrar e
- avaliar as marcas do txt2tags dele. É como se esse texto estivesse entre
- as marcações (""") da área protegida. Para incluir um arquivo dessa
- maneira, basta colocar seu nome entre aspas
- ``` %!include: ""bom_texto.txt""
- Já no tipo **Tagged**, o texto é passado diretamente para o documento
- resultante, sem NENHUM tratamento pelo txt2tags. Assim é possível
- incluir tags adicionais, trechos já prontos ou estruturas mais
- complicadas que não são suportadas pelo programa. Outra aplicação é
- incluir um cabeçalho ou rodapé padrão em todos os documentos:
- ``` %!include(html): ''rodape.html''
- Note que o nome do arquivo está entre aspas simples (e não crases como o
- anterior). São estas aspas que indicam que o conteúdo deve ser passado
- diretamente. Como este conteúdo já contém tags, é primordial especificar
- o destino também, para evitar problemas.
- =======================================================================
- = Parte V - Dominando as Diretivas de Configuração =[settings]
- As Diretivas de Configuração são todas opcionais. A maioria dos usuários
- pode muito bem passar sem elas. Mas elas são viciantes, se você começa a
- usá-las, não consegue parar :)
- -----------------------------------------------------------------------
- == %!Target ==
- Usando a configuração Target define o destino padrão definido no
- documento:
- ``` %!target: html
- Assim o usuário pode simplesmente comandar
- ``` $ txt2tags file.t2t
- E a conversão será efetuada para o destino especificado.
- A configuração Target não permite a especificação opcional de destino.
- Afinal, não faz sentido algo como ``%!target(tex): html``.
- -----------------------------------------------------------------------
- == %!Options ==
- Escrever longas linhas de comando toda vez que for necessário converter
- um documento é maçante e sujeito a erros. A configuração Options permite
- que o usuário salve todas as opções de conversão juntas, no próprio
- documento. Desta forma também se garante que o documento sempre será
- convertido da mesma forma, com as mesmas opções.
- Só é necessário escrevê-la sem erros de sintaxe, como se estivesse na
- linha de comando. Mas omita a chamada ao programa "txt2tags" no início e
- o nome do arquivo origem no fim da linha.
- Por exemplo, se você usa esta linha de comando para converter seu
- documento:
- ``` $ txt2tags -t html --toc --toc-level 2 --enum-title file.t2t
- Pode-se economizar um bocado de digitação usando esta configuração de
- Options dentro do documento origem:
- ```
- %!target: html
- %!options(html): --toc --toc-level 2 --enum-title
- ```
- A linha de comando real passa agora a ser apenas "``txt2tags file.t2t``",
- e a conversão pode ser executada dentro do seu editor de textos
- favorito, enquanto o conteúdo está sendo editado. No Vi, o comando é:
- ``` :!txt2tags %
- -----------------------------------------------------------------------
- == %!Encoding ==
- A configuração de Encoding é necessária para autores não ingleses, que
- usam letras acentuadas e outros detalhes específicos, de forma que o
- //Conjunto de Caracteres// do documento gerado possa ser personalizado
- (se possível).
- Os valores válidos para a configuração de Encoding são os mesmos que são
- válidos para documentos, HTML, como //UTF-8// e //koi8-r//. Se você
- não está certo de qual codificação quer usar,
- [esta lista completa (e longa!) http://www.iana.org/assignments/character-sets]
- poderá ser de ajuda.
- Quando for gerado documentos LaTeX, utiliza aliases para a codificação.
- Isto não deve ser problema para o usuário, já que o txt2tags faz a
- tradução internamente. Alguns exemplos:
- || txt2tags/HTML | > | LaTeX |
- | windows-1250 | >>> | cp1250 |
- | windows-1252 | >>> | cp1252 |
- | ibm850 | >>> | cp850 |
- | ibm852 | >>> | cp852 |
- | iso-8859-1 | >>> | latin1 |
- | iso-8859-2 | >>> | latin2 |
- | koi8-r | >>> | koi8-r |
- Se o valor é desconhecido do txt2tags, ele será passado sem tradução,
- permitindo que o usuário especifique codificações personalizadas.
- -----------------------------------------------------------------------
- == %!PreProc ==
- O filtro de usuário PreProc é uma função "busca e troca" que é aplicada
- logo após a linha ter sido lida do arquivo original, antes de qualquer
- tratamento pelo txt2tags.
- Ela é útil para definir algumas abreviações para texto que seja usado
- comumente, como:
- ```
- %!preproc amj "Aurelio Marinho Jargas"
- %!preproc RELEASE_DATE "2004-07-13"
- %!preproc BOLOTA "[images/tiny/bullet_blue.png]"
- ```
- Desta forma, o usuário pode escrever uma linha como:
- ``` Oi, eu sou amj. Hoje é RELEASE_DATE.
- E o txt2tags irá ver esta linha como:
- ``` Oi, eu sou Aurelio Marinho Jargas. Hoje é 2004-07-13.
- Este filtro é um componente que trabalha entre o autor do documento e a
- conversão do txt2tags. É como uma primeira conversão antes da conversão
- "real". Este comportamento funciona exatamente como um filtro Sed/Perl
- externo, chamado assim:
- ``` $ cat arquivo.t2t | preproc-script.sh | txt2tags -
- Assim, o tratamento executado pelo txt2tags irá começar após todas as
- substituições PreProc terem sido feitas.
- -----------------------------------------------------------------------
- == %!PostProc ==
- O filtro de usuário PostProc é uma função do tipo "busca e troca" que é
- aplicada no arquivo resultante, após todos as conversões do txt2tags
- terem sido feitas.
- É útil para defintir alguns refinamentos no documento gerado, mudar
- algumas marcações e acrescentar algumas marcações ou texto extra.
- Alguns exemplos breves:
- ```
- %!postproc(html): '<BODY.*?>' '<BODY BGCOLOR="green">'
- %!postproc(tex) : "\\clearpage" ""
- ```
- Estes filtros mudam a cor de fundo da página HTML e removem as quebras
- de página em arquivos LaTeX gerados.
- As regras do PostProc são iguais a filtros externos Sed/Perl, chamados
- desta forma:
- ``` $ txt2tags -t html -o- arquivo.t2t | postproc-script.sh > arquivo.html
- Antes desta funcionalidade ter sido introduzida, era bastante comum ter
- pequenos scripts para "ajustar" os resultados gerados pelo txt2tags.
- Estes scripts eram, de fato, vários comandos sed (ou assemelhados), para
- fazer algo do tipo "substitua isto por aquilo". Agora estas trocas podem
- ser salvas junto com o texto do documento, e também aproveitar-se da
- poderosa máquina de Expressões Regulares do Python para encontrar os
- padrões.
- -----------------------------------------------------------------------
- == %!Style ==
- - Esta opção é útil na geração de arquivos HTML e XHTML, definindo o
- nome do arquivo CSS que será usado no documento gerado.
- - No formato LaTeX, essa opção é usada para carregar módulos com o
- ``\usepackage``.
- - O mesmo efeito pode ser obtido com a opção de linha de comando
- ``--style``.
- - A opção de linha de comando --style tem precedência sobre a
- configuração de %!style
- -----------------------------------------------------------------------
- == Detalhes dos Filtros PreProc e PostProc ==
- - Estes filtros foram acrescentados ao txt2tags na versão 1.6.
- - Filtros são uma função do tipo "buscar e trocar" (pense no sed)
- - O PREproc é aplicado logo após a linha ser lida, e o POSTproc é
- aplicado após todo o tratamento ter sido feito. Funcionam exatamente
- como em (UUOC à frente):
- ``` $ cat file.t2t | preproc.sh | txt2tags | postproc.sh
- - Escapes especiais como ``\n`` e ``\t`` são interpretados
- - Os filtros são cumulativos e são aplicados na mesma ordem em que são
- definidos
- - Os filtros devem receber exatamente DOIS argumentos
- - Para apagar uma string, troque ela por uma string vazia
- ``` %!postproc: "undesired string" ""
- - Para evitar problemas, sempre use informar explicitamente para que
- destino se aplica o filtro quando estiver usando o PostProc para mudar
- marcações: ``%!PostProc(destino): <isto> <aquilo>``
- - As Expressões Regulares do Python podem ser utilizadas! Elas são
- similares às Regex do Perl. Por exemplo: troque todas as marcações "B"
- para "STRONG" no HTML:
- ``` %!postproc(html): '(</?)B>' '\1STRONG>'
- - Os argumentos dos filtros podem ser passados de 3 formas:
- + Uma palavra simples, sem aspas ou plicas, como FOO (sem espaços)
- + Uma string com aspas duplas, como em "FOO"
- + Uma string com plicas ou apóstrofos, como em 'FOO'
- - Se seu padrão tem aspas, proteja as mesmas com plicas, e vice-versa.
- Alguns exemplos válidos:
- ```
- %!postproc: PADRÃO TROCA
- %!postproc: "PADRÃO" "TROCA"
- %!postproc: 'PADRÃO' 'TROCA'
- %!postproc: PADRÃO "TROCA"
- %!postproc: "PADRÃO" 'TROCA'
- ```
- -----------------------------------------------------------------------
- == Definindo uma Configuração para um Tipo-Destino Específico ==
- Desde a versão 1.6 do txt2tags, todas as Diretivas de Configuração podem
- ser especificadas para um destino específico, usando a sintaxe
- ``%!key(target): value``. Desta forma, o usuário pode definir diferentes
- configurações para diverentes tipos de arquivos gerados.
- Este aspecto é especialmente útil nos filtros pre/postproc, mas pode ser
- utilizado em todas as diretrizes. Por exemplo, configurar diferentes
- valores de Encoding para HTML e LaTeX:
- ```
- %!encoding(html): UTF-8
- %!encoding(tex): latin1
- ```
- **Nota:** O mapeamento de codificações para os nomes especiais
- LaTeX já é parte do txt2tags, o trecho acima é apenas um
- exemplo.
- Para o ``%!options``, pode ser interessante:
- ```
- %!target: sgml
- %!options(sgml): --toc
- %!options(html): --style foo.css
- %!options(txt ): --toc-only --toc-level 2
- ```
- Desta forma, o tipo de destino padrão é o SGML, com TOC. Se o usuário
- executar:
- ``` $ txt2tags -t html file.t2t
- O tipo de destino HTML será feito, e **somente** as opções de
- ``%!options(html)`` serão usadas. Desta forma, a opçõa --style será
- usada e o arquivo HTML não terá TOC.
- === A Precedência é Diferente ===
- Em geral, para as diretivas de configuração, a última encontrada é a
- usada, mas quando usar diretivas explícitas de tipo-destino, elas tem
- precedência sobre as genéricas, não importando qual vem antes. Assim:
- ```
- %!encoding(html): UTF-8
- %!encoding: latin1
- ```
- Irá expandir para 'UTF-8' quando chamado com ``-t html`` mesmo que
- 'latin1' seja definido logo após.
- === Filtros são Cumulativos ===
- Os filtros pre/postproc não tem precedência e não se encaixam no esquema
- "último encontrado", eles são cumulativos. O usuário pode configurar
- múltiplos filtros, e eles serão aplicados na ordem em que são definidos.
- Por exemplo:
- ```
- %!postproc : ^ \t
- %!postproc(txt): ^ '> '
- ```
- Com estes filtros, todos os tipos-destino serão indentados por uma TAB.
- Se o tipo-destino é TXT, ele também receberá citações, como mensagens
- de email.
- ```
- Desta forma Minha bela linha.
- se tornará \t> Minha bela linha.
- ```
- === Em Resumo ===
- - Para filtros, a ordem faz diferença e as regras genéricas __e__
- específicas ao tipo-destino serão usadas
- - Para outras configurações, __somente__ o tipo-destino especificado é
- usado (se definido, é claro), não importando a ordem
- == RC, CONF e a precedência de linha de comando ==
- Há três maneiras de dizer ao txt2tags quais opções e configurações usar:
- + O arquivo de usuário RC (``.txt2tagsrc``)
- + A Área de Configurações CONF do documento
- + As opções de linha de comando
- E esta é a ordem exata de como as configurações são lidas e aplicadas.
- Logo, as configuraçõe dp arquivo RC são lidas primeiro, daí as
- configurações do fonte do documento vêm a seguir, sobreescrevendo as do
- RC e finalmente as opções da linha de comando, mais fortes do que as
- outras duas.
- Então se o "encoding" do documento foi definido nas três opções, a da
- linha de comando será a utilizada.
- =======================================================================
- = Parte VI - Magia Negra =
- Este capítulo não é recomendado para novatos. Ele demonstra como fazer
- coisas estranhas com os filtros txt2tags, abusando de padrões complexos
- e Expressões Regulares.
- **CUIDADO!** Os procedimentos detalhados a seguir NÃO são
- encorajados e podem acarretar danos. Até mesmo algum texto do
- arquivo fonte pode ser perdido no processo de conversão, não
- aparecendo no arquivo gerado. Use estas táticas se você
- realmente precisa delas e sabe o que está fazendo.
- || Filtros são um recurso poderoso, mas podem ser perigosos! |
- || Filtros mal-feitos geram resultados inesperados. |
- Tenha isto em mente, sempre.
- -----------------------------------------------------------------------
- == Inserindo Múltiplas Linhas com %!PostProc (como regras CSS) ==
- Nos filtros, o padrão de troca pode incluir múltiplas linhas usando o
- caractere de quebra de linha, ``\n``.
- Esta funcionalidade pode ser útil para incluir regras CSS curtas em um
- arquivo HTML gerado, sem a necessidade de se criar um arquivo separado.
- É o caso deste Guia do Usuário, que usa estes filtros:
- ```
- %!postproc: <HEAD> '<HEAD>\n<STYLE TYPE="text/css">\n</STYLE>'
- %!postproc: (</STYLE>) 'body { margin:3em ;} \n\1'
- %!postproc: (</STYLE>) 'a { text-decoration:none ;} \n\1'
- %!postproc: (</STYLE>) 'pre,code { background-color:#ffffcc ;} \n\1'
- %!postproc: (</STYLE>) 'th { background-color:yellow ;} \n\1'
- ```
- Todos os filtros estão presos ao primeiro, ao substituir uma string que
- ele inseriu. desta forma, um simples "<HEAD>" torna-se:
- ```
- <HEAD>
- <STYLE TYPE="text/css">
- body { margin:3em ;}
- a { text-decoration:none ;}
- pre,code { background-color:#ffffcc ;}
- th { background-color:yellow ;}
- </STYLE>
- ```
- -----------------------------------------------------------------------
- == Criando Conteúdo "Específico ao Tipo Destino", com %!PreProc ==
- Algumas vezes é necessário inserir algum texto só para um tipo destino
- específico, e não para outros. Este tipo de comportamento estranho pode
- ser feito usando alguns truques de PreProc.
- A idéia é inserir este texto extra no arquivo original como comentário,
- mas marcá-lo de forma que um filtro específico para aquele tipo destino
- irá "descomentar" aquelas linhas.
- Por exemplo, se um parágrafo extra deve ser acrescentado somente no tipo
- destino HTML. Coloque o texto em um comentário especial, como este:
- ```
- %html% Esta página HTML foi produzida pelo [txt2tags http://txt2tags.org].
- %html% Veja o arquivo fonte TXT [aqui fonte.t2t].
- ```
- Como todas estas linhas começam com ``%``, elas são linhas de comentário e
- serão ignoradas. Mas se acrescentarmos este filtro especial:
- ``` %preproc(html): '^%html% ' ''
- A string inicial é removida e aquelas linhas serão "ativadas", deixando
- de ser comentários. Como uma configuração específica a um tipo, este
- filtro será processado apenas quando for gerado um arquivo HTML.
- -----------------------------------------------------------------------
- == Mudando Marcas txt2tags com %!PreProc ==
- Se o usuário for um guru de Expressões Regulares, ele pode personalizar
- a sintaxe do documento, mudando as marcações txt2tags padrão para algo
- que ele achar mais confortável.
- Por exemplo, uma TAB é a marca de citação. Se o usuário não gostar
- disto, ou se seu texto tenha um estranho relacionamento com as TABs, ele
- pode definir uma nova marca para texto citado. Digamos que colocar ">>>"
- seja sua escolha. Então ele irá precisar deste filtro simples:
- ``` %!PreProc: '>>> ' \t
- E no documento original, o texto citado vai parecer algo tipo:
- ```
- >>> Este é um texto de citação.
- >>> O usuário definiu esta marca esquisita.
- >>> Mas elas serão convertidas para TABs pelo PreProc.
- ```
- Antes que a análise do programa comece, os ">>> " esquisitos serão
- convertidos em TABs e o txt2tags irá reconhecer a marca de citação.
- **CUIDADO!** Regras PreProc extremas podem eventualmente mudar
- toda a sintaxe de marcação, e até mesmo gerar conflitos entre as
- marcações. Tenha muito cuidado quando trabalhar com estas
- regras.
- =======================================================================
- = Parte VII - História do txt2tags =[historia]
- Em julho de 2001, foi lançada a primeira versão ao público do txt2tags
- (v0.1). Mas suas origens vem de mais de um ano antes daquele dia...
- Este capítulo ilustra em algumas palavras o desenvolvimento desta
- ferramenta desde a primeira linha ser escrita até a série atual.
- == Janeiro de 1999: Pré História ==
- Do autor:
- //"Minha primeira tentativa de fazer uma ferramenta de//
- //conversão começou em 1999, como um script Bourne Shell//
- //que convertia texto com marcação em uma página HTML. Sim,//
- //Mais Outra ferramenta txt2html. Todo mundo já deve ter feito//
- //uma destas... Em resumo, ele reconhecia marcações simples//
- //como ``*bold*``, ``/italic/``, ``_under_``, e escapava os//
- //caracteres especiais ``< & >`` do HTML. Não muito//
- //impressionante, mas ei, eu era novinho ;)"//
- == Junho 1999: Ainda Pré-História ==
- % ts/antigos/txt2sgml-bash/txt2sgml 25/06/1999
- O autor tem mais a dizer:
- //"Passaram-se alguns meses, e um grande hype em torno de//
- //Sgml chegou à companhia que eu trabalhava (Conectiva). Então o//
- //txt2html tornou-se um script txt2sgml. Eu estava realmente//
- //tentando aprender sobre o SED* naquele tempo, de forma que o//
- //txt2tags na época era um script Bourne Shell com muito//
- //código SED."//
- * **SED:** UNIX Stream EDitor - uma ferramenta de edição
- automática de textos
- Esta versão melhorada, com suporte a Sgml, oferecia suporte a mais
- estruturas como listas e texto preformatado. No seguinte arquivo
- exemplo, pode-se ver as origens das marcações txt2tags:
- ```
- * Esta é uma linha em negrito (NEGRITO orientado a linha? bem...)
- --
- - lista não numerada muito semelhante à lista do txt2tags
- - mas com estes -- para iniciar e terminar a lista
- --
- =----------------------
- Texto preformatado era delimitado pelo =-- padrão.
- Os outros ------- eram apenas cosméticos.
- =----------------------
- ```
- Ainda não era impressionante, mas o grande passo está chegando...
- == Agosto de 2000: Não Mais Pré-História ==
- % verde666.org/sed/programas/txt2*/txt2sgml.sed 20000816 - 20010514
- TODO (txt2sgml.sed)
- == Julho de 2001: Debute das séries 0.x (Lançamento Mundial) ==
- TODO
- == Setembro de 2002: Debute das séries 1.x ==
- : **Anúncio**
- Este release inicia a minha //série 1.x//.
- Mais de um ano de atualizaçõs quase mensais e a //série 0.x//
- proporcionou-me muitos bons recursos, como Linha de Comando e
- interface Web, criação de Sumário (TOC), títulos e listas numerados,
- facilidades STDIN e STDOUT, arquivos de sintaxe vim/emacs e sete
- formatos de destino suportados.
- Para a iniciar a //série 1.x// vou tentar me espalhar por aí, com uma
- boa interface GUI, muita documentação, lista de discussão, base de
- usuários, compatibilidade Unix/Windows/Mac e incluir mais destinos
- (como tex, rtf e xhtml).
- Nesta versão 1.0 já estou com a corda toda, com uma roupa nova
- (Interface Gráfica Tk) e compatibilidade com Unix/Windows/Mac,
- manipulação de quebras de linhas e outros detalhes específicos de cada
- plataforma. Felizmente agora meu mestre pode usar os sistemas Linux,
- Windows 2000, Cygwin e MacOS 8.6 para me testar.
- == 2002, 2003... e as História não pára ==
- : //06 Novembro 2002// - **Liberada minha nova versão 1.1**
- Atenção! Por favor leia //cuidadosamnte// antes de me atualizar!
- Esta nova v1.1 é uma __**quebra de compatibilidade**__ .
- Isto significa que antes de atualizar você deve verificar seus
- arquivos txt2tags atuais, e, possivelmente ajustá-los. Ignorar esta
- versão não é uma opção :) porque as próximas versões consideram que
- você arrumou os seus arquivos.
- Por favor leia o "Guia de Sobrevivência de Atualização para a v1.1"
- para mais informações mais detalhadas sobre //o que// foi mudado e
- //como// ajustar os seus arquivos.
- Mas há algumas boas novas, como:
- - imagens agora podem apontar links, como ``[[img.gif] www.abc.com]``
- - novas regras de foldmethod=syntax no arquivo de sintaxe do Vim
- - melhorias no detector de URL
- : //03 Dezembro 2002// - **Lançamento da nova versão 1.2 (versão LaTeX)**
- Oi! Finalmente aprendi um dos formatos de documento mais usado pelos
- geeks: **//LaTeX//**. Me execute com "``-t tex``" e veja seus arquivos
- .t2t tornarem-se LaTeX, prontos para compilar!
- Ah! Estou ficando esperto e agora posso cuidar de mais de um arquivo
- ao mesmo tempo. Dica: "``*.t2t``"
- E meu último novo recurso é a habilidade de tornar um arquivo HTML em
- um arquivo .t2t "quase pronto". Desculpem-me os não-usuários do vim
- porque isso só funciona neste editor.
- O que você está esperando? Baixe-me agora e teste meus novos recursos:
- ``txt2tags --toc -t tex *.t2t``
- : //20 Dezembro 2002// - **Lançamento da nova versão 1.3**
- Ufa, estou cansado! Muitas modificações foram feitas para esta versão
- e agora preciso de um tempo!
- A novidade inclui uma nova marca (coisa rara de acontecer!) para texto
- protegido. Desta forma você pode facilmente incluir marcas no
- documento destino e eu prometo que não as vou considerar!
- Um novo comando //Encoding// está disponível para permitir que
- usuários de todo o mundo especifiquem suas próprias codificações em
- seus documentos.
- E há mais melhorias e ajustes, mas, por favor leia o arquivo ChangeLog
- por que agora vou dormir. zzZZzzzzZZZZzz...
- : //18 Fevereiro 2003// - **Lançamento da nova versão 1.4**
- I've enjoyed my //X-mas/New Year// vacation, then some lazy days on
- a hot Brazilian beach, what a great time! But now it is time to get
- back to work, so there's a new release of the most sexy text eater
- out there: **me!**
- The burning sun has made lots of changes on me. I'm privately proud
- of my new ability to master table alignment. I can place the table
- centered or not, and I can place //each table cell// contents wherever
- I want! Left, Right, Centered... See AbuseMe! file for a
- demonstration.
- The good news for HTML users is that now I've learned about that
- Cascading thing... SCC, CCS, CSS, I don't remember... Just use my
- new ``--style`` command line option or the ``%!Style:`` setting.
- There's a new ``--toclevel`` option also, and I promisse I'll not make
- TOC deeper than the number you pass me.
- Mmmmmm, there were some bug fixes also, but let's forget about them,
- you know I'm not buggy! ;)
- : //09 Maio 2003// - **Lançamento da nova versão 1.5**
- Tsc, Tsc... Almost three months from the last version, what a shame!
- But the new features will worth the delay.
- The most important improvement is my new ``%!cmdline`` setting. Using
- it you can define default options for each document, and when
- converting, you can call me with no options at all! Example: You place
- a "//%!cmdline: -t html --toc//" line on your source document, then you
- can convert it with the simple "//txt2tags file.t2t//" command.
- There is also a new ``--outfile`` option (``-o`` for short) to set the
- output filename. If you specify "//-o -//", you get the same behaviour
- of the old ``--stdout`` option (which is now deprecated).
- Talking about options, there are the new short ``-H`` and ``-n`` for the
- existing ``--noheaders`` and ``--enumtitle`` options. A nice quick
- example:
- ```
- txt2tags-v1.4 -t html --enumtitle --stdout file.t2t > new.html
- txt2tags-v1.5 -t html -n -o new.html file.t2t
- ```
- Ah! LaTeX target now supports images :)
- : //23 Jul 2003// - **Lançamento da nova versão 1.6**
- Hi there! Here I am again with fresh news.
- Today my v1.6 was released. The main improvement is the new
- ``%!preproc:`` and ``%!postproc:`` user defined filters. They are used to
- do some strange things on documents (see User Guide). There's also a
- new mark + for explicit numbered titles, //+like this+//, so now you
- can mix normal titles with numbered ones, like a book with Appendix.
- Now all the config settings can be linked with a especific target,
- using the new ``%!key(target): value`` syntax. The target specification
- is optional, so the parentesis and its contents can be omitted. A nice
- sample: //%!encoding(html): iso-8859-1//
- Lots of user reported bugs was fixed, titles on LaTeX are unnumbered
- by default (as other targets) and the Gui was improved, showing
- ``%!cmdline`` contents (if any) and refreshing checkboxes when a new
- file is loaded. Gui also can receive options from the command line, as
- in ``txt2tags --gui -n file.t2t``
- : //30 Novembro 2003// - **Lançamento da nova versão 1.7**
- Saiu a minha versão 1.7! Agora tenho o comando que os usuários mais
- pediram: ``%!include``. Com ele você pode incluir texto, tags e até
- mesmo outro arquivo .t2t no documento original. Veja como fazer isso
- no [Guia do Usuário #include].
- Fora isso mais checagens foram adicionadas e bugs foram corrigidos.
- Os usuários do Emacs ficarão felizes com o arquivo novo de sintaxe.
- Os usuários do Vim continuarão felizes com o arquivo de sintaxe
- atualizado.
- **MUITO IMPORTANTE:** Essa versão fecha a minha série 1.x, então não
- haverão versões 1.8 e 1.9. A próxima será a tão esperada 2.0, com
- código reescrito, conversões mais ricas e enxutas e suporte ao
- destino XHTML. Eu serei mais massa!
- ========================================================================
- Fim. ([veja o fonte userguide-pt.t2t])
- % txt2tags is *not* indent oriented as other tools
- % no marks are based on indentation
- % htmldoc (html 2 pdf) http://www.easysw.com/htmldoc/
- % vim and emacs syntax screenshots
- % == Split and language features (only for HTML target) ==
- %
- % ---
- % usage: txt2tags -t html --split <split level> --lang <lang> file.t2t
- %
- % --split split documents. values: 0, 1, 2 (default 0)
- % --lang document language (default english)
- % ---
- %
- % For those who have [sgml-tools http://www.sgmltools.org] installed and
- % running on the system, when generating HTML documents, the split and
- % language features are available. First a SGML text is generated and the
- % sgml2html binary is called.
- %
- % From sgml2html man page:
- % | 0 | don't split |
- % | 1 | split by major sections |
- % | 2 | split by subsections |
- %
- %
- % ------------------------------------------------------------------------
- %
- % == EXTRA I ==
- %
- % Cool Vim and Emacs syntax files sync'ed with all the rules.
- % See `txt2tags.vim` and `txt2tags-mode.el` on the `extras` dir.
- %
- % BONUS: there's also a `pagemaker.vim` for the .pm6 files.
- %
- % ------------------------------------------------------------------------
- %
- % == EXTRA II ==
- %
- % For those who have the (¹) package installed, the (²) target
- % is available! The package is found here: (³)
- %
- % | ¹ | ² | ³ |
- % | sgml-tools | ps | http://www.sgmltools.org |
- % | ghostscript | pdf | http://www.cs.wisc.edu/~ghost |
- %
- %
- % And remember, from SGML you can convert to lots of types, see sgml2* on
- % the sgml-tools package.
- %
- % PostScript Example:
- % --- prompt$ sgml2latex -o ps --language=english file.sgml
- %
- % PDF Example:
- % --- prompt$ ps2pdf file.ps
- %
- %
- % ------------------------------------------------------------------------
- % ler e sugar! http://www.zope.org/Documentation/Articles/STX
- % common chars as ', "", #, ?, ~, ^, {, }, (, ), <, >, $ and & are not used as marks.
- % here is the list of all special chars: % ! - + = : * _ / [ ] | ` \t
- % pq não usar alinhamento como PRE
- % - title line DOESNT support beautifiers, link, macro, etc (like PRE)
- % why not ZIP? windows .ZIP file ? (winzip abre .gz anyway...)
- % sgml article not supported:
- % --------------------------
- % image as definition list term (warning)
- % image inside table (warning)
- % image that points to a link (error - tags as link label- <figure><ph vspace=> )
- % TOC level deeper than 3
- % -- string inside comments (warning)
- % open sect3 when inside sect1 (warning)
- % how to insert a literal ' | ' on tables? `|`
- % #TODO what closes quote: pre, blank
- % #TODO what closes lists: 2 blanks
- % #TODO what closes tables: anything not table line
- % #TODO ensure correct link detection (strict regex, no generalizations)
- % palm : HTML to PalmDOC format OnLine: http://pilot.screwdriver.net/
- % .CHM: windows help
- % incluir ps e pdf (Dicas de como gerar a partior de sgml/tex)
- % falar sobre os escapes/pegadinhas de cada linguagem
- % TODO conversio natively, without the need to other tex2html or something
- % vim:tw=72 foldmethod=syntax