-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Useful Functions
agusmakmun edited this page Jul 21, 2021
·
5 revisions
These useful functions to find the images and usernames inside the markdown content, provides specialy for martor.
- function of
markdown_find_imagesis useful if you want to retrieve all images inside the markdown content. - function of
markdown_find_mentionsuseful if you need to implement the notification system for user mentioned by another users, something like stackoverflow.
import re
from bs4 import BeautifulSoup
from martor.utils import markdownify
def markdown_find_images(markdown_text):
"""
return list of image urls inside `markdown_text`.
:param `markdown_text` is markdown text to find.
example markdown text:
Hello 
provides for:
jpeg|jpg|png|gif
demo:
https://regex101.com/r/uc3XfV/1
"""
# patterns = r"[^(\s]+\.(?:jpeg|jpg|png|gif)(?=\b[+^\)])"
patterns = r"[^(\s]+\.(?:jpeg|jpg|png|gif)(?=\))"
return re.findall(patterns, markdown_text)
def markdown_find_mentions(markdown_text):
"""
To find the users that mentioned
on markdown content using `BeautifulShoup`.
input : `markdown_text` or markdown content.
return : `list` of usernames.
"""
mark = markdownify(markdown_text)
soup = BeautifulSoup(mark, 'html.parser')
return list(set(
username.text[1::] for username in
soup.findAll('a', {'class': 'direct-mention-link'})
))