markup.utils module¶
-
markup.utils.match_inline_math(text)[source]¶ Return first match object of regex search for inline math
$...$or\(...\).
-
markup.utils.match_displayed_math(text)[source]¶ Return first match object of regex search for displayed math
$$...$$or\[...\].
-
markup.utils.match_md_header(text, level=None)[source]¶ Return first match object of regex search for Markdown headers in form #{level,}.
If not level is given, all levels 1 to 6 are checked, returning the first match or None.
-
markup.utils.match_rst_header(text, symbol=None)[source]¶ Return first match object of regex search for reStructuredText header.
Python conventions are followed, namely that
#and*headers have both over and underline (of equal length, so faulty ones are not matched), while the others (=,-,"and^) only have the underline.
-
markup.utils.match_md_blockquote(text)[source]¶ Return first match of regex search for Markdown blockquote.
-
markup.utils.match_md_hyperlink_inline(text)[source]¶ Return first match of regex search for Markdown inline hyperlink.
-
markup.utils.match_md_hyperlink_reference(text)[source]¶ Return first match of regex search for Markdown reference-style hyperlink.
-
markup.utils.match_rst_hyperlink_inline(text)[source]¶ Return first match of regex search for reStructuredText inline hyperlink.
-
markup.utils.match_rst_hyperlink_reference(text)[source]¶ Return first match of regex search for reStructuredText reference-style hyperlink.
-
markup.utils.match_rst_role(text, role=None)[source]¶ Return first match object of regex search for given ReST role :role:… .
If no role is given, all roles in ReST_ROLES are tested one by one.
-
markup.utils.match_rst_directive(text, directive=None)[source]¶ Return first match object of regex search for given ReST directive.
If no directive is given, all directives in ReST_DIRECTIVES are tested one by one.
The first one to three lines after the directive statement are also captured.
-
markup.utils.match_md_unordered_list(text)[source]¶ Return first match of Markdown list (excluding ReST-shared * pattern).
-
markup.utils.match_md_or_rst_unordered_list(text)[source]¶ Return first match of Markdown/ReST unordered list using shared * marker.
-
markup.utils.match_md_or_rst_ordered_list(text)[source]¶ Return the first match of Markdown/ReST ordered list (using numbers).
-
markup.utils.check_markers(markers)[source]¶ Checks the consistency of a markers dictionary. Returns a detector.
-
markup.utils.detect_markup_language(text)[source]¶ Detect whether text is plain text, Markdown or reStructuredText.
This method returns a dictionary containing:
language
errors
Inline and displayed maths are assumed enabled through MathJax. For plain text and Markdown, this assumes the conventions
inline: $ … $ and ( … )
displayed: $$ … $$ and [ … ]
while for reStructuredText, the
mathrole and directive are used.We define markers, and indicator. A marker is a regex which occurs in only one of the languages. An indicator occurs in more than one, but not all languages.
Language markers:
Markdown:
headers: [one or more #] [non-empty text]
blockquotes: one or more lines starting with > [non-empty text]
reStructuredText:
use of the :math: role or .. math: directive
[two or more #][blank space][carriage return] [text on a single line, as long as or shorter than # sequence] [same length of #]
same thing but for * headlines
other header markers (=, -, ” and ^)
use of any other role
use of any other directive
Language indicators:
Plain text or Markdown:
inline or displayed maths
Markdown or reStructuredText:
[=]+ alone on a line <- users discouraged to use this in Markdown
[-]+ alone on a line <- users discouraged to use this in Markdown
Exclusions (sources of errors): * inline or displayed maths cannot be used in ReST
Any simultaneously present markers to two different languages return an error.
Checking order:
maths
headers/blockquotes
hyperlinks
rst roles
rst directives
-
markup.utils.apply_markdown_preserving_displayed_maths_bracket(text)[source]¶ Subsidiary function called by
apply_markdown_preserving_displayed_maths. See explanations in docstring of that method.
-
markup.utils.apply_markdown_preserving_displayed_maths(text)[source]¶ Processes the string text by first splitting out displayed maths, then applying Markdown on the non-displayed math parts.
Both
$$ ... $$and\[ ... \]are recognized, so a double recursive logic is used, first dealing with the$$ ... $$and then with the\[ .. \]. See the complementary methodapply_markdown_preserving_displayed_maths_bracket.