class documentation

class ReferenceProcessor(BlockProcessor): (source)

View In Hierarchy

Process link references.

Method run Run processor. Must be overridden by subclasses.
Method test Test for block type. Must be overridden by subclasses.
Constant RE Undocumented

Inherited from BlockProcessor:

Method __init__ Undocumented
Method detab Remove a tab from the front of each line of the given text.
Method lastChild Return the last child of an etree element.
Method looseDetab Remove a tab from front of lines but allowing dedented lines.
Instance Variable parser Undocumented
Instance Variable tab_length Undocumented
def run(self, parent, blocks): (source)

Run processor. Must be overridden by subclasses. When the parser determines the appropriate type of a block, the parser will call the corresponding processor's ``run`` method. This method should parse the individual lines of the block and append them to the etree. Note that both the ``parent`` and ``etree`` keywords are pointers to instances of the objects which should be edited in place. Each processor must make changes to the existing objects as there is no mechanism to return new/different objects to replace them. This means that this method should be adding SubElements or adding text to the parent, and should remove (``pop``) or add (``insert``) items to the list of blocks. Keywords: * ``parent``: A etree element which is the parent of the current block. * ``blocks``: A list of all remaining blocks of the document.

def test(self, parent, block): (source)

Test for block type. Must be overridden by subclasses. As the parser loops through processors, it will call the ``test`` method on each to determine if the given block of text is of that type. This method must return a boolean ``True`` or ``False``. The actual method of testing is left to the needs of that particular block type. It could be as simple as ``block.startswith(some_string)`` or a complex regular expression. As the block type may be different depending on the parent of the block (i.e. inside a list), the parent etree element is also provided and may be used as part of the test. Keywords: * ``parent``: A etree element which will be the parent of the block. * ``block``: A block of text from the source which has been split at blank lines.

Undocumented

Value
re.compile(r'^ {,3}\[([^\[\]]*)\]: *\n? *([^\s]+) *(?:\n *)?((["\'])(.*)\4 *|\((
.*)\) *)?$',
           re.MULTILINE)