Ejemplo n.º 1
0
    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()
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
    def visit_inline(self, node):
        attribs = self._get_text_attribs(node)
        if attribs:
            style = preso.TextStyle(**attribs)

            self.cur_slide.push_style(style)
        if 'incremental' in node.attributes.get('classes', []):
            self.cur_slide.start_animation(preso.Animation())
Ejemplo n.º 4
0
 def visit_literal(self, node):
     style = preso.TextStyle(
         **{
             'fo:font-family': preso.MONO_FONT,
             'style:font-family-generic': "swiss",
             'style:font-pitch': "fixed"
         })
     self.cur_slide.push_style(style)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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
Ejemplo n.º 8
0
 def visit_subscript(self, node):
     attribs = {'style:text-position': 'sub 58%'}
     style = preso.TextStyle(**attribs)
     self.cur_slide.push_style(style)
Ejemplo n.º 9
0
 def visit_strong(self, node):
     attribs = {'fo:font-weight': 'bold'}
     style = preso.TextStyle(**attribs)
     self.cur_slide.push_style(style)
Ejemplo n.º 10
0
 def visit_emphasis(self, node):
     attribs = {'fo:font-style': 'italic'}
     style = preso.TextStyle(**attribs)
     self.cur_slide.push_style(style)