コード例 #1
0
    def __init__(self, block_map):
        self.block_map = block_map
        self.document = DOM.create_document_fragment()

        self.wrapper_stack = [
            # Default wrapper element is a fragment, does not have options.
            [DOM.create_document_fragment(), 0, []],
        ]
コード例 #2
0
    def __init__(self, depth, options):
        if options:
            self.elt = DOM.create_element(options[0], options[1])
        else:
            self.elt = DOM.create_document_fragment()

        self.depth = depth
        self.options = options
コード例 #3
0
    def __init__(self, root_element, entity_decorators, entity_map):
        self.entity_decorators = entity_decorators
        self.entity_map = entity_map

        stack_start = DOM.create_document_fragment()
        DOM.append_child(root_element, stack_start)

        self.entity_stack = [(stack_start, {})]
コード例 #4
0
    def set_wrapper(self, options=[], depth=0):
        if len(options) == 0:
            element = DOM.create_document_fragment()
        else:
            element = DOM.create_element(options[0], options[1])

        new_wrapper = [element, depth, options]

        if depth >= len(self.wrapper_stack):
            DOM.append_child(DOM.get_children(self.get_wrapper_elt())[-1], element)

            self.wrapper_stack.append(new_wrapper)
        else:
            # Cut the stack to where it now stops, and add new wrapper.
            self.wrapper_stack = self.wrapper_stack[:depth] + [new_wrapper]
コード例 #5
0
    def replace_linebreaks(self, text):
        lines = text.split('\n')

        if len(lines) > 1:
            wrapper = DOM.create_document_fragment()

            DOM.append_child(wrapper, DOM.create_text_node(lines[0]))

            for l in lines[1:]:
                DOM.append_child(wrapper, DOM.create_element('br'))
                DOM.append_child(wrapper, DOM.create_text_node(l))
        else:
            wrapper = DOM.create_text_node(text)

        return wrapper
コード例 #6
0
    def render_entitities(self, root_element, style_node):
        stack_start = DOM.create_document_fragment()
        DOM.append_child(root_element, stack_start)

        element_stack = [stack_start]
        new_element = stack_start

        if len(self.entity_stack) == 0:
            DOM.append_child(root_element, style_node)
        else:
            for entity_details in self.entity_stack:
                decorator = self.get_entity_decorator(entity_details)
                props = entity_details.copy()

                props['children'] = style_node

                new_element = decorator.render(props)
                DOM.append_child(element_stack[-1], new_element)
                element_stack.append(new_element)

        return new_element
コード例 #7
0
    def __init__(self, block_map):
        self.block_map = block_map
        self.document = DOM.create_document_fragment()

        self.stack = WrapperStack()
コード例 #8
0
ファイル: test_dom.py プロジェクト: su27/draftjs_exporter
 def test_create_document_fragment(self):
     self.assertEqual(DOM.get_tag_name(DOM.create_document_fragment()), 'fragment')