Just scratched an coding itch I've had for quite some time.
This gem scrapes stories from FanFiction.net and generates LaTeX PDFs. Polished turds, anyone?
Ruby hackers already know how to install this stupid gem. But for everyone else, here's how to install it in Ubuntu.
First install Ruby. I'm guessing the gem won't work with ruby 1.8 so you'll need to install ruby 1.9:
sudo apt-get install ruby1.9.1 ruby1.9.1-dev build-essential libxml2 libxml2-dev libxslt1-dev
Then install the gem via
sudo gem install ffnpdf
It also requires pandoc as well as a bunch of extra stuff related to LaTeX/XeTeX. In Ubuntu, you can install this using the following command:
sudo apt-get install pandoc texlive-latex-extra texlive-xetex
It also uses DejaVu Fonts as the default font. This font family is installed by default in Ubuntu.
The basic command only requires the story's story ID.
This will scrape FFN for the story, convert the chapters into markdown, combine all chapters into a single file, and converts it into PDF, all inside the
Since you may want to do your own edits to the fics (e.g. remove authors notes, correct chapter headers) there are additional commands that allow you to perform individual steps of the process.
ffnpdf pull [STORY_ID]
- creates the
- pulls chapters and converts them to Markdown
- creates template and variables (config) file
The markdown files are numbered from
0001.md onwards. A title section,
0000.md, is also created.
xetex.template file is obviously the XeTeX template, while the
variables.txt defines the template variables section used when generating the PDF. Both can be modified to affect the result of running both
ffnpdf build and
ffnpdf build [STORY_ID]
- combines all
.mdfiles to a single file,
combined.md, in alphabetical order
combined.pdfwhile using both the template and variables file
ffnpdf convert [STORY_ID]
This command does only the second step of the Build i.e. converts
I've made a YouTube playlist with demos and how-tos here.
Page numbering in bookmark is incorrect for stories with long Table of Contents
It's a tradeoff between wrong numbering in the Table of Contents or in the bookmarks. I chose the latter.
I still don't know the root cause, though.