@@ -84,12 +84,22 @@ const langs = [
8484
8585for ( const lang of langs ) {
8686 if ( lang . supported ) {
87+ localeWorker ( lang ) ;
8788 templateWorker ( lang ) ;
8889 sfcWorker ( lang ) ;
8990 modelWorker ( lang ) ;
9091 }
9192}
9293
94+ function localeWorker ( lang ) {
95+
96+ const data = langs . map ( ( { name, url } ) => ( { name, url } ) ) ;
97+
98+ const writePath = path . resolve ( __dirname , '../data/locale.json' ) ;
99+ fs . writeFileSync ( writePath , JSON . stringify ( data , null , 2 ) ) ;
100+ console . log ( writePath ) ;
101+ }
102+
93103async function sfcWorker ( lang ) {
94104
95105 const sfcDoc = await fetchText ( lang . repoUrl + 'HEAD/src/api/sfc-spec.md' , lang . url ) ;
@@ -115,10 +125,7 @@ async function sfcWorker(lang) {
115125 // { name: 'gql' },
116126 // { name: 'graphql' },
117127 ] ,
118- references : langs . map ( lang => ( {
119- name : lang . name ,
120- url : `${ lang . url } api/sfc-spec.html#pre-processors` ,
121- } ) ) ,
128+ references : 'api/sfc-spec.html#pre-processors' ,
122129 } ;
123130 /**
124131 * @type {import('vscode-html-languageservice').IAttributeData }
@@ -129,10 +136,7 @@ async function sfcWorker(lang) {
129136 kind : 'markdown' ,
130137 value : sfcDoc . split ( '\n## ' ) [ 5 ] . split ( '\n' ) . slice ( 1 ) . join ( '\n' ) . trim ( ) ,
131138 } ,
132- references : langs . map ( lang => ( {
133- name : lang . name ,
134- url : `${ lang . url } api/sfc-spec.html#src-imports` ,
135- } ) ) ,
139+ references : 'api/sfc-spec.html#src-imports' ,
136140 } ;
137141 const languageBlocks = sfcDoc
138142 . split ( '\n## ' ) [ 2 ]
@@ -151,10 +155,7 @@ async function sfcWorker(lang) {
151155 kind : 'markdown' ,
152156 value : lines . slice ( 1 ) . join ( '\n' ) ,
153157 } ,
154- references : langs . map ( lang => ( {
155- name : lang . name ,
156- url : `${ lang . url } api/sfc-spec.html#${ normalizeHash ( name ) } ` ,
157- } ) ) ,
158+ references : `api/sfc-spec.html#${ normalizeHash ( name ) } ` ,
158159 } ;
159160 if ( name === 'template' ) {
160161 data . attributes . push ( {
@@ -196,10 +197,7 @@ async function sfcWorker(lang) {
196197 kind : 'markdown' ,
197198 value : cssFeaturesDoc . split ( '\n## ' ) [ 1 ] . split ( '\n' ) . slice ( 1 ) . join ( '\n' ) . trim ( ) ,
198199 } ,
199- references : langs . map ( lang => ( {
200- name : lang . name ,
201- url : `${ lang . url } api/sfc-css-features.html#scoped-css` ,
202- } ) ) ,
200+ references : 'api/sfc-css-features.html#scoped-css' ,
203201 } ) ;
204202 data . attributes . push ( {
205203 name : 'module' ,
@@ -208,10 +206,7 @@ async function sfcWorker(lang) {
208206 kind : 'markdown' ,
209207 value : cssFeaturesDoc . split ( '\n## ' ) [ 2 ] . split ( '\n' ) . slice ( 1 ) . join ( '\n' ) . trim ( ) ,
210208 } ,
211- references : langs . map ( lang => ( {
212- name : lang . name ,
213- url : `${ lang . url } api/sfc-css-features.html#css-modules` ,
214- } ) ) ,
209+ references : 'api/sfc-css-features.html#css-modules' ,
215210 } ) ;
216211 }
217212 return data ;
@@ -265,10 +260,7 @@ async function modelWorker(lang) {
265260 kind : 'markdown' ,
266261 value : lines . slice ( 1 ) . join ( '\n' ) . trim ( ) ,
267262 } ,
268- references : langs . map ( lang => ( {
269- name : lang . name ,
270- url : `${ lang . url } guide/essentials/forms.html#${ normalizeHash ( name ) } ` ,
271- } ) ) ,
263+ references : `guide/essentials/forms.html#${ normalizeHash ( name ) } ` ,
272264 } ;
273265 return data ;
274266 } ) ;
@@ -310,10 +302,7 @@ async function templateWorker(lang) {
310302 value : lines . slice ( 1 ) . join ( '\n' ) ,
311303 } ,
312304 attributes : [ ] ,
313- references : langs . map ( lang => ( {
314- name : lang . name ,
315- url : `${ lang . url } api/built-in-components.html#${ normalizeHash ( name ) } ` ,
316- } ) ) ,
305+ references : `api/built-in-components.html#${ normalizeHash ( name ) } ` ,
317306 } ;
318307 return data ;
319308 } ) ;
@@ -333,10 +322,7 @@ async function templateWorker(lang) {
333322 value : lines . slice ( 1 ) . join ( '\n' ) ,
334323 } ,
335324 attributes : [ ] ,
336- references : langs . map ( lang => ( {
337- name : lang . name ,
338- url : `${ lang . url } api/built-in-special-elements.html#${ normalizeHash ( name ) } ` ,
339- } ) ) ,
325+ references : `api/built-in-special-elements.html#${ normalizeHash ( name ) } ` ,
340326 } ;
341327 return data ;
342328 } ) ;
@@ -361,10 +347,7 @@ async function templateWorker(lang) {
361347 kind : 'markdown' ,
362348 value : lines . slice ( 1 ) . join ( '\n' ) . trim ( ) ,
363349 } ,
364- references : langs . map ( lang => ( {
365- name : lang . name ,
366- url : `${ lang . url } api/built-in-directives.html#${ normalizeHash ( name ) } ` ,
367- } ) ) ,
350+ references : `api/built-in-directives.html#${ normalizeHash ( name ) } ` ,
368351 } ;
369352 return data ;
370353 } ) ;
@@ -383,10 +366,7 @@ async function templateWorker(lang) {
383366 kind : 'markdown' ,
384367 value : lines . slice ( 1 ) . join ( '\n' ) . trim ( ) ,
385368 } ,
386- references : langs . map ( lang => ( {
387- name : lang . name ,
388- url : `${ lang . url } api/built-in-special-attributes.html#${ normalizeHash ( name ) } ` ,
389- } ) ) ,
369+ references : `api/built-in-special-attributes.html#${ normalizeHash ( name ) } ` ,
390370 } ;
391371 return data ;
392372 } ) ;
@@ -397,18 +377,15 @@ async function templateWorker(lang) {
397377 const lines = section . split ( '\n' ) ;
398378 const name = 'data-allow-mismatch' ;
399379 /**
400- * @type {import('vscode-html-languageservice').ITagData }
380+ * @type {import('vscode-html-languageservice').IAttributeData }
401381 */
402382 const data = {
403383 name,
404384 description : {
405385 kind : 'markdown' ,
406386 value : lines . slice ( 1 ) . join ( '\n' ) ,
407387 } ,
408- references : langs . map ( lang => ( {
409- name : lang . name ,
410- url : `${ lang . url } api/ssr.html#${ normalizeHash ( name ) } ` ,
411- } ) ) ,
388+ references : `api/ssr.html#${ normalizeHash ( name ) } ` ,
412389 } ;
413390 return data ;
414391 } ) [ 0 ] ;
0 commit comments