Skip to content

Commit fe0fa8b

Browse files
committed
feat(md): xss过滤规则增加可排除标签渲染
1 parent ee724eb commit fe0fa8b

File tree

4 files changed

+12
-4
lines changed

4 files changed

+12
-4
lines changed

packages/devui-vue/devui/editor-md/src/composables/md-render-service.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,11 @@ export class MDRenderService {
7373
setCustomXssRules(rules: ICustomXssRule[]) {
7474
if (rules) {
7575
rules.forEach((rule) => {
76-
this.xssWhiteList[rule['key']] = rule['value'];
76+
if (rule['value'] === null) {
77+
delete this.xssWhiteList[rule['key']];
78+
} else {
79+
this.xssWhiteList[rule['key']] = rule['value'];
80+
}
7781
});
7882
}
7983
}

packages/devui-vue/devui/editor-md/src/editor-md-types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export interface MdPlugin {
1616

1717
export interface ICustomXssRule {
1818
key: string;
19-
value: string[];
19+
value: string[] | null;
2020
}
2121

2222
export interface ICustomRenderRule {

packages/devui-vue/docs/components/editor-md/index.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@ export default defineComponent({
5858
key: 'kbd',
5959
value: [], // 为空表示过滤所有属性,放开属性则添加对应项,如['id', 'style']
6060
},
61+
{
62+
key: 'input',
63+
value: null, // value值为null,则对应标签不会被渲染
64+
}
6165
])
6266
const customRendererRules = ref([
6367
{
@@ -635,7 +639,7 @@ interface ICustomRenderRule {
635639
```ts
636640
interface ICustomXssRule {
637641
key: string;
638-
value: string[];
642+
value: string[] | null;
639643
}
640644
```
641645

packages/devui-vue/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vue-devui",
3-
"version": "1.6.3-markdown.1",
3+
"version": "1.6.3-markdown.2",
44
"license": "MIT",
55
"description": "DevUI components based on Vite and Vue3",
66
"keywords": [

0 commit comments

Comments
 (0)