Skip to content

Commit

Permalink
records: configure markdown fields
Browse files Browse the repository at this point in the history
* Configure markdown for organisations and collections descriptions.
* Adds a markdown filters.

Co-Authored-by: Sébastien Délèze <sebastien.deleze@rero.ch>
  • Loading branch information
Sébastien Délèze committed Jun 14, 2021
1 parent 8376223 commit 72a09da
Show file tree
Hide file tree
Showing 8 changed files with 26 additions and 6 deletions.
2 changes: 1 addition & 1 deletion data/organisations/data.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
{
"code": "hepvs",
"name": "HEP Valais",
"description": "La HEP-VS d\u00e9veloppe un leadership acad\u00e9mique et professionnel au sein d'\u00e9quipes interdisciplinaires compos\u00e9es de chercheur\u00b7e\u00b7s, \u00e9tudiant\u00b7e\u00b7s, animateurs\u00b7trices p\u00e9dagogiques, etc.\nDe ces travaux sont issus des r\u00e9sultats partag\u00e9s \u00e0 l'ensemble du syst\u00e8me scolaire valaisan, de la communaut\u00e9 scientifique et professionnelle nationale et internationale.\n\nFREDI est l'acronyme de \u00ab Forschung \u2013 Recherche \u2013 Entwicklung \u2013 D\u00e9veloppement \u2013 Innova(z)tion \u00bb la nouvelle plateforme de d\u00e9p\u00f4t des productions scientifiques et professionnelles en Open Access ainsi que des projets de recherche de la Haute \u00e9cole p\u00e9dagogique du Valais. \n\nLa HEP-VS joue un r\u00f4le pr\u00e9pond\u00e9rant dans la production des connaissances. Pour ce faire, elle met en place un outil pour les utilisateurs et utilisatrices afin de rendre visible la production de savoirs th\u00e9oriques et pratiques de l'institution et les projets de recherche. La base de donn\u00e9es de la plateforme FREDI regroupe l'ensemble des productions scientifiques et professionnelles r\u00e9alis\u00e9es par les diff\u00e9rentes \u00e9quipes de recherche de l'institution. Dans la perspective strat\u00e9gique de la circularit\u00e9 des savoirs, la mise \u00e0 disposition de ses publications et projets de recherche est utile pour la communaut\u00e9 scientifique, mais aussi pour l'ensemble des acteurs et actrices du terrain. Ce r\u00f4le et cet engagement de notre institution est une volont\u00e9 de diffuser \u00e0 l'\u00e9chelle nationale et internationale la litt\u00e9rature scientifique produite en son sein avec un acc\u00e8s public ou sous embargo afin que toutes personnes int\u00e9ress\u00e9es par ces recherches puissent y acc\u00e9der.\n\nDe plus, selon la logique d'am\u00e9lioration continue, la plateforme FREDI permet de centraliser l'int\u00e9gralit\u00e9 des donn\u00e9es des projets de recherche \u00e0 des fins d'optimisation du syst\u00e8me d'assurance qualit\u00e9 pour le domaine Recherche & D\u00e9veloppement.\n\nEn cas de probl\u00e8mes techniques ou questions, merci de contacter le domaine Recherche & D\u00e9veloppement via l'adresse e-mail suivante : <a href=\"mailto:recherche-forschung@hepvs.ch\">recherche-forschung@hepvs.ch</a>.",
"description": "Description in **markdown**",
"isShared": true,
"isDedicated": true,
"platformName": "FREDI",
Expand Down
11 changes: 11 additions & 0 deletions sonar/ext.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
from __future__ import absolute_import, print_function

import jinja2
import markdown
from flask import current_app, render_template, request
from flask_bootstrap import Bootstrap
from flask_security import user_registered
Expand Down Expand Up @@ -152,6 +153,16 @@ def get_admin_record_detail_url(record):
]
return '/'.join(url)

@app.template_filter()
def markdown_filter(content):
"""Markdown filter.
:param str content: Content to convert
:returns: HTML corresponding to markdown
:rtype: str
"""
return markdown.markdown(content)

def create_resources(self):
"""Create resources."""
# Initialize the project resource with the corresponding service.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
"type": "string",
"minLength": 1,
"form": {
"type": "textarea",
"type": "markdown",
"templateOptions": {
"rows": 5
}
Expand Down
2 changes: 1 addition & 1 deletion sonar/modules/collections/templates/collections/item.html
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
<h3>{{ name }}</h3>
{% if collection.description %}
<div class="mb-2">
{{ collection.description | language_value | safe }}
{{ collection.description | language_value | markdown_filter | safe }}
</div>
{% endif %}
<p>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
"type": "string",
"minLength": 1,
"form": {
"type": "textarea",
"type": "markdown",
"templateOptions": {
"rows": 5
}
Expand Down
2 changes: 1 addition & 1 deletion sonar/theme/templates/sonar/frontpage.html
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ <h6 class="m-0 mt-1">
{% if g.get('organisation', {}).get('isDedicated') %}
{% if g.organisation.get('description') %}
<div class="col-12">
{{ g.organisation.description | nl2br | safe }}
{{ g.organisation.description | markdown_filter | safe }}
</div>
{% endif %}
{% else %}
Expand Down
2 changes: 1 addition & 1 deletion sonar/theme/templates/sonar/partial/organisation.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<div class="col-12 col-lg-{{ '10' if thumbnail else '12' }}">
<h1 class="mb-2">{{ g.organisation.name }}</h1>
{% if g.organisation.get('description') %}
<p class="mb-3 text-justify">{{ g.organisation.description | nl2br | safe }}</p>
<p class="mb-3 text-justify">{{ g.organisation.description | markdown_filter | safe }}</p>
{% endif %}
<div class="row">
<div class="col-12 col-lg-4">
Expand Down
9 changes: 9 additions & 0 deletions tests/ui/documents/test_documents_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -422,3 +422,12 @@ def test_get_custom_field_label(app):
record = {'organisation': [{'documentsCustomField1': {}}]}
assert render_template_string('{{ record | get_custom_field_label(1) }}',
record=record) == 'None'


def test_markdown_filter(app):
"""Test markdown to HTML conversion."""
assert render_template_string(
"{{ 'Markdown text\nwith **strong** and *italic*' | markdown_filter" \
" | safe}}"
) == '<p>Markdown text\nwith <strong>strong</strong> and <em>italic</em>'\
'</p>'

0 comments on commit 72a09da

Please sign in to comment.