Skip to content

Commit 1b38c67

Browse files
authored
Merge pull request #138 from InhiblabCore/dev
perf: the security, remove usePreview from version 1.7.2
2 parents 44c845d + 4a576f7 commit 1b38c67

File tree

9 files changed

+100
-40
lines changed

9 files changed

+100
-40
lines changed

packages/hooks/docs/.vitepress/router.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ const Router = [
7777
text: 'useAsyncOrder',
7878
link: '/useAsyncOrder/',
7979
},
80-
{ text: 'usePreview', link: '/usePreview/' },
80+
{ text: 'usePreview ⚠️', link: '/usePreview/' },
8181
],
8282
},
8383
{

packages/hooks/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
"@types/js-cookie": "^3.0.1",
3737
"js-cookie": "^3.0.1",
3838
"lodash": "^4.17.21",
39-
"marked": "^4.0.17",
4039
"qs": "^6.11.0",
4140
"query-string": "^7.1.1",
4241
"screenfull": "^5.0.0"

packages/hooks/src/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import useFormatResult from './useFormatResult'
1717
import useFetchs from './useFetchs'
1818
import useFullscreen from './useFullscreen'
1919
import useHover from './useHover'
20-
import usePreview from './usePreview'
20+
// import usePreview from './usePreview'
2121
import usePrevious from './usePrevious'
2222
import useInterval from './useInterval'
2323
import useInfiniteScroll from './useInfiniteScroll'
@@ -79,7 +79,7 @@ export {
7979
useMedia,
8080
useMouse,
8181
useNetwork,
82-
usePreview,
82+
// usePreview,
8383
usePrevious,
8484
useSessionStorageState,
8585
useSet,

packages/hooks/src/usePreview/demo/demo.vue

Lines changed: 0 additions & 18 deletions
This file was deleted.

packages/hooks/src/usePreview/demo/demo1.vue

Lines changed: 0 additions & 5 deletions
This file was deleted.

packages/hooks/src/usePreview/index.en-US.md

Lines changed: 47 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,62 @@
22
map:
33
# 映射到docs的路径
44
path: /usePreview
5+
source:
6+
show: false
57
---
68

79
# usePreview
810

11+
:::warning Remark
12+
13+
Due to low usage frequency and reliance on security, `v1.7.2` has been deprecated. The following provides packaging ideas.
14+
15+
:::
16+
917
A hook for previewing the md and vue component views
1018

11-
## Code demonstration
19+
## Source Show
20+
21+
```typescript
22+
import { marked } from 'marked'
23+
import { Ref, computed, unref, ref, watchEffect, createApp, VueElement } from 'vue'
24+
25+
export default function usePreview(
26+
md: Parameters<typeof createApp> | Ref<string> | string | VueElement,
27+
) {
28+
const container = ref<Element>()
29+
const mdCompute = computed(() => unref(md))
30+
31+
watchEffect(onInvalidate => {
32+
if (mdCompute.value && container.value) {
33+
try {
34+
if (typeof mdCompute.value === 'string') {
35+
const html = marked.parse(mdCompute.value)
36+
if (html) container.value.innerHTML = html
37+
} else {
38+
const app = createApp(mdCompute.value)
39+
app.mount(container.value)
40+
}
41+
} catch (error) {
42+
console.log(error)
43+
}
44+
}
45+
46+
onInvalidate(() => {
47+
if (container.value) container.value.innerHTML = ''
48+
})
49+
})
50+
51+
return {
52+
container,
53+
}
54+
}
55+
```
1256

13-
<demo src="./demo/demo.vue"
57+
<!-- <demo src="./demo/demo.vue"
1458
language="vue"
1559
title="Basic usage"
16-
desc="Preview view"> </demo>
60+
desc="Preview view"> </demo> -->
1761

1862
## API
1963

packages/hooks/src/usePreview/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
/**
2+
* Due to low usage frequency and reliance on security, `v1.7.2` has been deprecated.
3+
*/
14
import { marked } from 'marked'
25
import { Ref, computed, unref, ref, watchEffect, createApp, VueElement } from 'vue'
36

packages/hooks/src/usePreview/index.zh-CN.md

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,63 @@
22
map:
33
# 映射到docs的路径
44
path: /usePreview
5+
source:
6+
show: false
57
---
68

79
# usePreview
810

11+
:::warning 注意
12+
13+
由于使用频率低和依赖的安全性,`v1.7.2 已弃用`。以下给予封装思路。
14+
15+
:::
16+
917
用于预览 md 和 vue 组件视图的 hook
1018

11-
## 代码演示
19+
## 源码展示
20+
21+
```typescript
22+
import { marked } from 'marked'
23+
import { Ref, computed, unref, ref, watchEffect, createApp, VueElement } from 'vue'
24+
25+
export default function usePreview(
26+
md: Parameters<typeof createApp> | Ref<string> | string | VueElement,
27+
) {
28+
const container = ref<Element>()
29+
const mdCompute = computed(() => unref(md))
30+
31+
watchEffect(onInvalidate => {
32+
if (mdCompute.value && container.value) {
33+
try {
34+
if (typeof mdCompute.value === 'string') {
35+
const html = marked.parse(mdCompute.value)
36+
if (html) container.value.innerHTML = html
37+
} else {
38+
const app = createApp(mdCompute.value)
39+
app.mount(container.value)
40+
}
41+
} catch (error) {
42+
console.log(error)
43+
}
44+
}
45+
46+
onInvalidate(() => {
47+
if (container.value) container.value.innerHTML = ''
48+
})
49+
})
50+
51+
return {
52+
container,
53+
}
54+
}
55+
```
1256

57+
<!--
1358
<demo src="./demo/demo.vue"
1459
language="vue"
1560
title="基本用法"
16-
desc="预览视图"> </demo>
61+
desc="预览视图"> </demo> -->
1762

1863
## API
1964

pnpm-lock.yaml

Lines changed: 0 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)