11import 'regenerator-runtime/runtime' ;
22
33import loader from 'wdr-loader' ;
4-
5- const render = require ( "../../src/Render" ) ;
4+ import render from 'wdr-render-basic' ;
65
76import './main.css' ;
87
98loader ( data => {
10- render ( data ) ;
9+ const dataManager = render . createDataManager ( data ) ;
10+
11+ render . appendElement ( document . head , [
12+ render . createElement ( 'meta' , { charset : "utf-8" } ) ,
13+ render . createElement ( 'meta' , { name : "viewport" , content : "width=device-width" , 'initial-scale' : 1 } ) ,
14+ render . createElement ( 'title' , { } , ( data [ '#title' ] || data [ 'title' ] ) )
15+ ] ) ;
16+
17+ if ( data [ '#render' ] && data [ '#render' ] . css ) {
18+ render . appendElement ( document . head , render . createElement ( 'link' , { rel : "stylesheet" , href : data [ '#render' ] . css } ) ) ;
19+ }
20+
21+ const main = render . createElement ( 'main' , { } ) ;
22+ render . appendElement ( document . body , main ) ;
23+
24+ renderItem ( dataManager , main , '' , data , 0 ) ;
1125} ) ;
26+
27+ function renderItem ( dataManager , parent , key , value , level ) {
28+
29+ if ( Array . isArray ( value ) ) {
30+
31+ const section = render . createElement ( 'div' , { class : key } ) ;
32+ render . appendElement ( parent , section ) ;
33+
34+ value . forEach ( v => {
35+ if ( typeof v == 'object' ) {
36+ const sectionItem = render . createElement ( 'div' , { } ) ;
37+ render . appendElement ( section , sectionItem ) ;
38+ renderItem ( dataManager , sectionItem , key , v , level ) ;
39+ } else {
40+ renderItem ( dataManager , section , null , v , level ) ;
41+ }
42+ } )
43+
44+ } else if ( typeof value == 'object' ) {
45+
46+ let p = parent ;
47+ if ( level == 1 ) {
48+ p = render . createElement ( 'section' , { class : key } ) ;
49+ render . appendElement ( parent , [ render . createElement ( 'a' , { name : key } , "" ) , p ] ) ;
50+ } else if ( level > 1 ) {
51+ p = render . createElement ( 'div' , { class : key } ) ;
52+ render . appendElement ( parent , p ) ;
53+ }
54+
55+ for ( const k in value ) {
56+ if ( value . hasOwnProperty ( k ) ) {
57+ if ( k . startsWith ( '#' ) ) continue ;
58+ renderItem ( dataManager , p , k , value [ k ] , level + 1 ) ;
59+ }
60+ }
61+
62+ } else {
63+
64+ if ( value !== undefined ) {
65+
66+ let e ;
67+ if ( key == 'title' ) {
68+ e = render . createElement ( `h${ level < 6 ? level : '6' } ` , { class : key } ) ;
69+ } else {
70+ e = render . createElement ( 'p' , { class : key } ) ;
71+ }
72+ render . appendElement ( parent , e ) ;
73+
74+ setValue ( dataManager , e , value + "" ) ;
75+
76+ }
77+
78+ }
79+ }
80+
81+ function setValue ( dataManager , el , str ) {
82+ if ( ! str . includes ( '{{' ) ) {
83+ el . innerHTML = render . textFormatting ( str )
84+ } else {
85+ el . innerHTML = render . textFormatting ( str . replace ( / { { [ ^ { } ] + } } / g, "..." ) ) ;
86+ render . processHyperData ( dataManager , str )
87+ . then ( s => el . innerHTML = render . textFormatting ( s ) )
88+ . catch ( error => {
89+ console . error ( error ) ;
90+ } ) ;
91+ }
92+ }
0 commit comments