@@ -12,14 +12,8 @@ Description:
12
12
Select a component
13
13
</div >
14
14
<div v-else >{{ `${this.activeComponent}.vue` }}</div >
15
- <prism-editor
16
- v-model =" code"
17
- :highlight =" highlighter"
18
- line-numbers
19
- class =" my-editor"
20
- readonly
21
- />
22
- </div >
15
+ <prism-editor v-model =" code" :highlight =" highlighter" line-numbers class =" my-editor" readonly />
16
+ </div >
23
17
</template >
24
18
25
19
<script >
@@ -28,6 +22,7 @@ import { mapState } from "vuex";
28
22
import { PrismEditor } from " vue-prism-editor" ;
29
23
import " vue-prism-editor/dist/prismeditor.min.css" ;
30
24
import { highlight , languages } from " prismjs/components/prism-core" ;
25
+ import styleClassMap from ' ../../store/state/styleClassMap'
31
26
import " prismjs/components/prism-clike" ;
32
27
import " prismjs/components/prism-javascript" ;
33
28
import " prismjs/themes/prism-tomorrow.css" ; // import syntax highlighting styles
@@ -44,18 +39,19 @@ export default {
44
39
PrismEditor,
45
40
},
46
41
computed: {
42
+ // add
47
43
// needs access to current component aka activeComponent
48
44
... mapState ([" componentMap" , " activeComponent" , " activeComponentObj" , " exportAsTypescript" ]),
49
45
},
50
46
methods: {
51
- snippetInvoke (){
52
- if (this .activeComponent !== ' ' ){
47
+ snippetInvoke () {
48
+ if (this .activeComponent !== ' ' ) {
53
49
this .code = this .createCodeSnippet (
54
50
this .componentMap [this .activeComponent ].componentName ,
55
51
this .componentMap [this .activeComponent ].children
56
52
)
57
- } else {
58
- this .code = ' Your component boilerplate will be displayed here.'
53
+ } else {
54
+ this .code = ' Your component boilerplate will be displayed here.'
59
55
}
60
56
},
61
57
// highlighter does not work: OverVue 6.0;
@@ -95,32 +91,16 @@ export default {
95
91
" list-ul" : [" <ul" , " </ul>" ],
96
92
input: [" <input" , " " ], // single
97
93
navbar: [" <nav" , " </nav>" ],
98
- header: [" <header" ," </header>" ],
99
- footer: [" <footer" , " </footer>" ],
94
+ header: [" <header" , " </header>" ],
95
+ footer: [" <footer" , " </footer>" ],
100
96
meta: [" <meta" , " </meta>" ],
101
- h1: [" <h1" , " </h1>" ],
102
- h2: [" <h2" , " </h2>" ],
103
- h3: [" <h3" , " </h3>" ],
104
- h4: [" <h4" , " </h4>" ],
105
- h5: [" <h5" , " </h5>" ],
106
- h6: [" <h6" , " </h6>" ],
97
+ h1: [" <h1" , " </h1>" ],
98
+ h2: [" <h2" , " </h2>" ],
99
+ h3: [" <h3" , " </h3>" ],
100
+ h4: [" <h4" , " </h4>" ],
101
+ h5: [" <h5" , " </h5>" ],
102
+ h6: [" <h6" , " </h6>" ],
107
103
};
108
- // test//
109
- // function writeClass(componentName) {
110
- // if (this.componentMap[componentName]?.classList?.length > 0) {
111
- // let commentStr = '<!--'
112
- // this.componentMap[componentName].classList.forEach((el) => {
113
- // commentStr += "\n"
114
- // commentStr += el;
115
- // })
116
- // commentStr += '\n-->\n\n'
117
- // return commentStr;
118
- // } else {
119
- // return ''
120
- // }
121
- // };
122
- // Helper function that recursively iterates through the given html element's children and their children's children.
123
- // also adds proper indentation to code snippet
124
104
function writeNested (childrenArray , indent ) {
125
105
if (! childrenArray .length ) {
126
106
return " " ;
@@ -134,13 +114,13 @@ export default {
134
114
nestedString += ` <${ child} />\n ` ;
135
115
} else {
136
116
nestedString += htmlElementMap[child .text ][0 ];
137
- if (child .class !== " " ) {
138
- nestedString += " " + " class = " + ` "${ el .class } "` ;
139
- }
140
- if (child .text === " img" || child .text === " input" || child .text === " link" ) {
141
- nestedString += " />" ;
142
- } else {nestedString += " >" ;}
143
-
117
+ if (child .class !== " " ) {
118
+ nestedString += " " + " class = " + ` "${ el .class } "` ;
119
+ }
120
+ if (child .text === " img" || child .text === " input" || child .text === " link" ) {
121
+ nestedString += " />" ;
122
+ } else { nestedString += " >" ; }
123
+
144
124
if (child .children .length ) {
145
125
nestedString += " \n " ;
146
126
nestedString += writeNested (child .children , indented);
@@ -166,12 +146,12 @@ export default {
166
146
outputStr += ` <${ el} />\n ` ;
167
147
} else {
168
148
outputStr += ` ` ;
169
- outputStr += htmlElementMap[el .text ][0 ]
170
- // if conditional to check class
171
- if (el .class !== " " ) {
172
- outputStr += " " + " class = " + ` "${ el .class } "` ;
173
- }
174
- outputStr += " >" ;
149
+ outputStr += htmlElementMap[el .text ][0 ]
150
+ // if conditional to check class
151
+ if (el .class !== " " ) {
152
+ outputStr += " " + " class = " + ` "${ el .class } "` ;
153
+ }
154
+ outputStr += " >" ;
175
155
if (el .children .length ) {
176
156
outputStr += " \n " ;
177
157
outputStr += writeNested (el .children , ` ` );
@@ -204,7 +184,7 @@ export default {
204
184
imports += ' } from "vuex";\n ' ;
205
185
}
206
186
207
- // if Typescript toggle is on, import defineComponent
187
+ // if Typescript toggle is on, import defineComponent
208
188
if (this .exportAsTypescript === " on" ) {
209
189
imports += ' import { defineComponent } from "vue";\n ' ;
210
190
}
@@ -255,6 +235,19 @@ export default {
255
235
methods += " \n ]),\n " ;
256
236
methods += " },\n " ;
257
237
}
238
+ // creating a styleString too add to style scoped style
239
+ let classArr = this .componentMap [componentName].htmlList ;
240
+ console .log (' thisone' , classArr);
241
+ const styleStr = ' ' ;
242
+ for (const hmtl of classArr) {
243
+ if (! html .text ) return ;
244
+ if (html .class ) {
245
+ styleStr += ` .${ html .class } {\n }`
246
+ }
247
+ // left off here: think there is an issue to render this information::::::::
248
+ return styleStr;
249
+ }
250
+
258
251
259
252
// concat all code within script tags
260
253
// if exportAsTypescript is on, out should be <script lang="ts">
@@ -276,28 +269,28 @@ export default {
276
269
output += " });\n <\/ script>\n\n <style scoped>\n </style>"
277
270
278
271
} else {
279
- output += " };\n <\/ script>\n\n <style scoped>\n </style>"
272
+ output += ` };\n <\/ script>\n\n <style scoped>\n ${ styleStr } </style>`
280
273
}
281
- return output;
274
+ return output
282
275
},
283
276
},
284
277
watch: {
285
278
// watches activeComponentObj for changes to make it reactive upon mutation
286
279
// // // watches componentMap for changes to make it reactive upon mutation
287
280
activeComponent: {
288
- handler () {
281
+ handler () {
289
282
this .snippetInvoke ();
290
283
},
291
284
deep: true
292
285
},
293
286
componentMap: {
294
- handler () {
287
+ handler () {
295
288
this .snippetInvoke ();
296
289
},
297
290
deep: true
298
291
},
299
292
exportAsTypescript: {
300
- handler () {
293
+ handler () {
301
294
this .snippetInvoke ();
302
295
},
303
296
}
0 commit comments