Link recognition for Python Markdown
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Mdx Linkify

Travis Coveralls PyPI PyPI

This extension for Python Markdown will convert text that look like links to HTML anchors.

There's an alternative package that serves the same purpose called markdown-urlize. The main difference is that mdx_linkify is utilizing the excellent bleach for searching links in text. 👏


Minimal Example

from markdown import markdown

markdown("minimal", extensions=["mdx_linkify"])
# Returns '<p>minimal <a href=""></a></p>'

Linkify Callbacks

It's possible to omit links that match your custom filter with linkify callbacks.

For example, to omit links that end with .txt extension:

from mdx_linkify.mdx_linkify import LinkifyExtension
from markdown import Markdown

def dont_linkify_txt_extension(attrs, new=False):
    if attrs["_text"].endswith(".txt"):
        return None

    return attrs

md = Markdown(
        "linkify": {
            "linkify_callbacks": [[dont_linkify_txt_extension], ""]

assert md.convert("not_link.txt"), '<p>not_link.txt</p>'

expected = md.convert("")
actual = '<p><a href=""></a></p>'
assert expected == actual


The project is on PyPI!

pip install mdx_linkify

If you want the bleeding-edge version (this includes unreleased-to-PyPI code), you can always grab the master branch directly from Git.

pip install git+git://


git clone
virtualenv mdx_linkify/
cd mdx_linkify/
source bin/activate
python install
python test

Pull requests are much welcome! 👍


(more like a cheatsheet for me actually)

  • Change version in,
  • Commit and tag it,
  • Push it (including tag),
  • Run python register && python sdist upload;