EPUB Output:Replace newlines and all other whitespace in TOC with simple spaces, as Adobe DE cant handle non space whitespace characters in the TOC.

This commit is contained in:
Kovid Goyal 2009-02-12 14:53:59 -08:00
parent de77871333
commit d1ca54da77

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<?python <?python
from uuid import uuid4 from uuid import uuid4
import re
?> ?>
<ncx version="2005-1" <ncx version="2005-1"
xml:lang="en" xml:lang="en"
@ -19,7 +20,7 @@ from uuid import uuid4
<py:def function="navpoint(np, level)"> <py:def function="navpoint(np, level)">
${'%*s'%(4*level,'')}<navPoint id="${str(uuid4())}" playOrder="${str(np.play_order)}"> ${'%*s'%(4*level,'')}<navPoint id="${str(uuid4())}" playOrder="${str(np.play_order)}">
${'%*s'%(4*level,'')}<navLabel> ${'%*s'%(4*level,'')}<navLabel>
${'%*s'%(4*level,'')}<text>${np.text}</text> ${'%*s'%(4*level,'')}<text>${re.sub(r'\s+', ' ', np.text)}</text>
${'%*s'%(4*level,'')}</navLabel> ${'%*s'%(4*level,'')}</navLabel>
${'%*s'%(4*level,'')}<content src="${unicode(np.href)+(('#' + unicode(np.fragment)) if np.fragment else '')}" /> ${'%*s'%(4*level,'')}<content src="${unicode(np.href)+(('#' + unicode(np.fragment)) if np.fragment else '')}" />
<py:for each="np2 in np">${navpoint(np2, level+1)}</py:for> <py:for each="np2 in np">${navpoint(np2, level+1)}</py:for>
@ -28,4 +29,4 @@ from uuid import uuid4
<navMap> <navMap>
<py:for each="np in toc">${navpoint(np, 0)}</py:for> <py:for each="np in toc">${navpoint(np, 0)}</py:for>
</navMap> </navMap>
</ncx> </ncx>