Skip to content
Snippets Groups Projects
Commit add6e60e authored by Simon Malesys's avatar Simon Malesys
Browse files

Interpret table description as markdown

parent 09d33e7e
No related branches found
No related tags found
1 merge request!88Update frontend
......@@ -32,6 +32,7 @@ export default {
// Plugins to run before rendering page: https://go.nuxtjs.dev/config-plugins
plugins: [
{ src: '~/plugins/sanitizedHtml.js', mode: 'client' },
],
// Auto import components: https://go.nuxtjs.dev/config-components
......@@ -52,6 +53,7 @@ export default {
modules: [
// https://go.nuxtjs.dev/axios
'@nuxtjs/axios',
'@nuxtjs/markdownit'
],
// Axios module configuration: https://go.nuxtjs.dev/config-axios
......
......@@ -18,8 +18,10 @@
},
"dependencies": {
"@nuxtjs/axios": "^5.13.6",
"@nuxtjs/markdownit": "^2.0.0",
"core-js": "^3.35.0",
"d3": "^7.1.1",
"dompurify": "^2.4.7",
"lodash": "^4.17.21",
"nuxt": "^2.17.3",
"plotly.js-dist": "^2.28.0",
......
......@@ -17,7 +17,7 @@
:class="{ 'selected-table': selectedInitTable === table.tableName }"
:color="selectedInitTable === table.tableName ? 'blue lighten-4' : ''">
<v-card-title>{{ table.name }}</v-card-title>
<v-card-text>{{ table.desc }}</v-card-text>
<v-card-text v-sanitized-html="$md.render(table.desc)"></v-card-text>
<v-card-text>
<div>
<strong>{{ table.nb_snps.toLocaleString() }}</strong>
......@@ -166,6 +166,10 @@ section h2 {
word-break: normal;
}
.init-table-card .v-card__text {
font-size: 16px;
}
.card-buttons {
justify-content: end;
}
......
import Vue from 'vue'
import DOMPurify from 'dompurify'
/**
* Use DOMpurify to sanitize html or markdown strings.
* This directive should be used instead of the native v-html.
*/
Vue.directive('sanitized-html', {
bind: (el, binding) => {
el.innerHTML = DOMPurify.sanitize(binding.value)
},
})
......@@ -1786,6 +1786,24 @@
defu "^6.0.0"
eslint-webpack-plugin "^2.6.0"
"@nuxtjs/markdownit-loader@^1.1.1":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@nuxtjs/markdownit-loader/-/markdownit-loader-1.2.0.tgz#02e31b778bdbb61c13a5991021d660a21393b2c2"
integrity sha512-D6m4578NavamwD03nOU3H3NkS2zYfFJSMChUczlCGDx05DgAoenY4GdCmML1CnAEH/Cv6Bf230RIwDnD926oyQ==
dependencies:
highlight.js "^10.5.0"
loader-utils "^1.1.0"
markdown-it "^8.3.1"
"@nuxtjs/markdownit@^2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@nuxtjs/markdownit/-/markdownit-2.0.0.tgz#5fcd35afdb78f328ba2dbc1f678f0c0bb9ea85f9"
integrity sha512-YAEK/s0IzdWK1L74WKTQSMcvNhGgOW0xIWdu5VMxDo1NkNpm/0CbJZgSPt1JYAnT8r8r6wVQ5SY1v/1MZanPlQ==
dependencies:
"@nuxtjs/markdownit-loader" "^1.1.1"
defu "^3.2.2"
raw-loader "^4.0.2"
"@nuxtjs/proxy@^2.1.0":
version "2.1.0"
resolved "https://registry.npmjs.org/@nuxtjs/proxy/-/proxy-2.1.0.tgz"
......@@ -4007,6 +4025,11 @@ define-property@^2.0.2:
is-descriptor "^1.0.2"
isobject "^3.0.1"
defu@^3.2.2:
version "3.2.2"
resolved "https://registry.yarnpkg.com/defu/-/defu-3.2.2.tgz#be20f4cc49b9805d54ee6b610658d53894942e97"
integrity sha512-8UWj5lNv7HD+kB0e9w77Z7TdQlbUYDVWqITLHNqFIn6khrNHv5WQo38Dcm1f6HeNyZf0U7UbPf6WeZDSdCzGDQ==
defu@^5.0.0:
version "5.0.1"
resolved "https://registry.npmjs.org/defu/-/defu-5.0.1.tgz"
......@@ -4161,6 +4184,11 @@ domhandler@^5.0.2, domhandler@^5.0.3:
dependencies:
domelementtype "^2.3.0"
dompurify@^2.4.7:
version "2.4.7"
resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.4.7.tgz#277adeb40a2c84be2d42a8bcd45f582bfa4d0cfc"
integrity sha512-kxxKlPEDa6Nc5WJi+qRgPbOAbgTpSULL+vI3NUXsZMlkJxTqYI9wg5ZTay2sFrdZRWHPWNi+EdAhcJf81WtoMQ==
domutils@^1.5.1:
version "1.7.0"
resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz"
......@@ -4286,9 +4314,9 @@ enquirer@^2.3.5, enquirer@^2.3.6:
dependencies:
ansi-colors "^4.1.1"
entities@^1.1.1:
entities@^1.1.1, entities@~1.1.1:
version "1.1.2"
resolved "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz"
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==
entities@^2.0.0:
......@@ -5451,6 +5479,11 @@ he@1.2.0, he@^1.2.0:
resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz"
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
highlight.js@^10.5.0:
version "10.7.3"
resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531"
integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==
hmac-drbg@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz"
......@@ -6301,6 +6334,13 @@ lines-and-columns@^1.1.6:
resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz"
integrity "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= sha512-8ZmlJFVK9iCmtLz19HpSsR8HaAMWBT284VMNednLwlIMDP2hJDCIhUp0IZ2xUcZ+Ob6BM0VvCSJwzASDM45NLQ=="
linkify-it@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf"
integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==
dependencies:
uc.micro "^1.0.1"
lint-staged@^10.5.4:
version "10.5.4"
resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz"
......@@ -6552,6 +6592,17 @@ map-visit@^1.0.0:
dependencies:
object-visit "^1.0.0"
markdown-it@^8.3.1:
version "8.4.2"
resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.2.tgz#386f98998dc15a37722aa7722084f4020bdd9b54"
integrity sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==
dependencies:
argparse "^1.0.7"
entities "~1.1.1"
linkify-it "^2.0.0"
mdurl "^1.0.1"
uc.micro "^1.0.5"
markdown-table@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz"
......@@ -6616,6 +6667,11 @@ mdn-data@2.0.30:
resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz"
integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==
mdurl@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e"
integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==
memfs@^3.4.3:
version "3.5.3"
resolved "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz"
......@@ -8575,6 +8631,14 @@ range-parser@^1.2.1, range-parser@~1.2.1:
resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"
integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
raw-loader@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.2.tgz#1aac6b7d1ad1501e66efdac1522c73e59a584eb6"
integrity sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==
dependencies:
loader-utils "^2.0.0"
schema-utils "^3.0.0"
rc9@^2.1.1:
version "2.1.1"
resolved "https://registry.npmjs.org/rc9/-/rc9-2.1.1.tgz"
......@@ -10023,6 +10087,11 @@ ua-parser-js@^1.0.37:
resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz"
integrity sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==
uc.micro@^1.0.1, uc.micro@^1.0.5:
version "1.0.6"
resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac"
integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==
ufo@^1.3.2:
version "1.3.2"
resolved "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment