PageRenderTime 47ms CodeModel.GetById 17ms RepoModel.GetById 1ms app.codeStats 0ms

/doc/Portuguese/userguide-pt.t2t

http://txt2tags.googlecode.com/
Unknown | 1736 lines | 1235 code | 501 blank | 0 comment | 0 complexity | ff6cc7b6181103b19ee14898de320836 MD5 | raw file
Possible License(s): GPL-2.0, GPL-3.0, WTFPL

Large files files are truncated, but you can click here to view the full file

  1. Guia do Usuário Txt2tags
  2. Aurelio, %%date(%c)
  3. Tradução para o português: César A. K. Grossman
  4. %!target: html
  5. %!encoding: UTF-8
  6. %!options: --toc --toc-level 2
  7. %!preproc: IMGPATH ../userguide
  8. %!postproc(html): '(<LI>.*include </A>)$' '\1 <b>[NOVO!]</b>'
  9. %!postproc(html): '(<LI>.*%!Target</A>)$' '\1 <b>[NOVO!]</b>'
  10. %!postproc(html): '(<LI>.*%!Options</A>)$' '\1 <b>[NOVO!]</b>'
  11. %!postproc(html): '(<LI>.*linha de comando</A>)$' '\1 <b>[NOVO!]</b>'
  12. %!postproc(html): '(<LI>.*Editores de Texto</A>)$' '\1 <b>[NOVO!]</b>'
  13. %%% Embedded CSS code
  14. %
  15. %!postproc(html): ^<HEAD>$ '<HEAD>\n<STYLE TYPE="text/css">\n@#@'
  16. %!postproc(html): (@#@)$ 'body {background-color:#ddeeff; color:black; \n\1'
  17. %!postproc(html): (@#@)$ ' margin:2em; text-align:justify;} \n\1'
  18. %!postproc(html): (@#@)$ 'a {text-decoration:none;}\na:hover {color:red;}\n\1'
  19. %!postproc(html): (@#@)$ 'a:visited {color:purple;}\ndl {margin:1em;} \n\1'
  20. %!postproc(html): (@#@)$ 'h1 {text-align:center; background-color:blue; \n\1'
  21. %!postproc(html): (@#@)$ ' color:white; padding:8px;} \n\1'
  22. %!postproc(html): (@#@)$ 'h2 {padding-top:20px;}\nhr {border-style:none;}\n\1'
  23. %!postproc(html): (@#@)$ 'code {background-color:lightblue;} \n\1'
  24. %!postproc(html): (@#@)$ 'table {border-style:solid; border-color:black;}\n\1'
  25. %!postproc(html): (@#@)$ 'th {background-color:lightblue; padding:1em;} \n\1'
  26. %!postproc(html): (@#@)$ 'td {border-style:none; background-color:white;}\n\1'
  27. %!postproc(html): (@#@)$ 'pre {border-style:solid; border-width:1px 1px; \n\1'
  28. %!postproc(html): (@#@)$ ' background-color:lightblue; padding:8px; \n\1'
  29. %!postproc(html): (@#@)$ ' border-color:black;} \n\1'
  30. %!postproc(html): @#@$ </STYLE>
  31. % 23/08/2003 grossman: traduzido para o português
  32. % 13/07/2004 jic : revisado e atualizado por jic conforme V2.0 beta 4
  33. % 22/07/2004 aurelio : revisado para a v2.0
  34. = Sobre este documento =
  35. Olá, eu sou o guia do usuário do txt2tags!
  36. Aqui você encontra toda a informação disponível sobre a
  37. ferramenta de conversão de textos txt2tags.
  38. Minha versão atualizada pode ser encontrada em
  39. http://txt2tags.org/userguide/
  40. Para mais informações e versões recentes, visite
  41. [o website do txt2tags http://txt2tags.org/].
  42. Bom proveito!
  43. ========================================================================
  44. = Parte I - Introdução ao Txt2tags =
  45. == Suas Primeiras Questões ==
  46. Este capítulo apresenta o txt2tags, introduzindo as funcionalidades e
  47. objetivo do programa.
  48. ------------------------------------------------------------------------
  49. === O Que É? ===
  50. O txt2tags é uma ferramenta de formatação e conversão de texto.
  51. O txt2tags converte um arquivo texto com algumas marcas para qualquer um
  52. dos tipos de arquivos suportados:
  53. - Documento HTML
  54. - Documento XHTML
  55. - Documento SGML
  56. - Documento LaTeX
  57. - Página man UNIX
  58. - Apresentação Magic Point
  59. - Página MoinMoin
  60. - Documento PageMaker 6.0
  61. - Texto Plano (sem marcações)
  62. ------------------------------------------------------------------------
  63. === Por Quê Eu Devo Usá-lo? ===
  64. Você achará o txt2tags bastante útil se você:
  65. - precisa publicar documentos em diferentes formatos
  66. - precisa manter documentos atualizados em diferentes formatos
  67. - escreve manuais ou documentos técnicos
  68. - não sabe como escrever um documento em um formato específico
  69. - não tem um editor específico para um certo formato.
  70. - quer usar um editor de texto simples para atualizar seus documentos
  71. E a motivação principal é:
  72. - economizar tempo, escrevendo **conteúdo**, sem se preocupar com
  73. **formatação**
  74. ------------------------------------------------------------------------
  75. === Quais vantagens oferece em relação a outras ferramentas? ===
  76. O txt2tags possui uma forma bem direta de crescimento, seguindo alguns
  77. conceitos básicos. Os conceitos a seguir se destacam:
  78. | //Arquivo fonte legível// | As marcações do txt2tags são bastante simples, quase naturais.
  79. | //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.
  80. | //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.
  81. | //Regras Consistentes// | Da mesma forma que as marcas, as regras aplicadas a elas são uniformes, não há "exceções" ou "casos especiais".
  82. | //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.
  83. | //Fácil de aprender// | Com marcações simples e o código fonte legível, a curva de aprendizado é bem amigável.
  84. | //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.
  85. | //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.
  86. | //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.
  87. | //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.
  88. | //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.
  89. | //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.
  90. ------------------------------------------------------------------------
  91. === Tenho que pagar por ele? ===
  92. || Absolutamente NÃO! |
  93. O txt2tags é um programa gratuito, GPL, open source, domínio público,
  94. etc...
  95. Você pode copiar, usar, modificar, vender, liberar como seu. As
  96. políticas de software e copyright não são uma das maiores preocupações
  97. do autor.
  98. ------------------------------------------------------------------------
  99. == Estruturas de Formatação Suportadas ==
  100. Segue uma lista de todas as estruturas suportadas pelo txt2tags.
  101. - cabeçalho (título, nome do autor, data)
  102. - títulos de seções (numeradas ou não)
  103. - parágrafos
  104. - modificadores de fontes
  105. - negrito
  106. - itálico
  107. - sublinhado
  108. - fonte monoespaço (verbatim)
  109. - monoespaço no meio de um parágrafo
  110. - linha monoespaçada
  111. - trecho em monoespaçado
  112. - citações
  113. - links
  114. - Links de Internet (URL)
  115. - links de email
  116. - links locais
  117. - links nomeados
  118. - listas
  119. - listas com marcadores
  120. - listas numeradas
  121. - listas de definição
  122. - linha horizontal de separação
  123. - imagems (com alinhamento inteligente)
  124. - tabela (com ou sem borda, com alinhamento inteligente)
  125. - marcação especial para texto que não deve ser formatado
  126. - macro especial para a data atual (com formatação flexível)
  127. - comentários (para notas, A FAZER, CORREÇÕES, etc.)
  128. ------------------------------------------------------------------------
  129. == Formatos Suportados ==
  130. : **HTML**
  131. Todo mundo sabe o que o HTML é (dica: Internet).
  132. O txt2tags gera documentos HTML limpos, que tem boa apresentação e cujo
  133. código fonte é legível. Ele NÃO USA javascript, frames ou outras
  134. técnicas de formatação fúteis, que não são necessárias para documentos
  135. técnicos simples. Mas um arquivo CSS separado pode ser utilizado, se for
  136. desejado. O Txt2tags gera código "//HTML 4.0 Transitional//".
  137. Desde a versão 2.0, o código HTML gerado pelo txt2tags é 100% aprovado
  138. pelo [validador w3c vhttp://validator.w3.org/].
  139. : **XHTML**
  140. Esta é a nova generação do HTML, com regras mais restritas, como fechar
  141. todas as marcas que forem abertas. Isto torna o código mas fácil de ser
  142. avaliado e entendido. Para propósitos gerais, considere como HTML. O
  143. txt2tags gera código "//HTML 4.0 Transitional//".
  144. Desde a versão 2.0, o código XHTML gerado pelo txt2tags é 100% aprovado
  145. pelo [validador w3c vhttp://validator.w3.org/].
  146. : **SGML**
  147. O SGML é um formato de documento comum que possui aplicações de
  148. conversão, como [sgmltools http://www.sgmltools.org/]. De um arquivo
  149. sgml pode-se gerar documentos html, pdf, ps, info, latex, lyx, rtf e
  150. xml. As ferramentas sgml2* também criam índices (TOC) e quebra de seções
  151. em subpáginas (sgml2html).
  152. O txt2tags gera arquivos SGML válidos para a DTD linuxdoc, prontos para
  153. serem convertidos com uma ferramenta sgml2* sem qualquer arquivo de
  154. catálogo extra ou outras exigências incômodas do SGML.
  155. : **LATEX**
  156. O formato de documentação preferido nos meios acadêmicos, é mais potente
  157. do que normalmente se considera. Livros completos, fórmulas complicadas
  158. e qualquer texto complexo pode ser escrito em LaTeX. Mas se prepare para
  159. perder os cabelos se tentar escever as marcações à mão...
  160. O txt2tags gera arquivos LaTeX prontos para usar, realizando todos os
  161. complexos truques de escape e exceções. O escritor deve se preocupar
  162. exclusivamente com o texto.
  163. : **MAN**
  164. As páginas man do UNIX resistiram pelos anos. Formatos de documento vem
  165. e vão, e elas estão , imbatíveis.
  166. Existem outras ferramentas para gerar documentos man, mas o txt2tags tem
  167. uma vantagem: uma fonte, múltiplos formatos destino. Assim, o conteúdo
  168. da mesma página man pode ser convertido para uma página HTML, uma
  169. apresentação Magic Point, etc.
  170. : **MGP**
  171. O [Magic Point http://www.mew.org/mgp/] é uma ferramenta de apresentação
  172. bastante útil (dica: Microsoft PowerPoint), que usa uma linguagem de
  173. marcação para definir todas as telas. Desta forma, você pode criar
  174. apresentações complexas no vi/emacs/notepad.
  175. O txt2tags gera um arquivo .mgp pronto para ser usado, definindo todos
  176. os cabeçalhos necessários para as definições de fontes e aparência, bem
  177. como o suporte aos caracteres acentuados da página de código ISO-8859.
  178. **Observação 1:** os arquivos .mgp criados pelo txt2tags usam as fontes
  179. Type1 do XFree86! Desta forma, não é necessário incluir fontes TrueType
  180. com sua apresentação.
  181. **Observação 2:** as definições de cor para as fontes são limpas, de
  182. forma que mesmo com uma paleta de cores de sistema pobre (como em
  183. ``startx -- -bpp 8``) a apresentação vai ter boa aparência.
  184. A chave é: converta e use. Não necessidade de remendos ou de outros
  185. requisitos.
  186. : **MOIN**
  187. Você não sabe o que é o [MoinMoin http://moin.sourceforge.net]? Ele é
  188. um [WikiWiki http://www.c2.com/cgi/wiki]!
  189. A sintaxe do Moin é um pouco chata, quando você tem que ficar
  190. ``{{{'''''acrescentando chaves e plicas'''''}}}``, mas o txt2tags vem
  191. com as marcações simplificadas e uma solução unificada: uma fonte,
  192. múltiplos formatos destino.
  193. : **PM6**
  194. Aposto que você não sabia, mas o Adobe PageMaker 6.0 tem sua própria
  195. linguagem de marcação! Estilos, tabelas de cores, embelezadores, e a
  196. maior parte das funcionalidades acessíveis via cliques de mouse também
  197. estão disponíveis em sua linguagem de marcação. Você precisa acessar
  198. o item de menu "Import tagged text". Apenas para registro, é um formato
  199. de marcação semelhante ao HTML.
  200. O txt2tags gera todas as tags e define um cabeçalho extenso e
  201. funcional, configurando os estilos de parágrafo e formatações. Esta é a
  202. parte difícil. **EPA:** Sem quebras de linha! Um parágrafo deve ser uma
  203. única linha.
  204. Nota do Autor:
  205. //Todo meu livro em português sobre [expressões regulares http://guia-er.sf.net/]//
  206. //foi escrito no vi, convertido para o formato do PageMaker com o//
  207. //txt2tags e então mandado para o prelo.//
  208. : **TXT**
  209. TXT é texto. O único tipo de formatação verdadeiro.
  210. Apesar das marcações do txt2tags serem bem intuitivas e discretas,
  211. pode-se removê-las ao converter o arquivo para TXT puro.
  212. Os títulos são sublinhados, e o texto é basicamente deixado como está no
  213. código fonte.
  214. ------------------------------------------------------------------------
  215. == Situação dos Formatos-Destino para as Estruturas Suportadas ==[estruturas]
  216. || Estrutura | html | xhtml | sgml | tex | man | mgp | moin | pm6 | txt |
  217. | cabeçalhos | S | S | S | S | S | S | N | N | S |
  218. | título de seções | S | S | S | S | S | S | S | S | S |
  219. | parágrafos | S | S | S | S | S | S | S | S | S |
  220. | negrito | S | S | S | S | S | S | S | S | - |
  221. | itálico | S | S | S | S | S | S | S | S | - |
  222. | sublinhado | S | S | - | S | - | S | S | S | - |
  223. | pré-formatado | S | S | S | S | - | S | S | S | - |
  224. | linha pré-formatada | S | S | S | S | S | S | S | S | - |
  225. | área pré-formatada | S | S | S | S | S | S | S | S | - |
  226. | área cotada | S | S | S | S | S | S | S | S | S |
  227. | links internet | S | S | S | - | - | - | S | - | - |
  228. | links e-mail | S | S | S | - | - | - | S | - | - |
  229. | links locais | S | S | S | N | - | - | S | - | - |
  230. | links nomeados | S | S | S | - | - | - | S | - | - |
  231. | lista não-numerada | S | S | S | S | S | S | S | S | S |
  232. | lista numerada | S | S | S | S | S | S | S | S | S |
  233. | lista de definições | S | S | S | S | S | N | N | N | S |
  234. | linha horizontal | S | S | - | S | - | S | S | N | S |
  235. | imagem | S | S | S | S | - | S | S | N | - |
  236. | tabela | S | S | S | S | S | N | S | N | N |
  237. || Extras | html | xhtml | sgml | tex | man | mgp | moin | pm6 | txt |
  238. | image align | S | S | N | N | - | S | N | N | - |
  239. | table cell align | S | S | S | S | S | N | S | N | N |
  240. || | Legenda
  241. | **S** | //suportada//
  242. | **N** | //não suportada (talvez em uma versão futura)//
  243. | **-** | //não suportada (não pode ser feita neste formato)//
  244. % | **?** | //não suportada (não estou bem certo se pode ou não ser feito)//
  245. ------------------------------------------------------------------------
  246. == As Três Interfaces ao Usuário: GUI, Web e Linha de Comando ==
  247. Assim como diferentes usuários possuem diferentes necessidades e
  248. ambientes, o txt2tags é bastante flexivel na forma de ser usado.
  249. Existem três Interfaces de Usuário para o programa, cada uma atendendo a
  250. um objetivo definido e com funcionalidades próprias.
  251. - **GUI**: Escrita em Tk, traz as janelas e os cliques para o txt2tags.
  252. - **Web**: Escrita em PHP, permite que o usuário execute o txt2tags no
  253. navegador, não exigindo instalação do lado do cliente.
  254. - **Linha de Comando**: Escrita em Python, é o núcleo do programa.
  255. Todas as funcionalidades estão disponíveis como opções de
  256. linha de comando.
  257. ------------------------------------------------------------------------
  258. === Interface Gráfica Tk ===[gui]
  259. Desde a versão 1.0, uma bela Interface Gráfica, que funciona do
  260. Linux, Windows, Mac e outros.
  261. O programa automaticamente detecta se seu sistema pode apresentar a
  262. interface e a lança quando é chamado sem argumentos. Pode-se forçar a
  263. apresentação da Interfaca Gráfica com a opção ``--gui``. Se estiver
  264. faltando algum recurso o programa irá alertar.
  265. **Nota:** O módulo Tkinter é necessário. Como ele vem com a
  266. distribição padrão do Python você deve -lo.
  267. Ela é bastante simples e fácil de usar:
  268. [IMGPATH/gui.png]
  269. + Você localiza o arquivo fonte .t2t no disco e suas opções são
  270. carregadas.
  271. + Se o destino ainda estiver vazio, você deve escolher um.
  272. + algumas opões que podem ser escolhidas, mas nenhuma delas é
  273. essencial.
  274. + Finalmente, pressione o botão "Converter!".
  275. Uma boa opção a selecionar é "//Dump to screen//", assim se pode
  276. verificar o código resultante em uma janela separada, sem que o arquivo
  277. seja salvo. Quando o código estiver correto, basta desmarcá-la e o
  278. arquivo será gravado.
  279. As cores padrão podem ser mudadas no arquivo ``~/.txt2tagsrc``,
  280. configurando em ``%!guicolors``. Por exemplo:
  281. ```
  282. % minhas cores para a interface (fundo1, texto1, fundo2, texto2)
  283. %!guicolors: blue white brown yellow
  284. ```
  285. ------------------------------------------------------------------------
  286. === Interface Web ===[web]
  287. A Interface Web está em funcionamento na Internet no endereço
  288. http://txt2tags.org/online.php, permitindo que o programa possa ser
  289. usado e testado antes de ser copiado.
  290. [IMGPATH/web.png]
  291. Esta interface também pode ser colocada na intrant para uso local,
  292. evitando a instalação do txt2tags em todas as máquinas.
  293. ------------------------------------------------------------------------
  294. === Interface de Linha de Comando ===[linhadecomando]
  295. Para usuários de linha de comando acostumados, o parâmetro --help deve
  296. ser suficiente:
  297. ```
  298. Uso: txt2tags [OPÇÕES] [arquivo.t2t ...]
  299. -t, --target define o formato do destino. tipos suportados:
  300. html, xhtml, sgml, tex, man, mgp, moin, pm6, txt
  301. -i, --infile=ARQ define ARQ como o arquivo fonte ('-' para STDIN)
  302. -0, --outfile=ARQ define ARQ como o arquivo destino ('-' para STDOUT)
  303. -n, --enum-title numera todos os títulos como 1, 1.1, 1.1.1, etc
  304. -H, --no-headers suprime os cabeçalhos, título e rodapé
  305. --headers exibe os cabeçalhos, título e rodapé (padrão LIGADO)
  306. --encoding informa a codificação de destino (utf-8, iso-8859-1, etc)
  307. --style=ARQ utiliza ARQ como estilo do documento (CSS no Html)
  308. --css-sugar insere tags compatíveis com CSS em destinos HTML e XHTML
  309. --mask-email esconde e-mails dos robôs de SPAM. x@y.z vira <x (a) y z>
  310. --toc inclui o Índice (Table of Contents) no documento destino
  311. --toc-only exibe o Índice do documento e sai
  312. --toc-level=N define o nível máximo do Índice para N
  313. --rc lê a config do usuário em ~/.txt2tagsrc (padrão LIGADO)
  314. --gui carrega a interface gráfica escrita em TK
  315. -v, --verbose exibe mensagens informativas durante a conversão
  316. -h, --help exibe este texto de ajuda e sai
  317. -V, --version exibe a versão do programa e sai
  318. --dump-config exibe todas as configurações encontradas e sai
  319. Opções para DESLIGAR funcionalidades:
  320. --no-outfile, --no-infile, --no-style, --no-encoding, --no-headers
  321. --no-toc, --no-toc-only, --no-mask-email, --no-enum-title, --no-rc
  322. --no-css-sugar
  323. Exemplo:
  324. txt2tags -t html --toc meuarquivo.t2t
  325. Normalmente a saída convertida é gravada em 'arquivo.<tipo>'.
  326. Utilize --outfile para forçar um nome para o arquivo de saída.
  327. Se o arquivo de entrada é '-', lê de STDIN.
  328. Se o arquivo de saída é '-', envia a saída para STDOUT.
  329. ```
  330. ==== Exemplos ====
  331. Supondo que exista um arquivo de marcação chamado ``file.t2t``, vamos nos
  332. divertir um pouco.
  333. | **Convertendo para HTML** | ``$ txt2tags -t html file.t2t``
  334. | **O mesmo, usando redirecionamento** | ``$ txt2tags -t html -o - file.t2t > file.html``
  335. | | .
  336. | **Incluindo uma Tabela de Conteúdo** | ``$ txt2tags -t html --toc file.t2t``
  337. | **Idem, numerando os títulos** | ``$ txt2tags -t html --toc --enum-title file.t2t``
  338. | | .
  339. | **Visualização Rápida do Conteúdo** | ``$ txt2tags --toc-only file.t2t``
  340. | **Quem sabe com números?** | ``$ txt2tags --toc-only --enum-title file.t2t``
  341. | | .
  342. | **Linha simples de STDIN** | ``$ echo -e "\n**bold**" | txt2tags -t html --no-headers -``
  343. | **Testando o Mascaramento de Email** | ``$ echo -e "\njohn.wayne@farwest.com" | txt2tags -t txt --mask-email --no-headers -``
  344. | **Edição pós-conversão** | ``$ txt2tags -t html -o- file.t2t | sed "s/<BODY .*/<BODY BGCOLOR=green>/" > file.html``
  345. : //Nota//
  346. Desde a versão 1.6 você pode fazer pre e pós processamento usando as
  347. macros de configuração ``%!preproc`` e ``%!postproc``.
  348. ========================================================================
  349. = Parte II - OK, eu quero um. E agora? =[instalacao]
  350. Basta baixar o programa e executar o mesmo no seu computador.
  351. == Download e Instalação do Python ==
  352. Antes de mais nada, deve-se baixar e instalar o interpretador Python
  353. para o seu sistema. Se você o tem, então pule eset passo.
  354. O Python é uma das melhores linguagens de programação que existem, ela
  355. pode ser utilizada no Windows, Linux, UNIX, Macintosh, e outras
  356. plataformas, e pode ser baixada do
  357. [web site do Python http://www.python.org]. As dicas de instalação podem
  358. ser encontradas no mesmo site. O txt2tags funciona com o Python 1.5 ou
  359. posterior.
  360. Se você não tem certeza de ter o Python ou não, abra um console (tty,
  361. xterm, MSDOS) e escreva ``python``. Se ele não estiver instalado, o
  362. sistema vai lhe informar.
  363. == Copiando o txt2tags ==
  364. O local oficial de distribuição do txt2tags é na homepage do programa,
  365. em http://txt2tags.org/src.
  366. Todos os arquivos do programa estão em um tarball (arquivo .tgz), que
  367. pode ser expandido pela maioria dos utilitários de compressão (incluindo
  368. o Winzip).
  369. Simplesmente pegue a **última** versão (data mais recente, número de
  370. versão maior). As versões anteriores estão apenas por razões
  371. históricas.
  372. == Instalação do txt2tags ==
  373. Como é apenas um script Python, o txt2tags não precisa ser instalado.
  374. O único arquivo necessário para usar o programa é o script txt2tags. Os
  375. outros arquivos do tarball compreendem a documentação, ferramentas e
  376. arquivos de exemplo.
  377. O modo mais seguro de usar o txt2tags é chamar o Python com ele:
  378. ``` prompt$ python txt2tags
  379. Se você quiser "instalar" o txt2tags no sistema como um programa
  380. independente, basta copiar (ou criar um link) o script txt2tags para um
  381. diretório que esteja no PATH do sistema e certificar-se que o sistema
  382. saiba como executar o mesmo.
  383. : **UNIX/Linux**
  384. Torne o script executável (``chmod +x txt2tags``) e copie o mesmo para
  385. um diretório no $PATH (``cp txt2tags /usr/local/bin``)
  386. : **Windows**
  387. Renomeie o script, acrescentando a extensão .py
  388. (``ren txt2tags txt2tags.py``) e o copie para um diretório que esteja
  389. no PATH do sistema (``copy txt2tags.py C:\WINNT``)
  390. Depois disto, pode-se criar um ícone no desktop para o programa, se
  391. quiser usar a Interface Gráfica do programa.
  392. === Pacotes Especiais para Usuários Windows ===
  393. Existem dois arquivos de distribuição .EXE para o txt2tags, que instalam
  394. o programa em máquinas Windows com apenas alguns cliques:
  395. - O script txt2tags para aqueles que tem o interpretador Python
  396. instalado
  397. - A versão stand-alone, que não requer a instalação do interpretador
  398. Pyton para ser executada (já tem uma versão pequena incluída).
  399. Visite o site //Txt2tags-Win// para baixar estes pacotes:
  400. http://txt2tags-win.sf.net/
  401. == Instalar os Arquivos de Sintaxe dos Editores de Texto ==[sintaxe]
  402. O txt2tags possui arquivos de sintaxe práticos que podem ser usados com
  403. os seguintes editores de texto:
  404. - Vim (www.vim.org)
  405. - Emacs (www.emacs.org)
  406. - Nano (www.nano-editor.org)
  407. - Kate (http://kate.kde.org)
  408. Os arquivos de sintaxe têm registro de todas as regras e marcações do
  409. txt2tags, ajudando ao usuário a escrever documentos sem erros. As marcas
  410. são mostradas coloridas, assim se pode ver se tudo foi escrito
  411. corretamente.
  412. | [IMGPATH/vim.png] |
  413. | O arquivo de exemplo aberto no Editor Vim
  414. Cada editor tem um procedimento diferente para usar seu arquivo de
  415. sintaxe. Por favor verifique no cabeçalho de cada arquivo e na
  416. documentação do editor.
  417. ========================================================================
  418. = Parte III - Escrevendo e Convertendo Seu Primeiro Documento =
  419. Desculpe, este capítulo ainda está em desenvolvimento.
  420. == As Áreas do documento .t2t ==
  421. Os arquivos de marcação txt2tags são divididos em 3 áreas. Cada área tem
  422. suas próprias regras e finalidade. São elas:
  423. : //Área de Cabeçalho//
  424. É o lugar para informações sobre o Título do Documento, Autor, Versão e
  425. Data. (opcional)
  426. : //Área de Configuração//
  427. É o local para colocar as configurações Gerais do documento e
  428. modificadores do funcionamento do analisador. (opcional)
  429. : //Corpo do Texto//
  430. É o local para o Conteúdo do Documento (requerida)
  431. Como vemos acima, as duas primeiras áreas são opcionais, sendo que o
  432. //Corpo do Texto// é a única área indispensável.
  433. (//Nota: A **Área de Configuração** foi introduzida no txt2tags na versão 1.3//)
  434. As áreas são delimitadas por regras especiais, que serão vistas em
  435. detalhe no próximo capítulo. Por enquanto, esta é uma representação
  436. gráfica das áreas de um documento:
  437. ```
  438. ____________
  439. | |
  440. | CABEÇALHO | 1. Primeiro, o cabeçalho
  441. | |
  442. | CONFIG | 2. Então a configuração
  443. | |
  444. | CORPO | 3. E, finalmente, o corpo do documento
  445. | |
  446. | ... | que segue até o final do arquivo.
  447. | ... |
  448. |____________|
  449. ```
  450. Em resumo, é assim que as áreas são definidas:
  451. | **Cabeçalhos** | As primeiras 3 linhas do arquivo, ou a primeira linha é deixada em branco se não são usados cabeçalhos
  452. | **Configuração** | Começam logo depois do cabeçalho (4a. ou 2a. linha) e termina quando a //Área de Conteúdo// começa.
  453. | **Corpo** | A primeira linha de texto válida (que não é comentário ou configuração) após a //Área de Cabeçalho//.
  454. === Exemplo Completo ===
  455. ```
  456. Título do meu belo documento
  457. Sr. Fulano da Silva
  458. Última atualização: %%date(%c)
  459. %! Target : html
  460. %! Style : fancy.css
  461. %! Encoding: UTF-8
  462. %! Options : --toc --enum--title
  463. Oi! Este é o meu documento de teste.
  464. E o seu conteúdo termina aqui.
  465. ```
  466. =======================================================================
  467. = Parte IV - Dominando o Txt2tags =
  468. == A Área de Cabeçalho ==
  469. Localização:
  470. - Posição fixa: **Primeiras 3 linhas** do arquivo. Ponto.
  471. - Posição fixa: **A Primeira Linha** do arquivo está em branco. Isto
  472. significa que o cabeçalho está vazio.
  473. A Área de Cabeçalho é a única que tem uma posição fixa, orientada a
  474. linhas. Ela está localizada nas três primeiras linhas do código fonte.
  475. O conteúdo destas linhas é livre, sem necessidade de nenhuma informação
  476. estática de nenhum tipo. Mas recomenda-se o seguinte para a maioria dos
  477. documentos:
  478. - //linha 1//: título do documento
  479. - //linha 2//: nome e/ou email do autor
  480. - //linha 3//: data e/ou versão do documento
  481. (um bom lugar para colocar ``%%date``)
  482. Tenha em mente que as 3 primeiras linhas do arquivo fonte serão as 3
  483. primeiras linhas no documento gerado, separadas e com um grande
  484. contraste em relação ao corpo do texto (ou seja, letras grandes,
  485. negrito). Se a paginação for permitida, os cabeçalhos estarão separados
  486. e centralizados na primeira página.
  487. ==== Menos (ou Nenhuma) Linhas de Cabeçalho ====
  488. Às vezes os usuários querem especificar menos de três linhas nos
  489. cabeçalhos, dando apenas o título do documento e/ou informação de data.
  490. Basta deixar a 2a. e/ou a 3a. linhas em branco e estas linhas não serão
  491. incluídas no documento gerado. Mas tenha em mente que, mesmo em branco,
  492. estas linhas ainda são parte dos cabeçalho, e o corpo do documento deve
  493. começar **após** a 3a. linha.
  494. O título é o único cabeçalho requerido (a primeira linha), mas se você
  495. deixar ela em branco, está dizendo que seu documento
  496. **não tem cabeçalho**. Desta forma, a //Área de Texto// irá começar em
  497. seguida, na 2a. linha.
  498. Não usar cabeçalhos no documento é útil se você quiser especificar seus
  499. próprios cabeçalhos customizados após a conversão. A opção de linha de
  500. comando ``--no-headers`` é geralmente necessária para este tipo de coisa.
  501. ==== Direto ao ponto ====
  502. || Em resumo: "Cabeçalhos são apenas __posições__, não conteúdo " |
  503. Coloque um texto na primeira linha, ele irá aparecer na primeira linha
  504. do arquivo gerado. O mesmo para a 2a. e 3a. linhas de cabeçalho.
  505. ------------------------------------------------------------------------
  506. == A Área de Configuração ==
  507. Localização:
  508. - Começa logo após a Área de Cabeçalhos
  509. - Começa na **4a. linha** do arquivo se forem especificados **Cabeçalhos**
  510. - Começa na **2a. linha** se **não** forem especificados **Cabeçalhos**
  511. - Termina quando a Área de Conteúdo começa
  512. - Termina com uma linha que não seja de Configuração, ou de
  513. Comentário, ou que seja uma linha em Branco.
  514. A Área de Configuração é opcional. A maioria dos usuários pode escrever
  515. carradas de arquivos txt2tags mesmo sem saber que ela existe, mas os
  516. usuários experientes irão gostar do poder e controle que ela oferece.
  517. O uso primário desta área é para definir configurações que afetam o
  518. comportamento do programa.
  519. ==== Então, como configurar algo? Qual a sintaxe? ====
  520. As linhas de configuração são //linhas de comentário especiais//,
  521. marcadas com um identificador no início ("``!``") que torna estes
  522. comentários diferentes dos comentários normais. A sintaxe é tão simples
  523. quanto uma atribuição de valor a uma variável, composta por uma
  524. palavra-chave e um valor, separados um do outro pelo separador canônico
  525. dois-pontos ("``:``").
  526. || %! palavra-chave : valor |
  527. **``Detalhes da Sintaxe:``** O ponto de exclamação deve ser colocado
  528. junto com o caractere de comentário, sem espaço entre eles ("``%!``").
  529. Os espaços em torno da //palavra-chave// e o separador são opcionais, e
  530. tanto a //palavra-chave// quanto o //valor// podem estar
  531. indiferentemente em maiúsculas ou minúsculas.
  532. ==== O que eu posso configurar? Quais são as palavra-chave válidas? ====
  533. As configurações que podem ser feitas são //Target//, //Options//, //Style//,
  534. //Encoding//, //PreProc// e //PostProc//.
  535. A configuração **//Target//** define o destino padrão na qual o
  536. documento deve ser convertido.
  537. A configuração **//Options//** é útil para especificar as opções de
  538. linha de comando padrão para o arquivo fonte. Estas opções podem ser
  539. sobrescritas pela linha de comando real. Usar esta opção juntamente com
  540. ``%!target`` permite converter o documento simplesmente comandando:
  541. ``txt2tags file.t2t``
  542. A configuração **//Style//** só é suportada pelo tipo de documento
  543. destino HTML, para definir uma folha de estilo
  544. (//Cascading Style Sheets - CSS//).
  545. A configuração **//Encoding//** é necessária para escritores não
  546. ingleses, que usem letras acentuadas e outros detalhes específicos de
  547. localização, de forma que o //Conjunto de Caracteres// do documento seja
  548. personalizado (se permitido).
  549. A configuração **//PreProc//** é um filtro. Ela define regras do tipo
  550. "busca e troca" que serão aplicadas ao arquivo original __antes__ que
  551. qualquer análise por parte do txt2tags ocorra.
  552. A configuração **//PostProc//** é um filtro. Ela define regras do tipo
  553. "busca e troca" que serão aplicadas ao arquivo destino __depois__ de
  554. todo o processamento por parte do txt2tags.
  555. Exemplo:
  556. ```
  557. %! Target : html
  558. %! Options : --toc --toc-level 3
  559. %! Style : fancy.css
  560. %! Encoding: UTF-8
  561. %! PreProc : "amj" "Aurelio Marinho Jargas"
  562. %! PostProc: '<BODY.*?>' '<BODY bgcolor="yellow">'
  563. ```
  564. ==== Algumas regras sobre as Configurações ====
  565. - As configurações são válidas somente dentro da Área de Configuração,
  566. e serão consideradas comentários simples se forem encontradas no
  567. Corpo do documento.
  568. - Se a mesma palavra-chave aparece mais de uma vez na Área de
  569. Configuração, apenas a última será usada. Exceção: options, preproc e
  570. postproc, que são acumulativas.
  571. - Uma linha de configuração com uma palavra-chave inválida será
  572. considerada um comentário.
  573. - Estas configurações têm precedência sobre o arquivo ``txt2tagsrc``,
  574. as não sobre as opções de linha de comando.
  575. ----------------------------------------------------------------
  576. == O Corpo do Texto ==
  577. Localização:
  578. - Começa na primeira linha válida de texto do arquivo
  579. - Cabeçalhos, Configurações e Comentários **não** são linhas de texto
  580. válidas
  581. - Termina no fim do arquivo (EOF)
  582. Bem, o corpo do texto é tudo que estiver fora das Áreas de Cabeçalho e
  583. de Configuração.
  584. O corpo do texto é onde está o conteúdo do documento e todas as
  585. estruturas e formatações que o txt2tags reconhece. Dentro do corpo podem
  586. ser também colocados comentários para //A FAZER// e anotações
  587. particulares.
  588. Pode-se utilizar a opção de linha de comando ``--no-headers`` para
  589. converter somente o corpo do documento, suprimindo os cabeçalhos. Esta
  590. opção é útil quando os cabeçalhos estão em um arquivo separado, que será
  591. unido ao corpo depois da conversão.
  592. -----------------------------------------------------------------------
  593. == Marcações (REGRAS) ==[regras]
  594. Todas as marcações e sintaxe usadas pelo txt2tags estão detalhadas em
  595. um [arquivo REGRAS a parte REGRAS].
  596. -----------------------------------------------------------------------
  597. == A macro %%date ==[data]
  598. A macro ``%%date`` chamada sem nenhum parâmetro adicional retorna a data
  599. atual no formato ISO //yyyymmdd//. Uma formatação opcional pode ser
  600. especificada usando a sintaxe ``%%date(formato)``.
  601. O //formato// contém texto de diretivas de formatação, que são compostas
  602. por um sinal de porcentagem (``%``) seguido por um caractere de
  603. identificação.
  604. Segue uma lista de algumas diretivas comuns. A lista completa pode ser
  605. encontrada em http://www.python.org/doc/current/lib/module-time.html.
  606. || Diretiva | Descrição |
  607. | %a | Dia da semana local abreviado.
  608. | %A | Dia da semana completo.
  609. | %b | Nome do mês abreviado.
  610. | %B | Nome do mês.
  611. | %c | Dia e hora formatados apropriadamente.
  612. | %d | Dia do mês como um número decimal [01,31].
  613. | %H | Hora (24 horas) como um número decimal [00,23].
  614. | %I | Hora (12 horas) como um número decimal [01,12].
  615. | %m | O mês como um número decimal [01,12].
  616. | %M | O minuto como um número decimal [00,59].
  617. | %p | O equivalente local a AM e PM.
  618. | %S | Os segundos como um número decimal [00,61]. (1)
  619. | %x | Representação local da data.
  620. | %X | Representação local da hora.
  621. | %y | O ano sem o século como um número decimal [00,99].
  622. | %Y | O ano com o século como um número decimal.
  623. | %% | Um caractere "%".
  624. ==== Exemplos ====
  625. || ``%%date(format)`` | Resultado para: 2004, Jul13, 18:49 |
  626. | Last Update: %c | Last Update: Tue Jan 13 18:49:32 2004
  627. | %Y-%m-%d | 2004-07-13
  628. | %I:%M %p | 18:49 PM
  629. | Hoje e %A, em %B. | Hoje e Tuesday, em July.
  630. -----------------------------------------------------------------------
  631. == O comando %!include ==[include]
  632. A partir da versão 1.7, é possível usar o comando ``include`` para
  633. inserir o conteúdo de um arquivo externo dentro do corpo do documento
  634. original.
  635. O ``%!include`` não é uma configuração, mas um comando, sendo somente
  636. válido na área de CORPO do texto.
  637. O comando ``include`` é útil para dividir um documento grande em vários
  638. arquivos menores (como capítulos de um livro) ou para incluir todo o
  639. conteúdo de um arquivo qualquer no documento. Por exemplo:
  640. ```
  641. Meu Primeiro Livro
  642. Dr. Fulano da Silva
  643. 1ª Edição
  644. %!include: introducao.t2t
  645. %!include: capitulo1.t2t
  646. %!include: capitulo2.t2t
  647. ...
  648. %!include: capitulo9.t2t
  649. %!include: conclusao.t2t
  650. ```
  651. Como se pode ver, basta informar o nome do arquivo logo após o comando
  652. ``%!include``. Também é possível atrelar o comando a um destino
  653. específico, como em:
  654. ``` %!include(html): arquivo.t2t
  655. Note que o ``include`` vai inserir o CORPO do documento .t2t, ignorando
  656. seu CABEÇALHO e suas CONFIGURAÇÕES. Assim é possível converter o arquivo
  657. incluído de maneira isolada ou como parte do documento mãe.
  658. Além de incluir arquivos .t2t, mais três tipos de inclusão:
  659. - Inclusão de texto pré-formatado (Verbatim)
  660. - Inclusão de texto protegido (Raw)
  661. - Inclusão de texto convertido (Tagged)
  662. No tipo **Verbatim** o texto é incluído preservado seus espaços e
  663. formatação originais. É como se esse texto estivesse entre as marcações
  664. (```) da área VERB do txt2tags. Para incluir um arquivo dessa maneira,
  665. basta colocar seu nome entre crases:
  666. ``` %!include: ``/etc/fstab``
  667. No tipo **Raw** o texto é incluído "como está", sem tentar encontrar e
  668. avaliar as marcas do txt2tags dele. É como se esse texto estivesse entre
  669. as marcações (""") da área protegida. Para incluir um arquivo dessa
  670. maneira, basta colocar seu nome entre aspas
  671. ``` %!include: ""bom_texto.txt""
  672. Já no tipo **Tagged**, o texto é passado diretamente para o documento
  673. resultante, sem NENHUM tratamento pelo txt2tags. Assim é possível
  674. incluir tags adicionais, trechos já prontos ou estruturas mais
  675. complicadas que não são suportadas pelo programa. Outra aplicação é
  676. incluir um cabeçalho ou rodapé padrão em todos os documentos:
  677. ``` %!include(html): ''rodape.html''
  678. Note que o nome do arquivo está entre aspas simples (e não crases como o
  679. anterior). São estas aspas que indicam que o conteúdo deve ser passado
  680. diretamente. Como este conteúdo contém tags, é primordial especificar
  681. o destino também, para evitar problemas.
  682. =======================================================================
  683. = Parte V - Dominando as Diretivas de Configuração =[settings]
  684. As Diretivas de Configuração são todas opcionais. A maioria dos usuários
  685. pode muito bem passar sem elas. Mas elas são viciantes, se você começa a
  686. usá-las, não consegue parar :)
  687. -----------------------------------------------------------------------
  688. == %!Target ==
  689. Usando a configuração Target define o destino padrão definido no
  690. documento:
  691. ``` %!target: html
  692. Assim o usuário pode simplesmente comandar
  693. ``` $ txt2tags file.t2t
  694. E a conversão será efetuada para o destino especificado.
  695. A configuração Target não permite a especificação opcional de destino.
  696. Afinal, não faz sentido algo como ``%!target(tex): html``.
  697. -----------------------------------------------------------------------
  698. == %!Options ==
  699. Escrever longas linhas de comando toda vez que for necessário converter
  700. um documento é maçante e sujeito a erros. A configuração Options permite
  701. que o usuário salve todas as opções de conversão juntas, no próprio
  702. documento. Desta forma também se garante que o documento sempre será
  703. convertido da mesma forma, com as mesmas opções.
  704. é necessário escrevê-la sem erros de sintaxe, como se estivesse na
  705. linha de comando. Mas omita a chamada ao programa "txt2tags" no início e
  706. o nome do arquivo origem no fim da linha.
  707. Por exemplo, se você usa esta linha de comando para converter seu
  708. documento:
  709. ``` $ txt2tags -t html --toc --toc-level 2 --enum-title file.t2t
  710. Pode-se economizar um bocado de digitação usando esta configuração de
  711. Options dentro do documento origem:
  712. ```
  713. %!target: html
  714. %!options(html): --toc --toc-level 2 --enum-title
  715. ```
  716. A linha de comando real passa agora a ser apenas "``txt2tags file.t2t``",
  717. e a conversão pode ser executada dentro do seu editor de textos
  718. favorito, enquanto o conteúdo está sendo editado. No Vi, o comando é:
  719. ``` :!txt2tags %
  720. -----------------------------------------------------------------------
  721. == %!Encoding ==
  722. A configuração de Encoding é necessária para autores não ingleses, que
  723. usam letras acentuadas e outros detalhes específicos, de forma que o
  724. //Conjunto de Caracteres// do documento gerado possa ser personalizado
  725. (se possível).
  726. Os valores válidos para a configuração de Encoding são os mesmos que são
  727. válidos para documentos, HTML, como //UTF-8// e //koi8-r//. Se você
  728. não está certo de qual codificação quer usar,
  729. [esta lista completa (e longa!) http://www.iana.org/assignments/character-sets]
  730. poderá ser de ajuda.
  731. Quando for gerado documentos LaTeX, utiliza aliases para a codificação.
  732. Isto não deve ser problema para o usuário, que o txt2tags faz a
  733. tradução internamente. Alguns exemplos:
  734. || txt2tags/HTML | > | LaTeX |
  735. | windows-1250 | >>> | cp1250 |
  736. | windows-1252 | >>> | cp1252 |
  737. | ibm850 | >>> | cp850 |
  738. | ibm852 | >>> | cp852 |
  739. | iso-8859-1 | >>> | latin1 |
  740. | iso-8859-2 | >>> | latin2 |
  741. | koi8-r | >>> | koi8-r |
  742. Se o valor é desconhecido do txt2tags, ele será passado sem tradução,
  743. permitindo que o usuário especifique codificações personalizadas.
  744. -----------------------------------------------------------------------
  745. == %!PreProc ==
  746. O filtro de usuário PreProc é uma função "busca e troca" que é aplicada
  747. logo após a linha ter sido lida do arquivo original, antes de qualquer
  748. tratamento pelo txt2tags.
  749. Ela é útil para definir algumas abreviações para texto que seja usado
  750. comumente, como:
  751. ```
  752. %!preproc amj "Aurelio Marinho Jargas"
  753. %!preproc RELEASE_DATE "2004-07-13"
  754. %!preproc BOLOTA "[images/tiny/bullet_blue.png]"
  755. ```
  756. Desta forma, o usuário pode escrever uma linha como:
  757. ``` Oi, eu sou amj. Hoje é RELEASE_DATE.
  758. E o txt2tags irá ver esta linha como:
  759. ``` Oi, eu sou Aurelio Marinho Jargas. Hoje é 2004-07-13.
  760. Este filtro é um componente que trabalha entre o autor do documento e a
  761. conversão do txt2tags. É como uma primeira conversão antes da conversão
  762. "real". Este comportamento funciona exatamente como um filtro Sed/Perl
  763. externo, chamado assim:
  764. ``` $ cat arquivo.t2t | preproc-script.sh | txt2tags -
  765. Assim, o tratamento executado pelo txt2tags irá começar após todas as
  766. substituições PreProc terem sido feitas.
  767. -----------------------------------------------------------------------
  768. == %!PostProc ==
  769. O filtro de usuário PostProc é uma função do tipo "busca e troca" que é
  770. aplicada no arquivo resultante, após todos as conversões do txt2tags
  771. terem sido feitas.
  772. É útil para defintir alguns refinamentos no documento gerado, mudar
  773. algumas marcações e acrescentar algumas marcações ou texto extra.
  774. Alguns exemplos breves:
  775. ```
  776. %!postproc(html): '<BODY.*?>' '<BODY BGCOLOR="green">'
  777. %!postproc(tex) : "\\clearpage" ""
  778. ```
  779. Estes filtros mudam a cor de fundo da página HTML e removem as quebras
  780. de página em arquivos LaTeX gerados.
  781. As regras do PostProc são iguais a filtros externos Sed/Perl, chamados
  782. desta forma:
  783. ``` $ txt2tags -t html -o- arquivo.t2t | postproc-script.sh > arquivo.html
  784. Antes desta funcionalidade ter sido introduzida, era bastante comum ter
  785. pequenos scripts para "ajustar" os resultados gerados pelo txt2tags.
  786. Estes scripts eram, de fato, vários comandos sed (ou assemelhados), para
  787. fazer algo do tipo "substitua isto por aquilo". Agora estas trocas podem
  788. ser salvas junto com o texto do documento, e também aproveitar-se da
  789. poderosa máquina de Expressões Regulares do Python para encontrar os
  790. padrões.
  791. -----------------------------------------------------------------------
  792. == %!Style ==
  793. - Esta opção é útil na geração de arquivos HTML e XHTML, definindo o
  794. nome do arquivo CSS que será usado no documento gerado.
  795. - No formato LaTeX, essa opção é usada para carregar módulos com o
  796. ``\usepackage``.
  797. - O mesmo efeito pode ser obtido com a opção de linha de comando
  798. ``--style``.
  799. - A opção de linha de comando --style tem precedência sobre a
  800. configuração de %!style
  801. -----------------------------------------------------------------------
  802. == Detalhes dos Filtros PreProc e PostProc ==
  803. - Estes filtros foram acrescentados ao txt2tags na versão 1.6.
  804. - Filtros são uma função do tipo "buscar e trocar" (pense no sed)
  805. - O PREproc é aplicado logo após a linha ser lida, e o POSTproc é
  806. aplicado após todo o tratamento ter sido feito. Funcionam exatamente
  807. como em (UUOC à frente):
  808. ``` $ cat file.t2t | preproc.sh | txt2tags | postproc.sh
  809. - Escapes especiais como ``\n`` e ``\t`` são interpretados
  810. - Os filtros são cumulativos e são aplicados na mesma ordem em que são
  811. definidos
  812. - Os filtros devem receber exatamente DOIS argumentos
  813. - Para apagar uma string, troque ela por uma string vazia
  814. ``` %!postproc: "undesired string" ""
  815. - Para evitar problemas, sempre use informar explicitamente para que
  816. destino se aplica o filtro quando estiver usando o PostProc para mudar
  817. marcações: ``%!PostProc(destino): <isto> <aquilo>``
  818. - As Expressões Regulares do Python podem ser utilizadas! Elas são
  819. similares às Regex do Perl. Por exemplo: troque todas as marcações "B"
  820. para "STRONG" no HTML:
  821. ``` %!postproc(html): '(</?)B>' '\1STRONG>'
  822. - Os argumentos dos filtros podem ser passados de 3 formas:
  823. + Uma palavra simples, sem aspas ou plicas, como FOO (sem espaços)
  824. + Uma string com aspas duplas, como em "FOO"
  825. + Uma string com plicas ou apóstrofos, como em 'FOO'
  826. - Se seu padrão tem aspas, proteja as mesmas com plicas, e vice-versa.
  827. Alguns exemplos válidos:
  828. ```
  829. %!postproc: PADRÃO TROCA
  830. %!postproc: "PADRÃO" "TROCA"
  831. %!postproc: 'PADRÃO' 'TROCA'
  832. %!postproc: PADRÃO "TROCA"
  833. %!postproc: "PADRÃO" 'TROCA'
  834. ```
  835. -----------------------------------------------------------------------
  836. == Definindo uma Configuração para um Tipo-Destino Específico ==
  837. Desde a versão 1.6 do txt2tags, todas as Diretivas de Configuração podem
  838. ser especificadas para um destino específico, usando a sintaxe
  839. ``%!key(target): value``. Desta forma, o usuário pode definir diferentes
  840. configurações para diverentes tipos de arquivos gerados.
  841. Este aspecto é especialmente útil nos filtros pre/postproc, mas pode ser
  842. utilizado em todas as diretrizes. Por exemplo, configurar diferentes
  843. valores de Encoding para HTML e LaTeX:
  844. ```
  845. %!encoding(html): UTF-8
  846. %!encoding(tex): latin1
  847. ```
  848. **Nota:** O mapeamento de codificações para os nomes especiais
  849. LaTeX já é parte do txt2tags, o trecho acima é apenas um
  850. exemplo.
  851. Para o ``%!options``, pode ser interessante:
  852. ```
  853. %!target: sgml
  854. %!options(sgml): --toc
  855. %!options(html): --style foo.css
  856. %!options(txt ): --toc-only --toc-level 2
  857. ```
  858. Desta forma, o tipo de destino padrão é o SGML, com TOC. Se o usuário
  859. executar:
  860. ``` $ txt2tags -t html file.t2t
  861. O tipo de destino HTML será feito, e **somente** as opções de
  862. ``%!options(html)`` serão usadas. Desta forma, a opçõa --style será
  863. usada e o arquivo HTML não terá TOC.
  864. === A Precedência é Diferente ===
  865. Em geral, para as diretivas de configuração, a última encontrada é a
  866. usada, mas quando usar diretivas explícitas de tipo-destino, elas tem
  867. precedência sobre as genéricas, não importando qual vem antes. Assim:
  868. ```
  869. %!encoding(html): UTF-8
  870. %!encoding: latin1
  871. ```
  872. Irá expandir para 'UTF-8' quando chamado com ``-t html`` mesmo que
  873. 'latin1' seja definido logo após.
  874. === Filtros são Cumulativos ===
  875. Os filtros pre/postproc não tem precedência e não se encaixam no esquema
  876. "último encontrado", eles são cumulativos. O usuário pode configurar
  877. múltiplos filtros, e eles serão aplicados na ordem em que são definidos.
  878. Por exemplo:
  879. ```
  880. %!postproc : ^ \t
  881. %!postproc(txt): ^ '> '
  882. ```
  883. Com estes filtros, todos os tipos-destino serão indentados por uma TAB.
  884. Se o tipo-destino é TXT, ele também receberá citações, como mensagens
  885. de email.
  886. ```
  887. Desta forma Minha bela linha.
  888. se tornará \t> Minha bela linha.
  889. ```
  890. === Em Resumo ===
  891. - Para filtros, a ordem faz diferença e as regras genéricas __e__
  892. específicas ao tipo-destino serão usadas
  893. - Para outras configurações, __somente__ o tipo-destino especificado é
  894. usado (se definido, é claro), não importando a ordem
  895. == RC, CONF e a precedência de linha de comando ==
  896. três maneiras de dizer ao txt2tags quais opções e configurações usar:
  897. + O arquivo de usuário RC (``.txt2tagsrc``)
  898. + A Área de Configurações CONF do documento
  899. + As opções de linha de comando
  900. E esta é a ordem exata de como as configurações são lidas e aplicadas.
  901. Logo, as configuraçõe dp arquivo RC são lidas primeiro, daí as
  902. configurações do fonte do documento vêm a seguir, sobreescrevendo as do
  903. RC e finalmente as opções da linha de comando, mais fortes do que as
  904. outras duas.
  905. Então se o "encoding" do documento foi definido nas três opções, a da
  906. linha de comando será a utilizada.
  907. =======================================================================
  908. = Parte VI - Magia Negra =
  909. Este capítulo não é recomendado para novatos. Ele demonstra como fazer
  910. coisas estranhas com os filtros txt2tags, abusando de padrões complexos
  911. e Expressões Regulares.
  912. **CUIDADO!** Os procedimentos detalhados a seguir NÃO são
  913. encorajados e podem acarretar danos. Até mesmo algum texto do
  914. arquivo fonte pode ser perdido no processo de conversão, não
  915. aparecendo no arquivo gerado. Use estas táticas se você
  916. realmente precisa delas e sabe o que está fazendo.
  917. || Filtros são um recurso poderoso, mas podem ser perigosos! |
  918. ||

Large files files are truncated, but you can click here to view the full file