From 79c29121c3dfce18304e1bf20b6d99c5feb4a5df Mon Sep 17 00:00:00 2001 From: Jim Miller Date: Mon, 29 Dec 2025 12:49:40 -0600 Subject: [PATCH] writer_epub: Add option as page_progression_direction_rtl --- calibre-plugin/plugin-defaults.ini | 4 ++++ fanficfare/configurable.py | 2 ++ fanficfare/defaults.ini | 4 ++++ fanficfare/writers/writer_epub.py | 2 ++ 4 files changed, 12 insertions(+) diff --git a/calibre-plugin/plugin-defaults.ini b/calibre-plugin/plugin-defaults.ini index f987a62e..ba15318a 100644 --- a/calibre-plugin/plugin-defaults.ini +++ b/calibre-plugin/plugin-defaults.ini @@ -1416,6 +1416,10 @@ remove_transparency: true ## under [defaults] or [epub]. #force_update_epub_always:false +## Mark epub as having right-to-left page progression direction. +## Useful for RtL languages such as Japanese. +#page_progression_direction_rtl:false + [html] ## include images from img tags in the body and summary of diff --git a/fanficfare/configurable.py b/fanficfare/configurable.py index b227869b..1ce3091f 100644 --- a/fanficfare/configurable.py +++ b/fanficfare/configurable.py @@ -287,6 +287,7 @@ def get_valid_set_options(): 'calibre_series_meta':(None,['epub'],boollist), 'force_update_epub_always':(None,['epub'],boollist), + 'page_progression_direction_rtl':(None,['epub'],boollist), 'windows_eol':(None,['txt'],boollist), @@ -461,6 +462,7 @@ def get_valid_keywords(): 'logpage_at_end', 'calibre_series_meta', 'force_update_epub_always', + 'page_progression_direction_rtl', 'include_subject_tags', 'include_titlepage', 'include_tocpage', diff --git a/fanficfare/defaults.ini b/fanficfare/defaults.ini index 65cb5bcd..e88fd911 100644 --- a/fanficfare/defaults.ini +++ b/fanficfare/defaults.ini @@ -1404,6 +1404,10 @@ remove_transparency: true ## under [defaults] or [epub]. #force_update_epub_always:false +## Mark epub as having right-to-left page progression direction. +## Useful for RtL languages such as Japanese. +#page_progression_direction_rtl:false + [html] ## include images from img tags in the body and summary of diff --git a/fanficfare/writers/writer_epub.py b/fanficfare/writers/writer_epub.py index d08c3b60..e4a56982 100644 --- a/fanficfare/writers/writer_epub.py +++ b/fanficfare/writers/writer_epub.py @@ -815,6 +815,8 @@ div { margin: 0pt; padding: 0pt; } spine = newTag(contentdom,"spine",attrs={"toc":"ncx"}) + if self.getConfig('page_progression_direction_rtl'): + spine.setAttribute("page-progression-direction","rtl") package.appendChild(spine) for itemref in itemrefs: spine.appendChild(newTag(contentdom,"itemref",