示例#1
0
 def _read_doc_tree(toc_entry, doc_id, doc_path):
     config = CFMParserConfig(
         allowed_tags=lib.get_allowed_tags(),
         document_id=doc_id,
         document_path=doc_path)
     with toc_entry.root_path.open() as f:
         return cfm_to_cwdom(f.read(), config)
示例#2
0
 def test_self_closing_tag(self):
     root = CWRootNode(cfm_to_cwdom("<a />", CONFIG))
     self.assertMultiLineEqual(
         root.get_string_for_test_comparison(), self.strip("""
             Root()
               a(kwargs={})
         """))
示例#3
0
    def test_block_html_6(self):
        s = self.strip("""
            <x>

            some test
            </x>
        """)
        self.log_node(CWRootNode(cfm_to_cwdom(s, CONFIG, fix_tags=False)))
        root = CWRootNode(cfm_to_cwdom(s, CONFIG))
        self.assertMultiLineEqual(
            root.get_string_for_test_comparison(), self.strip("""
                Root()
                  x(kwargs={})
                    p(kwargs={})
                      'some test'
            """))
示例#4
0
    def test_block_html_3(self):
        s = self.strip("""
            <x>

            some test</x>
        """)
        root = CWRootNode(cfm_to_cwdom(s, CONFIG))
        self.log_node(root)
示例#5
0
def _get_symbol_node(
        parser_config, src_url_fmt, path, symbol, h_level=2, full_path=True):
    src_link_nodes = []

    if src_url_fmt:
        output_url = src_url_fmt.format(
            relative_path=symbol.relative_path,
            line_number=symbol.line_number)
        link =  CWTagNode(
            'a', {'href': output_url, 'class': 'autodoc-source-link'},
            [CWTextNode('src')])
        src_link_nodes = [link]

    name_nodes = []

    if symbol.type in {'class', 'function'}:
        name_nodes.append(
            CWTagNode('span', {'class': 'autodoc-keyword'}, [
                CWTextNode(symbol.type + ' ')
            ]))

    name_nodes.append(
        CWTagNode('span', {'class': 'autodoc-identifier'}, [
            CWTextNode(path if full_path else symbol.name)
        ]))

    if symbol.string_inside_parens is not None:
        name_nodes.append(
            CWTagNode('span', {'class': 'autodoc-arguments'}, [
                CWTextNode('(' + symbol.string_inside_parens + ')')
            ]))

    if symbol.return_value:
        name_nodes.append(
            CWTagNode('span', {'class': 'autodoc-return-value'}, [
                CWTextNode(' &rarr; ', escape=False),
                CWTextNode(symbol.return_value)
            ]))

    heading_node = CWTagNode(
        'h{}'.format(h_level), {},
        [CWTagNode('code', {}, name_nodes)] + src_link_nodes
    )
    heading_node.data['ref_id_override'] = path

    children = [heading_node]

    if symbol.docstring:
        css_class = 'autodoc-{}-docstring-body'.format(symbol.type)
        docstring_children = cfm_to_cwdom(symbol.docstring, parser_config)
        children.append(CWTagNode(
            'div', {'class': css_class}, children=docstring_children))
    node = CWTagNode(
        'section', kwargs={'class': 'autodoc-{}'.format(symbol.type)},
        children=children)
    return node
示例#6
0
 def test_inline_html(self):
     root = CWRootNode(cfm_to_cwdom("a <b><c>b</c></b> c", CONFIG))
     self.assertMultiLineEqual(
         root.get_string_for_test_comparison(), self.strip("""
             Root()
               'a '
               b(kwargs={})
                 c(kwargs={})
                   'b'
               ' c'
         """))
示例#7
0
    def test_block_html_5(self):
        s = self.strip("""
            <x>
            some test

            </x>
        """)
        root = CWRootNode(cfm_to_cwdom(s, CONFIG))
        self.assertMultiLineEqual(
            root.get_string_for_test_comparison(), self.strip("""
                Root()
                  x(kwargs={})
                    '\\nsome test'
            """))
示例#8
0
    def test_block_html_2(self):
        s = self.strip("""
            abc<x>some <x>test

            </x>

            </x>abc
        """)
        print('----------------------')
        self.log_node(CWRootNode(cfm_to_cwdom(s, CONFIG, fix_tags=False)))
        root = CWRootNode(cfm_to_cwdom(s, CONFIG))
        self.log_node(root)
        self.assertMultiLineEqual(
            root.get_string_for_test_comparison(), self.strip("""
                Root()
                  p(kwargs={})
                    'abc'
                  x(kwargs={})
                    p(kwargs={})
                      'some test'
                  p(kwargs={})
                    'abc'
            """))
        print('^^^^^')