Skip to content

Releases: TDHSC/mobi2star

mobi2star v0.6.0-alpha.2

Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Sep 14:43
  • 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

Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Sep 14:18
  • 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; universal switches 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-view crate 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:
    • ParsedDictionary has the .ifo bookname; html_preserve::Plan::link_aliases lists each internal link's exact lookup key; html_preserve::decode_entities is public;
    • image_type moved to lexicon_core::bytes and is re-exported from mobi_reader::container;
    • read_limited reserves the declared size first, so a size memory cannot hold is a Limit error instead of an abort.

mobi2star v0.5.0-alpha.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Sep 03:23
  • 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 stardict publishes only StarDict/ and report.json: the files the browser produces, byte-identical to the full bundle's StarDict/. It runs the checks that happen during conversion; there is no manifest, so verify refuses 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-mib as a whole while writing, as SRCS bundles already were, rather than only their payloads.
  • Library:
    • convert_dictionary and convert_dictionary_zip (no filesystem, no clock), Profile, and progress reports as Stage values;
    • Limits::browser(), LabelLanguage::ALL and lexicon_core::read_limited;
    • stardict-io has a pure core: encode_catalog, parse, check_payloads and read_next_payload. stardict_io::write is removed, and ParsedDictionary::dictionary_path is replaced by dictionary_file(root).

mobi2star v0.4.0-alpha.2

Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Sep 00:43
  • 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/html rules 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 in dictionary.css.
  • Fixed: a compiled <style> with an id, class, lang, dir or nonce, or an empty type or media, stopped the conversion. Those attributes don't change what the CSS does; title, disabled and non-screen media still do and remain errors.

mobi2star v0.4.0-alpha.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Sep 22:59
  • 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, default koreader. It decides how entries reference the stylesheet: a hidden link to res/dictionary.css, an inline <style> copy, or both. The default drops the inline copies, which KOReader never applied: the Collins COBUILD .dict shrinks from 305 MB to 146 MB, and KOReader renders it identically. See docs/READERS.md.
  • dictionary.css is 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

Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Sep 20:34
  • 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

Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Sep 20:06
  • Alpha: the automated tests use synthetic fixtures only. Run mobi2star verify on 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 zh restores the previous Chinese labels. The language is recorded in manifest.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_backend and mobi_reader::read now take a LabelLanguage, and bundle manifests have a required labels field.
  • Dependencies are pinned by the committed Cargo.lock, and CI also tests the minimum supported Rust version, 1.85.