You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is an extension for Python-Markdown to support hashtag parsing to clickable links.
# Heading
#hashtag at beginning of line and #within line.
This is no#hashtag.
#Markdown
will be rendered to:
<h1>Heading</h1><p><aclass="hashtag" href="https://tags.example.com/hashtag">#hashtag</a> at beginning of line and <aclass="hashtag" href="https://tags.example.com/within">#within</a> line.</p><p>This is no#hashtag. </p><p><aclass="hashtag" href="https://tags.example.com/Markdown">#Markdown</a></p>
You can easily specify the used link prefix and the class name of the link, see # Usage below.
Installation
The markdown-hashtag package can be installed via:
pip install markdown-hashtag
Usage
The following python code example shows how to use the hashtag extension and style the hashtag links in a pretty way with CSS (similar to how Obsidian renderns hashtags).
Note that you can define the link prefix of the href attribute and the class name by defining extension_configs in the markdown.markdown() function, see example.
importmarkdowntext="""\# Heading#hashtag at beginning of line and #within line.This is no#hashtag. #Markdown<style>a.hashtag { background-color: #e0e0e0; /* hellgrauer Hintergrund */ border-radius: 4px; /* abgerundete Ecken */ padding: 2px 6px; /* innen etwas Abstand */ color: #3b6ea5; /* blaue Farbe für Links */ text-decoration: none; /* keine Unterstreichung */ font-weight: 500; /* etwas fetter */ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; cursor: pointer; transition: background-color 0.2s ease;}a.hashtag:hover { background-color: #cfd8dc; /* dunkleres Grau beim Hover */ text-decoration: underline; /* Unterstreichung beim Hover */}</style>"""html=markdown.markdown(text,
extensions=["hashtag"],
extension_configs={
"hashtag": {
"base_url": "https://tags.example.com/",
"span_class": "hashtag"
}
}
)
print(html)
The result looks like this:
License
This project is licensed under the terms of the GNU General Public License v3.0.
See the LICENSE file for details.
About
Extension for Python-Markdown to parse hashtag (e.g. #Python) into a user-defined URL