Jump to >

This documentation covers the in-development release of Djblets. You can see the latest stable docs or all previous versions.

djblets.markdown

markdown_escape(text)[source]

Escape text for use in Markdown.

This will escape the provided text so that none of the characters will be rendered specially by Markdown.

markdown_unescape(escaped_text)[source]

Unescape Markdown-escaped text.

This will unescape the provided Markdown-formatted text so that any escaped characters will be unescaped.

iter_markdown_lines(markdown_html)[source]

Iterate over lines of Markdown, normalizing for individual display.

Generated Markdown HTML cannot by itself be handled on a per-line-basis. Code blocks, for example, will consist of multiple lines of content contained within a <pre> tag. Likewise, lists will be a bunch of <li> tags inside a <ul> tag, and individually do not form valid lists.

This function iterates through the Markdown tree and generates self-contained lines of HTML that can be rendered individually.

get_markdown_element_tree(markdown_html)[source]

Return an XML element tree for Markdown-generated HTML.

This will build the tree and return all nodes representing the rendered Markdown content. The element tree is generated using Python’s xml.dom.minidom.

Parameters

markdown_html (bytes or unicode) – The Markdown-generated HTML to parse.

Returns

The list of nodes representing the Markdown-generated HTML.

Return type

xml.dom.minicompat.NodeList

sanitize_illegal_chars_for_xml(s)[source]

Sanitize a string, removing characters illegal in XML.

This will remove a number of characters that would break the XML parser. They may be in the string due to a copy/paste.

Note that this will not perform any security-related sanitization of the HTML. It’s purely a parsing aid for dealing with illegal characters.

This code is courtesy of the XmlRpcPlugin developers, as documented here: http://stackoverflow.com/a/22273639

Parameters

s (unicode) – The string to sanitize.

Returns

The resulting sanitized HTML.

Return type

unicode

render_markdown_from_file(f, **markdown_kwargs)[source]

Render Markdown text from a file stream to HTML.

Parameters
  • f (file or io.BytesIO) – The byte stream to read from.

  • **markdown_kwargs (dict) – Keyword arguments to pass to markdown.markdownFromFile().

Returns

The resulting Markdown-rendered HTML.

Return type

unicode