一个受AntiWeb启发的文本处理和识字编程工具

pnw的Python项目详细描述


最新版本见Bitbucket

pnw是一种应用广泛的文本处理工具。它可以 用于将不同来源的文本块编译为新文本 文件。与剪切和粘贴技术相比的优势在于 自动跟踪源文件。其次,我们提供 pandoc文档转换器的包装器。因此,文本块 可以从多种轻量级标记转换为多种轻量级标记 语言以及html和tex/latex。尽管识字编程 已经有点过时了,PNW可以作为一个有文化的 编程工具也是。不足为奇,PNW本身及其 文档使用PNW编写。PNW的灵感来自Noweb 并深受启发(甚至借用部分语法) antiweb。重要的 PNW的特点是支持 名称空间。这允许创建可重用的块库 以类似于python的dot符号语法导入和寻址 模块。

PNW文件是一个文本文件,带有定义命名文本块的标记。在一个 这类似于xml文件。标记可能隐藏在注释后面 字符,以便文件可以由另一个程序处理。 可以处理和呈现来自各种pnw文件的文本块 另一个PNW文件。

文档

文档是用latex编写的。编译 pdf pnw-doc.pdf运行:

make doc

从命令行。你也可以在 python包索引。提供了pnw-doc.pdf。我不知道 将其置于版本控制之下,因为它将不必要地 扩大回购。

示例

假设安装了pnw,从pnw的主目录 包打开一个交互式python会话,我建议使用 ipython,并写入

import pnw
pnw.pnwimport('pnw.pnw','')

现在您可以浏览pnw.pnw源文件的pnw文档树 通过检查字典

pnw.chunks

要查看块的结构,只需打印它的repr

pnw.chunks['moduledoc']

要渲染它,请尝试

print pnw.chunks['moduledoc'].render(indent=0,depth=2,toformat='rst')

pnw源由一个文件pnw.pnw组成。它是一条工作的Python 包含隐藏在#注释字符后面的pnw标记的文件。到 生成我们调用的干净的python文件(比较main中的makefile 目录)

python ./pnw.pnw  -F pnw.pnw > pnw.py

-F指令意味着整个文件被视为一个块 命名为u''。在为 第一次。

文档的主驱动程序文件是 doc目录。这是这个文件的头

#@chunk(main,format=latex)
#@path(../..)
#@path(..)
#@import(latex-blocks.tex)
#@import(md-blocks)
#@import(pnw.pnw)
#@include(ltxheader)

首先,整个文件被声明为名为main的块,即 latex格式化。然后我们将前两个父目录添加到 搜索导入路径。然后文件latex-blocks.texmd-blockspnw.pnw包含在主命名空间u''中。 块ltxheader,它包含它的名称,以及 可在latex-blocks.tex中找到。

pnw-doc.pnw包含一些用 latex。大多数情况下,它包括来自其他文件的块。大部分的 用markdown编写的文档可以在md-blocks中找到。

最后,通过调用

pnw -Rmain pnw-doc.pnw > pnw-doc.tex

PNW在BitbucketPyPi上。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java结合两个Date实例使用Joda创建datetime   带有POI和FileOutputStream的java Swing应用程序性能问题   Java中是否存在类似于Python的异常?   Java中有界通配符的泛型   使用字符和子字符串的java不同输出   在Java中获取LDAP模式   java自定义类在自身上生成ClassNotFoundException   java连接到从internet到通过LAN连接到internet的系统的serversocket   java如何通过maven在jaxws中使用jaxb插件?   java Kerberos如何获取主体或客户端名称?   java应用服务器中是否有JDBC的单点登录解决方案?   java是存储矩阵值以便以后访问的更好方法   Java等级计算器。开始这门课我需要一些帮助   未找到Android“libc++\u shared.so”中的java OpenCV实现   当我使用web配置部署描述符时使用java。xml。它显示了错误   java为什么我的ArrayList的add方法冲突,如何编辑我的自定义add方法   java创建一个以集合为键的映射?   java如何将用户输入到数字三角形中   为什么Java在读取LinkedHashMap时会自动从字符串转换为整数   类动态创建和读取java类