def visit_literal_block(self, node): attributes = node.attributes # left align style = preso.ParagraphStyle(**{'fo:text-align': 'start'}) self.cur_slide.push_style(style) # text styles attribs = self._get_text_attribs(node) if attribs: style = preso.TextStyle(**attribs) self.cur_slide.push_style(style) if attributes['classes'] and 'code-block' in attributes['classes']: node_input = node.astext() language = node.attributes['language'] self.cur_slide.add_code(node_input, language) # insert a new line after self.cur_slide.insert_line_break += 1 else: style = preso.TextStyle( **{ 'fo:font-family': preso.MONO_FONT, 'style:font-family-generic': "swiss", 'style:font-pitch': "fixed" }) self.cur_slide.push_style(style) node_input = node.astext() chunks = node_input.split('\n') for chunk in chunks: self.cur_slide.write(chunk) self.cur_slide.insert_line_break += 1 self.cur_slide.insert_line_breaks()
def visit_bullet_list(self, node): if self.at('topic'): return p_attribs = self._get_para_attribs(node) if p_attribs: self.cur_slide.push_style(preso.ParagraphStyle(**p_attribs)) attribs = self._get_text_attribs(node) if attribs: style = preso.TextStyle(**attribs) self.cur_slide.push_style(style) classes = node.attributes.get('classes', []) if 'handout' in classes: self._push_handout(classes) self.bullet_depth += 1 if not self.bullet_list: # start a new list self.bullet_list = preso.OutlineList(self.cur_slide) self.cur_slide.add_list(self.bullet_list) else: # indent one more self.bullet_list.indent() if 'incremental' in node.attributes.get('classes', []): self.in_node['incremental'] = True
def visit_line_block(self, node): #jump out of current paragraph self.cur_slide.parent_of('text:p') p_attribs = self._get_para_attribs(node) if p_attribs: self.cur_slide.push_style(preso.ParagraphStyle(**p_attribs)) else: # right justify P_attribs = {'fo:text-align': 'end', 'fo:margin-right': '.9cm'} style = preso.ParagraphStyle(**p_attribs) self.cur_slide.push_style(preso.ParagraphStyle(**p_attribs)) #self.cur_slide.push_style(style) attribs = self._get_text_attribs(node) if attribs: style = preso.TextStyle(**attribs) self.cur_slide.push_style(style)
def visit_block_quote(self, node): attribs = { 'fo:text-align': 'start', 'fo:margin-left': '1.2cm', 'fo:margin-right': '-.9cm', } style = preso.ParagraphStyle(**attribs) self.cur_slide.push_style(style)
def visit_attribution(self, node): # right justify attribs = {'fo:text-align': 'end', 'fo:margin-right': '.9cm'} style = preso.ParagraphStyle(**attribs) self.cur_slide.push_style(style) # italics style = preso.TextStyle(**{ 'fo:font-size': S5_SIZES['small'], 'fo:font-style': 'italic' }) self.cur_slide.push_style(style)
def visit_paragraph(self, node): classes = node.attributes.get('classes', []) self._push_handout(classes) ## if 'center' in classes: ## attribs = {'fo:text-align':'center', ## 'fo:margin-left':'1.2cm', ## 'fo:margin-right':'-.9cm', ## } ## style = preso.ParagraphStyle(**attribs) ## self.cur_slide.push_style(style) ## elif 'left' in classes: ## pass # default ## elif 'right' in classes: ## attribs = {'fo:text-align':'end', ## } ## style = preso.ParagraphStyle(**attribs) ## self.cur_slide.push_style(style) p_attribs = self._get_para_attribs(node) if p_attribs: self.cur_slide.push_style(preso.ParagraphStyle(**p_attribs)) # text styles attribs = self._get_text_attribs(node) if attribs: style = preso.TextStyle(**attribs) self.cur_slide.push_style(style) if self.bullet_list: pass elif self.at('topic'): return elif self.at('block_quote'): return # block quote adds paragraph style elif self.at('doctest_block'): pass