1
0
mirror of https://github.com/peeringdb/peeringdb.git synced 2024-05-11 05:55:09 +00:00

consistent markdown behaviour by dropping backend markdown render in favor of javascript markdown rendering (#221) (#544)

This commit is contained in:
Matt Griswold
2019-08-16 20:01:12 -05:00
committed by GitHub
parent 0d0f682795
commit 5b31564d30
2 changed files with 13 additions and 1 deletions

View File

@@ -87,6 +87,16 @@ PeeringDB = {
}); });
}); });
// render markdown content
$('[data-render-markdown="yes"]').each(function() {
var converter = new showdown.Converter()
var value = $(this).data("edit-value")
// sanitize any html tags
var html = converter.makeHtml(value.replace(/>/g, '&gt;').replace(/</g, '&lt;'))
// set html after further sanitizing output via DOMPurify
$(this).html(DOMPurify.sanitize(html, {SAFE_FOR_JQUERY: true}))
})
}, },
// fix list x offsets depending on whether content is overflowing // fix list x offsets depending on whether content is overflowing
@@ -1157,6 +1167,7 @@ twentyc.editable.module.register(
twentyc.editable.input.register( twentyc.editable.input.register(
"markdown", "markdown",
{ {
apply : function(value) { apply : function(value) {
var converter = new showdown.Converter() var converter = new showdown.Converter()
if(!value) if(!value)

View File

@@ -126,6 +126,7 @@
</div> </div>
{% elif row.type == "fmt-text" %} {% elif row.type == "fmt-text" %}
<div class="view_value col-xs-8 col-sm-7 col-md-8 fmt_text" <div class="view_value col-xs-8 col-sm-7 col-md-8 fmt_text"
data-render-markdown="yes"
{% if not row.readonly and permissions.can_write %} {% if not row.readonly and permissions.can_write %}
data-edit-type="markdown" data-edit-type="markdown"
{% endif %} {% endif %}
@@ -134,7 +135,7 @@
{% endif %} {% endif %}
data-edit-value="{{ row.value }}" data-edit-value="{{ row.value }}"
data-edit-name="{{ row.name }}"> data-edit-name="{{ row.name }}">
{{ row.value|render_markdown|safe }} {{ row.value }}
{% if row.name == "notes" and row.value and request.user.is_authenticated %} {% if row.name == "notes" and row.value and request.user.is_authenticated %}
<div> <div>
<!-- select name="language-from"> <!-- select name="language-from">