refactor(docs): use markdown-it instead of marked (#4239)

This commit is contained in:
云游君
2021-11-05 18:37:13 +08:00
committed by GitHub
parent e5e9d654a4
commit 9c74c8595a
3 changed files with 32 additions and 36 deletions

View File

@@ -1,6 +1,8 @@
<script lang="ts" setup>
import { computed } from 'vue'
import { parse } from 'marked'
import MarkdownIt from 'markdown-it'
const md = new MarkdownIt()
const props = defineProps({
content: { type: String, required: true },
@@ -10,7 +12,8 @@ const attr = 'rel="noreferrer noopenner" target="_blank"'
const parsed = computed(() => {
// Note this is relatively arbitrary so that this could be buggy.
return parse(props.content)
return md
.render(props.content)
.replace(
/#([0-9]+) by/g,
`<a href="https://github.com/element-plus/element-plus/pull/$1" ${attr}>#$1</a> by`

View File

@@ -13,14 +13,12 @@
"axios": "0.24.0",
"clipboard-copy": "4.0.1",
"element-plus": "npm:element-plus@latest",
"marked": "4.0.0",
"normalize.css": "8.0.1",
"nprogress": "0.2.0"
},
"devDependencies": {
"@crowdin/cli": "3.7.1",
"@types/markdown-it": "12.2.3",
"@types/marked": "3.0.2",
"cross-env": "7.0.3",
"markdown-it": "12.2.0",
"markdown-it-container": "3.0.0",

59
pnpm-lock.yaml generated
View File

@@ -151,7 +151,6 @@ importers:
specifiers:
'@crowdin/cli': 3.7.1
'@types/markdown-it': 12.2.3
'@types/marked': 3.0.2
'@vueuse/core': 6.7.6
axios: 0.24.0
clipboard-copy: 4.0.1
@@ -159,28 +158,25 @@ importers:
element-plus: npm:element-plus@latest
markdown-it: 12.2.0
markdown-it-container: 3.0.0
marked: 4.0.0
normalize.css: 8.0.1
nprogress: 0.2.0
vite-plugin-inspect: 0.3.10
vitepress: 0.18.1
dependencies:
'@vueuse/core': 6.7.6_vue@3.2.21
'@vueuse/core': 6.7.6
axios: 0.24.0
clipboard-copy: 4.0.1
element-plus: 1.2.0-beta.1_vue@3.2.21
marked: 4.0.0
element-plus: 1.2.0-beta.1
normalize.css: 8.0.1
nprogress: 0.2.0
devDependencies:
'@crowdin/cli': 3.7.1
'@types/markdown-it': 12.2.3
'@types/marked': 3.0.2
cross-env: 7.0.3
markdown-it: 12.2.0
markdown-it-container: 3.0.0
vite-plugin-inspect: 0.3.10
vitepress: 0.18.1_sass@1.43.4
vitepress: 0.18.1
packages/components:
specifiers: {}
@@ -1749,10 +1745,6 @@ packages:
'@types/mdurl': 1.0.2
dev: true
/@types/marked/3.0.2:
resolution: {integrity: sha512-mGYI9qFs+i5eYaytWKBbtEMbIkrXGKuhsDpDcj70ogKS2gk1NmgEy9Z3VEKz922Lfms6eITXXqv5idlX7C/irw==}
dev: true
/@types/mdurl/1.0.2:
resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==}
dev: true
@@ -1976,7 +1968,7 @@ packages:
peerDependencies:
vite: ^2.5.10
dependencies:
vite: 2.6.10_sass@1.43.4
vite: 2.6.10
dev: true
/@vitejs/plugin-vue/1.9.4_vite@2.6.13:
@@ -2147,7 +2139,7 @@ packages:
vue-demi: 0.11.4_vue@3.2.21
dev: false
/@vueuse/core/6.7.6_vue@3.2.21:
/@vueuse/core/6.7.6:
resolution: {integrity: sha512-oVyqARXnTvhf4m6xf/sHw+SNJWcRYJn8+L4TZTFBU9POf9GIzBN7iHD2Oc4K4rTWXGQzXfoFHgbrXyeMFCRoqA==}
peerDependencies:
'@vue/composition-api': ^1.1.0
@@ -2158,9 +2150,8 @@ packages:
vue:
optional: true
dependencies:
'@vueuse/shared': 6.7.6_vue@3.2.21
vue: 3.2.21
vue-demi: 0.11.4_vue@3.2.21
'@vueuse/shared': 6.7.6
vue-demi: 0.11.4
dev: false
/@vueuse/shared/6.7.3_vue@3.2.21:
@@ -2178,7 +2169,7 @@ packages:
vue-demi: 0.11.4_vue@3.2.21
dev: false
/@vueuse/shared/6.7.6_vue@3.2.21:
/@vueuse/shared/6.7.6:
resolution: {integrity: sha512-MfzTKkFK63PcjDdTpJRuJqylpyUdXpic9ueTRcgpPizqFpoYIuI6DkdYjub2Ch5+OYYhVnCqe8ynW6WzYo7DGQ==}
peerDependencies:
'@vue/composition-api': ^1.1.0
@@ -2189,8 +2180,7 @@ packages:
vue:
optional: true
dependencies:
vue: 3.2.21
vue-demi: 0.11.4_vue@3.2.21
vue-demi: 0.11.4
dev: false
/@zkochan/npm-conf/2.0.2:
@@ -3918,20 +3908,19 @@ packages:
resolution: {integrity: sha512-2jtSwgyiRzybHRxrc2nKI+39wH3AwQgn+sogQ+q814gv8hIFwrcZbV07Ea9f8AmK0ufPVZUvvAG1uZJ+obV4Jw==}
dev: true
/element-plus/1.2.0-beta.1_vue@3.2.21:
/element-plus/1.2.0-beta.1:
resolution: {integrity: sha512-TvO2NPoCcG0PDph2SHz3xZ+wnTNJvlKHfb1P6uJsYMUhUCWtSaWGXE1kPQVnyi/tWYlQJG05CT4iO3B4+uEj9w==}
peerDependencies:
vue: ^3.2.0
dependencies:
'@element-plus/icons': 0.0.11
'@popperjs/core': 2.10.2
'@vueuse/core': 6.7.6_vue@3.2.21
'@vueuse/core': 6.7.6
async-validator: 4.0.7
dayjs: 1.10.7
lodash: 4.17.21
memoize-one: 6.0.0
normalize-wheel-es: 1.1.0
vue: 3.2.21
transitivePeerDependencies:
- '@vue/composition-api'
dev: false
@@ -7207,12 +7196,6 @@ packages:
uc.micro: 1.0.6
dev: true
/marked/4.0.0:
resolution: {integrity: sha512-K3C1JvtiXuXVLoxDQEJP4NMLBuThlTkthgUOCzqLghIpHfis1DIZZfPI3o4UgfFpQ0d+JvTql2h+szR9jQ1p1w==}
engines: {node: '>= 12'}
hasBin: true
dev: false
/matchdep/2.0.0:
resolution: {integrity: sha1-xvNINKDY28OzfCfui7yyfHd1WC4=}
engines: {node: '>= 0.10.0'}
@@ -10291,7 +10274,7 @@ packages:
- supports-color
dev: true
/vite/2.6.10_sass@1.43.4:
/vite/2.6.10:
resolution: {integrity: sha512-XbevwpDJMs3lKiGEj0UQScsOCpwHIjFgfzPnFVkPgnxsF9oPv1uGyckLg58XkXv6LnO46KN9yZqJzINFmAxtUg==}
engines: {node: '>=12.2.0'}
hasBin: true
@@ -10311,7 +10294,6 @@ packages:
postcss: 8.3.11
resolve: 1.20.0
rollup: 2.58.3
sass: 1.43.4
optionalDependencies:
fsevents: 2.3.2
dev: true
@@ -10341,7 +10323,7 @@ packages:
fsevents: 2.3.2
dev: true
/vitepress/0.18.1_sass@1.43.4:
/vitepress/0.18.1:
resolution: {integrity: sha512-uUY0N8pgiGDkrdzDPI4OeCke6J7c3l17lqsQZzcGvxxHlN6qHWR4EJ4usII91UZIlpBwZymh5kKI12mr3+KG1Q==}
engines: {node: '>=12.0.0'}
hasBin: true
@@ -10371,7 +10353,7 @@ packages:
polka: 0.5.2
prismjs: 1.25.0
sirv: 1.0.17
vite: 2.6.10_sass@1.43.4
vite: 2.6.10
vue: 3.2.21
transitivePeerDependencies:
- less
@@ -10504,6 +10486,19 @@ packages:
vscode-typescript-languageservice: 0.28.10
dev: true
/vue-demi/0.11.4:
resolution: {integrity: sha512-/3xFwzSykLW2HiiLie43a+FFgNOcokbBJ+fzvFXd0r2T8MYohqvphUyDQ8lbAwzQ3Dlcrb1c9ykifGkhSIAk6A==}
engines: {node: '>=12'}
hasBin: true
requiresBuild: true
peerDependencies:
'@vue/composition-api': ^1.0.0-rc.1
vue: ^3.0.0-0 || ^2.6.0
peerDependenciesMeta:
'@vue/composition-api':
optional: true
dev: false
/vue-demi/0.11.4_vue@3.2.21:
resolution: {integrity: sha512-/3xFwzSykLW2HiiLie43a+FFgNOcokbBJ+fzvFXd0r2T8MYohqvphUyDQ8lbAwzQ3Dlcrb1c9ykifGkhSIAk6A==}
engines: {node: '>=12'}