diff --git a/src/components/SafeLinks.vue b/src/components/SafeLinks.vue
deleted file mode 100644
index 19d95cbd7..000000000
--- a/src/components/SafeLinks.vue
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
-
- {{ part.content }}
- {{ part.content }}
-
-
-
-
-
diff --git a/src/pages/Details.vue b/src/pages/Details.vue
index 1a4f78b6e..1d068b92e 100644
--- a/src/pages/Details.vue
+++ b/src/pages/Details.vue
@@ -9,9 +9,8 @@
@@ -281,13 +280,14 @@ import Status from "../components/Status.vue";
import Datetime from "../components/Datetime.vue";
import CountUp from "../components/CountUp.vue";
import Uptime from "../components/Uptime.vue";
-import SafeLinks from "../components/SafeLinks.vue";
import Pagination from "v-pagination-3";
const PingChart = defineAsyncComponent(() => import("../components/PingChart.vue"));
import Tag from "../components/Tag.vue";
import CertificateInfo from "../components/CertificateInfo.vue";
import { getMonitorRelativeURL } from "../util.ts";
import { URL } from "whatwg-url";
+import DOMPurify from "dompurify";
+import { marked } from "marked";
import { getResBaseURL } from "../util-frontend";
import { highlight, languages } from "prismjs/components/prism-core";
import "prismjs/components/prism-clike";
@@ -310,8 +310,7 @@ export default {
Tag,
CertificateInfo,
PrismEditor,
- ScreenshotDialog,
- SafeLinks,
+ ScreenshotDialog
},
data() {
return {
@@ -403,6 +402,14 @@ export default {
screenshotURL() {
return getResBaseURL() + this.monitor.screenshot + "?time=" + this.cacheTime;
+ },
+
+ descriptionHTML() {
+ if (this.monitor.description != null) {
+ return DOMPurify.sanitize(marked(this.monitor.description));
+ } else {
+ return "";
+ }
}
},