Commit aa04230c0edf5e95f65e9f387a8b1ee73790fa3a
1 parent
d230f8b1
Exists in
master
feat: add support for icons, _the right way_©
You may now use any icon from https://icons.getbootstrap.com/#icons in the markdown, with the syntax: `<icon globe>` Replace `globe` by the icon you want.
Showing
4 changed files
with
21 additions
and
1 deletions
Show diff stats
flaskr/__init__.py
... | ... | @@ -34,6 +34,7 @@ from flaskr.extensions import ( |
34 | 34 | mail, |
35 | 35 | session, |
36 | 36 | captcha, |
37 | + icon2html, | |
37 | 38 | ) |
38 | 39 | from flaskr.content import content |
39 | 40 | from flaskr.core import increment_hit_counter, get_hit_counter |
... | ... | @@ -109,6 +110,7 @@ def create_app(object_name): |
109 | 110 | # Markdown jinja2 filter |
110 | 111 | @app.template_filter('markdown') |
111 | 112 | def markdown_filter(text): |
113 | + text = icon2html(text) | |
112 | 114 | return markdown(text, extensions=['extra']) |
113 | 115 | |
114 | 116 | # Authentication Gate for the Admin | ... | ... |
flaskr/content.py
flaskr/extensions.py
... | ... | @@ -50,7 +50,6 @@ def load_user(userid): |
50 | 50 | |
51 | 51 | |
52 | 52 | def send_email(to_recipient, subject, message): |
53 | - | |
54 | 53 | if 'production' != getenv('FLASK_ENV', 'production'): |
55 | 54 | print("Skipping sending email because we are not in production.") |
56 | 55 | return |
... | ... | @@ -70,3 +69,12 @@ def send_email(to_recipient, subject, message): |
70 | 69 | print("ERROR Sending email:\n%s" % str(e)) |
71 | 70 | traceback.print_exc(file=sys.stderr) |
72 | 71 | |
72 | + | |
73 | +def icon2html(text): | |
74 | + import re | |
75 | + icon_html = r"""<svg class="bi" width="16" height="16" fill="currentColor"><use xlink:href="/static/bootstrap-icons-1.0.0/bootstrap-icons.svg#\1"/></svg>""" | |
76 | + return re.sub( | |
77 | + "<icon +([^ ]+)>", | |
78 | + icon_html, | |
79 | + text | |
80 | + ) | ... | ... |
flaskr/static/css/common/main.css
... | ... | @@ -160,4 +160,13 @@ span[title] { |
160 | 160 | |
161 | 161 | opacity: 0; |
162 | 162 | } |
163 | +} | |
164 | + | |
165 | + | |
166 | +/** BOOTSTRAP ICONS **********************************************************/ | |
167 | + | |
168 | +svg.bi { | |
169 | + /* vertical alignment is … sketchy, let's do this the old way */ | |
170 | + position: relative; | |
171 | + top: 2px; | |
163 | 172 | } |
164 | 173 | \ No newline at end of file | ... | ... |