コード例 #1
0
def test_image_latex():
    """
    """
    #  "![a title](path/to/image.png){#label1 .class-name a=5}"
    in_json = (
        {"blocks": [
            {"t": "Para", "c": [
                {"t": "Image", "c": [
                    ["label1",
                     ["class-name"],
                     [["a", "5"]]],
                    [{"t": "Str", "c": "a"},
                     {"t": "Space"}, {"t": "Str", "c": "title"}],
                    ["path/to/image.png", "fig:"]]}]}],
         "pandoc-api-version": [1, 17, 5, 1], "meta": {}}
    )

    out_string = apply_filter(
        in_json, format_label_elements.main, "latex", in_format="json")

    assert out_string.strip() == "\n".join([
        r"\begin{figure}[]",
        r"\hypertarget{label1}{%",
        r"\begin{center}",
        r"\adjustimage{max size={0.9\linewidth}{0.9\paperheight},}"
        r"{path/to/image.png}",
        r"\end{center}",
        r"\caption{a title}\label{label1}",
        "}",
        r"\end{figure}"
    ])
コード例 #2
0
def test_math_md_to_rst():

    in_str = [
        "$$a = b$$ {#eq:id1}",
        "$$c &= d \\\\ other &= e$$ {#a env=align .unnumbered}",
    ]
    out_string = apply_filter(
        in_str,
        [prepare_labels.main, format_label_elements.main],
        in_format="markdown",
        out_format="rst",
    )

    assert out_string.strip() == "\n".join([
        ".. math::",
        "   :nowrap:",
        "   :label: eq:id1",
        "",
        r"   \begin{equation}a = b\end{equation}",
        "",
        "",
        "",
        ".. math::",
        "   :nowrap:",
        "   :label: a",
        "",
        r"   \begin{align*}c &= d \\ other &= e\end{align*}",
    ])
コード例 #3
0
def test_rst_directive_with_options_to_rst():

    in_string = [
        '.. dir::',
        '    :maxdepth: 2',
        '    :numbered:',
        '',
        '    abc',
        '    xyz',
        '',
        '    new paragraph',
        ''
    ]

    out_string = apply_filter(
        in_string,
        [prepare_raw.main, format_raw_spans.main], "rst")

    assert out_string == "\n".join([
        '.. dir::',
        '    :maxdepth: 2',
        '    :numbered:',
        '',
        '    abc',
        '    xyz',
        '',
        '    new paragraph',
        "",
        ""
    ])
コード例 #4
0
def test_citations_latex():

    in_string = [
        '@label1',
        '',
        '[@label1;@label2]',
        '',
        '[an internal link](#label2)'
        '',
        '[an external link](http://something.org)',
        '',
        '![a citation @label](path/to/image.png)',
    ]

    out_string = apply_filter(
        in_string,
        [prepare_raw.main, format_cite_elements.main], "latex")

    assert out_string.strip() == "\n".join([
        "\\cite{label1}",
        "",
        "\\cite{label1,label2}",
        "",
        "\\cref{label2} \\href{http://something.org}{an external link}",
        "",
        "\\begin{figure}",
        "\\centering",
        "\\includegraphics{path/to/image.png}",
        "\\caption{a citation \\cite{label}}",
        "\\end{figure}"
    ])
コード例 #5
0
def test_image_rst():
    """
    """
    #  "![a title](path/to/image.png){#label1 .class-name a=5}"
    in_json = (
        {"blocks": [
            {"t": "Para", "c": [
                {"t": "Image", "c": [
                    ["label1",
                     ["class-name"],
                     [["a", "5"]]],
                    [{"t": "Str", "c": "a"},
                     {"t": "Space"}, {"t": "Str", "c": "title"}],
                    ["path/to/image.png", "fig:"]]}]}],
         "pandoc-api-version": [1, 17, 5, 1], "meta": {}}
    )

    out_string = apply_filter(
        in_json, format_label_elements.main, "rst", in_format="json")

    assert out_string.strip() == "\n".join([
        ".. figure:: path/to/image.png",
        "   :alt: a title",
        "   :figclass: class-name",
        "   :name: label1",
        "",
        "   a title"
    ])
コード例 #6
0
def test_latex_to_rst_with_numref():
    """"""
    in_string = [
        "---",
        "ipub:",
        "  pandoc:",
        "    use_numref: true",
        "---",
        "",
        r"\cref{label1} \Cref{label2}  \cite{a-cite-key_2019}",
        "",
        r"\ref{label3}  \todo[inline]{something todo}",
        "",
        r"\todo{something else todo}"
    ]

    out_string = apply_filter(in_string,
                              [prepare_raw.main,
                               format_cite_elements.main,
                               format_raw_spans.main], "rst")

    assert out_string.strip() == "\n".join([
        ":numref:`label1` :numref:`label2` :cite:`a-cite-key_2019`",
        "",
        ":ref:`label3`",
        "",
        ".. todo:: something todo"
        "",
        "",
        "",
        "",
        ".. todo:: something else todo"
    ])
コード例 #7
0
def test_rst_directive_with_options_to_rst():

    in_string = [
        ".. dir::",
        "    :maxdepth: 2",
        "    :numbered:",
        "",
        "    abc",
        "    xyz",
        "",
        "    new paragraph",
        "",
    ]

    out_string = apply_filter(
        in_string, [prepare_raw.main, format_raw_spans.main], "rst"
    )

    assert out_string == "\n".join(
        [
            ".. dir::",
            "    :maxdepth: 2",
            "    :numbered:",
            "",
            "    abc",
            "    xyz",
            "",
            "    new paragraph",
            "",
            "",
        ]
    )
コード例 #8
0
def test_citations_rst():

    in_string = [
        '@label1',
        '',
        '[an internal link](#label2)'
        '',
        '[an external link](http://something.org)',
        '',
        '![a citation @label](path/to/image.png)',

    ]

    out_string = apply_filter(
        in_string,
        [prepare_raw.main, format_cite_elements.main], "rst")

    assert out_string.strip() == "\n".join([
        ":cite:`label1`",
        "",
        ":ref:`label2` `an external link <http://something.org>`__",
        "",
        ".. figure:: path/to/image.png",
        "   :alt: a citation :cite:`label`",
        "",
        "   a citation :cite:`label`"
    ])
コード例 #9
0
def test_latex_to_rst():
    """
    """
    in_string = [
        r"\cref{label1} \Cref{label2}  \cite{a-cite-key_2019}",
        "",
        "\\cite{label1,label2}",
        "",
        r"\ref{label3}  \todo{something todo}",
        "",
        r"\todo{something else todo}"
    ]

    out_string = apply_filter(in_string,
                              [prepare_raw.main,
                               format_cite_elements.main,
                               format_raw_spans.main], "rst")

    assert out_string == "\n".join([
        ":ref:`label1` :ref:`label2` :cite:`a-cite-key_2019`",
        "",
        ":cite:`label1,label2`",
        "",
        ":ref:`label3`",
        "",
        ".. todo:: something todo",
        "",
        "",
        "",
        ".. todo:: something else todo",
        "",
        ""
    ])
コード例 #10
0
def test_image_html():
    """
    """
    #  "![a title](path/to/image.png){#label1 .class-name a=5}"
    in_json = (
        {"blocks": [
            {"t": "Para", "c": [
                {"t": "Image", "c": [
                    ["label1",
                     ["class-name"],
                     [["a", "5"]]],
                    [{"t": "Str", "c": "a"},
                     {"t": "Space"}, {"t": "Str", "c": "title"}],
                    ["path/to/image.png", "fig:"]]}]}],
         "pandoc-api-version": [1, 17, 5, 1], "meta": {}}
    )

    out_string = apply_filter(
        in_json, format_label_elements.main, "html", in_format="json")

    assert out_string.strip() == "\n".join([
        '<p><a id="label1" class="anchor-link" name="#label1">'
        '<img src="path/to/image.png" title="fig:" alt="a title" id="label1" '
        'class="class-name" data-a="5" />'
        '</a></p>'
    ])
コード例 #11
0
def test_table_html(data_regression):
    """
    """
    in_string = ['a b', '- -', 'x y', '', 'Table: Caption +@label']
    out_string = apply_filter(in_string, main, 'html')

    parser = HTML2JSONParser()
    parser.feed(out_string)
    data_regression.check(parser.parsed)
コード例 #12
0
def test_para_html(data_regression):
    """
    """
    in_string = ['+@label{ .class a=1} xyz *@label2* @label3{ .b}']
    out_string = apply_filter(in_string, main, 'html')

    parser = HTML2JSONParser()
    parser.feed(out_string)
    data_regression.check(parser.parsed)
コード例 #13
0
def test_rst_cite_to_latex():

    in_string = ["a :ref:`label` b"]

    out_string = apply_filter(
        in_string, [prepare_raw.main, format_cite_elements.main], "latex"
    )

    assert out_string.strip() == "\n".join([r"a \ref{label} b"])
コード例 #14
0
def test_html_to_latex_label():

    in_string = ["[some text](#alabel)"]

    out_string = apply_filter(
        in_string, [prepare_raw.main, format_cite_elements.main], "latex"
    )

    assert out_string == "\n".join([r"\cref{alabel}"])
コード例 #15
0
def test_rst_label_to_rst():

    in_string = [".. _alabel:"]

    out_string = apply_filter(
        in_string, [prepare_raw.main, format_raw_spans.main], "rst"
    )

    assert out_string.strip() == "\n".join([".. _alabel:"])
コード例 #16
0
def test_rst_known_role_to_rst():

    in_string = ["a :py:func:`label` b"]

    out_string = apply_filter(
        in_string, [prepare_raw.main, format_raw_spans.main], "rst"
    )

    assert out_string.strip() == "\n".join(["a :py:func:`label` b"])
コード例 #17
0
def test_image_html(data_regression):

    in_string = [
        '![a title with a @label1 +@label2 {.nclass x=3}](path/to/image.png)'
    ]
    out_string = apply_filter(in_string, main, 'html')

    parser = HTML2JSONParser()
    parser.feed(out_string)
    data_regression.check(parser.parsed)
コード例 #18
0
def test_math_span_rst():

    in_json = {
        "blocks": [{
            "t":
            "Para",
            "c": [{
                "t":
                "Span",
                "c": [
                    ["a", ["labelled-Math"], [["b", "2"]]],
                    [{
                        "t": "Math",
                        "c": [{
                            "t": "DisplayMath"
                        }, "a=1"]
                    }],
                ],
            }],
        }],
        "pandoc-api-version": [1, 17, 5, 1],
        "meta": {
            "$$references": {
                "t": "MetaMap",
                "c": {
                    "a": {
                        "t": "MetaMap",
                        "c": {
                            "type": {
                                "t": "MetaString",
                                "c": "Math"
                            },
                            "number": {
                                "t": "MetaString",
                                "c": "1"
                            },
                        },
                    }
                },
            }
        },
    }

    out_string = apply_filter(in_json,
                              format_label_elements.main,
                              "rst",
                              in_format="json")

    assert out_string.strip() == "\n".join([
        ".. math::",
        "   :nowrap:",
        "   :label: a",
        "",
        r"   \begin{equation}a=1\end{equation}",
    ])
コード例 #19
0
def test_math_span_html():

    in_json = {
        "blocks": [{
            "t":
            "Para",
            "c": [{
                "t":
                "Span",
                "c": [
                    ["a", ["labelled-Math"], [["b", "2"]]],
                    [{
                        "t": "Math",
                        "c": [{
                            "t": "DisplayMath"
                        }, "a=1"]
                    }],
                ],
            }],
        }],
        "pandoc-api-version": [1, 17, 5, 1],
        "meta": {
            "$$references": {
                "t": "MetaMap",
                "c": {
                    "a": {
                        "t": "MetaMap",
                        "c": {
                            "type": {
                                "t": "MetaString",
                                "c": "Math"
                            },
                            "number": {
                                "t": "MetaString",
                                "c": "1"
                            },
                        },
                    }
                },
            }
        },
    }

    out_string = apply_filter(in_json,
                              format_label_elements.main,
                              "html",
                              in_format="json")

    assert out_string.strip() == "\n".join([
        '<p><a id="a" class="anchor-link" name="#a">'
        "<br />"
        '<span class="math display"><em>a</em> = 1</span>'
        "<br />"
        "</a></p>"
    ])
コード例 #20
0
def test_para_rst():
    """
    """
    in_string = [
        "+@label{.class a=1} xyz *@label2* @label3{.b}", "", "(@label4{})", "",
        "(@label5{.b} x)"
    ]
    out_string = apply_filter(in_string, main, "rst")

    assert out_string.strip() == "\n".join(
        ["@label xyz *@label2* @label3", "", "(@label4)", "", "(@label5 x)"])
コード例 #21
0
def test_rst_directive_to_rst():

    in_string = [".. versionchanged:: v0.8.3", "", "    abc", "", "    xyz"]

    out_string = apply_filter(
        in_string, [prepare_raw.main, format_raw_spans.main], "rst"
    )

    assert out_string.strip() == "\n".join(
        [".. versionchanged:: v0.8.3", "", "    abc", "", "    xyz"]
    )
コード例 #22
0
def test_cite_in_table_caption():

    in_string = ["a b", "- -", "1 2", "", "Table: Caption \\cite{a}"]

    out_string = apply_filter(
        in_string, [prepare_raw.main, format_cite_elements.main], "markdown"
    )

    assert out_string == "\n".join(
        ["  a   b", "  --- ---", "  1   2", "", "  : Caption [@a]"]
    )
コード例 #23
0
def test_para_rst():
    """
    """
    in_string = [
        '+@label{.class a=1} xyz *@label2* @label3{.b}', '', '(@label4{})', '',
        '(@label5{.b} x)'
    ]
    out_string = apply_filter(in_string, main, 'rst')

    assert out_string.strip() == '\n'.join(
        ['@label xyz *@label2* @label3', '', '(@label4)', '', '(@label5 x)'])
コード例 #24
0
def test_multiple_references_rst():
    """
    """
    in_string = ["multiple references +[@fig:id; @tbl:id; @eq:id1]"]

    out_string = apply_filter(in_string,
                              [prepare_cites.main, format_cite_elements.main],
                              "rst")

    print(out_string)
    assert out_string == "\n".join(
        ["multiple references :ref:`fig:id`, :ref:`tbl:id` and :ref:`eq:id1`"])
コード例 #25
0
def test_reference_prefixes_rst():
    """
    """
    in_string = ["(?@key1 &@key2 %@key3 =@key4)"]

    out_string = apply_filter(in_string,
                              [prepare_cites.main, format_cite_elements.main],
                              "rst")

    print(out_string)
    assert out_string == "\n".join(
        ["(:ref:`key1` :gls:`key2` :glsc:`key3` :eq:`key4`)"])
コード例 #26
0
def test_reference_prefixes_latex():
    """
    """
    in_string = ["(?@key1 &@key2 =@key3)"]

    out_string = apply_filter(in_string,
                              [prepare_cites.main, format_cite_elements.main],
                              "latex")

    print(out_string)
    assert out_string == "\n".join(
        ["(\\Cref{key1} \\gls{key2} \\eqref{key3})"])
コード例 #27
0
def test_multiple_references_latex():
    """
    """
    in_string = ["multiple references +[@fig:id; @tbl:id; @eq:id1]"]

    out_string = apply_filter(in_string,
                              [prepare_cites.main, format_cite_elements.main],
                              "latex")

    print(out_string)
    assert out_string == "\n".join(
        ["multiple references \\cref{fig:id,tbl:id,eq:id1}"])
コード例 #28
0
def test_rst_cite_to_rst():

    in_string = [
        'a :ref:`label` b'
    ]

    out_string = apply_filter(
        in_string,
        [prepare_raw.main, format_cite_elements.main], "rst")

    assert out_string.strip() == "\n".join([
        'a :ref:`label` b'
    ])
コード例 #29
0
def test_html_to_latex_cite():

    in_string = [
        'surrounding <cite data-cite="cite_key">text</cite> text' "",
        '<cite data-cite="cite_key2"></cite>',
    ]

    out_string = apply_filter(
        in_string, [prepare_raw.main, format_cite_elements.main], "latex"
    )

    assert out_string == "\n".join(
        [r"surrounding \cite{cite_key} text \cite{cite_key2}"]
    )
コード例 #30
0
def test_table_html():
    """
    """
    in_string = ["a b", "- -", "x y", "", "Table: Caption +@label"]
    out_string = apply_filter(in_string, main, "html")

    assert out_string.strip() == "\n".join([
        '<table>', '<caption>Caption '
        '<span class="attribute-Cite" data-latex="cref" data-rst="numref">'
        '<span class="citation" data-cites="label">@label</span>'
        '</span></caption>', '<thead>', '<tr class="header">', '<th>a</th>',
        '<th>b</th>', '</tr>', '</thead>', '<tbody>', '<tr class="odd">',
        '<td>x</td>', '<td>y</td>', '</tr>', '</tbody>', '</table>'
    ])