Repository navigation
Releases: TDHSC/mobi2star
Releases · TDHSC/mobi2star
Release list
mobi2star v0.6.0-alpha.2
- The browser page for 0.6.0-alpha.1 was never deployed: the release's browser test passed, then failed while removing Chrome's temporary profile. This release deploys the page with the preview. The CLI and the page are the same as in 0.6.0-alpha.1 apart from the version.
mobi2star v0.6.0-alpha.1
- New: Preview on the browser page. After a conversion, look words up and follow links in the converted dictionary as the chosen reader shows it: KOReader (drawn by MuPDF 1.27.0, the engine KOReader uses, with KOReader's fonts, device presets and dictionary font size), GoldenDict-ng, GoldenDict Mobile, Readest, or a Kobo dictionary made with PyGlossary;
universalswitches among them. Entries are shown sandboxed and cannot run script or load anything. See docs/WEB.md. - The browser page is now AGPL-3.0-or-later, because it includes the new
reader-viewcrate and bundles MuPDF. The CLI and its libraries stay MIT. - Fixed: internal links in compiled-backend dictionaries were "not found" in KOReader, which looks up everything after
bword://including the#anchor. Each link's exact key is now an alias of the entry it points into, as publisher-source dictionaries already had. Reconvert compiled-backend dictionaries; publisher-source output (such as Collins COBUILD) is unchanged. - Library:
ParsedDictionaryhas the.ifobookname;html_preserve::Plan::link_aliaseslists each internal link's exact lookup key;html_preserve::decode_entitiesis public;image_typemoved tolexicon_core::bytesand is re-exported frommobi_reader::container;read_limitedreserves the declared size first, so a size memory cannot hold is aLimiterror instead of an abort.
mobi2star v0.5.0-alpha.1
- New: convert in your browser at https://tdhsc.github.io/mobi2star/. The page runs the same Rust converter as WebAssembly, so the file is never uploaded, and offers a zip holding the StarDict folder. It has English and Chinese text, accepts files up to 256 MiB, and is republished with every release. See docs/WEB.md.
- New
convert --profile stardictpublishes onlyStarDict/andreport.json: the files the browser produces, byte-identical to the full bundle'sStarDict/. It runs the checks that happen during conversion; there is no manifest, soverifyrefuses it with a message that says so. Its report records"profile": "stardict"and lists only the checks that ran; full-bundle reports are unchanged. - Full bundles are byte-identical to 0.4.0-alpha.2 apart from the version in
manifest.json. - Compiled-backend bundles are now held to
--max-output-mibas a whole while writing, as SRCS bundles already were, rather than only their payloads. - Library:
convert_dictionaryandconvert_dictionary_zip(no filesystem, no clock),Profile, and progress reports asStagevalues;Limits::browser(),LabelLanguage::ALLandlexicon_core::read_limited;stardict-iohas a pure core:encode_catalog,parse,check_payloadsandread_next_payload.stardict_io::writeis removed, andParsedDictionary::dictionary_pathis replaced bydictionary_file(root).
mobi2star v0.4.0-alpha.2
- Compiled-backend books with CSS render differently from 0.4.0-alpha.1 and should be reconverted; publisher-source (SRCS) output, including Collins COBUILD, is unchanged.
- The compiled manifest schema is now 4, a number neither format has used. 0.4.0-alpha.1 used 2, which 0.3 read as an SRCS manifest.
- The compiled backend now scopes its stylesheet under a per-book wrapper class, as the SRCS backend already did.
body/htmlrules style the entry, not the whole KOReader popup, and inline copies no longer leak into other dictionaries. Scoping is shared (html_preserve::css), with an open grammar for compiled books that accepts any selector and applies CSS's own error recovery. - Fixed: text left over at the end of one compiled
<style>body could join the first selector of the next body indictionary.css. - Fixed: a compiled
<style>with anid,class,lang,dirornonce, or an emptytypeormedia, stopped the conversion. Those attributes don't change what the CSS does;title,disabledand non-screen media still do and remain errors.
mobi2star v0.4.0-alpha.1
- Alpha: reader behavior was established from source code and a MuPDF render comparison, not on devices; docs/READERS.md gives the confidence for each reader. Bundles from 0.3 must be verified with 0.3 or reconverted.
- New
convert --reader koreader|goldendict|goldendict-mobile|readest|kobo|universal, defaultkoreader. It decides how entries reference the stylesheet: a hidden link tores/dictionary.css, an inline<style>copy, or both. The default drops the inline copies, which KOReader never applied: the Collins COBUILD.dictshrinks from 305 MB to 146 MB, and KOReader renders it identically. See docs/READERS.md. dictionary.cssis now written for every book and both backends. Books without the Collins profile, and all compiled-backend books, used to show no publisher styles in KOReader.- SRCS pages that link different stylesheets are scoped per stylesheet set, so one shared stylesheet file keeps each page's cascade.
- The compiled backend rejects
<style>elements that cannot join a shared stylesheet: unbalanced CSS, media other than all/screen, other attributes, or elements split by an entry boundary. - Bundle manifests record the reader (and, for the compiled backend, the offset width); schemas are compiled 2 and SRCS 3. Verification of a bundle from another mobi2star version reports which version produced it.
- Library: conversion functions take
OutputOptions { offset_bits, labels, reader }.
mobi2star v0.3.0-alpha.2
- Fixed: the Collins COBUILD readability profile never applied to the retail Kindle edition, whose OPF title is "COBUILD Advanced Learner's Dictionary" without "Collins". Those conversions fell back to the source-scoped layout.
mobi2star v0.3.0-alpha.1
- Alpha: the automated tests use synthetic fixtures only. Run
mobi2star verifyon each converted dictionary and check it in your reader before relying on it. - Prebuilt binaries for macOS (Apple Silicon, Intel) and Linux (x86_64, ARM64; statically linked) are attached to each GitHub release, with SHA-256 checksums and build-provenance attestations.
- Generated labels are now English by default: lookup keys for chapters, uncovered text and image galleries, and the offline viewer interface.
convert --labels zhrestores the previous Chinese labels. The language is recorded inmanifest.json, and verification regenerates with it. - Fixed: SRCS pages that start with a UTF-8 byte-order mark failed to parse, because every tag span was shifted by three bytes.
- Library:
convert,convert_source,convert_with_backendandmobi_reader::readnow take aLabelLanguage, and bundle manifests have a requiredlabelsfield. - Dependencies are pinned by the committed
Cargo.lock, and CI also tests the minimum supported Rust version, 1.85.