1

我正在编写一个基于重组文本的简单网页生成器,我想将标签放入文档中,就像这样。

=====
Title
=====

:author: Me
:tags: foo, bar

Here we go ...

我现在想要的:

  • 拥有某种文档树
  • 找到tags条目,阅读它,处理它(就像在命令行上打印标签),删除它并渲染剩余的树。

因此,我想编写兼容的重组文本,以防它使用与我的程序不同的东西进行编译。

有人可以给我一个提示吗?我在这里找到了这个http://svn.python.org/projects/external/docutils-0.6/docutils/examples.pyinternals方法中展示了如何获取文档(以及因此 dom 树),但这是最好的要走的路还是基于正则表达式的方法(查找行,删除它们)会容易得多?使用树也将涉及转换树→文档等。

4

2 回答 2

1

我认为我对这两个问题都有一个很好的解决方案。首先,发行版中的core.py文件docutils显示了如何获取 doctree 以及如何编写它(例如使用 html 编写器),请参阅publish_from_doctreepublish_doctree. 然后,有docutils.nodes.SparseNodeVisitor哪一个可以子类化和覆盖方法,例如visit_field以各种方式操作文档树。

于 2012-09-14T20:43:00.630 回答
1

有一些工具可以为您做到这一点。请参阅http://docutils.sourceforge.net/docs/user/links.html

于 2012-09-14T18:03:46.637 回答