A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/becksta-dev/markdown-hashtag below:

becksta-codes/markdown-hashtag: Extension for Python-Markdown to parse hashtag (e.g. #Python) into a user-defined URL

Markdown Extension for Hashtags

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><a class="hashtag" href="https://tags.example.com/hashtag">#hashtag</a> at beginning of line and <a class="hashtag" href="https://tags.example.com/within">#within</a> line.</p>
<p>This is no#hashtag. </p>
<p><a class="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.

The markdown-hashtag package can be installed via:

pip install markdown-hashtag

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.

import markdown

text = """\
# 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:

This project is licensed under the terms of the GNU General Public License v3.0.
See the LICENSE file for details.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4