@@ -23,6 +23,31 @@ export const PluginEpubSet = (
2323 return `<h3>${ hooks . substitution . purge ( entity . raw ) } </h3>`
2424 }
2525
26+ const image = ( entity : Entity ) => {
27+ return `<div><img src="${ entity . raw } " alt=""></div>`
28+ }
29+
30+ const svg = ( entity : Entity ) => {
31+ console . log ( entity . raw )
32+
33+ return `<div>${ entity . raw } </div>`
34+ }
35+
36+ const checkbox = ( entity : Entity ) => {
37+ const id = hooks . utils . id ( ) . uuidv4 ( )
38+
39+ return `<div><input type="checkbox" name="${ id } " id="${ id } " ${
40+ entity ?. external ?. checkbox ?. select ? `checked` : ''
41+ } >
42+ <label for="${ id } ">${ hooks . substitution . purge ( entity . raw ) } </label></div>`
43+ }
44+
45+ const list = ( entity : Entity ) => {
46+ return `<ul><li style="list-style-type: square;">${ hooks . substitution . purge (
47+ entity . raw
48+ ) } </li></ul>`
49+ }
50+
2651 const paragraph = ( entity : Entity ) : string [ ] => {
2752 if (
2853 hooks . env . emptyLine ( ) === entity . raw ||
@@ -35,24 +60,41 @@ export const PluginEpubSet = (
3560 const target = parse ( hooks . substitution . purge ( row ) )
3661
3762 return target . reduce ( ( acc , item ) => {
63+ // boldItalics
64+ if ( item . italic && item . bold )
65+ return ( acc += item . text . trim ( ) ? `<i><b>${ item . text } </b></i>` : '' )
66+
67+ // italics
68+ if ( item . italic )
69+ return ( acc += item . text . trim ( ) ? `<i>${ item . text } </i>` : '' )
70+
71+ // bold
72+ if ( item . bold )
73+ return ( acc += item . text . trim ( ) ? `<b>${ item . text } </b>` : '' )
74+
75+ // common case
3876 return ( acc += item . text . trim ( ) ? `<span>${ item . text } </span>` : '' )
3977 } , '' )
4078 } )
4179 }
4280
4381 const pageBreak = ( ) => {
44- return `<span style="page-break-after: always"></span>`
82+ return `<span style="page-break-after: always; "></span>`
4583 }
4684
4785 const lineBreak = ( ) => {
48- return '<span style="width: 100%;padding-top: 1rem ;border: none;"></span>'
86+ return '<span style="width: 100%;height:16px ;border: none;"></span>'
4987 }
5088
5189 return {
5290 paragraph,
5391 headingOne,
5492 headingTwo,
5593 headingThree,
94+ image,
95+ svg,
96+ checkbox,
97+ list,
5698 pageBreak,
5799 lineBreak,
58100 }
@@ -67,11 +109,15 @@ export const PluginEpubSet = (
67109 content : '' ,
68110 }
69111
70- page . entities . forEach ( ( entity : Entity ) => {
112+ for ( const entity of page . entities ) {
71113 switch ( entity . type ) {
72- case 'paragraph' :
73- case 'list' :
74114 case 'checkbox' :
115+ chapter . content += entities ( ) . checkbox ( entity )
116+ break
117+ case 'list' :
118+ chapter . content += entities ( ) . list ( entity )
119+ break
120+ case 'paragraph' :
75121 entities ( )
76122 . paragraph ( entity )
77123 ?. forEach (
@@ -93,8 +139,14 @@ export const PluginEpubSet = (
93139 case 'line-break' :
94140 chapter . content += entities ( ) . lineBreak ( )
95141 break
142+ case 'image' :
143+ chapter . content += entities ( ) . image ( entity )
144+ break
145+ case 'drau' :
146+ chapter . content += entities ( ) . svg ( entity )
147+ break
96148 }
97- } )
149+ }
98150
99151 chapters . push ( chapter )
100152 } )
0 commit comments