Skip to content

Add e-book conversion, a built-in HTML reader and a calibre package - #14

Merged
KnifeLemon merged 3 commits into
mainfrom
pr/14-ebooks
Sep 30, 2026
Merged

KnifeLemon merged 3 commits into
mainfrom
pr/14-ebooks

Conversation

@KnifeLemon

Copy link
Copy Markdown
Owner

EPUB, MOBI/AZW3/AZW/PRC, AZW4, FB2, HTMLZ, TXTZ and comics (CBZ, CBR, CB7, CBT, CBC) → PDF, EPUB, DOCX, text; documents → EPUB; PDF → CBZ. HTML → PDF/HWPX/DOCX without Pandoc. calibre as an optional download for rare formats and Kindle output.

🤖 Generated with Claude Code

KnifeLemon and others added 3 commits October 1, 2026 07:55
HTML is now read in-process with AngleSharp (HtmlReader): headings,
inline formatting and basic CSS (inline styles and simple tag/.class
rules), nested lists, tables with spans, local and data: pictures, links
and anchors, pre, hr, figures and page breaks, with encoding detection.
HTML -> HWPX (and so -> PDF) no longer needs Pandoc. The document model
is written back out by XhtmlWriter (EPUB chapters, HTMLZ, one-page HTML),
PlainTextWriter, MarkdownWriter and Fb2Writer.

The new "ebook" engine reads EPUB 2/3, MOBI/AZW/AZW3/PRC (PalmDOC and
HUFF/CDIC, MOBI 6 filepos links, KF8 skeleton/fragment indexes, written
from the MobileRead format description), FB2, HTMLZ and TXTZ, and writes
EPUB 3 (+ NCX), HWPX, TXT, HTML, Markdown, FB2, HTMLZ and TXTZ. HTML,
Markdown, TXT and DOCX become e-books too. Comics (CBZ/CBR/CB7/CBT/CBC,
via SharpCompress) become PDF, fixed-layout EPUB or CBZ; PDF becomes
CBZ; AZW4 gives back its PDF. DRM-protected books are refused with a
clear message.

calibre's ebook-convert is an optional download (pinned MSI, unpacked
with an administrative install like LibreOffice, isolated config per
run, progress from its output) for LIT, LRF, CHM, PDB, PML, RB, SNB,
TCR, OEB input and MOBI, AZW3, LIT, LRF, PDB, PML, RB, SNB, TCR output.
Its edges cost more so built-in routes win; it is not pre-selected on
first run. EngineInstaller's MSI handling is now per component, and
ProcessRunner can report output lines while a program runs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts:
#	Directory.Packages.props
#	THIRD-PARTY-NOTICES.md
#	build/fetch-engines.ps1
#	docs/ENGINES.md
#	src/Filee.App/Assets/i18n/en.json
#	src/Filee.App/Assets/i18n/ko.json
#	src/Filee.App/Assets/i18n/zh-CN.json
#	src/Filee.App/ViewModels/EngineSetupViewModel.cs
#	src/Filee.Engines/EngineRegistry.cs
#	src/Filee.Engines/Filee.Engines.csproj
#	src/Filee.Engines/Hwp/Hwpx/HwpxConverter.cs
#	src/Filee.Engines/Infrastructure/EngineDownloads.cs
#	src/Filee.Engines/Infrastructure/EngineInstaller.cs
#	src/Filee.Engines/Infrastructure/engines.json
#	tests/Filee.App.Tests/RenderTests.cs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@KnifeLemon KnifeLemon added the formats New formats and engines label Sep 30, 2026
@KnifeLemon
KnifeLemon merged commit 6fd3b90 into main Sep 30, 2026
1 check failed
@KnifeLemon
KnifeLemon deleted the pr/14-ebooks branch September 30, 2026 23:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

formats New formats and engines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant