Mandown

Latest version: v1.11.1

Safety actively analyzes 706267 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 6

0.10.0

Feature changes

- The label to the CLI progress bar now updates based on what you're doing — it'll show the current chapter while downloading and current operation if processing / converting (8d1b8be343439b1123fb5e12b71c4930918783df)
- **There is a new GUI written in Qt!** It supports downloading and converting whole comics only — no processing nor chapter selection (38)
- The default entrypoint is to run `mandown-gui`.
- **New command**: `mandown init-metadata <PATH> <URL (optional)>`: create a new `md-metadata.json` based on current folder contents. If a URL is provided, metadata and chapter metadata will also be fetched from that source, allowing for a smooth migration from Mandown <= 0.8.1.

API changes

- `mandown.process(comic: BaseComic, ops: list[ProcessOps] | None = None)` → `mandown.process(comic: Path | str, ops: list[ProcessOps]` (cdd2cfede236df0ae1cd83b1c3320578d2a61f51)
- `mandown.download` and `mandown.download_progress` now also accept a string URL over a `BaseComic` (95579067604e5104ac85c35bd74d26af70e20bf5)
- Rename `mandown.iohandler` to `mandown.io`
- **New API**: `mandown.init_parse_comic(path, source_url) -> BaseComic`, which behaves more or less exactly like the CLI command `mandown init-metadata`.

Bug fixes

- Fix an occasional crash when freshly downloading a new comic (b79b4bbd4c60ec985156ff46f5c8c08e3c81d56d)
- Fix console debug spam when writing `md-metadata.json` (a210863c6c9fcfba18ff692baa83dc79f8bfb0b6)
- Fix a bug that would always redownload images if they existed even if `only_download_needed == True` (a0ea5c97bea8a88247285dbb6e05cfd0d0eafb56)
- Make the progress bar more accurate (b233a07e6e3693db12e49cdf31062c6c7cdbcdf4)
- Fix Mandown always crashing if Pillow is not installed (42) (b111848f7e6156983df9a077fe334dabca505a22) (f2af7045e2b8d99441a620c4ad5f87e51967fad5)
- Fix MangaDex crashing on comics that don't have descriptions (471f0b2cb4fbfb705c89f4db88680d59eace8901)

0.9.0

**This is a breaking release that is not backward-compatible with any comics downloaded with Mandown < 0.9.0. Migration tools for pre-0.9.0 comics are planned for in 0.9.1.**

This release rewrote operations involving comic metadata (all of them), so it may be slightly buggy!

Feature changes
**CLI & general use:** (32)
- You will notice that a `md-metadata.json` file is now placed in a comic folder on download — this is totally normal! This helps Mandown identify a previously downloaded comic so that it can use it without fetching data again.
- You will also notice that you can't convert or process folders without `md-metadata.json` — a solution is coming in 0.9.1!

**API: completely revamped!**
See the README for new examples of the new API.
- **CHANGE:** The old `BaseSource` is no longer accessible in the public API, it has been replaced with `Comic`, which is restricted to `comic.metadata` and `comic.chapters`
- **CHANGE:** `mandown.query(url,** populate, populate_sort)` is now `mandown.query(url)`, returning a `Comic` object
- Behaviour has changed so effectively `populate` is always True
- The legacy `populate_sort` to retain chapter order has been completely removed in favour of stored metadata
- **NEW:** `mandown.read(path)` will open a folder containing `md-metadata.json` and return a `Comic` object
- `process`, `convert`, and `download` have been changed that they no longer accept individual metadata and chapter arguments and now accept `Comic` objects instead

Bug fixes
- Downloaded folders renamed by Mandown no longer crash on conversion (26)
- Download paths are now sanitised (so exotic chapter names are okay!) (10)
- Less breakage and crashing overall!

0.8.1

A stopgap release before the large metadata changes incoming in v0.9.0.

Feature changes
- Added comic to PDF conversion (30)

Bug fixes
- Converting a CBZ without subdirectories would crash Mandown

0.8.0

Feature changes
- **API change:** You longer need to import mandown from mandown (23)
- Use `import mandown; mandown.query()` instead of `from mandown import mandown; mandown.query()`
- **API change:** Moved processing API to the main `mandown` namespace (29)
- Use `mandown.process()` instead of `mandown.processing.process()`
- Added more processing options to split double pages, trim page borders, and (lib only) set EPUB direction to right to left (19)
- **New source:** https://readcomiconline.li (#25)
- Updated license to LGPLv3 (b4319adb88d3e38c043fd33f4c77531c71bf7ff7)
- You can now integrate mandown into any proprietary project without releasing source code so long as you don't modify it

Bug fixes
- converter/epub: Converting an empty folder would report a success but would make a malformed EPUB (22)
- converter: Images named `cover.png`, `cover.svg`, and `cover.gif` in the root folder directory were not treated as valid cover images (22)
- converter: Converting a folder without special options creates a malformed EPUB (20)
- source/mangadex: Attempting to download chapters without titles would crash Mandown
- cli: `mandown --version` and `mandown --supported-sites` stopped working (again)
- api: Attempting to `import mandown` without `pillow` installed would crash Mandown, even if no processing features were used

0.7.0

- Split download, convert, and process commands into three subcommands (17)
- `mandown download`: the original command with all its existing flags, minus `--from` which is moved to `mandown convert`
- `mandown convert`: the equivalent of `mandown <URL> --from <FOLDER> --convert <FORMAT>` in v0.6.1 and older
- Added image processing (15)
- `mandown process`: the main command to iterate through a folder down to two sublevels. Currently can only rotate images that are detected to span two pages to be used for ereaders.
- `mandown download --processing-options` can process after download as well
- Fixed a bug where the EPUB conversion progress bar would be stuck at 100%

0.6.1

- New source: https://mangakakalot.com
- New flag: `--supported-sites` to list available source URLs that Mandown can parse
- New flag: `--from` to only fetch and embed metadata in a local comic folder
- Requires the `--convert` flag be set
- Incompatible with the `--start` and `--end` flags (delete or temporarily move the image folders out of the target folder you don't want to achieve a similar effect)
- e.g., `mandown https://mangadex.org/manga/id --convert epub --from /path/to/already/downloaded/version`
- The `--dest` flag is now an optional argument instead of an option
- i.e., use `mandown <URL> <destination>` instead of `mandown <URL> --dest <destination>`
- Shortform options added such as `mandown -v` for `mandown --version` — see `mandown --help` for all of them

Page 5 of 6

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.