Skip to content

Commit 2443e60

Browse files
Add support for markdown on major project descriptions (#620)
* Add support for markdown on major project descriptions * fix linting issue * Fix formatting Co-authored-by: Noah Hanford <bigspaceships56@gmail.com> * update requirements --------- Co-authored-by: Noah Hanford <bigspaceships56@gmail.com>
1 parent f0f78c7 commit 2443e60

4 files changed

Lines changed: 24 additions & 18 deletions

File tree

‎conditional/blueprints/major_project_submission.py‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
import json
33
import os
44

5+
import html
6+
import markdown
7+
58
from flask import Blueprint
69
from flask import request
710
from flask import jsonify
@@ -52,7 +55,7 @@ def display_major_project(user_dict=None):
5255
"tldr": p.tldr,
5356
"time_spent": p.time_spent,
5457
"skills": p.skills,
55-
"desc": p.description,
58+
"desc": markdown.markdown(html.escape(p.description)),
5659
"links": [] if p.links is None else list(filter(None, p.links.split("\n"))),
5760
"status": p.status,
5861
"is_owner": bool(user_dict["username"] == p.uid),

‎conditional/templates/major_project_submission.html‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ <h5><strong>Links</strong></h5>
313313
<div class="row">
314314
<div class="col-md-12 ">
315315
<h5><strong>Description</strong></h5>
316-
<p class="mb-0 h6 line-med text-wrap">{{p['desc']}}</p>
316+
<p class="mb-0 h6 line-med text-wrap">{{p['desc'] | safe}}</p>
317317
</div>
318318
</div>
319319

‎requirements.in‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,4 @@ structlog~=25.5.0
3030
Werkzeug~=3.1.6
3131
wrapt~=2.1.2
3232
click~=8.1
33+
markdown~=3.10.3

‎requirements.txt‎

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,22 +22,22 @@ botocore==1.35.99
2222
# -r requirements.in
2323
# boto3
2424
# s3transfer
25-
build==1.5.0
25+
build==1.6.1
2626
# via pip-tools
2727
certifi==2026.7.22
2828
# via
2929
# requests
3030
# sentry-sdk
3131
cffi==2.1.1
3232
# via cryptography
33-
charset-normalizer==3.4.9
33+
charset-normalizer==3.5.1
3434
# via requests
3535
click==8.4.2
3636
# via
3737
# -r requirements.in
3838
# flask
3939
# pip-tools
40-
cryptography==50.0.0
40+
cryptography==50.0.1
4141
# via oic
4242
csh-ldap==2.5.8
4343
# via -r requirements.in
@@ -67,11 +67,11 @@ flask-sqlalchemy==3.1.1
6767
# flask-migrate
6868
future==1.0.0
6969
# via pyjwkest
70-
greenlet==3.5.4
70+
greenlet==3.5.6
7171
# via sqlalchemy
7272
gunicorn==25.3.0
7373
# via -r requirements.in
74-
idna==3.18
74+
idna==3.20
7575
# via requests
7676
importlib-resources==7.1.0
7777
# via flask-pyoidc
@@ -98,6 +98,8 @@ mako==1.3.12
9898
# -r requirements.in
9999
# alembic
100100
# oic
101+
markdown==3.10.3
102+
# via -r requirements.in
101103
markupsafe==3.0.3
102104
# via
103105
# -r requirements.in
@@ -123,9 +125,9 @@ pip==26.2.1
123125
# via pip-tools
124126
pip-tools==7.5.3
125127
# via -r requirements.in
126-
platformdirs==4.11.1
128+
platformdirs==4.11.11
127129
# via pylint
128-
psycopg2-binary==2.9.12
130+
psycopg2-binary==2.9.13
129131
# via -r requirements.in
130132
pyasn1==0.6.4
131133
# via
@@ -139,23 +141,23 @@ pycryptodomex==3.23.0
139141
# via
140142
# oic
141143
# pyjwkest
142-
pydantic==2.13.4
144+
pydantic==2.13.5
143145
# via pydantic-settings
144-
pydantic-core==2.46.4
146+
pydantic-core==2.46.5
145147
# via pydantic
146148
pydantic-settings==2.15.0
147149
# via oic
148150
pyjwkest==1.4.4
149151
# via oic
150152
pylint==3.3.9
151153
# via -r requirements.in
152-
pyproject-hooks==1.2.0
154+
pyproject-hooks==1.3.3
153155
# via
154156
# build
155157
# pip-tools
156158
python-dateutil==2.9.0.post0
157159
# via botocore
158-
python-dotenv==1.2.2
160+
python-dotenv==1.2.3
159161
# via pydantic-settings
160162
python-editor==1.0.4
161163
# via -r requirements.in
@@ -170,14 +172,14 @@ s3transfer==0.10.4
170172
# via boto3
171173
sentry-sdk==2.63.0
172174
# via -r requirements.in
173-
setuptools==83.0.0
175+
setuptools==84.0.0
174176
# via pip-tools
175177
six==1.17.0
176178
# via
177179
# -r requirements.in
178180
# pyjwkest
179181
# python-dateutil
180-
sqlalchemy==2.0.51
182+
sqlalchemy==2.0.54
181183
# via
182184
# -r requirements.in
183185
# alembic
@@ -195,11 +197,11 @@ typing-extensions==4.16.0
195197
# pydantic-core
196198
# sqlalchemy
197199
# typing-inspection
198-
typing-inspection==0.4.2
200+
typing-inspection==0.4.4
199201
# via
200202
# pydantic
201203
# pydantic-settings
202-
urllib3==2.7.0
204+
urllib3==2.8.0
203205
# via
204206
# botocore
205207
# requests
@@ -208,7 +210,7 @@ werkzeug==3.1.8
208210
# via
209211
# -r requirements.in
210212
# flask
211-
wheel==0.47.0
213+
wheel==0.48.0
212214
# via pip-tools
213215
wrapt==2.1.2
214216
# via -r requirements.in

0 commit comments

Comments
 (0)