[ Question ]

Is there an easy way to turn a LW sequence into an epub?

by ChristianKl1 min read18th Jul 20207 comments

15

Site Meta
Personal Blog

I'm interested in reading Kaj's sequence on my Kindle. What's the best way to get a sequence like this into a form that I can load on my Kindle?

New Answer
Ask Related Question
New Comment

3 Answers

There is a Github repository that I fixed up a few months ago that allows you to do this, though it's definitely not a great UI experience: 

https://github.com/LessWrong2/LessWrong-Portable

I've had it on my to-do list for a while to add a "download as PDF" and "download as Epub" button to sequence-pages, but I haven't gotten around to it, and it's not super high on the priority list, though if enough people want that, it's likely to happen faster.

I'd really like this feature as well

3Yoav Ravid9moSame

A button that changes a sequence into one really long post might also be sufficient when paired with other tools, e.g. instapaper.

I just checked the WebToEpub parser on the sequence page and the default parser does a fairly decent job of this.  Simply copy the first link from the sequence and put it in the "URL of first chapter" link.

then, on the second page, uncheck the 3 irrelevant links and click pack epub.  It's not perfect but it correctly creates a table of contents, does a decent job of formatting, and pulls in only the articles not the comments.

Could be cool to add download links to some sequences. for example Zvi's Immoral Mazes sequence is one i'm more likely to read on an e-reader, and i think it's pretty much book-length.

Use the LW GraphQL API (https://www.lesswrong.com/posts/LJiGhpq8w4Badr5KJ/graphql-tutorial-for-lesswrong-and-effective-altruism-forum) to query for the html of the posts, and then use something like pandoc to translate said html into latex, and then to epub.

Link to the graphQL API

The command needed to get a particular post:

 {
      post(input: {
        selector:{
          _id: "ZyWyAJbedvEgRT2uF"
        }
      }) {
        result {
          htmlBody
        }
      }
    }