This module contains presenter classes, which are used for displaying XIST
nodes on screen (either on the terminal or via ipipe browsers).
def strtab(count):
def strtext(text):
class Presenter(object):
This class is the base of the presenter classes. It is abstract and only serves as documentation for the methods.
A Presenter generates a specific string representation of a node
to be printed on the screen.
def __init__(self, node):
selfdef presentText(self, *args, **kwargs):
selfPresent a ll.xist.xsc.Text node.
def presentFrag(self, *args, **kwargs):
selfPresent a ll.xist.xsc.Frag node.
def presentComment(self, *args, **kwargs):
selfPresent a ll.xist.xsc.Comment node.
def presentDocType(self, *args, **kwargs):
selfPresent a ll.xist.xsc.DocType node.
def presentProcInst(self, *args, **kwargs):
selfPresent a ll.xist.xsc.ProcInst node.
def presentAttrs(self, *args, **kwargs):
selfPresent an ll.xist.xsc.Attrs node.
def presentElement(self, *args, **kwargs):
selfPresent an ll.xist.xsc.Element node.
def presentEntity(self, *args, **kwargs):
selfPresent a ll.xist.xsc.Entity node.
def presentNull(self, *args, **kwargs):
selfPresent the ll.xist.xsc.Null node.
def presentAttr(self, *args, **kwargs):
selfPresent an ll.xist.xsc.Attr node.
class Line(object):
def __init__(self, node, loc, path, content):
selfdef __iter__(self):
selfdef __xattrs__(self, mode='default'):
selfclass TreePresenter(Presenter):
This presenter shows the object as a nested tree.
def __init__(self, node, indent=None):
selfCreate a TreePresenter object for the XIST node node using
indent for indenting each tree level. If indent is
None use the value of the environment variable LL_XIST_INDENT
as the indent string (falling back to a tab if the environment variable
doesn't exist).
def __str__(self):
selfdef strindent(self, level):
selfdef text(self, text):
selfdef __iter__(self):
selfdef _domultiline(self, node, lines, indent, formatter, head=None, tail=None):
selfdef presentFrag(self, node):
selfdef presentAttrs(self, node):
selfdef presentElement(self, node):
selfdef presentNull(self, node):
selfdef presentText(self, node):
selfdef presentEntity(self, node):
selfdef presentProcInst(self, node):
selfdef presentComment(self, node):
selfdef presentDocType(self, node):
selfdef presentAttr(self, node):
selfclass defaultpresenter(Presenter):
This presenter shows the object as a nested tree.
def __init__(self, node, indent=None):
selfCreate a TreePresenter object for the XIST node node using
indent for indenting each tree level. If indent is
None use the value of the environment variable LL_XIST_INDENT
as the indent string (falling back to a tab if the environment variable
doesn't exist).
def __str__(self):
selfdef strindent(self, level):
selfdef text(self, text):
selfdef __iter__(self):
selfdef _domultiline(self, node, lines, indent, formatter, head=None, tail=None):
selfdef presentFrag(self, node):
selfdef presentAttrs(self, node):
selfdef presentElement(self, node):
selfdef presentNull(self, node):
selfdef presentText(self, node):
selfdef presentEntity(self, node):
selfdef presentProcInst(self, node):
selfdef presentComment(self, node):
selfdef presentDocType(self, node):
selfdef presentAttr(self, node):
selfclass CodePresenter(Presenter):
This presenter formats the object as a nested Python object tree.
This makes it possible to quickly convert HTML/XML files to XIST constructor calls.
def __init__(self, node, indent=None):
selfCreate a CodePresenter object for the XIST node node using
indent for indenting each tree level. If indent is
None use the value of the environment variable LL_XIST_INDENT
as the indent string (falling back to a tab if the environment variable
doesn't exist).
def __str__(self):
selfdef __iter__(self):
selfdef _indent(self):
selfdef _text(self, text):
selfdef presentFrag(self, node):
selfdef _formatattrvalue(self, attrvalue):
selfdef presentAttrs(self, node):
selfdef presentElement(self, node):
selfdef presentNull(self, node):
selfdef presentText(self, node):
selfdef presentEntity(self, node):
selfdef presentProcInst(self, node):
selfdef presentComment(self, node):
selfdef presentDocType(self, node):
selfdef presentAttr(self, node):
self