diff --git a/bin/epub b/bin/epub
index 2ff80af..2dc5723 100755
--- a/bin/epub
+++ b/bin/epub
@@ -28,7 +28,7 @@ convert_to_epub() {
pandoc -o "$OUTPUT_BOOK" --metadata-file="$meta_file" \
--toc-depth=2 \
--top-level-division=chapter \
- --file-scope=true \
+ --split-level=1 \
--css="$css_file" \
--webtex \
--wrap=preserve \
@@ -39,14 +39,14 @@ convert_to_epub() {
"${TEMP_DIR}"/ch2.md \
"${TEMP_DIR}"/ch3.md \
"${TEMP_DIR}"/ch4.md \
- "${TEMP_DIR}"/part-ii.md \
"${TEMP_DIR}"/ch5.md \
+ "${TEMP_DIR}"/part-ii.md \
"${TEMP_DIR}"/ch6.md \
"${TEMP_DIR}"/ch7.md \
"${TEMP_DIR}"/ch8.md \
"${TEMP_DIR}"/ch9.md \
- "${TEMP_DIR}"/part-iii.md \
"${TEMP_DIR}"/ch10.md \
+ "${TEMP_DIR}"/part-iii.md \
"${TEMP_DIR}"/ch11.md \
"${TEMP_DIR}"/ch12.md \
"${TEMP_DIR}"/ch13.md \
diff --git a/bin/preprocess-epub.py b/bin/preprocess-epub.py
index 758f41a..abeabaf 100755
--- a/bin/preprocess-epub.py
+++ b/bin/preprocess-epub.py
@@ -15,6 +15,15 @@ from pathlib import Path
FIGURE_SHORTCODE_RE = re.compile(r"\{\{<\s*figure\b(.*?)>\}\}", re.DOTALL)
ATTR_RE = re.compile(r'([\w-]+)="([^"]*)"')
ABS_IMAGE_RE = re.compile(r'!\[([^\]]*)\]\(/(?!static/)([^)]+)\)')
+FRONT_MATTER_RE = re.compile(r"\A---\s*\n(.*?)\n---\s*\n?", re.DOTALL)
+TITLE_RE = re.compile(r'^title:\s*(?:"([^"]*)"|\'([^\']*)\'|(.+?))\s*$', re.MULTILINE)
+LINK_HEADING_RE = re.compile(r"^(#{2,6})\s+(\[[^\]]+\]\([^)]+\))\s*$", re.MULTILINE)
+HEADER_ID_RE = re.compile(r"\{#([A-Za-z0-9_:-]+)\}")
+RAW_ID_RE = re.compile(r'(]*\bid=")([^"]+)(")', re.IGNORECASE)
+RAW_HREF_RE = re.compile(r'(]*\bhref=")(/[^"#?)]*)(#[^"]*)?(")', re.IGNORECASE)
+MD_HREF_RE = re.compile(r"(?