epub-generator 0.0.1__tar.gz → 0.0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {epub_generator-0.0.1 → epub_generator-0.0.2}/PKG-INFO +1 -1
- {epub_generator-0.0.1 → epub_generator-0.0.2}/epub_generator/gen_index.py +31 -26
- {epub_generator-0.0.1 → epub_generator-0.0.2}/pyproject.toml +1 -1
- {epub_generator-0.0.1 → epub_generator-0.0.2}/LICENSE +0 -0
- {epub_generator-0.0.1 → epub_generator-0.0.2}/README.md +0 -0
- {epub_generator-0.0.1 → epub_generator-0.0.2}/epub_generator/__init__.py +0 -0
- {epub_generator-0.0.1 → epub_generator-0.0.2}/epub_generator/context.py +0 -0
- {epub_generator-0.0.1 → epub_generator-0.0.2}/epub_generator/gen_asset.py +0 -0
- {epub_generator-0.0.1 → epub_generator-0.0.2}/epub_generator/gen_epub.py +0 -0
- {epub_generator-0.0.1 → epub_generator-0.0.2}/epub_generator/gen_part.py +0 -0
- {epub_generator-0.0.1 → epub_generator-0.0.2}/epub_generator/hash.py +0 -0
- {epub_generator-0.0.1 → epub_generator-0.0.2}/epub_generator/i18n.py +0 -0
- {epub_generator-0.0.1 → epub_generator-0.0.2}/epub_generator/template.py +0 -0
- {epub_generator-0.0.1 → epub_generator-0.0.2}/epub_generator/types.py +0 -0
|
@@ -11,8 +11,8 @@ from .context import Template
|
|
|
11
11
|
@dataclass
|
|
12
12
|
class NavPoint:
|
|
13
13
|
index_id: int
|
|
14
|
-
order: int
|
|
15
14
|
file_name: str
|
|
15
|
+
order: int
|
|
16
16
|
|
|
17
17
|
def gen_index(
|
|
18
18
|
template: Template,
|
|
@@ -41,8 +41,7 @@ def gen_index(
|
|
|
41
41
|
for chapters_list in (prefaces, chapters):
|
|
42
42
|
for chapter in chapters_list:
|
|
43
43
|
element = nav_point_generation.generate(chapter)
|
|
44
|
-
|
|
45
|
-
nav_elements.append(element)
|
|
44
|
+
nav_elements.append(element)
|
|
46
45
|
|
|
47
46
|
depth = max(
|
|
48
47
|
_max_depth(prefaces),
|
|
@@ -91,17 +90,34 @@ class _NavPointGeneration:
|
|
|
91
90
|
def nav_points(self) -> list[NavPoint]:
|
|
92
91
|
return self._nav_points
|
|
93
92
|
|
|
94
|
-
def generate(self, chapter: _Chapter) -> Element
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
93
|
+
def generate(self, chapter: _Chapter) -> Element:
|
|
94
|
+
_, nav_point_xml = self._create_nav_point(chapter)
|
|
95
|
+
return nav_point_xml
|
|
96
|
+
|
|
97
|
+
def _create_nav_point(self, chapter: _Chapter) -> tuple[NavPoint, Element]:
|
|
98
|
+
nav_point: NavPoint | None = None
|
|
99
|
+
if self._check_chapter_exits(chapter.id):
|
|
100
|
+
part_id = str(chapter.id).zfill(self._digits)
|
|
101
|
+
nav_point = NavPoint(
|
|
102
|
+
index_id=chapter.id,
|
|
103
|
+
file_name=f"part{part_id}.xhtml",
|
|
104
|
+
order=self._next_order,
|
|
105
|
+
)
|
|
106
|
+
self._nav_points.append(nav_point)
|
|
107
|
+
self._next_order += 1
|
|
101
108
|
|
|
102
109
|
nav_point_xml = Element("navPoint")
|
|
110
|
+
for child in chapter.children:
|
|
111
|
+
child, child_xml = self._create_nav_point(child)
|
|
112
|
+
if child_xml is not None:
|
|
113
|
+
nav_point_xml.append(child_xml)
|
|
114
|
+
if nav_point is None:
|
|
115
|
+
nav_point = child
|
|
116
|
+
|
|
117
|
+
assert nav_point is not None, "Nav does not have any valid chapters"
|
|
118
|
+
|
|
103
119
|
nav_point_xml.set("id", f"np_{chapter.id}")
|
|
104
|
-
nav_point_xml.set("playOrder", str(order))
|
|
120
|
+
nav_point_xml.set("playOrder", str(nav_point.order))
|
|
105
121
|
|
|
106
122
|
label_xml = Element("navLabel")
|
|
107
123
|
label_text_xml = Element("text")
|
|
@@ -109,23 +125,12 @@ class _NavPointGeneration:
|
|
|
109
125
|
label_xml.append(label_text_xml)
|
|
110
126
|
|
|
111
127
|
content_xml = Element("content")
|
|
112
|
-
content_xml.set("src", f"Text/{file_name}")
|
|
128
|
+
content_xml.set("src", f"Text/{nav_point.file_name}")
|
|
113
129
|
|
|
114
|
-
nav_point_xml.
|
|
115
|
-
nav_point_xml.
|
|
130
|
+
nav_point_xml.insert(0, label_xml)
|
|
131
|
+
nav_point_xml.insert(1, content_xml)
|
|
116
132
|
|
|
117
|
-
|
|
118
|
-
self._nav_points.append(NavPoint(
|
|
119
|
-
index_id=chapter.id,
|
|
120
|
-
order=order,
|
|
121
|
-
file_name=file_name,
|
|
122
|
-
))
|
|
123
|
-
for child in chapter.children:
|
|
124
|
-
child_xml = self.generate(child)
|
|
125
|
-
if child_xml is not None:
|
|
126
|
-
nav_point_xml.append(child_xml)
|
|
127
|
-
|
|
128
|
-
return nav_point_xml
|
|
133
|
+
return nav_point, nav_point_xml
|
|
129
134
|
|
|
130
135
|
@dataclass
|
|
131
136
|
class _Chapter:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|