From: Guenter M. <mi...@us...> - 2011-05-06 06:08:42
|
On 2011-05-05, Yunfan Jiang wrote: > [-- Type: text/plain, Encoding: quoted-printable --] Dear Yunfan, > well, i choice a >> a) implement a "blog-writer" and use the field values in it > as a lazy programmer, its best to use some tech like register a hook to got > the target filedlist and then store the value to return > this is neccessary on the statemachine lib > but the rst parser implement ignore the context variable ,so any registed > processer couldnt access the context to the statemachine The doctree is interlinked and there are functions and arguments to traverse it, e.g.: :node.parent: points to the parent node so you can e.g. check for inline vs. block level nodes with :: def is_inline(self, node): """Check whether a node represents an inline element""" return isinstance(node.parent, nodes.TextElement) :node.traverse(): is the more general method to get related nodes, see its documentation. > the plan b might be a quick way , but it seems not directive, why not return > a python dict instead of xml node tree? >> b) convert to XML and use standard tools to extract the info, >> or convert to a Docutils doctree and extract the info traversing >> the tree (similar to what is done in the transforms >> -> see docutils/docutils/transforms/*.py). Until now, the need did not arise. (How would you print the dict-based document tree?) But it should be relatively easy to write an utility function that, given the doctree or the docinfo node returns the fields as dictionary. Günter (no TOFU_, please) .. _TOFU: http://en.wikipedia.org/wiki/Posting_style#Top-posting |