Add clamp_height to the markdown filter which limits max height to 200 (scrollable) on the container div

This commit is contained in:
Brian Tiemann 2024-08-21 17:50:09 -04:00
parent 96802b4edb
commit 42c4bdddef
4 changed files with 17 additions and 3 deletions

Binary file not shown.

View File

@ -35,6 +35,11 @@ td > .rendered-markdown {
} }
} }
td > .rendered-markdown.vertical-scroll {
max-height: 200px;
overflow-y: scroll;
}
// Markdown preview // Markdown preview
.markdown-widget { .markdown-widget {
.preview { .preview {

View File

@ -3,7 +3,7 @@
{% if customfield.type == 'integer' and value is not None %} {% if customfield.type == 'integer' and value is not None %}
{{ value }} {{ value }}
{% elif customfield.type == 'longtext' and value %} {% elif customfield.type == 'longtext' and value %}
{{ value|markdown }} {{ value|markdown:True }}
{% elif customfield.type == 'boolean' and value == True %} {% elif customfield.type == 'boolean' and value == True %}
{% checkmark value true="True" %} {% checkmark value true="True" %}
{% elif customfield.type == 'boolean' and value == False %} {% elif customfield.type == 'boolean' and value == False %}

View File

@ -159,11 +159,16 @@ def content_type_id(model):
# #
@register.filter('markdown', is_safe=True) @register.filter('markdown', is_safe=True)
def render_markdown(value): def render_markdown(value, clamp_height=False):
""" """
Render a string as Markdown. This filter is invoked as "markdown": Render a string as Markdown. This filter is invoked as "markdown":
{{ md_source_text|markdown }} {{ md_source_text|markdown }}
If clamp_height is True, the "vertical-scroll" class will be added to the container div which sets a max-height
and adds a vertical scrollbar:
{{ md_source_text|markdown:True }}
""" """
if not value: if not value:
return '' return ''
@ -178,7 +183,11 @@ def render_markdown(value):
# If the string is not empty wrap it in rendered-markdown to style tables # If the string is not empty wrap it in rendered-markdown to style tables
if html: if html:
html = f'<div class="rendered-markdown">{html}</div>' classes = ['rendered-markdown']
if clamp_height:
classes.append('vertical-scroll')
classes_str = ' '.join(classes)
html = f'<div class="{classes_str}">{html}</div>'
schemes = get_config().ALLOWED_URL_SCHEMES schemes = get_config().ALLOWED_URL_SCHEMES