aboutsummaryrefslogtreecommitdiff
path: root/viewer/src/components/async
diff options
context:
space:
mode:
Diffstat (limited to 'viewer/src/components/async')
-rw-r--r--viewer/src/components/async/AsyncLdMarkdown.vue (renamed from viewer/src/components/async/Markdown.vue)24
-rw-r--r--viewer/src/components/async/index.ts24
2 files changed, 34 insertions, 14 deletions
diff --git a/viewer/src/components/async/Markdown.vue b/viewer/src/components/async/AsyncLdMarkdown.vue
index c4e282b..213c11c 100644
--- a/viewer/src/components/async/Markdown.vue
+++ b/viewer/src/components/async/AsyncLdMarkdown.vue
@@ -18,26 +18,28 @@
18-- along with this program. If not, see <https://www.gnu.org/licenses/>. 18-- along with this program. If not, see <https://www.gnu.org/licenses/>.
19--> 19-->
20 20
21<!-- eslint-disable vue/no-v-html -->
21<template> 22<template>
22 <div :class="$style.markdown" v-html="html" /> 23 <div
24 :class="$style.markdown"
25 v-html="html"
26 />
23</template> 27</template>
24 28
25<script lang="ts"> 29<script setup lang="ts">
26import marked from "marked"; 30import { marked } from 'marked';
27import { Component, Prop, Vue } from "vue-property-decorator"; 31import { computed } from 'vue';
28 32
29@Component 33const props = defineProps({
30export default class Markdown extends Vue { 34 markdown: { type: String, required: true },
31 @Prop({ required: true }) readonly markdown!: string; 35});
32 36
33 get html(): string { 37const html = computed(() => marked(props.markdown));
34 return marked(this.markdown);
35 }
36}
37</script> 38</script>
38 39
39<style lang="scss" module> 40<style lang="scss" module>
40.markdown { 41.markdown {
42 color: white;
41 line-height: 1.7; 43 line-height: 1.7;
42 word-wrap: break-word; 44 word-wrap: break-word;
43 45
diff --git a/viewer/src/components/async/index.ts b/viewer/src/components/async/index.ts
index 5a7d9a6..05a0814 100644
--- a/viewer/src/components/async/index.ts
+++ b/viewer/src/components/async/index.ts
@@ -1,4 +1,22 @@
1// Declare async constants for internal components 1/* ldgallery - A static generator which turns a collection of tagged
2// Their name can't start with 'Ld' 2-- pictures into a searchable web gallery.
3--
4-- Copyright (C) 2019-2022 Guillaume FOUET
5--
6-- This program is free software: you can redistribute it and/or modify
7-- it under the terms of the GNU Affero General Public License as
8-- published by the Free Software Foundation, either version 3 of the
9-- License, or (at your option) any later version.
10--
11-- This program is distributed in the hope that it will be useful,
12-- but WITHOUT ANY WARRANTY; without even the implied warranty of
13-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14-- GNU Affero General Public License for more details.
15--
16-- You should have received a copy of the GNU Affero General Public License
17-- along with this program. If not, see <https://www.gnu.org/licenses/>.
18*/
3 19
4export const Markdown = () => import(/* webpackChunkName: "markdown" */ "./Markdown.vue"); 20import { defineAsyncComponent } from 'vue';
21
22export const LdMarkdown = defineAsyncComponent(() => import(/* webpackChunkName: "markdown" */ './AsyncLdMarkdown.vue'));