@@ -25,7 +25,19 @@ var htmlToDom = function (html) {
2525 return contentDOM
2626} ;
2727
28- var exctractConfigFromURL = function ( href ) {
28+
29+ var extractConfigFromURL = function ( href ) {
30+ var match = / ( # ) ( .+ ) $ / ig. exec ( href ) ;
31+ if ( match && match [ 2 ] ) {
32+ return match [ 2 ] . split ( '&' ) . reduce ( function ( params , param ) {
33+ var splitParam = param . split ( '=' ) ;
34+ if ( splitParam [ 0 ] === 'tabs' ) {
35+ splitParam [ 1 ] = splitParam [ 1 ] . split ( ',' ) ;
36+ }
37+ params [ splitParam [ 0 ] ] = splitParam [ 1 ] ;
38+ return params ;
39+ } , { } ) ;
40+ }
2941 return { } ;
3042} ;
3143var generateAdditionalParams = function ( config ) {
@@ -55,9 +67,9 @@ var creator = {
5567 return [
5668 '<iframe' ,
5769 ' width=' ,
58- '"' + ( config . width ? config . width + 'px' : '100%' ) + '"' ,
70+ '"' + ( config . width ? config . width : '100%' ) + '"' ,
5971 ' height=' ,
60- '"' + ( config . height ? config . height + 'px' : '100% ' ) + '"' ,
72+ '"' + ( config . height ? config . height : '300px ' ) + '"' ,
6173 ' src="' + generateUrl ( config ) + '"' ,
6274 ' allowfullscreen="allowfullscreen" frameborder="0"' ,
6375 '>' ,
@@ -67,9 +79,10 @@ var creator = {
6779} ;
6880
6981var createEmbedNode = function ( href , config ) {
70- var type = config . type || 'script' ;
71-
72- return htmlToDom ( creator [ type ] ( _ . defaults ( { href : href } , config , defautsConfig ) ) ) [ 0 ] ;
82+ var normalURL = href . replace ( / # .+ $ / , '' ) ;
83+ var configFromUrl = extractConfigFromURL ( href ) ;
84+ var mergedConfig = _ . defaults ( { href : normalURL } , configFromUrl , config , defautsConfig ) ;
85+ return htmlToDom ( creator [ mergedConfig . type ] ( mergedConfig ) ) [ 0 ] ;
7386} ;
7487
7588module . exports = function ( rawHtml , config ) {
0 commit comments