# eBook Add-on

**URL:** <https://discuss.write.as/t/ebook-add-on/1271>\
**Category:** Labs\
**Created:** [April 15, 2020, 6:14pm UTC](https://discuss.write.as/t/ebook-add-on/1271 "2020-04-15T18:14:27Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![matt](https://discuss.write.as/user_avatar/discuss.write.as/matt/32/2760_2.png) [@matt](https://discuss.write.as/u/matt)\
**Post date:** [April 18, 2020, 6:21pm UTC](https://discuss.write.as/t/ebook-add-on/1271/22 "2020-04-18T18:21:56Z")

</div>

Thanks for the feedback, everyone! Here’s what I’m gathering so far:

- We’ll need to offer customization around pinned posts: include at front, include at back, exclude completely. Would anyone want to include only _certain_ pinned posts, as opposed to the whole bunch?

- We should include custom blog CSS with the ebook. I would like to keep this as simple as possible, so I’d prefer to avoid this upcoming suggestion, but would anyone want a separate custom stylesheet for the ebook?

To address some questions / feedback:

> [@DeaconPatrick](#):
>
> Set “landing page” when first opening it to the first chapter, skipping the front matter.

@DeaconPatrick, do you mean this would exclude all front matter in the ebook? Or that we might somehow tell the ereader to open to the first chapter?

> [@scott](#):
>
> Matt’s original announcement in the forum mentioned that the EPUB export is better suited to text-only blogs/sites. But I noticed that with one or two of the desktop ebook readers I used, images on a page display.

Images are fetched remotely, so they will show up on internet-connected devices. But the goal is to include them in the ebook itself, so you can read it completely offline.

> [@scott](#):
>
> That error is caused by the img tag on pages, which isn’t properly formed (either in the EPUB or on Write.as). The closing / of the tag is missing in both.

This is fixed now, though testing with Sigil still brings up some other errors for me. We’ll keep working at 100% correctly-formatted files.

> [@scott](#):
>
> When then EPUB downloads (at least when using Firefox), the file name is the first word of a site’s or blog’s name/title and the .EPUB extension isn’t added to the file name.

This is fixed too – just needed to adjust the HTTP headers to work with spaces.

---

<div class="post-metadata">

**Author:** ![scott](https://discuss.write.as/letter_avatar_proxy/v4/letter/s/3e96dc/32.png) [@scott](https://discuss.write.as/u/scott)\
**Post date:** [April 18, 2020, 8:37pm UTC](https://discuss.write.as/t/ebook-add-on/1271/23 "2020-04-18T20:37:59Z")

</div>

That’s some fine, fast work there!

> Images are fetched remotely, so they will show up on internet-connected devices. But the goal is to include them in the ebook itself, so you can read it completely offline.

That actually seems to depend on the ebook reader, too. The images show up when using Calibre’s ebook reader and in Sigil, but not in Foliate (there’s just an empty rectangle). But at least the nasty malformed HTML tag message isn’t there!

Thanks for all the work that you and the team are putting into this feature, @matt!

---

<div class="post-metadata">

**Author:** ![DeaconPatrick](https://discuss.write.as/user_avatar/discuss.write.as/deaconpatrick/32/135_2.png) [@DeaconPatrick](https://discuss.write.as/u/DeaconPatrick)\
**Post date:** [April 18, 2020, 9:08pm UTC](https://discuss.write.as/t/ebook-add-on/1271/24 "2020-04-18T21:08:43Z")

</div>

Set landing page to first chapter: Generally when I open an eBook for the first time, it opens to the first chapter (Kindle Paperwhite). This happens because it automatically (I think?) skips anything marked as front matter, while still retaining the front matter.

---

<div class="post-metadata">

**Author:** ![mistynotes](https://discuss.write.as/user_avatar/discuss.write.as/mistynotes/32/527_2.png) [@mistynotes](https://discuss.write.as/u/mistynotes)\
**Post date:** [April 20, 2020, 11:24am UTC](https://discuss.write.as/t/ebook-add-on/1271/25 "2020-04-20T11:24:33Z")

</div>

> We should include custom blog CSS with the ebook. I would like to keep this as simple as possible, so I’d prefer to avoid this upcoming suggestion, but would anyone want a separate custom stylesheet for the ebook?

Although one could argue that an ebook is not a blog and needs a little bit different css, I am ok with having the option to include the customized blog css in the generated ebook. It is always possible to make some changes afterwards. Thanks again for this great feature!

---

<div class="post-metadata">

**Author:** ![egoecho](https://discuss.write.as/user_avatar/discuss.write.as/egoecho/32/335_2.png) [@egoecho](https://discuss.write.as/u/egoecho)\
**Post date:** [April 20, 2020, 8:04pm UTC](https://discuss.write.as/t/ebook-add-on/1271/26 "2020-04-20T20:04:21Z")

</div>

First: I am very happy with the new feature, still playing around with it, but looks good already.

In addition:

- yes, I would def like to exclude (some) pinned posts;
- also (if possible) to have an option to _only_ use a certain tag, even if the post itself has more tags. For example, if I tagged a post with both prose and poetry, the option the generate an eBook with only one of them;
- and… in the output remove the tag (so it will not appear in the output)…?

---

<div class="post-metadata">

**Author:** ![dino](https://discuss.write.as/user_avatar/discuss.write.as/dino/32/645_2.png) [@dino](https://discuss.write.as/u/dino)\
**Post date:** [April 27, 2020, 4:36am UTC](https://discuss.write.as/t/ebook-add-on/1271/27 "2020-04-27T04:36:49Z")

</div>

Would there be some stats or an indication that people have actually downloaded the ebooks?

---

<div class="post-metadata">

**Author:** ![veyne](https://discuss.write.as/letter_avatar_proxy/v4/letter/v/e480ec/32.png) [@veyne](https://discuss.write.as/u/veyne)\
**Post date:** [May 20, 2020, 4:52am UTC](https://discuss.write.as/t/ebook-add-on/1271/28 "2020-05-20T04:52:33Z")

</div>

So I’ve tried it (on my mobile). Typed the adress, got an epub instantly (without having to rename it to add the .epub extension).

The result is nearly flawless : each post is a “chapter”, and the formatting is top notch.

Much to my surprise, with the android App Librium you can play videos inside the book.

I still haven’t tested it on desktop, but overall impression is fantastic.

On a side note, I’ve been looking for FOSS android epub apps, but there are almost always none (correct me if I’m wrong).

Also, but it is unavoidable: each reader has its preset rules and formatting is different on different readers (gotta do with it).

Finally I agree with these points mentionned by Deacon Patrick and scott:

- (_selected_) pinned posts as front matter and posts as chapters
- Set landing page to the 1st chapter

I’m not sure about custom css (complicated to implement and it won’t be used by many; plus I might be wrong but you can edit the CSS yourself “manually”).

Anyway, that’s a much welcome addition to the tools available, thanks!

---

<div class="post-metadata">

**Author:** ![veyne](https://discuss.write.as/letter_avatar_proxy/v4/letter/v/e480ec/32.png) [@veyne](https://discuss.write.as/u/veyne)\
**Post date:** [May 30, 2020, 5:50am UTC](https://discuss.write.as/t/ebook-add-on/1271/29 "2020-05-30T05:50:55Z")

</div>

Made a first try. In order to exclude to post announcing the possibility to download the epub, I used a # that I put in all posts except the epub post. However, if your blog is called X and the # is, for instance “book1”, then the cover generated will look like that:

Book1

By X

If you don’t use the tag, the cover will be your blog name in big bold letters.

There are two workarounds so far, probably more:

- Someone else used this trick: creating another blog dedicated to the epub and without the posts you want to exclude

- Or, if you use the tag method, I think you’d get a better cover if your tag is capitalized and contain invisible HTML characters in order to replace spaces:  
for instance: tag: FIRST YEAR IN CANADA.

There are multiple ways to createb invisible characters, just gotta find which ones work.

---

<div class="post-metadata">

**Author:** ![triptych](https://discuss.write.as/user_avatar/discuss.write.as/triptych/32/226_2.png) [@triptych](https://discuss.write.as/u/triptych)\
**Post date:** [August 9, 2020, 7:32pm UTC](https://discuss.write.as/t/ebook-add-on/1271/30 "2020-08-09T19:32:01Z")

</div>

I love the idea of this. I know there are sites like LeanPub that use this as their main feature. ( ePub plus others like .mobi, pdf)  
My asks would be:  
support epub, .mobi, pdf  
Allow a way to auto updated all the “exported” formats so say you edited a post it would

1. version all the exports
2. create new files
3. notify all “subscribers” that there was a new version posted.

---

<div class="post-metadata">

**Author:** ![ariadnemm](https://discuss.write.as/user_avatar/discuss.write.as/ariadnemm/32/904_2.png) [@ariadnemm](https://discuss.write.as/u/ariadnemm)\
**Post date:** [June 20, 2021, 3:29pm UTC](https://discuss.write.as/t/ebook-add-on/1271/31 "2021-06-20T15:29:31Z")

</div>

I love this feature!  
It works well on my main blog.

But I just I tried this with a private blog and I got the following error:  
`{"code":500,"error_msg": "This is an unhelpful error message for a miscellaneous internal error."}`

Does anyone know what might be the error?

---

<div class="post-metadata">

**Author:** ![matt](https://discuss.write.as/user_avatar/discuss.write.as/matt/32/2760_2.png) [@matt](https://discuss.write.as/u/matt)\
**Post date:** [June 27, 2021, 7:53pm UTC](https://discuss.write.as/t/ebook-add-on/1271/33 "2021-06-27T19:53:05Z")

</div>

Hey @ariadnemm, really glad you like it! I’ll need to take a look at this internally to see what might’ve caused it.

Could you share the name of the blog that’s giving you this error in a private message to [@support](https://discuss.write.as/groups/support)? Or could you try downloading the .epub again and let me know once you’ve done that, so I can look up the error?

---

<div class="post-metadata">

**Author:** ![ariadnemm](https://discuss.write.as/user_avatar/discuss.write.as/ariadnemm/32/904_2.png) [@ariadnemm](https://discuss.write.as/u/ariadnemm)\
**Post date:** [June 29, 2021, 12:00am UTC](https://discuss.write.as/t/ebook-add-on/1271/35 "2021-06-29T00:00:41Z")

</div>

Yes, I sent a private message to [@support](https://discuss.write.as/groups/support). Thanks!

---

<div class="post-metadata">

**Author:** ![matt](https://discuss.write.as/user_avatar/discuss.write.as/matt/32/2760_2.png) [@matt](https://discuss.write.as/u/matt)\
**Post date:** [June 29, 2021, 2:43pm UTC](https://discuss.write.as/t/ebook-add-on/1271/36 "2021-06-29T14:43:39Z")

</div>

I appreciate it! It looks like this was a wider issue that didn’t just affect private blogs. It was limited to one of our backend servers, which means it would’ve happened occasionally, depending on where your request landed. But this is fixed for everyone now!

---

<div class="post-metadata">

**Author:** ![jas](https://discuss.write.as/user_avatar/discuss.write.as/jas/32/3452_2.png) [@jas](https://discuss.write.as/u/jas)\
**Post date:** [October 6, 2021, 10:42am UTC](https://discuss.write.as/t/ebook-add-on/1271/37 "2021-10-06T10:42:16Z")

</div>

This looks cool!

And, as someone who quickly realised he could _not_ format his own ebook (i.e. convert from MS Word to ePUB), if this effectively enables me to self-format in an easy way, this would be especially handy.

In general, I also _love_ the idea of being able to convert my blog posts to a book format, as I have a feeling I might publish some kind of memoir/journal of my blog posts as some point.

---

<div class="post-metadata">

**Author:** ![DavidBlue](https://discuss.write.as/user_avatar/discuss.write.as/davidblue/32/258_2.png) [@DavidBlue](https://discuss.write.as/u/DavidBlue)\
**Post date:** [February 21, 2022, 1:20pm UTC](https://discuss.write.as/t/ebook-add-on/1271/38 "2022-02-21T13:20:20Z")

</div>

![Generic Server Error](https://user-images.githubusercontent.com/43663476/154961871-cda6612b-d29a-44bf-a60c-81e472788928.png)

I’ve been getting this generic server error when trying to download .epub files from `bilge.world/.epub` and `bilge.writeas.com/.epub` though these two still work:

- `chaff.writeas.com/.epub`
- `extratone.com/.epub`

Could this be a domain error or perhaps my Bilge has simply gotten Too Big?

---

<div class="post-metadata">

**Author:** ![matt](https://discuss.write.as/user_avatar/discuss.write.as/matt/32/2760_2.png) [@matt](https://discuss.write.as/u/matt)\
**Post date:** [February 21, 2022, 1:53pm UTC](https://discuss.write.as/t/ebook-add-on/1271/39 "2022-02-21T13:53:05Z")

</div>

Thanks for the heads up! I’m not sure what the root cause is, though it looks like we’re not gracefully handling the error, which caused this. I’ll get a fix in and then we can figure out what exactly is causing it.

---

<div class="post-metadata">

**Author:** ![justinf](https://discuss.write.as/user_avatar/discuss.write.as/justinf/32/1242_2.png) [@justinf](https://discuss.write.as/u/justinf)\
**Post date:** [February 25, 2022, 1:10am UTC](https://discuss.write.as/t/ebook-add-on/1271/40 "2022-02-25T01:10:32Z")

</div>

Two notes. I am trying this feature but can’t use it at present because:

**1. Every other page has some error on it. Here is an example:**

“This page contains the following errors:  
error on line 31 at column 11: Opening and ending tag mismatch: hr line 0 and article  
Below is a rendering of the page up to the first error.”

**2. The Post Signature field is included on every post.**  
Can that get excluded? Doesn’t seem appropriate to have that published for every post.

---

<div class="post-metadata">

**Author:** ![matt](https://discuss.write.as/user_avatar/discuss.write.as/matt/32/2760_2.png) [@matt](https://discuss.write.as/u/matt)\
**Post date:** [February 25, 2022, 9:20pm UTC](https://discuss.write.as/t/ebook-add-on/1271/41 "2022-02-25T21:20:20Z")

</div>

> [@justinf](#):
>
> 1. Every other page has some error on it.

I’d guess that this might have to do with some HTML in the posts – I think the epub format works best with the valid HTML we render. Taking a look at your posts, this might be from the post signature? So…

> [@justinf](#):
>
> 1. The Post Signature field is included on every post.

I’ll change this behavior. Agreed that it probably doesn’t make sense to include in the ebook. Hopefully that’ll also fix issue #1.

---

<div class="post-metadata">

**Author:** ![justinf](https://discuss.write.as/user_avatar/discuss.write.as/justinf/32/1242_2.png) [@justinf](https://discuss.write.as/u/justinf)\
**Post date:** [February 28, 2022, 2:22am UTC](https://discuss.write.as/t/ebook-add-on/1271/42 "2022-02-28T02:22:21Z")

</div>

The error is a result of the images at the top of every blog post I assume. Still exists - thought snap.as images would be supported.

---

<div class="post-metadata">

**Author:** ![DavidBlue](https://discuss.write.as/user_avatar/discuss.write.as/davidblue/32/258_2.png) [@DavidBlue](https://discuss.write.as/u/DavidBlue)\
**Post date:** [March 4, 2022, 5:35pm UTC](https://discuss.write.as/t/ebook-add-on/1271/43 "2022-03-04T17:35:57Z")

</div>

This would make sense because I’ve started to use GitHub as an image host on the blog that’s not working to reduce my load on Snap.as. (A nono, I know, but it’s just so tempting lol.)

[Previous page](https://discuss.write.as/t/ebook-add-on/1271.md?page=1)

[Next page](https://discuss.write.as/t/ebook-add-on/1271.md?page=3)
