View Single Post
Old 09-14-2019, 12:26 AM   #147
kovidgoyal
creator of calibre
kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.
 
kovidgoyal's Avatar
 
Posts: 46,044
Karma: 29579868
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
I looked at the scrolling issue with vertical text and basically I dont see a good way to implement it in a general fashion. One would need to detect that the file is using vertical text (I suppose one could use EPUB properties for that) and then implement specialised scrolling routines for it. Since I cant read the text and I dont have a good sense for how it should work, I am not the right person to do that. But as I said patches are welcome. The relevant code is in two places:

Initial preparation of the book happens in srv/render_book.py that would need to be changed to pass along the metadata about vertical text/page progression etc. Then in view.pyj look at show_spine_item_stage2() where data about the HTML file is sent to the iframe where it is rendered. Add the necessary metadata there about display properties.

Then look in iframe.pyj where that data is actually used and finally look in flow_mode.pyj and paged_mode.pyj for actual scrolling implementations.

Set up a calibre development environment following: https://manual.calibre-ebook.com/develop.html

If you run the viewer as

calibre-debug -w file.epub

changes to the pyj files should be auto-compiled and any console.log() or print() calls in the pyj files shouldbe printed out to the terminal for debugging.
kovidgoyal is offline