WebToEpub
(c) 2015 David Teviotdale
Extension for Firefox and Chrome that converts Web Novels (and other web pages) into an EPUB. Works with many sites, including the following:
- Baka-Tsuki.org
- ArchiveOfOurOwn.org
- blogspot (some)
- mugglenet.com
- FanFiction.net
- gravitytales.com
- hellping.org
- krytykal.org
- moonbunnycafe.com
- nanodesu (some of the *thetranslation.wordpress.com sites)
- readlightnovel.com
- royalroad.com
- shikkakutranslations.org
- sonako.wikia.com
- wuxiaworld.com
- rebirth.online
- and many other sites
Credits
- Firefox port by Markus Vieth
- Michael Fox (Belldandu)
- typhoon71
- toshiya44
- dreamer2908
- Parser for German Project Gutenberg by GallusMax
- Hogesyx
- Asif Mahmood
- snnsnn
- Sergii Pravdzivyi
- Aurimas Niekis
- Tom Goetz
- Alen Toma (css styling)
- JimmXinu
- gamebeaker (additional metadata, Library)
- Kondeeza
- Mathnerd314
- Sickan90
- Miracutor
- Kiradien
- Synteresis
- Lej77
- nandakishore2009 (Parsers for madnovel.com, www.panda-novel.com)
- courli79
- Dimava
- alethiophile
How to use with Baka-Tsuki:
- Browse to a Baka-Tsuki web page that has the full text of a story.
- Click on the WebToEpub icon on top right of the window.
- Check story details are correct.
- Select image to use for cover.
- Click the "Pack EPUB" button.
- Wait for progress bar to finish (indicating the images being downloaded) and the generated EPUB to be placed in your downloads directory.
How to use with Archive of Our Own:
- Browse to first chapter of story you want.
- Click on the WebToEpub icon on top right of the window.
- Check story details are correct.
- Click the "Pack EPUB" button.
- Wait for progress bar to finish (indicating the additional chapters are being downloaded) and the generated EPUB to be placed in your downloads directory.
How to use for site that there is no specific parser for:
See: https://dteviot.github.io/Projects/webToEpub_DefaultParser.html
How to create Parsers for new sites
For details on how to extend, see the following
- https://dteviot.github.io/Projects/webToEpub_FAQ.html#write-parser
- https://dteviot.github.io/Projects/webToEpub_FAQ.html
- http://www.codeproject.com/Articles/1060680/Web-to-EPUB-Extension-for-Chrome.
How to install
from Chrome Web Store
- Start Chrome
- Go to https://chrome.google.com/webstore/detail/webtoepub/akiljllkbielkidmammnifcnibaigelm
- Click on the "Add to Chrome" button.
with Firefox
- Start Firefox
- Go to https://addons.mozilla.org/en-US/firefox/addon/webtoepub-for-baka-tsuki
- Click on "Download anyway"
on Android
- Caution I have not (and do not test) on Android. I've been told the following work, but I can't guarantee them.
- Get yourself
Kiwi browser
,Yandex browser
, orFirefox nightly
(not default Firefox branch, it does not supports extensions.) - Install from
Chrome web store
for Kiwi and Yandex, of fromMozilla addons
for Firefox Nightly (links above).
How to install from Source (for people who are not developers)
Firefox
The easiest set of steps is using Firefox.
- Download prebuilt Firefox version of extension from https://drive.google.com/drive/folders/1B_X2WcsaI_eg9yA-5bHJb8VeTZGKExl8?usp=sharing.
- Open Firefox and type "about:debugging#/runtime/this-firefox" into the URL bar.
- Click "Load Temporary Add-on".
- Click on the zip file you downloaded in step 1.
Chrome
- Download prebuilt Chrome version of extension from https://drive.google.com/drive/folders/1B_X2WcsaI_eg9yA-5bHJb8VeTZGKExl8?usp=sharing.
- Unpack zip file
- Open Chrome and type "chrome://extensions" into the browser.
- Make sure "Developer Mode" at the top of the page is checked.
- Press the "Load unpacked extension.." button and browse to unpacked zip directory from step 2.
How to install from Source (for developers)
- Clone this repo
- Build extension. See "To run Eslint (and build the plugin)" in "Other notes" below.
- Install extension in browser of choice, using instructions above.
License information
Licenced under GPLv3.
WebToEpub uses the following libraries:
- JSZip library v3.0.0: https://github.com/Stuk/jszip, which is dual licensed with the MIT license or GPLv3.
- quint: http://qunitjs.com/, licensed under MIT license.
Other notes
To run Eslint (and build the plugin)
- Install Node.js (if not already installed)
- Run
npm install
to install dependencies - Run
npm run lint
to build plugin and lint - This will produce 3 files in the eslint directory.
- WebToEpub0.0.0.x.xpi (Firefox version of plug-in.)
- WebToEpub0.0.0.x.zip (Chrome version of plug-in.)
- packed.js
- Lint tests are OK if output ends with
Wrote Zip to disk; Done in XXXs.
To run unit tests
- Install Node.js (if not already installed)
- Run
npm install
to install dependencies - Run
npm test
- Tests will be launched in your default browser. To open them in different browser, open the page URL in it.
To run unit tests without Node.js
- If you are not trying to run unit tests in
/unitTest/
folder, you do not need this- If you can use nodejs, see previous paragraph instead
- If you can not install nodejs or http-server is not working when you run
npm test
, and you have no alternative ways to serve files (like chrome Web Server app for example), you have to allow browser to run local html files to run tests.To run unit tests (without local server) under Chrome
- Close all running copies of Chrome
- Start Chrome with command line argument
--allow-file-access-from-files
. That is:
- Open a command propmt
- Browse to the directory holding Chrome
- Type in command
chrome.exe --allow-file-access-from-files
. Press "Enter".- If you don't do this, some tests will fail with error messages containing the text Failed to execute 'send' on 'XMLHttpRequest': Failed to load.
- Load
unitTest/Tests.html
- If you get Failed to read the 'localStorage' property from 'Window': Access is denied for this document errors
- Type chrome://settings/content into Chrome's search bar
- Uncheck Block third-party cookies and site data
- Click Finished
- Re-run unit tests
- When finished with unit tests.
- Restore original value of Block third-party cookies and site data (if you changed it).
- close all running copies of Chrome
To run unit tests (without local server) under Firefox
- Start Firefox
- Go to
about:config
- Find
security.fileuri.strict_origin_policy
parameter- Set it to false
- Load
unitTest/Tests.html
- (Remember to reset
security.fileuri.strict_origin_policy
to true when done.