当前位置: 首页 > 工具软件 > txt2tags > 使用案例 >

txt2tags实践记录

郗欣嘉
2023-12-01
 

txt2tags实践记录

lli_njupt(lli_njupt@163.com)
08/23/2011

因为要写一些含有源代码的文档,但是使用Word让我感觉很Boring,以前写的文档今天再去看是在有些头大:贴上去的代码相当Ugly,即便花了很长时间调节排版格式最后还是很差强人意,另外从Word中复制其他网站上可能会出现换行符不匹配问题,比如原来是\n,现在是\n\n,每次都要调节。

后来在网上找到了DocBook,在网上找到很多文档,但是研究了半天,实在是配置太繁琐,本来是要为书写文档服务,但是又要为配置书写的工具划伤几天功夫,后来又找到了高德纳开发的Tex的衍生版本Latex,但是使用起来还是相当不顺手,本来无需太多的复杂功能,却要花费很多时间去研究Latex的语法。怎么办呢? 突然想到以前用到过的一个Wiki,好像具有很好的源码显示功能,但是呢,又必须安装服务器!懒到家了,后来就找到了txt2tags,终于算是满足了我的小小的简单功能要求了。

1. txt2tags是什么

txt2tags是使用Pthyon语言写的脚本,一个文本格式化和转换工具,能够将带有特定标记的纯文本文件转换为支持的任意一种目标格式,包括:

  • HTML文档
  • XHTML文档
  • SGML文档
  • LaTeX源文件
  • Unix手册页(man page)
  • MagicPoint演示文稿
  • Wikipedia维基百科页面
  • Google Wiki 页面
  • DokuWiki页面
  • MoinMoin页面
  • PageMaker 6.0 文档
  • 纯文本文件

更多的信息可以从http://txt2tags.org/得到,一个中文的指南可以在这里下载http://txt2tags.org/zh/userguide-zh.pdf

2. 安装环境

Linux ubuntu 2.6.35-28-generic

txt2tags 2.6 version

3. 安装txt2tags

ubuntu 是自带txt2tags的,如果版本较低的话可以从http://txt2tags.org/下载最新版本,或者 apt-get install txt2tags

强烈建议下载源码并安装,因为vim相关的配置需要下载源码。

4. 配置vim

可以直接使用文本编辑器编辑txt2tags使用的*.t2t文件,但是一个有颜色标注的编辑器是用来提高编辑效减少错误的前提。txt2tags-2.6\extras 源码中提供了相关的脚本。

4.1. txt2tags.vim

txt2tags.vim提供了在vim打开*.t2t文件时的颜色标注功能。将它放到/usr/share/vim/vim72/syntax/下,并编辑/usr/share/vim/vim72/filetype.vim ,在

" Z-Shell script
  au BufNewFile,BufRead .zprofile,/etc/zprofile,.zfbfmarks  setf zsh
  au BufNewFile,BufRead .zsh*,.zlog*,.zcompdump*  call s:StarSetf('zsh')
  au BufNewFile,BufRead *.zsh                     setf zsh

下添加

" txt2tags file
  au BufNewFile,BufRead *.t2t                 setf txt2tags

此时再使用vim打开*.t2t文件,就会可以看到颜色的变化了:所有的关键字都会用对应的颜色显示出来。

注意:不同的Linux操作系统vim72对应的路径名可能不同。

4.2. txt2tags-compiler.vim

txt2tags-compiler.vim提供了在vim中直接对当前文件转换的功能,这一点对于调试至关重要,因为一个通常的转换命令txt2tags -i test.t2t -t html -o test.html是相当繁琐的。

将txt2tags-compiler.vim放置到/usr/share/vim/vim72/plugin即可。

网上有文档提到需要将let g:txt2tags_executable = "txt2tags"更改为let g:txt2tags_executable = "txt2tags.py" 但是由于ubuntu上/usr/bin/txt2tags是没有后缀.py的,所以无需更改。

如果此时使用vim打开*.t2t文件并尝试使用:make来转换文件将提示txt2tags.error: txt2tags: Error: No target specified (try --help), 网上的文档没有提到为什么,实际上思考一下也会明白:txt2tags支持多种目标文件的输出,但是我们并没有告诉txt2tags需要哪一种文件,最终在userguide-zh.pdf找到了答案,%!Target用来定义缺省的文件格式,添加%!Target: html 到*.t2t文件的开始。此时在vim中直接使用:mak就可以转换了,此时相同目录下将出现同名的但是扩展名为.html的文件了。另外调节了%!Target: html后,在命令行中直接使用

txt2tags test.t2t

即可。%!Options代表编译时命令行的其他选项,它不是必需的。

提示:txt2tags-compiler.vim不仅提供了命令mak,还提供了对应的快捷键F5,直接使用F5即可转换。

5. txt2tags的缺点

  • 在vim中编译,中文输入法实在不便,这可能需要更新一下Linux输入法了。
  • 有些标记似乎在嵌套的时候有问题,有待研究
  • 有些输出和网站提供的演示输出不同,比如"```"标记部分并不带阴影,可能需要自己提供css来实现了。
  • txt2tags对于图片的控制只能是简单的联入,而不能控制属性
  • txt2tags使用标记,需要不停在中文和Ascii码切换,幸亏不是太多
  • txt2tags不能直接输出pdf格式,需要走t2t->tex->pdf。

    虽然如此,txt2tags已经可以满足大多数的文档的编辑,特别是格式比较复杂的文档的编辑,并且可以方便的到处各类格式的最终文件。另外,对于一个喜欢折腾的人,自己可以直接更改txt2tags Pthyon脚本,来扩充自己的需要。txt2tags中的宏也是一个亮点。

    注意:编辑t2t文件时使用的编码一定要和%!encoding:xxx 一致,否则会出现乱码
 类似资料: