Exemplo n.º 1
0
    def _create_paragraph(self) -> Optional[Paragraph]:
        cur_line = self._line_iter.cur_line
        if cur_line is None or cur_line.is_empty:
            return None

        lines = []
        while cur_line is not None and not cur_line.is_empty:
            lines.append(cur_line.text)
            cur_line = self._line_iter.get_next_line()
        self._skip_empty_line()

        preformatted = self._are_lines_preformatted(lines)
        para_text = '\n'.join(lines)
        inline_parser = InlineParser(para_text, preformatted)
        inline_elements = inline_parser.parse()
        return Paragraph(inline_elements, preformatted=preformatted)
Exemplo n.º 2
0
    def _extend_page_with_task_cache(self, page: Page, task: Task) -> None:
        task_cache = task.cache
        if task_cache:
            if task_cache.readme:
                page.block_elements.append(
                    Header(level=2, inline_elements=[NormalText('readme:')]))
                page.block_elements.append(
                    Paragraph([NormalText(task_cache.readme)],
                              preformatted=True))
            if task_cache.file_names:
                page.block_elements.append(
                    Header(level=2, inline_elements=[NormalText('files:')]))
                file_tree = FilebufSplitter(task_cache.file_names).split()
                new_list = List()
                task_path = task.get_path(self._task_model.tasks_root)
                for name in sorted(file_tree.keys()):
                    new_link = Link(text=name, uri=str(task_path / name))
                    new_item = ListItem(inline_elements=[new_link])
                    self._build_file_list_recursive(new_item, file_tree[name],
                                                    task_path / name)
                    new_list.items.append(new_item)

                page.block_elements.append(new_list)
Exemplo n.º 3
0
 def test_link_without_text(self):
     self._test_one_element(
         Paragraph([Link(uri='www.wikipedia.de', text=None)]),
         '<p><a href="www.wikipedia.de">www.wikipedia.de</a></p>'
     )
Exemplo n.º 4
0
 def test_bold(self):
     self._test_one_element(
         Paragraph([NormalText('aaa'), BoldText('bbb'), NormalText('ccc')]),
         '<p>aaa<b>bbb</b>ccc</p>'
     )
Exemplo n.º 5
0
 def test_preformatted_paragraph(self):
     self._test_one_element(
         Paragraph([NormalText('  aaa\n  bbb')], preformatted=True),
         '<pre>  aaa\n  bbb</pre>'
     )
Exemplo n.º 6
0
 def test_simple_paragraph(self):
     self._test_one_element(
         Paragraph([NormalText('aaa')]),
         '<p>aaa</p>'
     )
Exemplo n.º 7
0
 def _create_paragraph(self, xml_para: ET.Element) -> Paragraph:
     inline_elements = list(self._iter_inline_elements(xml_para))
     preformatted = (xml_para.attrib.get('preformatted',
                                         'false').lower() == 'true')
     return Paragraph(inline_elements, preformatted=preformatted)
Exemplo n.º 8
0
 def test_link_without_text(self):
     self._test_one_element(
         Paragraph([Link(uri="https://www.wikipedia.de", text=None)]),
         '<paragraph><link uri="https://www.wikipedia.de" /></paragraph>')
Exemplo n.º 9
0
 def test_link_with_text(self):
     self._test_one_element(
         Paragraph([Link(uri="https://www.wikipedia.de",
                         text="Wikipedia")]),
         '<paragraph><link uri="https://www.wikipedia.de">Wikipedia</link></paragraph>'
     )
Exemplo n.º 10
0
 def test_preformatted_paragraph(self):
     self._test_one_element(
         Paragraph([NormalText('aaa')], preformatted=True),
         '<paragraph preformatted="true">aaa</paragraph>')
Exemplo n.º 11
0
 def test_paragraph(self):
     self._test_one_element(Paragraph([NormalText('aaa')]),
                            '<paragraph>aaa</paragraph>')