The scripts conversion workflow for KoreaderOptimized is stardict binary->stardict xml->xdxf->reconstructed xdxf->reconstructed xml->KoreaderOptimized stardict binary.
The scripts conversion workflow for Pocketbook binary is stardict binary->stardict xml->xdxf->reconstructed xdxf->Pocketbook reconstructed binary.
Looking at the code for consciousness the starting xml is
Code:
<article>
<key>consciousness</key>
<definition type="h"><definition type="h">
<![CDATA[<p style="padding-left:0.3em;margin:0"><font color="navy"><b>con·scious·ness</b></font></p><p style="padding-left:1em;margin:0"><font color="teal">[ˈkɒn(t)ʃəsnəs</font>, <font color="indigo">AM</font> <font color="teal">ˈkɑ:n-]</font></p><p style="padding-left:1em;margin:0"><font color="fuchsia"><i>n</font> <font color="darkgray">no pl</i></font></p><p style="padding-left:1em;margin:0"><font color="firebrick"><b>1.</b></font> <font color="indigo">MED</font> <font color="mediumseagreen"><i>(sentience)</i></font> Bewusstsein <font color="darkgray"><i>nt</i></font></p><p style="padding-left:1em;margin:0"><font color="darkblue"><b>to lose ~</b></font> das Bewusstsein verlieren, bewusstlos werden</p><p style="padding-left:1em;margin:0"><font color="darkblue"><b>to recover</b> [<i>or</i> <b>regain</b>] <b>~</b></font> das Bewusstsein wiedererlangen, wieder zu Bewusstsein kommen</p><p style="padding-left:1em;margin:0"><font color="firebrick"><b>2.</b></font> <font color="mediumseagreen"><i>(perception)</i></font></p><p style="padding-left:1em;margin:0"><font color="cyan">▪</font> <font color="darkblue"><b>sb's ~ of sth</b></font> jds Wissen um etw <i>akk</i> </p><p style="padding-left:1em;margin:0"><font color="darkblue"><b>to enter into</b> [<i>or</i> <b>impinge on</b>] <b>sb's ~</b></font> in jds Bewusstsein eindringen, jds Bewusstsein erreichen</p><p style="padding-left:1em;margin:0"><font color="cyan">▪</font> <font color="darkblue"><b>sb's ~ that ...</b></font> das Bewusstsein, dass ...</p><p style="padding-left:1em;margin:0"><font color="firebrick"><b>3.</b></font> <font color="mediumseagreen"><i>(awareness) political, social</i></font> Bewusstsein <font color="darkgray"><i>nt</i></font></p><p style="padding-left:1em;margin:0"><font color="darkblue"><b>health ~</b></font> Bewusstsein <font color="darkgray"><i>nt</i></font> für die eigene Gesundheit</p><p style="padding-left:1em;margin:0"><font color="darkblue"><b>to raise sb's political ~</b></font> jds politisches Bewusstsein erweitern</p>]]>
</definition>
</article>
For the reconstructed xml it becomes
Code:
<article>
<key>consciousness</key>
<definition type="h">
<![CDATA[<p style="padding-left:0.3em;margin:0"><span style="color:#000080"><b>con·scious·ness</b></span></p><p style="padding-left:1em;margin:0"><span style="color:#008080">[ˈkɒn(t)ʃəsnəs</span>, <span style="color:#4B0082">AM</span> <span style="color:#008080">ˈkɑ:n-]</span></p><p style="padding-left:1em;margin:0"><span style="color:#FF00FF"><i>n</span> <span style="color:#A9A9A9">no pl</i></span></p><p style="padding-left:1em;margin:0"><span style="color:#B22222"><b>1.</b></span> <span style="color:#4B0082">MED</span> <span style="color:#3CB371"><i>(sentience)</i></span> Bewusstsein <span style="color:#A9A9A9"><i>nt</i></span></p><p style="padding-left:1em;margin:0"><span style="color:#00008B"><b>to lose ~</b></span> das Bewusstsein verlieren, bewusstlos werden</p><p style="padding-left:1em;margin:0"><span style="color:#00008B"><b>to recover</b> [<i>or</i> <b>regain</b>] <b>~</b></span> das Bewusstsein wiedererlangen, wieder zu Bewusstsein kommen</p><p style="padding-left:1em;margin:0"><span style="color:#B22222"><b>2.</b></span> <span style="color:#3CB371"><i>(perception)</i></span></p><p style="padding-left:1em;margin:0"><span style="color:#00FFFF">▪</span> <span style="color:#00008B"><b>sb's ~ of sth</b></span> jds Wissen um etw <i>akk</i> </p><p style="padding-left:1em;margin:0"><span style="color:#00008B"><b>to enter into</b> [<i>or</i> <b>impinge on</b>] <b>sb's ~</b></span> in jds Bewusstsein eindringen, jds Bewusstsein erreichen</p><p style="padding-left:1em;margin:0"><span style="color:#00FFFF">▪</span> <span style="color:#00008B"><b>sb's ~ that ...</b></span> das Bewusstsein, dass ...</p><p style="padding-left:1em;margin:0"><span style="color:#B22222"><b>3.</b></span> <span style="color:#3CB371"><i>(awareness) political, social</i></span> Bewusstsein <span style="color:#A9A9A9"><i>nt</i></span></p><p style="padding-left:1em;margin:0"><span style="color:#00008B"><b>health ~</b></span> Bewusstsein <span style="color:#A9A9A9"><i>nt</i></span> für die eigene Gesundheit</p><p style="padding-left:1em;margin:0"><span style="color:#00008B"><b>to raise sb's political ~</b></span> jds politisches Bewusstsein erweitern</p>]]>
</definition>
</article>
So the colors are replaced by their hexadecimal values and placed in span-blocks instead of font-blocks. Also some symbols are escaped, e.g. ' becomes '. This gives exactly the same results in Goldendict as the source. In Koreader, we regain colors the colors that are normally not shown, though. That means that the intermediary xdxf_reconstructed has that info, too.
The reconstructed xdxf file for Pocketbook looks different though
Code:
<ar>
<head><k>consciousness</k></head><def><b>con·scious·ness</b>[ˈkɒn(t)ʃəsnəs, AM ˈkɑ:n-]<i>n no pl</i><b>1.</b> MED <i>(sentience)</i> Bewusstsein <i>nt</i><b>to lose ~</b> das Bewusstsein verlieren, bewusstlos werden<b>to recover</b> [<i>or</i> <b>regain</b>] <b>~</b> das Bewusstsein wiedererlangen, wieder zu Bewusstsein kommen<b>2.</b> <i>(perception)</i>▪ <b>sb's ~ of sth</b> jds Wissen um etw <i>akk</i> <b>to enter into</b> [<i>or</i> <b>impinge on</b>] <b>sb's ~</b> in jds Bewusstsein eindringen, jds Bewusstsein erreichen▪ <b>sb's ~ that ...</b> das Bewusstsein, dass ...<b>3.</b> <i>(awareness) political, social</i> Bewusstsein <i>nt</i><b>health ~</b> Bewusstsein <i>nt</i> für die eigene Gesundheit<b>to raise sb's political ~</b> jds politisches Bewusstsein erweitern</def>
</ar>
All p- and span-blocks and colors are removed. Reason for that is that
@ezdiy posted that only these tags are retained when converting to pocketbook binary:
Code:
# Str = "?xml";
# v23 = "xdxf";
# v24 = "full_name";
# v25 = "description";
# v26 = "ar"; // this one for each definition entry
# v27 = "k";
# v29 = "i";
# v28 = "b" // maybe this is for <br> too, due shared prefix?
So I'll add the span tag to be retained in the script, so you can test whether it's different, but I don't think it will work. Another thing to try is add <br/> tags after every span-block or p-block, before removing them. This is not what's normally wanted with those small screens, though.
I've uploaded 3 test-files in the ENG-DEU directory:
- Retaining span-blocks
- Replacing Span-blocks with a break
- Replacing p-blocks with a break
If someone would be so kind to test and post the results? Maybe we can upgrade the layout of the Pocketbook dictionaries.