-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdev.js
38 lines (33 loc) · 1.15 KB
/
dev.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import jsxSync from './index'
import vueJsx from 'babel-plugin-transform-vue-jsx'
import Prism from 'prismjs'
import 'prismjs/themes/prism-okaidia.css'
import 'prismjs/components/prism-javascript'
import 'prismjs/components/prism-jsx'
let code = `
function a() {
return (
<div>
<component visible$sync={this.test}>I am newbie</component>
<component visible$sync={this.test[1]}>I am newbie</component>
<component visible$sync={this.test.a}>I am newbie</component>
<component visible$sync={false}>I am newbie</component>
<component visible-leon$sync={this.test}>I am newbie</component>
</div>
)
}`
let result = Babel.transform(code, {
plugins: [
vueJsx,
jsxSync
]
})
let codeDom = document.querySelector('#code')
let transformedCode = document.querySelector('#transformed-code')
let ast = document.querySelector('#ast')
function prismCode(code, lang) {
var hl = Prism.highlight(code, Prism.languages[lang])
return '<pre data-lang="' + lang + '"><code class="lang-' + lang + '">' + hl + '</code></pre>'
}
codeDom.innerHTML = prismCode(code, 'jsx')
transformedCode.innerHTML = prismCode(result.code, 'javascript')