diff --git a/app/src/components/v-form/form-field.vue b/app/src/components/v-form/form-field.vue index 6edb708b8b..e028607e83 100644 --- a/app/src/components/v-form/form-field.vue +++ b/app/src/components/v-form/form-field.vue @@ -54,7 +54,7 @@ - + {{ validationMessage }} @@ -66,7 +66,6 @@ import { useI18n } from 'vue-i18n'; import { defineComponent, PropType, computed, ref } from 'vue'; import { Field } from '@/types/'; -import { md } from '@/utils/md'; import FormFieldLabel from './form-field-label.vue'; import FormFieldMenu from './form-field-menu.vue'; import FormFieldInterface from './form-field-interface.vue'; @@ -158,7 +157,7 @@ export default defineComponent({ } }); - return { t, isDisabled, md, internalValue, emitValue, showRaw, rawValue, validationMessage, isEdited }; + return { t, isDisabled, internalValue, emitValue, showRaw, rawValue, validationMessage, isEdited }; function emitValue(value: any) { if ( diff --git a/app/src/components/v-form/v-form.vue b/app/src/components/v-form/v-form.vue index 002b1e3ecf..33496a80ae 100644 --- a/app/src/components/v-form/v-form.vue +++ b/app/src/components/v-form/v-form.vue @@ -64,7 +64,6 @@ import { defineComponent, PropType, computed, ref, provide } from 'vue'; import { useFieldsStore } from '@/stores/'; import { Field, FieldRaw } from '@/types'; import { clone, cloneDeep, isNil, merge, omit } from 'lodash'; -import { md } from '@/utils/md'; import useFormFields from '@/composables/use-form-fields'; import { ValidationError } from '@/types'; import { useElementSize } from '@/composables/use-element-size'; @@ -180,7 +179,6 @@ export default defineComponent({ batchActiveFields, toggleBatchField, unsetValue, - md, unknownValidationErrors, firstEditableFieldIndex, isNil, diff --git a/app/src/directives/markdown.ts b/app/src/directives/markdown.ts new file mode 100644 index 0000000000..ee27e0281c --- /dev/null +++ b/app/src/directives/markdown.ts @@ -0,0 +1,10 @@ +import { Directive } from 'vue'; +import { md } from '@/utils/md'; + +const Markdown: Directive = { + beforeMount(el, binding) { + el.innerHTML = md(binding.value ?? ''); + }, +}; + +export default Markdown; diff --git a/app/src/directives/register.ts b/app/src/directives/register.ts index 8aed568aa0..7144e4e646 100644 --- a/app/src/directives/register.ts +++ b/app/src/directives/register.ts @@ -2,9 +2,11 @@ import { App } from 'vue'; import ClickOutside from './click-outside/click-outside'; import Focus from './focus/focus'; import Tooltip from './tooltip/tooltip'; +import Markdown from './markdown'; export function registerDirectives(app: App): void { app.directive('focus', Focus); app.directive('tooltip', Tooltip); app.directive('click-outside', ClickOutside); + app.directive('md', Markdown); } diff --git a/app/src/interfaces/input-rich-text-md/input-rich-text-md.vue b/app/src/interfaces/input-rich-text-md/input-rich-text-md.vue index 54ecc3c23b..aedf850877 100644 --- a/app/src/interfaces/input-rich-text-md/input-rich-text-md.vue +++ b/app/src/interfaces/input-rich-text-md/input-rich-text-md.vue @@ -129,7 +129,7 @@
-
+
@@ -155,7 +155,6 @@ import 'codemirror/addon/display/placeholder.js'; import { applyEdit, CustomSyntax, Alteration } from './edits'; import { getPublicURL } from '@/utils/get-root-path'; -import { md } from '@/utils/md'; import { addTokenToURL } from '@/api'; import escapeStringRegexp from 'escape-string-regexp'; import useShortcut from '@/composables/use-shortcut'; @@ -232,7 +231,7 @@ export default defineComponent({ } ); - const html = computed(() => { + const markdownString = computed(() => { let mdString = props.value || ''; if (!props.imageToken) { @@ -246,9 +245,7 @@ export default defineComponent({ } } - const html = md(mdString); - - return html; + return mdString; }); const table = reactive({ @@ -274,7 +271,7 @@ export default defineComponent({ codemirrorEl, edit, view, - html, + markdownString, table, onImageUpload, imageDialogOpen, diff --git a/app/src/interfaces/presentation-notice/presentation-notice.vue b/app/src/interfaces/presentation-notice/presentation-notice.vue index 1bfb1d9827..861ff783fd 100644 --- a/app/src/interfaces/presentation-notice/presentation-notice.vue +++ b/app/src/interfaces/presentation-notice/presentation-notice.vue @@ -1,14 +1,13 @@ diff --git a/app/src/modules/activity/routes/collection.vue b/app/src/modules/activity/routes/collection.vue index 981f12d5d0..6e31e82843 100644 --- a/app/src/modules/activity/routes/collection.vue +++ b/app/src/modules/activity/routes/collection.vue @@ -24,7 +24,7 @@ diff --git a/app/src/modules/settings/routes/webhooks/collection.vue b/app/src/modules/settings/routes/webhooks/collection.vue index bee26eceb3..2ab647a732 100644 --- a/app/src/modules/settings/routes/webhooks/collection.vue +++ b/app/src/modules/settings/routes/webhooks/collection.vue @@ -76,7 +76,7 @@ diff --git a/app/src/modules/users/routes/collection.vue b/app/src/modules/users/routes/collection.vue index 77eed7147d..0c79afdcb3 100644 --- a/app/src/modules/users/routes/collection.vue +++ b/app/src/modules/users/routes/collection.vue @@ -118,7 +118,7 @@