Skip to content

Commit 8c02fe8

Browse files
committed
fix(plugin): transform error
1 parent 598cd8b commit 8c02fe8

File tree

4 files changed

+14
-21
lines changed

4 files changed

+14
-21
lines changed

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@
8989
"hash-sum": "^2.0.0",
9090
"inquirer": "8",
9191
"lint-staged": "^13.1.0",
92-
"lodash-es": "^4.17.21",
9392
"release-it": "^15.6.0",
9493
"sass": "^1.58.3",
9594
"simple-git-hooks": "^2.8.1",

pnpm-lock.yaml

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

src/components/VuePreview.vue

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,31 @@
44

55
<script lang="ts" setup>
66
import { ReplStore, Repl } from './vue-repl'
7-
import { provide, watch } from 'vue'
7+
import { provide, watch, computed } from 'vue'
88
99
export interface Props {
10-
code?: string
10+
code?: string,
11+
decode?: boolean
1112
}
1213
1314
const props = withDefaults(defineProps<Props>(), {
1415
code: `
1516
<template>
1617
<div>Hi, vite-plugin-vue-preview !</div>
1718
</template>
18-
`
19+
`,
20+
decode: false
1921
})
2022
21-
const store = new ReplStore({ code: props.code });
23+
const code = computed(() => {
24+
if (props.decode) return decodeURIComponent(props.code)
25+
return props.code
26+
})
27+
28+
const store = new ReplStore({ code: code.value });
2229
provide('store', store)
2330
24-
watch(() => props.code, (val) => {
31+
watch(code, (val) => {
2532
store.state.activeFile.code = val
26-
}, {
27-
immediate: true
2833
})
2934
</script>

src/plugin.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
1-
import { escape } from 'lodash-es'
2-
31
const start = '```vue preview'
42
const end = '```'
53

64
const getCode = (code: string) => {
75
code = code.match(/(?<=(```vue preview))(.)*(?=(```))/gims)![0]
8-
const templateContent: string[] = code.match(/(?<=<template>)(.)*(?=<\/template>)/gims) ?? []
9-
for (const templateCode of templateContent)
10-
code = code.replace(templateCode, escape(templateCode))
11-
12-
return code.trim() ? `<VuePreview code="${code.trim()}"></VuePreview>\n` : '<VuePreview></VuePreview>\n'
6+
const str = encodeURIComponent(code.trim())
7+
return code.trim() ? `<VuePreview code="${str}" decode></VuePreview>\n` : '<VuePreview></VuePreview>\n'
138
}
149

1510
export default function VuePreviewPlugin() {

0 commit comments

Comments
 (0)