def process_node(self, node): """Every node passes through this function on the way to being rendered. Importantly, this adds the `marked_up` field, which contains the HTML version of node's text (after applying all relevant layers) and the `template_name` field, which defines how this node should be rendered.""" node['label_id'] = '-'.join(node['label']) self.process_node_title(node) node['is_collapsed'] = self.is_collapsed(node) node['html_label'] = to_markup_id(node['label']) node['markup_id'] = "-".join(node['html_label']) node['tree_level'] = len(node['label']) - 1 list_level = self.list_level(node['label'], node['node_type']) node['list_level'] = list_level if len(node['text']): inline_elements = self.inline_applier.get_layer_pairs( node['label_id'], node['text']) search_elements = self.search_applier.get_layer_pairs( node['label_id']) if self.diff_applier: node['marked_up'] = self.diff_applier.apply_diff( node['text'], node['label_id']) layers_applier = LayersApplier() layers_applier.enqueue_from_list(inline_elements) layers_applier.enqueue_from_list(search_elements) node['marked_up'] = layers_applier.apply_layers( node.get('marked_up', node['text'])) node['marked_up'] = self.section_space(node['marked_up']) node['marked_up'] = flatten_links(node['marked_up']) node = self.p_applier.apply_layers(node) node['template_name'] = RegulationsConfig.custom_tpls.get( node['label_id'], RegulationsConfig.node_type_tpls[node['node_type'].lower()]) if 'TOC' in node: for l in node['TOC']: l['label'] = self.section_space(l['label']) if 'interp' in node and 'markup' in node['interp']: node['interp']['markup'] = self.section_space( node['interp']['markup']) if node['node_type'] == INTERP: self.modify_interp_node(node) for c in node['children']: self.process_node(c)
def process_node(self, node): """Every node passes through this function on the way to being rendered. Importantly, this adds the `marked_up` field, which contains the HTML version of node's text (after applying all relevant layers) and the `template_name` field, which defines how this node should be rendered.""" node['label_id'] = '-'.join(node['label']) self.process_node_title(node) node['is_collapsed'] = self.is_collapsed(node) node['html_label'] = to_markup_id(node['label']) node['markup_id'] = "-".join(node['html_label']) node['tree_level'] = len(node['label']) - 1 list_level = self.list_level(node['label'], node['node_type']) node['list_level'] = list_level if len(node['text']): inline_elements = self.inline_applier.get_layer_pairs( node['label_id'], node['text']) search_elements = self.search_applier.get_layer_pairs( node['label_id']) if self.diff_applier: node['marked_up'] = self.diff_applier.apply_diff( node['text'], node['label_id']) layers_applier = LayersApplier() layers_applier.enqueue_from_list(inline_elements) layers_applier.enqueue_from_list(search_elements) node['marked_up'] = layers_applier.apply_layers( node.get('marked_up', node['text'])) node['marked_up'] = self.section_space(node['marked_up']) node['marked_up'] = flatten_links(node['marked_up']) node = self.p_applier.apply_layers(node) node['template_name'] = RegulationsConfig.custom_tpls.get( node['label_id'], RegulationsConfig.node_type_tpls[node['node_type'].lower()]) if 'TOC' in node: for l in node['TOC']: l['label'] = self.section_space(l['label']) if 'interp' in node and 'markup' in node['interp']: node['interp']['markup'] = self.section_space( node['interp']['markup']) if node['node_type'] == INTERP: self.modify_interp_node(node) for c in node['children']: self.process_node(c)
def process_node(self, node, indexes=None): """Every node passes through this function on the way to being rendered. Importantly, this adds the `marked_up` field, which contains the HTML version of node's text (after applying all relevant layers) and the `template_name` field, which defines how this node should be rendered.""" node['label_id'] = '-'.join(node['label']) self.process_node_title(node) node['is_collapsed'] = self.is_collapsed(node) node['indexes'] = indexes or [] node['html_label'] = node_types.to_markup_id(node['label']) node['markup_id'] = "-".join(node['html_label']) node['full_id'] = "-".join(self.id_prefix + node['html_label']) node['tree_level'] = len(node['label']) - 1 node['human_label'] = self.human_label(node) node['list_level'] = self.list_level(node['label'], node['node_type']) if len(node['text']): inline_elements = self.inline_applier.get_layer_pairs( node['label_id'], node['text']) search_elements = self.search_applier.get_layer_pairs( node['label_id']) if self.diff_applier: node['marked_up'] = self.diff_applier.apply_diff( node['text'], node['label_id']) layers_applier = LayersApplier() layers_applier.enqueue_from_list(inline_elements) layers_applier.enqueue_from_list(search_elements) node['marked_up'] = layers_applier.apply_layers( node.get('marked_up', node['text'])) node['marked_up'] = flatten_links(node['marked_up']) node = self.p_applier.apply_layers(node) node['template_name'] = RegulationsConfig.custom_tpls.get( node['label_id'], RegulationsConfig.node_type_tpls[node['node_type'].lower()]) for idx, child in enumerate(node['children']): self.process_node(child, indexes=node['indexes'] + [idx])
def process_node(self, node, indexes=None): """Every node passes through this function on the way to being rendered. Importantly, this adds the `marked_up` field, which contains the HTML version of node's text (after applying all relevant layers) and the `template_name` field, which defines how this node should be rendered.""" node['label_id'] = '-'.join(node['label']) self.process_node_title(node) node['is_collapsed'] = self.is_collapsed(node) node['indexes'] = indexes or [] node['html_label'] = node_types.to_markup_id(node['label']) node['markup_id'] = "-".join(node['html_label']) node['full_id'] = "-".join(self.id_prefix + node['html_label']) node['tree_level'] = len(node['label']) - 1 node['human_label'] = self.human_label(node) node['list_level'] = self.list_level(node['label'], node['node_type']) if len(node['text']): inline_elements = self.inline_applier.get_layer_pairs( node['label_id'], node['text']) search_elements = self.search_applier.get_layer_pairs( node['label_id']) if self.diff_applier: node['marked_up'] = self.diff_applier.apply_diff( node['text'], node['label_id']) layers_applier = LayersApplier() layers_applier.enqueue_from_list(inline_elements) layers_applier.enqueue_from_list(search_elements) node['marked_up'] = layers_applier.apply_layers( node.get('marked_up', node['text'])) node['marked_up'] = flatten_links(node['marked_up']) node = self.p_applier.apply_layers(node) node['template_name'] = RegulationsConfig.custom_tpls.get( node['label_id'], RegulationsConfig.node_type_tpls[node['node_type'].lower()]) for idx, child in enumerate(node['children']): self.process_node(child, indexes=node['indexes'] + [idx])