Jebonso: Convert TXT to EPUB in Your Browser
BROWSER TOOLS
Jebonso: Convert TXT to EPUB in Your Browser
A text file needs structure before it becomes a comfortable EPUB: chapter boundaries, metadata and a usable reading order. Jebonso handles those steps in the browser. The two-chapter export check below looks inside the resulting file rather than treating a successful download as proof of reader compatibility.
In this article
A plain-text manuscript needs chapter structure and book metadata to become a useful EPUB. Jebonso adds those steps in the browser. The two-chapter export check below shows what was verified and which reader-compatibility questions remain open.
- Installers, or a paywall
- Korean encoding (EUC-KR) mangled into gibberish
- Manually splitting chapters by hand
- Uploading files to a server you don't trust
Conversion tasks
TXT → EPUB binding
MAIN MENUImport a copy of the TXT, inspect the detected chapters and metadata, then export. If detection is wrong, correct the source or settings before relying on the generated book.
Heading lines like "μ 1μ₯", "Chapter 1", "Prologue" or "Epilogue" are recognized automatically and split into chapters.
EUC-KR or UTF-8 — doesn't matter. Old files go in as-is.
Auto split by chapter headings, or manual split every N characters (e.g. every 50,000).
Drop a JPG/PNG cover photo and it's registered as the EPUB cover automatically.
Replacing an EPUB cover
SIDE MENUAlready have an EPUB but want a different cover? Drop the EPUB, add a new cover photo, done. The existing cover metadata is located automatically and swapped out cleanly. The text stays untouched — only the cover gets a new outfit.
Recognized chapter headings
Heading patterns the detection engine understands. If your manuscript has lines like these, chapters are split automatically.
νλ‘€λ‘κ·Έ · μνλ‘κ·Έ · μΈμ · λ²μΈ · λ§Ίμλ§ · Prologue · Epilogue
1. Title · II. · IV. ← Roman numerals work too
If fewer than two heading lines are found, it falls back to a character-based split — so check the generated chapter boundaries before reading.
Conversion steps
For cover replacement, use the [EPUB cover swap] tab and drop in the EPUB plus a new cover photo.
Supported inputs and outputs
| Item | Detail |
|---|---|
| Form | Single HTML file — no installation |
| Runs in | Modern browsers (Chrome · Edge · Firefox · Safari) |
| Server traffic | None — all processing happens in your browser |
| Encodings | UTF-8 · EUC-KR auto-detected |
| EPUB spec | EPUB 3 (OPF · spine · cover-image) |
| Price | Free |
Interface design
A retro print shop concept. Paper texture background, crop marks, printing registration marks, letterpress-style typography. I wanted to prove a converter can be beautiful too.
TYPE — Black Han Sans (signboard) · IBM Plex Sans KR (body) · IBM Plex Mono (labels)
Jebonso is a single HTML file, so you can copy it anywhere and use it.
Carry it on a USB stick, or park it on your NAS.
Questions or improvement ideas? Drop them in the comments — they go into the next version. π
— Jebonso · TXT → EPUB · MADE WITH ❤ IN BROWSER —
Worked example and conversion limits
For a short practice manuscript, put “Chapter 1” and “Chapter 2” on separate heading lines with text beneath each. Use automatic splitting, then open the downloaded EPUB in your reader and check the table of contents, the chapter order and the first paragraph of each chapter. These are example inputs to inspect, not a claim that every manuscript is detected correctly.
If headings are inconsistent, switch to character-based splitting. The current source sets 15,000 characters by default and permits 3,000–60,000; characters are not pages. Keep the original TXT and EPUB, especially before replacing a cover. A custom EPUB may use metadata or paths this converter does not handle; inspect the result rather than assuming compatibility with every reader.
The source first checks a UTF-8 byte-order marker and valid UTF-8, then tries EUC-KR. Automatic detection is not proof that damaged or mixed-encoding text is recoverable. If the preview contains broken characters, fix a copy of the source encoding before converting.
Your manuscript is processed by the browser. However, the HTML loads Google Fonts and the JSZip library from a CDN. “Local processing” does not mean zero network requests or guaranteed offline startup. The current source includes a built-in ZIP writer fallback for TXT export, while existing-EPUB parsing and cover replacement still depend on JSZip. No EPUB-validator or cross-device reader test was performed for this update.
Linked source documents
For a cover image, see DARKROOM’s resize and format guide. For another browser utility, read Naver Cafe Board Filter. The reading guide explains the tool collection.
A two-chapter export, checked inside the file
Open the live Jebonso converter to use the tool directly. The source repository remains available for inspecting or downloading the code.
On October 9, 2026, an automated browser check in Chromium 154.0.8037.98 on Windows imported a 77-byte UTF-8 TXT fixture. It contained the headings Chapter 1 and Chapter 2, each followed by a short paragraph. Automatic chapter detection was selected, the book language was set to en, and no cover photo was supplied.
The download was a 4,060-byte EPUB. Opening its ZIP container found OEBPS/chapter_001.xhtml and OEBPS/chapter_002.xhtml, plus the package document, navigation, NCX and generated cover. Both sample paragraphs appeared in the corresponding chapter files. The XHTML, package and navigation documents parsed as XML. This checks the small file's structure and text preservation; it is not an EPUBCheck pass or a compatibility result for Apple Books, Kindle or every reader.
To repeat the test, put each chapter heading on its own line and separate paragraphs with blank lines. Import the TXT, keep automatic splitting, build, and download. Open a copy of the EPUB as a ZIP to inspect chapter contents, then check it in the reader you intend to use. The current source includes a built-in ZIP writer fallback for TXT exports; parsing an existing EPUB for cover replacement still uses JSZip. External fonts and dependencies mean that browser-local processing is not a blanket guarantee of offline startup.