Ejemplo n.º 1
0
def _equation_processor(equation_index, equation_div_contents):
    within_div_tag = equation_div_contents.split(">", 1)[0]
    has_label = Flag()
    id_block_single_quotation_marks = find_block.Block(
        "id='", "'", lambda id_contents: _equation_reference(
            equation_index, id_contents, has_label), False)
    id_block_double_quotation_marks = find_block.Block(
        "id=\"", "\"", lambda id_contents: _equation_reference(
            equation_index, id_contents, has_label), False)
    within_div_tag_processor = find_block.Processor(
        [id_block_single_quotation_marks, id_block_double_quotation_marks])
    within_div_tag_processor.process(within_div_tag)
    if not has_label.is_set:
        return equation_div_contents
    equation_numbering_block_single_quotation_marks = find_block.Block(
        "<span class='maruku-eq-number'>", "</span>", lambda span_content:
        ("<span class='maruku-eq-number'>" + "(" + str(equation_index.index) +
         ")" + "</span>"), True)
    equation_numbering_block_double_quotation_marks = find_block.Block(
        "<span class=\"maruku-eq-number\">", "</span>", lambda span_content:
        ("<span class=\"maruku-eq-number\">" + "(" + str(equation_index.index)
         + ")" + "</span>"), True)
    entire_div_processor = find_block.Processor([
        equation_numbering_block_single_quotation_marks,
        equation_numbering_block_double_quotation_marks
    ])
    processed_div_contents = entire_div_processor.process(
        equation_div_contents)
    return processed_div_contents
Ejemplo n.º 2
0
def add_placeholder(page_content, placeholder, table_of_contents_flag,
                    need_to_render_for_toc_flag):
    header_block = find_block.Block(
        "\n##", " ",
        lambda header: _find_header_which_needs_rendering_processor(
            header, need_to_render_for_toc_flag), True)
    placeholder_block = find_block.Block(
        placeholder, None,
        lambda found_placeholder: _process_table_of_contents_block(
            placeholder + "\n\n", table_of_contents_flag), True)
    processor = find_block.Processor([
        table_of_contents_block.define(placeholder, table_of_contents_flag),
        placeholder_block, header_block
    ])
    return processor.process(page_content)
Ejemplo n.º 3
0
def define_xymatrix_default_size():
    return find_block.Block(
        "\\begin{xymatrix}",
        "\\end{xymatrix}",
        lambda diagram: xypic_diagram_processor(
            "=5em}" + diagram),
        True)
Ejemplo n.º 4
0
def define_xymatrix_document_parameters():
    return find_block.Block(
        "\\begin{xymatrix[",
        "\end{xymatrix}",
        lambda diagram: xypic_diagram_processor(
            "=5em[" + diagram),
        True)
Ejemplo n.º 5
0
def define(page_id, rendering_web_id, references_before_rendering,
           pages_to_re_render_and_expire):
    return find_block.Block(
        "[[!redirects ", "]]",
        lambda page_name_to_redirect: redirect_processor(
            page_id, references_before_rendering,
            pages_to_re_render_and_expire, page_name_to_redirect,
            rendering_web_id), False)
Ejemplo n.º 6
0
def define_preliminary(identifier):
    return find_block.Block(
        "\\begin{" + identifier + "}",
        "\\end{" + identifier + "}",
        lambda block_contents: preliminary_processor(
            block_contents,
            identifier),
        True)
Ejemplo n.º 7
0
def define(identifier, displayed_environment_name, html_class_identifier):
    return find_block.Block(
        "\\begin{" + identifier + "}",
        "\\end{" + identifier + "}",
        lambda block_contents: processor(
            displayed_environment_name,
            html_class_identifier,
            block_contents),
        True)
Ejemplo n.º 8
0
def _maruku_equation_reference_block_double_quotation_marks(
        equation_references):
    return find_block.Block(
        "<a class=\"maruku-eqref\"",
        "</a>",
        lambda maruku_equation_reference: \
            _process_maruku_equation_reference_double_quotation_marks(
                maruku_equation_reference,
                equation_references),
        True)
Ejemplo n.º 9
0
def _label(block_contents):
   label = Label()
   label_block = find_block.Block(
       "\\label{",
       "}",
       lambda label_block_contents: label.set_to(label_block_contents),
       True)
   label_processor = find_block.Processor([label_block])
   block_contents_without_label = label_processor.process(block_contents)
   if block_contents_without_label:
       block_contents_without_label = block_contents_without_label.strip()
   return label.get(), block_contents_without_label
Ejemplo n.º 10
0
def extract_tikz_libraries(tikz_diagram):
    libraries = []
    tikz_library_block = find_block.Block(
        "\\usetikzlibrary{",
        "}",
        lambda library: libraries.append(
            "\\usetikzlibrary{" + library + "}"),
        False)
    tikz_library_processor = find_block.Processor([tikz_library_block])
    without_tikz_libraries = tikz_library_processor.process(tikz_diagram)
    library_lines = "\n".join(libraries)
    return library_lines, without_tikz_libraries
Ejemplo n.º 11
0
def extract_document_parameters(diagram):
    split_at_first_curly_brace = diagram.split("{", 1)
    document_parameters = {
        "font_size": "",
        "document_header_parameters": ["12pt"] }
    document_parameters_block = find_block.Block(
        "[",
        "]",
        lambda within_square_brackets: document_parameters.update(
            parse_document_parameters(within_square_brackets)),
        False)
    document_parameters_processor = find_block.Processor([
        document_parameters_block])
    processed_preamble = document_parameters_processor.process(
        split_at_first_curly_brace[0])
    return (
        document_parameters,
        processed_preamble + "{" + split_at_first_curly_brace[1])
Ejemplo n.º 12
0
def define_single(page_id):
    return find_block.Block(
        "$", "$", lambda tex_block: tex_parser.parse(page_id, tex_block, True),
        True)
Ejemplo n.º 13
0
def define_centre():
    return find_block.Block("\\begin{centre}", "\\end{centre}",
                            initial_centre_processor, True)
Ejemplo n.º 14
0
def define_xymatrix():
    return find_block.Block(
        "\\begin{xymatrix@",
        "\\end{xymatrix}",
        xypic_diagram_processor,
        True)
Ejemplo n.º 15
0
def define(page_id, rendering_web_id, references_before_rendering):
    return find_block.Block(
        "\ncategory:", "\n",
        lambda categories_specification: category_processor(
            page_id, categories_specification, references_before_rendering,
            rendering_web_id), True)
Ejemplo n.º 16
0
def define_double(page_id):
    return find_block.Block(
        "$$", "$$",
        lambda tex_block: tex_parser.parse(page_id, tex_block, False), True)
Ejemplo n.º 17
0
def define_tex_post():
    return find_block.Block("<math", "/math>", tex_post_parser, True)
Ejemplo n.º 18
0
def define_section(tex_section_name):
    return find_block.Block(
        "\\" + tex_section_name + "{", "}", lambda tex_section_title:
        _section_html(tex_section_name, tex_section_title), True)
Ejemplo n.º 19
0
def _equation_block_double_quotation_marks(equation_index):
    return find_block.Block(
        "<div class=\"maruku-equation\"", "</div>", lambda div_content:
        ("<div class=\"maruku-equation\"" + _equation_processor(
            equation_index, div_content) + "</div>"), True)
Ejemplo n.º 20
0
def define():
    return find_block.Block(
        "<table",
        "/table>",
        lambda table: html_table_processor(table),
        True)
Ejemplo n.º 21
0
def define_javascript_prefix():
    return find_block.Block(
        "javascript:",
        None,
        script_block_processor,
        False)
Ejemplo n.º 22
0
def define():
    return find_block.Block("\\ref{", "}",
                            lambda reference: reference_processor(reference),
                            True)
Ejemplo n.º 23
0
def define_script_tags():
    return find_block.Block(
        "<script",
        "/script>",
        script_block_processor,
        False)
Ejemplo n.º 24
0
def handle_post_centring(content):
    centre_paragraph_block = find_block.Block("<p>for_centring",
                                              "/for_centring</p>",
                                              post_centre_processor, True)
    return find_block.Processor([centre_paragraph_block]).process(content)
Ejemplo n.º 25
0
def _equation_reference_block(equation_references):
    return find_block.Block(
        "(eq:", ")", lambda equation_reference: _process_equation_reference(
            equation_reference, equation_references), True)
Ejemplo n.º 26
0
def define(page_id, rendering_web_id, references_before_rendering,
           pages_to_include):
    return find_block.Block(
        "[[!include ", "]]", lambda page_name_to_include: include_processor(
            page_id, references_before_rendering, pages_to_include,
            page_name_to_include, rendering_web_id), True)
Ejemplo n.º 27
0
def define(retain_nowiki_block=False):
    return find_block.Block(
        "<nowiki>", "</nowiki>",
        lambda content: nowiki_processor(content, retain_nowiki_block), True)
Ejemplo n.º 28
0
def _mathcal_block():
    return find_block.Block("\\mathcal{", "}", _process_calligraphic, True)
Ejemplo n.º 29
0
def define():
    return find_block.Block(
        "<svg",
        ">",
        lambda header: header_processor(header),
        True)
Ejemplo n.º 30
0
def define_maruku_double_quotation_marks(placeholder, table_of_contents_flag):
    return find_block.Block(
        "<div class=\"maruku_toc\">", "</div>",
        lambda table_of_contents_definition: table_of_contents_processor(
            placeholder, table_of_contents_flag), True)