Github hosted website for my projects
| File | Description |
| popup.html | HTML that provides the UI for WebToEpub |
| js/main.js | Main logic behind popup.html's UI |
| js/ChapterUrlsUi.js | Logic for the "List of Chapters" on the UI |
| js/CoverImageUI.js | Logic for the "Select Cover Image" list for Baka-Tsuki on the UI |
| js/DefaultParserUI.js | Logic for the "Default Parser" on the UI |
| js/Download.js | Wraps Chrome's Download API. (Handles saving EPUB to hard drive.) |
| js/EpubItem.js | An item to pack into an EPUB file. (e.g. an XHTML or image file) |
| js/EpubItemSupplier.js | Converts "files" from internet into EpubItems to pack into an EPUB |
| js/EpubMetaInfo.js | Container holding metadata for an EPUB. |
| js/EpubPacker.js | Assembles EPUB using metadata and items from supplier |
| js/ErrorLog.js | Records errors/warnings and displays to user and/or saves to file |
| js/Firefox.js | Code that is only needed by Firefox version of WebToEpub |
| js/HttpClient.js | Wraps making HTTP calls to internet. Retry, decode response, etc. |
| js/ImageColletor.js | Fetch images from internet, remove duplicates, rewrite image tags for EPUB, etc. |
| js/Imgur.js | Logic for fetching/processing images and galleries from Imgur |
| js/Parser.js | Base class for reading a site's HTML and converting into EpubItems |
| js/ParserFactory.js | Logic to figure out which parser to use for a web page |
| js/ProgressBar.js | Code to manipulate the Progress Bar on the UI |
| js/Sanitize.js | Code to cleanup converting HTML to XHMTL |
| js/UserPreferences.js | UI logic for user to set Options |
| js/Util.js | Library of miscellaneous functions |
Note. due to need to fix up hyperlinks that may cross chapters, can’t convert web pages until all pages have been collected.
ToDo - include special case of EPUB that has multiple sites with different formats requiring different parsers.
| Problem | See Parser |
| Site does not use UTF8 encoding or inform of coding used | 69shu |
| Each chapter spans multiple HTML pages | YushuboParser.js |
| Chapters "links" in Table of Contents (ToC) are not hyperlinks | ArchiveOfOurOwn |
| Walk multiple ToC pages to get all Chapters | BabelChain, Scribblehub |
| Make multiple REST calls to get all ToC "pages" for all Chapters | Novelsect |
| ToC requires REST call(s) to list all chapters | GravityTales, Lnmtl |
| ToC across multiple HTML pages | AsianHobbyist, Novelfull, Shinsori, ZenithNovels |
| Assemble chapter content from JSON | Novelsect |