From e3bc59a5f737b6efdbfafe237a440083905a2d82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E6=B8=B8=E5=90=9B?= Date: Sun, 13 Jun 2021 14:39:22 +0800 Subject: [PATCH] feat(md): add _blank for all links with http/https (#141) --- package.json | 1 + pnpm-lock.yaml | 6 ++++++ vite.config.ts | 8 ++++++++ 3 files changed, 15 insertions(+) diff --git a/package.json b/package.json index 6fbebdf..4284beb 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "cross-env": "^7.0.3", "eslint": "^7.28.0", "https-localhost": "^4.6.5", + "markdown-it-link-attributes": "^3.0.0", "markdown-it-prism": "^2.1.6", "pnpm": "^6.7.6", "typescript": "^4.3.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 64ab68e..d2c1ff9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,6 +14,7 @@ specifiers: cross-env: ^7.0.3 eslint: ^7.28.0 https-localhost: ^4.6.5 + markdown-it-link-attributes: ^3.0.0 markdown-it-prism: ^2.1.6 nprogress: ^0.2.0 pnpm: ^6.7.6 @@ -54,6 +55,7 @@ devDependencies: cross-env: 7.0.3 eslint: 7.28.0 https-localhost: 4.6.5 + markdown-it-link-attributes: 3.0.0 markdown-it-prism: 2.1.6 pnpm: 6.7.6 typescript: 4.3.2 @@ -5049,6 +5051,10 @@ packages: engines: {node: '>=4'} dev: true + /markdown-it-link-attributes/3.0.0: + resolution: {integrity: sha512-B34ySxVeo6MuEGSPCWyIYryuXINOvngNZL87Mp7YYfKIf6DcD837+lXA8mo6EBbauKsnGz22ZH0zsbOiQRWTNg==} + dev: true + /markdown-it-prism/2.1.6: resolution: {integrity: sha512-fuo5lq36A6kzb882vCsvdyh4HUzpwdfNkAl92cr+MjUO0Q9foz/7MZ/RpKRBlZSwt86LmPlW7ubaEwf4C+0b3g==} engines: {node: '>=6.0.0'} diff --git a/vite.config.ts b/vite.config.ts index 1467856..52a9056 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -10,6 +10,7 @@ import WindiCSS from 'vite-plugin-windicss' import { VitePWA } from 'vite-plugin-pwa' import VueI18n from '@intlify/vite-plugin-vue-i18n' import Prism from 'markdown-it-prism' +import LinkAttributes from 'markdown-it-link-attributes' export default defineConfig({ resolve: { @@ -37,6 +38,13 @@ export default defineConfig({ markdownItSetup(md) { // https://prismjs.com/ md.use(Prism) + md.use(LinkAttributes, { + pattern: /^https?:\/\//, + attrs: { + target: '_blank', + rel: 'noopener', + }, + }) }, }),