Skip to content

v0.1.7: bokai

Choose a tag to compare

@huangziwei huangziwei released this 26 Jul 19:28
· 184 commits to main since this release

A lot has been changed since the last release. My original plan was to stick to a weekly or semi-weekly release cadence. For one, is to make writing each note manageable, without losing tracks of what has been done; for another, is to keep my own motivation up. It's fun to talk about something new and shiny. It's less fun to talk about something from weeks ago. But at the end I just keep adding things daily, without releasing anything for a while.

I made the same mistake at work too. Some features I've been working on for months and all packed into one PR has been stuck forever due to a difficult-to-solve bug for some other latest features, while the earlier ones are perfectly fine to be released on their own. The end result is, on the surface, I don't have things to show for months, while the truth is lots of progress has been made. But I digress.


Previously, in order to make boko works with vertical CJK text that reads from right to left and have heavy ruby annotations, I have to port jhowell's Calibre plugin kfx-input as a second route paralleled to boko's original IR route. In this release, we merge the two into one. Now every format go through the IR as the original boko but also 1:1 to the mechanically ported route, thus marking its retirement. And boko-kai is now renamed to just bokai, retagged the version from v0.3.0+kai.n to v0.1.0, as this fork have been diverged so much from the original boko, to the level that I think it's worth to have it's own versioning.

bokai now also has a new validator module that flags the same set of errors founds by epubcheck in my own Sidle library across 2k epubs. It's not a full port but useful enough so far. It also gains certain level of epub/kfx editing capacity, primarily via Sidle's book editor, for metadata, degenerated TOC and cover, etc.

The epub-splitter is the latest add-on. It's for splitting omnibus epubs back into individual volumes.


On the Sidle side, many bugs have been fixed along the way, such as some KFX reader rendering issues here and there, the new book editor we talked about earlier was added to fix some errors even from publishers' official eBooks, cleaned up and unified some duplicated codes so that some same features are handled by some shared utils, added a "Misc." tab for syncing screenshots and debugging logs, etc. Nothing really fancy.


The truly fancy part is some new KUAL APP UI change.

screenshot_1783758555-shadow screenshot_1783978045-shadow

Some buttons have been changed from text to icons, and moved to the upper right corner. Next to the search bar is the "sync" button, originally at the bottom row, now replaced by the "DRM" button (more on it later), and next to the "sync" button is the "update" button. Updating the Sidle KUAL app is used to be done via KUAL's own menu, with a separate "Update Sidle" app. But now we just integrate everything into one, as in the last release (v0.1.6) we added the Sidle booklet, the KUAL booklet is used less frequently and always sunk to the bottom and difficult to find, so why not just make the process of updating Sidle app per se easier?

And now the "DRM" button. It's a frontend over KFXArchiver. KFXArchiver is another KUAl app that runs directly on an jailbroken Kindle and removes the DRM of all KFX books in /mnt/us/documents/. There are a handful of problem of KFXArchiver 's native UI:

  1. It scans and runs on all books within /mnt/us/documents/ every time without de-duplicating. That includes our own side-loaded books, with or without DRM.
  2. After removing the DRM, it will just leave the original copies alone, and create the deDRM-ed copies in the /mnt/us/dedrm folder, then you need to do it manually to copy them out.

So our own Sidle frontend over KFXArchiver enhanced this process by only scanning and removing DRM for books in the official books' folder, and sending the books to the Sidle server after DRM is removed then also cleaning up the redundant copies on the device. DRM can be removed manually one by one or with the upper right "unlock" button to remove all at once. Life is now much easier in this way.

Full Changelog: v0.1.6...v0.1.7