Skip to main content

markdown-icons (iconfonts.py)

Easily display icon fonts in python markdown. Just add the CSS necessary for your font and add this extension.

This is a 3rd party extension for Python Markdown. You can see a full list of 3rd party extensions here.

Although this works with any icon font, users can use a mod syntax to add more prefixed classes to support Font Awesome and its special classes such as 2x, 3x, muted, spin, etc

Furthermore, users can add their own user_mod syntax to add additional, non-prefixed, pre-defined classes for greater control over their icons while allowing you to control exactly what styles are allowed.

See the python markdown documentation for more information.

Current Version: 3.0

Syntax:

  • Accepts a-z, A-Z, 0-9, _(underscore), and - (hypen)
  • Uses HTML Entity like syntax: &entity_name;
&icon-html5;
&icon-css3;
&icon-my-icon;

Mod syntax:

&icon-html5:2x;
&icon-quote:3x,muted;
&icon-spinner:large,spin;

User mod syntax:

&icon-html5::red;
&icon-quote:2x:bold;

Example Markdown:

I love &icon-html5; and &icon-css3;
&icon-spinner:large,spin; Sorry we have to load...
Output:
I love <i aria-hidden="true" class="icon-html5"></i> and <i aria-hidden="true" class="icon-css3"></i>
<i aria-hidden="true" class="icon-spinner icon-large icon-spin"></i> Sorry we have to load...

Usage / Setup:

Default Prefix is "icon-":

md = markdown.Markdown(extensions=["iconfonts"])
converted_text = md.convert(text)

Use a custom Prefix:

md = markdown.Markdown(
    extensions=["iconfonts"],
    extension_configs={"iconfonts": {"prefix": "mypref-"}},
)
converted_text = md.convert(text)

No prefix:

This isn't suggested, as it will take over the already built in HTML Entities

md = markdown.Markdown(
    extensions=["iconfonts"],
    extension_configs={"iconfonts": {"prefix": ""}},
)
converted_text = md.convert(text)

The base option allows for use of Bootstrap and FontAwesome icons

md = markdown.Markdown(extensions=['iconfonts'])
converted_text = md.convert(text)

Input: &icon-html5;

Output: <i aria-hidden="true" class="icon icon-html5"></i>

Combine options with a comma:

md = markdown.Markdown(
    extensions=["iconfonts"],
    extension_configs={"iconfonts": {"prefix": "fa-", "base": "fa"}},
)
converted_text = md.convert(text)

Input! &icon-spinner:spin:red,bold;

Output: <i aria-hidden="true" class="icon-spinner icon-spin red bold"></i>

prefix_base_pairs option

The prefix_base_pairs option allows for multiple prefix-base pairs to be specified, to allow you to support both Bootstrap 3/Glyphicon and FontAwesome icons

md = markdown.Markdown(extensions=['iconfonts'],
                       extension_configs={
                           'iconfonts': {
                               'prefix_base_pairs': {
                                   'fa-': 'fa',
                                   'glyphicon-': 'glyphicon',
                               }
                           }
                       })
converted_text = md.convert(text)

Input: &glyphicon-remove; &fa-html5;

Output: <i aria-hidden="true" class="glyphicon glyphicon-remove"></i> <i aria-hidden="true" class="fa fa-html5"></i>

Release files for markdown-icons 3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for markdown-icons 3.0
File Size Uploaded
markdown_icons-3.0.tar.gz 5.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for markdown-icons 3.0
File Interpreter ABI Platform
markdown_icons-3.0-py3-none-any.whl Python 3 none any Details

Total release size: 11.2 kB

Release files / markdown_icons-3.0.tar.gz

Download URL markdown_icons-3.0.tar.gz
Size 5.4 kB
Tags Source
SHA-256 checksum
How to use checksums
4371ac5d761a0f733094505b59691cb7368365e331d45d3ac886703aa77cfae3
BLAKE2b-256 checksum
How to use checksums
75263cfb9471fe8ae7171a835c2d0a6503ad8a3af7de32008e9393068cddb81f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.11.9

Release files / markdown_icons-3.0-py3-none-any.whl

Download URL markdown_icons-3.0-py3-none-any.whl
Size 5.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
921f1b90e3ebe046fb2142bc59bf8c3b97e816bd3e04283c3f242948c02007ef
BLAKE2b-256 checksum
How to use checksums
2e38cf2d06a12132974151e0353eb76ec150938a3dee7383c68f5a8d1fead1eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.11.9

Release history Release notifications | RSS feed

This release

3.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page