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
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)
def define_xymatrix_default_size(): return find_block.Block( "\\begin{xymatrix}", "\\end{xymatrix}", lambda diagram: xypic_diagram_processor( "=5em}" + diagram), True)
def define_xymatrix_document_parameters(): return find_block.Block( "\\begin{xymatrix[", "\end{xymatrix}", lambda diagram: xypic_diagram_processor( "=5em[" + diagram), True)
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)
def define_preliminary(identifier): return find_block.Block( "\\begin{" + identifier + "}", "\\end{" + identifier + "}", lambda block_contents: preliminary_processor( block_contents, identifier), True)
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)
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)
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
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
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])
def define_single(page_id): return find_block.Block( "$", "$", lambda tex_block: tex_parser.parse(page_id, tex_block, True), True)
def define_centre(): return find_block.Block("\\begin{centre}", "\\end{centre}", initial_centre_processor, True)
def define_xymatrix(): return find_block.Block( "\\begin{xymatrix@", "\\end{xymatrix}", xypic_diagram_processor, True)
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)
def define_double(page_id): return find_block.Block( "$$", "$$", lambda tex_block: tex_parser.parse(page_id, tex_block, False), True)
def define_tex_post(): return find_block.Block("<math", "/math>", tex_post_parser, True)
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)
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)
def define(): return find_block.Block( "<table", "/table>", lambda table: html_table_processor(table), True)
def define_javascript_prefix(): return find_block.Block( "javascript:", None, script_block_processor, False)
def define(): return find_block.Block("\\ref{", "}", lambda reference: reference_processor(reference), True)
def define_script_tags(): return find_block.Block( "<script", "/script>", script_block_processor, False)
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)
def _equation_reference_block(equation_references): return find_block.Block( "(eq:", ")", lambda equation_reference: _process_equation_reference( equation_reference, equation_references), True)
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)
def define(retain_nowiki_block=False): return find_block.Block( "<nowiki>", "</nowiki>", lambda content: nowiki_processor(content, retain_nowiki_block), True)
def _mathcal_block(): return find_block.Block("\\mathcal{", "}", _process_calligraphic, True)
def define(): return find_block.Block( "<svg", ">", lambda header: header_processor(header), True)
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)