Просмотр исходного кода

fix(app): open links in new tab or browser (#7127)

Justas Raudonius 1 месяц назад
Родитель
Сommit
ba105246ea

+ 8 - 0
packages/ui/src/context/marked.tsx

@@ -379,6 +379,14 @@ export const { use: useMarked, provider: MarkedProvider } = createSimpleContext(
   name: "Marked",
   init: () => {
     return marked.use(
+      {
+        renderer: {
+          link({ href, title, text }) {
+            const titleAttr = title ? ` title="${title}"` : ""
+            return `<a href="${href}"${titleAttr} target="_blank" rel="noopener noreferrer">${text}</a>`
+          },
+        },
+      },
       markedKatex({
         throwOnError: false,
       }),

+ 8 - 0
packages/web/src/components/share/content-markdown.tsx

@@ -8,6 +8,14 @@ import { transformerNotationDiff } from "@shikijs/transformers"
 import style from "./content-markdown.module.css"
 
 const markedWithShiki = marked.use(
+  {
+    renderer: {
+      link({ href, title, text }) {
+        const titleAttr = title ? ` title="${title}"` : ""
+        return `<a href="${href}"${titleAttr} target="_blank" rel="noopener noreferrer">${text}</a>`
+      },
+    },
+  },
   markedShiki({
     highlight(code, lang) {
       return codeToHtml(code, {