普通文本的“麻雀变凤凰
”之路(The Choices To Make Plain Text To Be Rich)
整个标题整得有些过于夸张了(这种行为好像是称作“标题党
”吧?!),
呵呵,实际上,仅仅是因为无意间翻了翻“搞头书
”
[1
]
,
发现个叫“BlueCloth
”的Gem库可以将普通文本标记转换成HTML格式,
从而牵连出自己脑海中的其它几种完成类似功能的工具选择,故此借机汇聚一下,
当然了,更希望是“抛砖引玉
”,各位同仁如果还有更多的选择,不妨尽情添附,以(之)享整个社区。
对于文档之类的编写工作来说,大家或许早就习惯了MS Word之类工具倡导的“所见即所得(WYSIWYG)
”编写方式,
属于这一类的工具很多,包括:
但是,所有这些并不能代表整个世界,当我们透过镜子的这一面看过去的时候,就会发现,
在镜子的另一面,“所见即所得
”并不像我们最初所想象的那样处处受欢迎,
因为在这里,“基于标记文本的文字编写方式
”才是统治镜子另一面的那个“人
”。 :-)
我们不妨将“基于标记文本的文字编写方式
”划分为两类,第一类不妨称其为“基于普通文本的标记文本
”,
第二类不妨称其为“基于XML格式的标记文本
”,下面我们分别对这两类标记文本方式进行细谈...
通常情况下,“基于普通文本的标记文本
”都是在普通文本中间“穿插
”一些具有特殊意义的标记文本,
然后通过某种能够识别这些预先定义的标记文本的工具,对这些普通文本进行处理或者说转换,最终输出成各种格式的文档,比如最常见的就是输出成HTML文件。
属于此种范畴的“人选
”,第一个当属“WIKI
”,大名鼎鼎的Wikipedia(http://en.wikipedia.org/wiki/Main_Page)想必大家都已经早有耳闻了。
WIKI形式的文档就是,编辑的时候以普通文本形式进行编辑,而显示的时候,则根据普通文本内容中嵌入的各种标记进行格式化输出成HTML进行显示。对WIKI的总体情况,笔者其实不是很熟悉,
好像各家WIKI都有各自都有的标记文本语法(Syntax),而笔者充其量也只是早些年前自己装过“MoinMoin Wiki(http://moinmoin.wikiwikiweb.de/)
”,自己把玩了一把而已。
WIKI的实现产品很多,基于各种编程语言的WIKI都会各自涌现一些优秀的产品,像MoinMoin Wiki就是使用Python语言开发的,
除此之外,还有使用Java语言开发的XWiki,使用Perl开发的最早的Wiki应用WikiWikiWeb等等。
你可以从http://en.wikipedia.org/wiki/Wiki_software获取更多使用其他语言开发的Wiki软件的相关信息。
还记得前阵子在图灵的论坛里,刘江老师发起一个倡导大家通过Wiki合作写书的想法,可见Wiki并非浪得虚名,仅是说说而已了。
笔者想当年因为经济条件没有考研,所以也就没有真正验证过,只是听说,只要是读过研究生写过论文的,
好像大多数都接触过LaTeX(http://www.latex-project.org/),它属于TeX的改进版,但同样属于基于普通标记文本的文字编写方式。
LaTeX好像对各种公式的表达支持很好,不过,对于中文的支持来说,好像要诉诸于CTeX之类的本地化版本,但这都是笔者道听途说,
如果您对这种基于TeX/LaTeX的编辑方式感兴趣,倒是应该自己验证一下。俺此行的目的,仅仅是为了罗列选择项而已。
这里有一个摘自LaTeX网站的实例,或许能够让我们有一个感性的认识。如果编写如下源文本:
\documentclass{article}
\title{Cartesian closed categories and the price of eggs}
\author{Jane Doe}
\date{September 1994}
\begin{document}
\maketitle
Hello world!
\end{document}
那么,通过LaTeX处理后,将输出类似如下形式的显示效果(下面的输出无法完全反映效果,可以参考LaTeX网站上的样子):
Cartesian closed categories and the price of eggs
Jane Doe
September 1994
Hello world!
前面说了,这篇文字是由BlueCloth(http://www.deveiate.org/projects/BlueCloth/)引出的,
这是一个基于Markdown(http://daringfireball.net/projects/markdown/)标记语法的Ruby Gem库,
使用它,我们可以在Ruby程序中将符合Markdown标记语法的普通文本转换成HTML格式的文本以供显示。
在Ruby世界里,有一个BlueCloth的同胞兄弟,叫做RedCloth,它也是一个Ruby的Gem库,同样用于将普通的标记文本转换成HTML格式的文本,
但是,RedCloth所遵循的标记语法与BlueCloth是不一样的,它遵循的是Textism(http://www.textism.com/tools/textile/)所规定的标记语法。
这个是自己兄弟阿九的开源项目,主要基于Javascript实现,采用自己的标记文本语法,同样采用的是基于普通标记文本格式。
A9Text可以让你在本机方便的进行文档编写,而不用去操心各种格式的编排之类的琐事,你可以从http://trydofor.iteye.com/获取更多A9Text的信息。
我想,许多思想都是相似的,在其他的计算机语言或者说技术社区中,应该也存在许多基于同一思想的软件或者说产品,
只是,俺不是超人,不可能去一一认识,列位如若晓得,不妨道明,也让俺开阔些眼界。
这部分其实只是想说说DocBook,因为笔者现在已经习惯了基于docbook的文档编写方式,谁让俺没能精通Word的使用那,呵呵。
最初决定使用docbook的时候,是记得好像OReilly内部是使用docbook作为内部格式的,后来才发现,当初没有充分考虑国情,
因为国内还是用Word进行排版的,好在使用Docbook的好处就是,我只需要关注内容就可以了,至于最终的输出格式,
可以视情况而定,我可以将同样一份docbook输出成单页的HTML,多页的HTML,PDF等格式,甚至于如果我们能够知道Word文档的内部结构,
也可以写一个转换程序,将同一份docbook文档直接转换成Word文档。
实际上,这篇文字就是使用docbook编写的,通过Velocity项目提供的Docbook Framework,只需要少许几步,
就可以在Eclipse中搭建一个完备的文档编写工程,如果不考虑交换的话,只是自己编写一些东西,离了word,其实也满逍遥的。
或许真的就跟Linkin Park乐队在一首歌的结尾所说的那样,“Difference Is Good
”,
即使是基于相同的理念或者说思想,但各个产品之间还是会存在些许差异,或者是标记语法的差异,或者是实现语音的差异,等等。
这就跟经常见到的语言之争,框架之争一样,或许都只是个人喜好决定的,也正是如此,才会让整个世界变得如此斑斓。
但话又说回来了,有时候,选择太多了也不好,或许会让大家选择的很累,这个时候,过多的差异反而成为了问题,
能够一统天下的方式,或许又会更受欢迎,谁又知道那?!
分享到:
相关推荐
“文字变变”是纯文本的编辑器。它除了具备一般文本编辑功能,最大的特点就是可以实现文本的字符替换功能(就是本指南称其为“变变”功能)。使用文字变变可以实现以下应用:码转换:把简体中文的文本转换为繁体中文...
这个“易语言源码普通数值文本转科学计数文本.7z”压缩包文件,正如其名,包含了易语言源代码,用于实现将普通数值文本转换成科学计数法表示的文本。 在计算机编程中,数值的表示方式有多种,其中普通数值和科学...
普通文本转C/C++源文件支持的格式
在IT领域,文本比对是常见的任务之一,用于找出两段或多段文本之间的相似性或差异性。在Java编程环境中,有许多算法和技术可以用来实现这一功能。"Similarity.jar" 提供了三种经典的方法,方便开发者直接使用。下面...
cocos2dx版本的基于freetype2多彩文本渲染控件,可用于所有Label 底层C++解析渲染,批次渲染,多彩图文混排支持,效率高 Lua集成解决Html解析完美对接 一个Label完成大部分需求 包内包含底层代码、lua解析html...
易语言源码易语言文本可变加密源码.rar 易语言源码易语言文本可变加密源码.rar 易语言源码易语言文本可变加密源码.rar 易语言源码易语言文本可变加密源码.rar 易语言源码易语言文本可变加密源码.rar 易语言源码...
在自然语言处理领域,文本聚类是一种常见的无监督学习方法,用于将大量文本数据自动分成不同的类别,而无需预先知道类别的信息。KMeans算法是其中广泛应用的一种聚类算法,因其简单、高效而受到青睐。在Java环境中...
例如,`红色文本</font>` 可以使文本变为红色,`加粗文本</b>` 用于加粗文本,`下划线文本</u>` 添加下划线。此外,还可以嵌入图片、链接等元素,增加文本的交互性。 4. **动态更新与交互** 富文本的一个重要特性...
Win10 系统桌面图标文本字体变大恢复方法 Win10 系统桌面图标文本字体变大是一种常见的异常现象,可能是用户在操作过程中误操作引起的。这种情况下,桌面图标文本字体突然变大,影响了用户的操作体验。下面将介绍...
【TXT文本过滤器】是一款专为处理TXT文本文件设计的应用工具,其主要功能是帮助用户从文本文件中筛选并移除不希望出现的内容。在日常工作中,我们可能会遇到各种各样的TXT文本,其中可能包含广告信息、无用的注释、...
在本项目实战中,我们将深入探讨如何利用Python和KMeans算法进行文本聚类。文本聚类是无监督学习的一种应用,旨在将相似的文本分组到一起,无需预先指定类别。这个项目涵盖了从数据获取、预处理到模型构建的全过程,...
而"富文本"是现代游戏及应用中常见的一种文本表现形式,它允许我们创建具有多种样式、颜色、字体以及嵌入图像的文本。本篇文章将深入探讨如何在cocos2d环境中实现富文本功能,并重点关注"richlabel"这一特性。 富...
"16进制转文本工具"是专门设计用来将16进制形式的数据转换成人类可读的文本格式。这类工具对于程序员和系统管理员来说非常有用,因为他们经常需要查看或操作二进制文件的内容,而这些内容在16进制下更易于理解。例如...
总的来说,PDF文本转换器结合OCR技术,极大地提高了处理包含图像文字的PDF文档的效率,使得原本难以编辑的图像文字变得易于管理和利用。随着技术的不断进步,我们有理由期待未来的PDF文本转换器会提供更高效、更精准...
这个编辑器不仅提供了基本的文本编辑功能,还额外支持了如图片加载、上标和下标等高级特性,极大地扩展了文本编辑的可能性。 首先,让我们深入了解QWidget。QWidget是所有用户界面对象的基类,它是QT中构建图形用户...
在本文中,我们将深入探讨基于WPF的富文本编辑器,这是一个开源项目,其功能类似于Microsoft Word。这个编辑器提供了一系列强大的文本处理能力,适用于开发人员构建自定义的文本编辑应用。 **WPF(Windows ...
标题 "文本对比器 找出两个文本文件不同的地方" 指的是一个工具或方法,其目的是比较两个文本文件的内容差异。在IT领域,这样的工具非常常见,它们可以帮助用户识别两个文本文件之间的细微差别,这对于代码审查、...
Java编写的k-means文本聚类算法是一种在自然语言处理和机器学习领域广泛应用的方法,它主要用于将大量文本数据组织成不同的类别,以便于分析、理解和管理。k-means算法是一种迭代的无监督学习方法,其核心是通过计算...
在自然语言处理(NLP)领域,文本情感分析是一项关键任务,它涉及到识别和提取文本中的主观信息,尤其是情绪色彩。这个"python机器学习——文本情感分析(英文文本情感分析)"项目提供了一套完整的Python代码,用于...