@@ -121,62 +121,63 @@ Parser('<p id="replace">text</p>', {
121121});
122122``` 
123123
124- Advanced example (the replaced element's  children are kept ):
124+ Advanced example (keep  the replaced children):
125125
126126``` js 
127- var  Parser =  require (' html-react-parser'  );
128- var  React =  require (' react'  );
129- 
130- //  used for recursively parsing DOM created from the HTML
131- var  domToReact =  require (' html-react-parser/lib/dom-to-react'  );
132- 
133- var  html =  (
134-     ' <div>'   + 
135-         ' <p id="main">'   + 
136-             ' <span class="prettify">'   + 
137-                 ' keep me and make me pretty!'   + 
138-             ' </span>'   + 
139-         ' </p>'   + 
140-     ' </div>' 
141- );
127+ //  with ES6 and JSX
128+ 
129+ //  converts dom object to React Elements
130+ import  domToReact  from  ' html-react-parser/lib/dom-to-react'  ;
142131
143- var  parserConfig =  {
144-     replace :  function (domNode ) {
145-         var  parsedChildren;
146-         if  (domNode .attribs ) {
147-             if  (domNode .attribs .id  ===  ' main'  ) {
148-                 //  continue parsing domNode's children with same config
149-                 parsedChildren =  domToReact (domNode .children , parserConfig);
150-                 return  React .createElement (' span'  , {
151-                     style:  { fontSize:  ' 42px'   }
152-                 }, parsedChildren);
153-                 //  equivalent jsx syntax:
154-                 //  return <span style={{ fontSize: '42px' }}>{parsedChildren}</span>;
155- 
156-             } else  if  (domNode .attribs .class  ===  ' prettify'  ) {
157-                 //  continue parsing domNode's children with same config
158-                 parsedChildren =  domToReact (domNode .children , parserConfig);
159-                 return  React .createElement (' span'  , {
160-                     style:  { color:  ' hotpink'   }
161-                 }, parsedChildren);
162-                 //  equivalent jsx syntax:
163-                 //  return <span style={{ color: 'hotpink' }}>{parsedChildren}</span>;
164-             }
132+ const  html  =  ` 
133+     <div> 
134+         <p id="main"> 
135+             <span class="prettify"> 
136+                 keep me and make me pretty! 
137+             </span> 
138+         </p> 
139+     </div> 
140+ `  ;
141+ 
142+ //  parser config
143+ const  options  =  {
144+     replace :  (domNode ) =>  {
145+         //  do not replace if element has no attributes
146+         if  (! domNode .attribs ) return ;
147+ 
148+         if  (domNode .attribs .id  ===  ' main'  ) {
149+             return  (
150+                 < span style= {{ fontSize:  ' 42px'   }}> 
151+                     {domToReact (domNode .children , options)}
152+                 < / span> 
153+             );
154+ 
155+         } else  if  (domNode .attribs .class  ===  ' prettify'  ) {
156+             return  (
157+                 < span style= {{ color:  ' hotpink'   }}> 
158+                     {domToReact (domNode .children , options)}
159+                 < / span> 
160+             );
165161        }
166162    }
167163};
168164
169- require ( ' react-dom ' ). render (
170-     Parser (html, parserConfig ),
165+ render (
166+     Parser (html, options ),
171167    document .getElementById (' root'  )
172168);
173- //  <div>
174- //      <span style="font-size: 42px;">
175- //          <span class="prettify" style="color: hotpink;">
176- //              keep me and make me pretty!
177- //          </span>
178- //      </span>
179- //  </div>
169+ ``` 
170+ 
171+ You will get the following:
172+ 
173+ ``` html 
174+ <div >
175+     <span  style =" font-size  : 42px  ;"  >
176+         <span  class =" prettify"   style =" color  : hotpink ;"  >
177+             keep me and make me pretty!
178+         </span >
179+     </span >
180+ </div >
180181``` 
181182
182183## Testing  
0 commit comments