1
<?xml version="1.0" encoding="UTF-8"?>
8
xmlns="http://www.daisy.org/z3986/2005/ncx/"
9
xmlns:py="http://genshi.edgewall.org/"
10
xmlns:calibre="http://calibre.kovidgoyal.net/2009/metadata"
13
<meta name="dtb:uid" content="${uid}"/>
14
<meta name="dtb:depth" content="${toc.depth()}"/>
15
<meta name="dtb:generator" content="${__appname__}"/>
16
<meta name="dtb:totalPageCount" content="0"/>
17
<meta name="dtb:maxPageNumber" content="0"/>
19
<docTitle><text>Table of Contents</text></docTitle>
21
<py:def function="navpoint(np, level)">
22
${'%*s'%(4*level,'')}<navPoint id="${str(uuid4())}" playOrder="${str(np.play_order)}">
23
${'%*s'%(4*level,'')}<navLabel>
24
${'%*s'%(4*level,'')}<text>${re.sub(r'\s+', ' ', np.text)}</text>
25
${'%*s'%(4*level,'')}</navLabel>
26
${'%*s'%(4*level,'')}<content src="${unicode(np.href)+(('#' + unicode(np.fragment)) if np.fragment else '')}" />
27
${'%*s'%(4*level,'')}<calibre:meta py:if="np.author" name="author">${np.author}</calibre:meta>
28
${'%*s'%(4*level,'')}<calibre:meta py:if="np.description" name="description">${np.description}</calibre:meta>
29
<py:for each="np2 in np">${navpoint(np2, level+1)}</py:for>
30
${'%*s'%(4*level,'')}</navPoint>
33
<py:for each="np in toc">${navpoint(np, 0)}</py:for>