Пример #1
0
    def from_notebook(nb, master):
        """Convert an nbformat.NotebookNode to a Presentation object"""
        pres = Presentation(master)
        slides = []
        for cell in nb.cells:
            if not cell.metadata.get("jupyterlab_powerpoint"):
                continue
            meta = cell.metadata.get("jupyterlab_powerpoint")

            slide_number = int(meta["slide"])
            type = meta["type"]
            placeholder = meta["placeholder"]

            while slide_number > len(slides):
                slides.append(None)
            if slides[slide_number - 1] is None:
                slides[slide_number - 1] = pres.new_slide(type)
            slide = slides[slide_number - 1]
            part = slide.new_part(placeholder)
            if part.has_text_frame:
                part.text_frame.text = pandoc(cell["source"], "markdown",
                                              "opendocument")

        for slide in slides:
            if slide is None:
                raise Exception("Slide gap")
        return pres
Пример #2
0
def pandoc_convert_links(source):
    return pandoc(source,
                  'markdown',
                  'latex',
                  extra_args=[
                      '--filter',
                      filter_links,
                      '--listings -H',
                      listings,
                  ])
Пример #3
0
        def run(self):  # check if there are spaces in the notebook name
            md_path = self.arguments[0]
            if ' ' in md_path:
                raise ValueError(
                    "Due to issues with docutils stripping spaces from links, white "
                    "space is not allowed in notebook filenames '{0}'".format(
                        md_path))

            # check if raw html is supported
            if not self.state.document.settings.raw_enabled:
                raise self.warning('"%s" directive disabled.' % self.name)

            # get path to markdown file
            md_filename = self.arguments[0]
            md_dir = os.path.join(setup.confdir, '..')
            md_abs_path = os.path.abspath(os.path.join(md_dir, md_filename))

            with open(md_abs_path) as file:
                source = file.read()

            ptype = self.pandoc_from

            if 'from' in self.options:
                ptype = self.options['from']

            if ptype is '':
                ptype = 'markdown'

            # if ptype != '':
            #     arglist = ['pandoc', '--from=' + ptype, '--to=rst', md_abs_path]
            # else:
            #     arglist = ['pandoc', '--to=rst', md_abs_path]
            #
            # p = subprocess.Popen(arglist,
            #     stdout=subprocess.PIPE,
            #     stderr=subprocess.PIPE
            # )
            #
            # out, err = p.communicate()
            #
            # print(out)

            out = pandoc(source, ptype, 'rst')

            settings = OptionParser(components=(Parser, )).get_default_values()
            parser = Parser()
            document = new_document('DOC', settings)
            parser.parse(out, document)

            return [node for node in document]
        def run(self): # check if there are spaces in the notebook name
            md_path = self.arguments[0]
            if ' ' in md_path: raise ValueError(
                "Due to issues with docutils stripping spaces from links, white "
                "space is not allowed in notebook filenames '{0}'".format(md_path))

            # check if raw html is supported
            if not self.state.document.settings.raw_enabled:
                raise self.warning('"%s" directive disabled.' % self.name)

            # get path to markdown file
            md_filename = self.arguments[0]
            md_dir = os.path.join(setup.confdir, '..')
            md_abs_path = os.path.abspath(os.path.join(md_dir, md_filename))

            with open(md_abs_path) as file:
                source = file.read()

            ptype = self.pandoc_from

            if 'from' in self.options:
                ptype = self.options['from']

            if ptype is '':
                ptype = 'markdown'

            # if ptype != '':
            #     arglist = ['pandoc', '--from=' + ptype, '--to=rst', md_abs_path]
            # else:
            #     arglist = ['pandoc', '--to=rst', md_abs_path]
            #
            # p = subprocess.Popen(arglist,
            #     stdout=subprocess.PIPE,
            #     stderr=subprocess.PIPE
            # )
            #
            # out, err = p.communicate()
            #
            # print(out)

            out = pandoc(source, ptype, 'rst')

            settings = OptionParser(components=(Parser,)).get_default_values()
            parser = Parser()
            document = new_document('DOC', settings)
            parser.parse(out, document)

            return [node for node in document]
Пример #5
0
def markdown2rst(source, extra_args=None):
    """Convert a markdown string to ReST via pandoc.

    This function will raise an error if pandoc is not installed.
    Any error messages generated by pandoc are printed to stderr.

    Parameters
    ----------
    source : string
      Input string, assumed to be valid markdown.

    Returns
    -------
    out : string
      Output as returned by pandoc.
    """
    return pandoc(source, 'markdown', 'rst', extra_args=extra_args)
Пример #6
0
def markdown2rst(source, extra_args=None):
    """Convert a markdown string to ReST via pandoc.

    This function will raise an error if pandoc is not installed.
    Any error messages generated by pandoc are printed to stderr.

    Parameters
    ----------
    source : string
      Input string, assumed to be valid markdown.

    Returns
    -------
    out : string
      Output as returned by pandoc.
    """
    return pandoc(source, "markdown", "rst", extra_args=extra_args)
 def replacement(a):
     import textwrap
     w=a.group(0)            
     theenv=a.group(1)
     tobetranslated=a.group(2)
     tobetranslated=textwrap.dedent(tobetranslated)
     if theenv in environmentMap:
         tobetranslated=tobetranslated.replace(r'\item',r'/item') #pandoc does not translate lines beginning with \item 
         out=pandoc(tobetranslated, 'markdown', 'latex')
         out=out.replace(r'/item',r'\item')
         result = '/begin{' + theenv + '}\n'+ out + '\n\end{' + theenv + '}';
     else:
         tobetranslated=tobetranslated.replace('\\begin','/begin') 
         result = '/begin{' + theenv + '}'+ tobetranslated + '\end{' + theenv + '}';
     #the transform \begin --> /begin is done in order to avoid the group to match again
     
     #print(result)
     return result
Пример #8
0
def markdown2latex(source, markup='markdown', extra_args=None):
    """Convert a markdown string to LaTeX via pandoc.

    This function will raise an error if pandoc is not installed.
    Any error messages generated by pandoc are printed to stderr.

    Parameters
    ----------
    source : string
      Input string, assumed to be valid markdown.
    markup : string
      Markup used by pandoc's reader
      default : pandoc extended markdown
      (see http://johnmacfarlane.net/pandoc/README.html#pandocs-markdown)

    Returns
    -------
    out : string
      Output as returned by pandoc.
    """
    return pandoc(source, markup, 'latex', extra_args=extra_args)
Пример #9
0
def markdown2latex(source, markup="markdown", extra_args=None):
    """Convert a markdown string to LaTeX via pandoc.

    This function will raise an error if pandoc is not installed.
    Any error messages generated by pandoc are printed to stderr.

    Parameters
    ----------
    source : string
      Input string, assumed to be valid markdown.
    markup : string
      Markup used by pandoc's reader
      default : pandoc extended markdown
      (see http://johnmacfarlane.net/pandoc/README.html#pandocs-markdown)

    Returns
    -------
    out : string
      Output as returned by pandoc.
    """
    return pandoc(source, markup, "latex", extra_args=extra_args)
Пример #10
0
def convert_pandoc(source, from_format, to_format, extra_args=None):
    """Convert between any two formats using pandoc.

    This function will raise an error if pandoc is not installed.
    Any error messages generated by pandoc are printed to stderr.

    Parameters
    ----------
    source : string
        Input string, assumed to be valid in from_format.
    from_format : string
        Pandoc format of source.
    to_format : string
        Pandoc format for output.

    Returns
    -------
    out : string
        Output as returned by pandoc.
    """
    return pandoc(source, from_format, to_format, extra_args=extra_args)
Пример #11
0
def convert_pandoc(source, from_format, to_format, extra_args=None):
    """Convert between any two formats using pandoc.

    This function will raise an error if pandoc is not installed.
    Any error messages generated by pandoc are printed to stderr.

    Parameters
    ----------
    source : string
      Input string, assumed to be valid in from_format.

    from_format : string
        Pandoc format of source.

    to_format : string
        Pandoc format for output.

    Returns
    -------
    out : string
      Output as returned by pandoc.
    """
    return pandoc(source, from_format, to_format, extra_args=extra_args)
Пример #12
0
def markdown2html_pandoc(source, extra_args=None):
    """Convert a markdown string to HTML via pandoc"""
    extra_args = extra_args or ['--mathjax']
    return pandoc(source, 'markdown', 'html', extra_args=extra_args)
Пример #13
0
def markdown2html_pandoc(source, extra_args=None):
    """Convert a markdown string to HTML via pandoc"""
    extra_args = extra_args or ["--mathjax"]
    return pandoc(source, "markdown", "html", extra_args=extra_args)
def markdown2html_pandoc(source, extra_args=None):
    """Convert a markdown string to HTML via pandoc"""
    extra_args = extra_args or ['--mathjax']
    return pandoc(source, 'markdown', 'html', extra_args=extra_args)
Пример #15
0
def pandoc_convert_links(source):
    return pandoc(source,
                  'markdown',
                  'latex',
                  extra_args=['--filter', filter_links])
Пример #16
0
def pandoc_convert_links(source):
    return pandoc(source,
                  "markdown",
                  "latex",
                  extra_args=["--filter", filter_links])
Пример #17
0
def pandoc_convert_links(source):
    return pandoc(source, 'markdown', 'latex', extra_args=['--filter', filter_links])