I propose that we do this in Python, not on the client in Javascript.
Reasoning:
Python tools are good, and JS ones not as much
With a large chunk of markup, client side processing could hurt page performance
HTML from the course object will be used only if there's no replacement content in the CMS, so we're going to be using the backend for description info anyhow.
Proposed solution:
Whitelist a small number of elements: p, h2 - h6, ul, li, img, a, and the smallest number of attributes we can.
Sanitize the HTML when it's fetched and "enhanced", with pricing information, etc.
Store the results in the CMS, and allow that to be edited/replaced by the instructor.
I propose that we do this in Python, not on the client in Javascript.
Reasoning:
Proposed solution:
p
,h2
-h6
,ul
,li
,img
,a
, and the smallest number of attributes we can.