Show HN: Runik – Turn fan wikis into e-reader dictionaries
github.comHey HN!
As a reader of epic fantasy and sci-fi, I often find myself reaching for my phone to look up an obscure side character — or the difference between “Genebackis” and “Genebaris”. So I built runik to bring in-world definitions directly onto my e-reader and stay immersed in the story.
Runik parses the contents of fan wikis into Kobo and Kindle compatible dictionaries. It uses the device’s built-in word lookup feature, so there’s no jailbreaking required and definitions can be used offline.
It’s still in early development and is built with Go (Wails) + Svelte + Dictutil — feedback is appreciated!
Note: Kindle support requires kindlegen, which comes bundled with the Kindle Previewer app (details in the README).
Some technical details for the curious:
- Runik originally started as a webapp but I rewrote it as a desktop app for performance and hosting cost reasons. Working with the Wails framework has been great coming from a web background.
- There’s no web scraping under the hood — runik uses the wiki’s public API to fetch content.
- The biggest challenge has been parsing content itself. Content varies in quality and the markup can be inconsistent. There wasn’t really an off-the-shelf wikitext parser for Go, so I took it as a challenge to write my own (still incomplete) wikitext parser.
- Kindle support, despite requiring proprietary software (kindlegen) to compile a valid dictionary, was surprisingly easier to implement than kobo support. Kobo requires the words to be organized into a trie and encrypted. Fortunately, there's a great tool called dictutil (https://github.com/pgaskin/dictutil) that handles most of that! Kobo also doesn’t allow for custom dictionary names, hence the awkward dicthtml-[r] prefix if you use a kobo.
Over the next year I’m looking to, improve parsing, include definition formatting options, and add support for more devices.