@@ -5,7 +5,13 @@ import path from 'path';
55import _ from 'lodash' ;
66import { Babel } from 'meteor/babel-compiler' ;
77import { Synthesizer } from './synthesis-gen.js' ;
8-
8+ const getExtension = ( fileName = '' ) => {
9+ var a = filename . split ( '.' ) ;
10+ if ( a . length === 1 || ( a [ 0 ] === '' && a . length === 2 ) ) {
11+ return '' ;
12+ }
13+ return a . pop ( ) ;
14+ }
915export const parseHtml = ( arg ) => {
1016 const contents = arg . contents ;
1117 const parsed = parse5 . parse ( contents ) ;
@@ -139,19 +145,41 @@ class DissectHtml {
139145 return domModule ;
140146 }
141147 case 'div' : {
142- const attrs = _ . filter ( child . attrs , o => ( o . name === 'hidden' || o . name === 'by-vulcanize' ) ) ;
148+ const divChild = child ;
149+ const attrs = _ . filter ( divChild . attrs , o => ( o . name === 'hidden' || o . name === 'by-vulcanize' ) ) ;
143150 if ( attrs . length >= 2 ) {
144- const _childNodes = self . processChildNodes ( child . childNodes ) ;
151+ const _childNodes = self . processChildNodes ( divChild . childNodes ) ;
145152 pushNodes = pushNodes . concat ( _childNodes ) ;
146153 } else {
147- return child ;
154+ if ( divChild . childNodes ) {
155+ divChild . childNodes = self . processChildNodes ( divChild . childNodes ) ;
156+ }
157+ return divChild ;
148158 }
149159 }
150160 break ;
151161 case '#comment' :
152162 break ;
153- default :
154- return child ;
163+
164+ default : {
165+ const defChild = child ;
166+ const attrs = _ . map ( defChild . attrs , ( o ) => {
167+ // all src values without [[*]] and {{*}}
168+ if ( ( o . name === 'src' || o . name === 'src$' ) && o . value && ! o . value . match ( / ( { { | \[ \[ ) \s * [ \w \. ] + \s * ( } } | \] \] ) / g) ) {
169+ const url = self . importableUrl ( o . value ) ;
170+ // console.log(defChild.nodeName, o, url);
171+ if ( url ) {
172+ o . value = path . resolve ( path . dirname ( `/${ self . sourceName } ` ) , o . value ) ;
173+ }
174+ }
175+ return o ;
176+ } ) ;
177+ defChild . attrs = attrs ;
178+ if ( defChild . childNodes ) {
179+ defChild . childNodes = self . processChildNodes ( defChild . childNodes ) ;
180+ }
181+ return defChild ;
182+ }
155183 }
156184 return null ;
157185 } ) ) ;
0 commit comments