Contact
← Work

source-builder

Reads a web-novel page and a chapter page, ranks candidate selectors for title, cover, chapter list and text, lets you confirm or override them, and writes a working Lua extension.

Year
2026
Kind
Web · Python
Status
Shipped
source-builder, image 1

Writing a source extension for the Shosetsu reader means reading a site's HTML, guessing selectors and translating them into its Lua API. source-builder does the mechanical part. analyze ranks candidate selectors and keeps the evidence for each. confirm takes one per field, checks every pick against saved HTML and fails on a selector that matches nothing. generate writes the extension.

The 164-test suite runs the generated Lua in a Lua 5.4 runtime against three fixture sites. The official extension tester completes on all three extensions, filling the title, cover, description, a five-chapter list and a chapter passage. Every selector in the output file is annotated with where it came from, so a reader can retrace each pick.

The limits: detection has only been exercised on three hand-written fixture sites, not on a real novel site, and the output has never been run inside the app itself. It reads static, server-rendered HTML only. JavaScript-rendered pages and anti-bot walls are out of reach.

source-builder, image 2
Next projectTwo Windows →