def __init__(self, document, builder): TextTranslator.__init__(self, document, builder) # Determine document's name (if any). assert builder.current_docname self.docname = builder.current_docname if SEP in self.docname: self.docparent = self.docname[0:self.docname.rfind(SEP) + 1] if not 'anchor' in builder.config.confluence_adv_restricted_macros: self.can_anchor = True else: self.can_anchor = False newlines = builder.config.text_newlines if newlines == 'windows': self.nl = '\r\n' elif newlines == 'native': self.nl = os.linesep else: self.nl = '\n' self.states = [[]] self.stateindent = [0] self.list_stack = [] self.sectionlevel = 1 self.table = False self.escape_newlines = 0 self.quote_level = 0 if self.builder.config.confluence_indent: self.indent = self.builder.config.confluence_indent else: self.indent = STDINDENT
def __init__(self, document, builder): TextTranslator.__init__(self, document, builder) # Determine document's name (if any). assert builder.current_docname self.docname = builder.current_docname if SEP in self.docname: self.docparent = self.docname[0:self.docname.rfind(SEP) + 1] newlines = builder.config.text_newlines if newlines == 'windows': self.nl = '\r\n' elif newlines == 'native': self.nl = os.linesep else: self.nl = '\n' self.states = [[]] self.stateindent = [0] self.list_counter = [] self.sectionlevel = 1 self.table = None if self.builder.config.confluence_indent: self.indent = self.builder.config.confluence_indent else: self.indent = STDINDENT self.wrapper = textwrap.TextWrapper(width=STDINDENT, break_long_words=False, break_on_hyphens=False)
def __init__(self, builder, document): if not hasattr(builder, "config"): raise TypeError("Builder has no config: {}".format(type(builder))) TextTranslator.__init__(self, document, builder) newlines = builder.config.text_newlines if newlines == 'windows': self.nl = '\r\n' elif newlines == 'native': self.nl = os.linesep else: self.nl = '\n' self.sectionchars = builder.config.text_sectionchars self.states = [[]] self.stateindent = [0] self.list_counter = [] self.sectionlevel = 0 self._table = None if self.builder.config.rst_indent: self.indent = self.builder.config.rst_indent else: self.indent = STDINDENT self.wrapper = textwrap.TextWrapper(width=STDINDENT, break_long_words=False, break_on_hyphens=False)
def visit_entry(self, node): if len(node) == 0: # Fill single-dot ``.`` for empty table cells self.table.add_cell(Cell('.')) raise nodes.SkipNode else: TextTranslator.visit_entry(self, node)
def __init__(self, document, builder): TextTranslator.__init__(self, document, builder) newlines = builder.config.text_newlines if newlines == 'windows': self.nl = '\r\n' elif newlines == 'native': self.nl = os.linesep else: self.nl = '\n' self.sectionchars = builder.config.text_sectionchars self.states = [[]] self.stateindent = [0] self.list_counter = [] # flag for tracking brackets in literals # e.g. list[str] -> *list[str]* rather than # *list**[**str**]* self.literal_subtype_closed = True self.sectionlevel = 0 self.table = None if self.builder.config.rst_indent: self.indent = self.builder.config.rst_indent else: self.indent = STDINDENT self.wrapper = textwrap.TextWrapper(width=STDINDENT, break_long_words=False, break_on_hyphens=False)
def __init__(self, builder, document): TextTranslator.__init__(self, document, builder) newlines = builder.config.text_newlines if newlines == 'windows': self.nl = '\r\n' elif newlines == 'native': self.nl = os.linesep else: self.nl = '\n' self.sectionchars = builder.config.text_sectionchars self.states = [[]] self.stateindent = [0] self.list_counter = [] self.sectionlevel = 0 self.table = None if self.builder.config.md_indent: self.indent = self.builder.config.md_indent else: self.indent = STDINDENT self.wrapper = textwrap.TextWrapper(width=STDINDENT, break_long_words=False, break_on_hyphens=False) self.md_template = self.builder.md_template self.md_link_replace = self.builder.md_link_replace
def depart_entry(self, node): TextTranslator.depart_entry(self, node) # replace return codes by @<br>{} text = self.table[-1].pop().strip() text = text.replace('\n', '@<br>{}') self.table[-1].append(text)
def __init__(self, document, builder): TextTranslator.__init__(self, document, builder) if self.builder.config.highlight_language: self._highlight = self.builder.config.highlight_language else: self._highlight = DEFAULT_HIGHLIGHT_STYLE self._linenothreshold = sys.maxsize
def depart_definition(self, node): pos = len(self.states[-2]) TextTranslator.depart_definition(self, node) # replace a blank line by ``@<br>{}`` while pos < len(self.states[-1]) - 1: item = self.states[-1][pos] if item[1] and item[1][-1] == '': item[1].pop() item[1][-1] += '@<br>{}' pos += 1
def __init__(self, document, builder): TextTranslator.__init__(self, document, builder) newlines = builder.config.text_newlines if newlines == 'windows': self.nl = '\r\n' elif newlines == 'native': self.nl = os.linesep else: self.nl = '\n' self.sectionchars = builder.config.text_sectionchars self.states = [[]] self.stateindent = [0] self.list_counter = [] self.sectionlevel = 0 self.table = None self.wrapper = textwrap.TextWrapper(width=STDINDENT, break_long_words=False, break_on_hyphens=False)
def visit_desc_signature(self, node): self._current_module = node.attributes.get('module', None) self._current_class = node.attributes.get('class', None) TextTranslator.visit_desc_signature(self, node)
def __init__(self, document, builder): TextTranslator.__init__(self, document, builder) self.in_desc = False
def visit_desc_name(self, node): self._desc_name = node.astext() TextTranslator.visit_desc_name(self, node)
def add_text(self, text, escape=True): if self.in_desc: etext = jl_escape(text) if escape else text TextTranslator.add_text(self, etext)
def __init__(self, document, builder): TextTranslator.__init__(self, document, builder)
def depart_desc_content(self, node): TextTranslator.depart_desc_content(self, node) self.new_state(0) self.add_text('"),\n', escape=False) self.end_state()
def depart_enumerated_list(self, node): TextTranslator.depart_enumerated_list(self, node) self.add_text(' }')
def depart_bullet_list(self, node): TextTranslator.depart_bullet_list(self, node) self.add_text(' }')
def new_state(self, indent=4): TextTranslator.new_state(self, indent)
def end_state(self, wrap=False, end=[''], first=None): return TextTranslator.end_state(self, wrap, end, first)
def visit_bullet_list(self, node): TextTranslator.visit_bullet_list(self, node) self.add_text(' +listing{')
def depart_entry(self, node): TextTranslator.depart_entry(self, node) # replace return codes by @<br>{} text = self.table.lines[-1][-1].text.strip() self.table.lines[-1][-1].text = text.replace('\n', '@<br>{}')
def visit_enumerated_list(self, node): TextTranslator.visit_enumerated_list(self, node) self.add_text(' +listing{')
def depart_enumerated_list(self, node): TextTranslator.depart_enumerated_list(self, node) # insert a blank line after the list if len(self.list_counter) == 0: self.add_lines([''])
def end_state(self, wrap=True, end=[''], first=None): # force disable text wrapping TextTranslator.end_state(self, wrap=False, end=end, first=first)