lemmabit / ffn2epub

an alternative EPUB generator for Fimfiction.net stories
Other
2 stars 0 forks source link

Fimfiction to EPUB

This userscript enhances Fimfiction's "Download Story (.epub)" button with a custom generator. Its publications ought to be compatible with EPUB 2.0, EPUB 3.0, and EPUB 3.1 readers.

Installation

The script can be installed from OpenUserJS.org.

Why?

I thought it was really cool when I found out that Fimfiction had a built-in EPUB generator for reading offline and on e-readers, but its output seemed a little barren to me. Since I didn't have an actual use for it myself at the time, my solution was to put together EPUB versions of my own stories (well, one of the two stories I've published so far at the time of this writing) for the benefit of other people.

But then I got an e-reader of my own, and I wanted to read Fimfiction stories on it. I came to realize that the scope of my obsessive-compulsiveness extended well beyond my own stories, which I wasn't planning on reading anyway for obvious reasons.

So I wrote this script to put together EPUB versions of everyone's stories. For the benefit of me. And other people.

Features for normal people

Note that your e-reader might go straight to the first chapter when you open the book, skipping the cover, long description, and table of contents. That's because I marked that stuff as nonlinear, i.e. not critical for understanding the story. According to the specification, the e-reader is under no obligation to let you access it, but it should at least give you a table of contents.

Features for nerds

What if my device can't read EPUBs?

Your device can probably read EPUBs. You can use Calibre to convert EPUB to other formats if you really want to use a system that makes that necessary.

Building

To build this script, you'll first need to have Node.js and NPM installed. Then enter the directory you checked the repository out to and run npm install to install the dev dependencies. (These packages are only installed in the current directory.) After that, just run npm run build to build the script.

If npm run build is too much typing for you, install the Gulp CLI globally and you'll be able to build the project with just gulp. You can install the Gulp CLI with npm install -g gulp-cli, but it may also be available in your operating system's official repositories. For instance, Arch Linux users can install it with pacman -S gulp.

Why does your code suck so bad?

I just want to read some stories about ponies, man. I don't have time for this "abstraction" stuff, or "comments", or "unit tests", and definitely not "lines under 280 characters long". That's a load of tortellini or some such funny-named, non-vulgar thing. Just accept the beauteous beauty of the EPUBs themselves, which are beautiful. (That's just my most humble opinion, of course, but it's also true.)