npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

fimfic2epub

v1.7.58

Published

Tool to generate improved EPUB ebooks from Fimfiction stories

Downloads

340

Readme

NPM

fimfic2epub logo

fimfic2epub

This is a tool to generate better EPUB ebooks from Fimfiction stories. It's also a Chrome/Firefox extension, replacing the default EPUB download option with this tool. If you're on an Arch Linux-based system you can install it from the Arch User Repository.

Screenshot of the web extension

Features

  • The generated ebook is in modern EPUB3 format with fallbacks for older EPUB2 reading systems
  • Improved styling and formatting of content compared to Fimfiction's export options
  • Cover image can be changed from an image file or url
  • Downloads and embeds artwork from the story inside the EPUB file, including YouTube thumbnails, for optimal offline reading and archiving (optional)
  • Rating, tags, status, story description and more info are available on the title page
  • The table of contents page includes chapter modification dates and word counts
  • Option to put all author notes in an index at the end of the ebook
  • Option to not add a title heading for chapters (in case the story has its own)
  • Tweak paragraph style from double-spaced to indented (similar to book typesetting, may not look good on every story)
  • Emoji, icon and webp support (webp images gets converted to png)
  • Calculate the Flesch reading ease value of the story
  • Customize metadata of the generated ebook, such as title, author, subjects and description
  • Command line tool with same features as the web extension

Demo

You can have a look at what a generated EPUB looks like here. It was generated from the story Summer Island.

Usage (web extension)

You can download the Chome extension from Chrome Web Store and Firefox Add-ons

Installation & usage (command line)

You can install the tool by running npm install -g fimfic2epub. On Arch Linux-based systems you can install it from the AUR like this: yay -S fimfic2epub (replace yay with your favorite AUR-helper)

You can then run the tool it like this:

$ fimfic2epub <story id/url> [<optional filename>]

By default the EPUB will be saved in the current working directory with the filename Author - Title.epub. Run fimfic2epub -h to see a list of all flags.

  Usage: fimfic2epub [options] <story> [filename]

  Tool to generate improved EPUB ebooks from Fimfiction stories

  Options:

    -V, --version                output the version number
    -d, --dir <path>             Directory to store ebook in. Is prepended to filename
    -t, --title <value>          Set the title of the story
    -a, --author <value>         Set the author of the story
    -T, --typogrify              Enable typographic fixes (smart quotes, dashes, ellipsis, ordinal)
    -c, --no-comments-link       Don't add link to online comments
    -H, --no-headings            Don't add headings to chapters (includes chapter title, duration and word count)
    -W, --no-chapter-word-count  Don't add word count to chapter headings
    -D, --no-chapter-duration    Don't add time to read to chapter headings
    -b, --no-bars                Don't add chapter bars to show reading progress
    -r, --no-reading-ease        Don't calculate Flesch reading ease
    -e, --no-external            Don't embed external resources, such as images (breaks EPUB spec)
    -n, --no-notes               Don't include author notes
    -i, --notes-index            Create an index with all author notes at the end of the ebook
    -p, --paragraphs <style>     Select a paragraph style <spaced|indented|indentedall|both> (default: spaced)
    -k, --kepubify               Add extra <span> elements for Kobo EPUB (KEPUB) format
    -j, --join-subjects          Join dc:subjects to a single value
    -w, --wpm <number>           Words per minute. Set to 0 to disable reading time estimations (default: 200)
    -C, --cover <url>            Set cover image url
    -h, --help                   output usage information

Examples

Download with automatic filename:
$ fimfic2epub 289663
$ fimfic2epub https://www.fimfiction.net/story/289663/summer-island

Download and save to a specified dir/filename:
$ fimfic2epub 289663 path/to/file.epub
$ fimfic2epub --dir path/to/my/dir 289663 ebook_%id%.epub # %id% gets replaced by the story id

Building

Make sure Node.js is installed. After you've cloned this repository, run npm install and npm run build to build it. This project uses gulp.

Development

When developing the code, you can run npm run dev watch. This will rebuild the code quickly and lint it when you save. To just lint, run npm run dev lint and to clean, run npm run dev clean. To build for production, just run npm run build.

To test the Chrome extension, click Load Unpacked and pick the extension/ directory. To test the Firefox extension, go to Add-ons and Debug Add-ons. Then Load Temporary Add-on and pick the extension.xpi file. To reload them after a rebuild, click the Reload button in Chrome and/or Firefox.

License

MIT