eBook Add-on

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.)

Sorry it´s compatible this format with Amazon E-reades with .mobi extension?

I think it’s actually from the signature HTML, based on this message:

Opening and ending tag mismatch: hr line 0

It’s saying there’s an opening <hr> tag without a closing </hr> tag to match it. Snap.as images should work just fine in the ebooks! Assuming you’re using Markdown to include them, or valid XHTML <img /> tags.

Right now, we only export .epub files. We might support the .mobi format in the future though.

2 Likes

ahhh ok!
thanks!

I asked this here before realising this entire topic existed, apologies: Is there a way to disable ebooks for a specific blog but have it enabled on another?

Hi, was this feature disabled?
I cannot get it to work.

Not with by blog: https://write.as/kroeber/.epub
Not with the example provided: https://write.as/blog/.epub

It stopped working at least months ago.

1 Like

@Kroeber I can download the ebook from my blog but the generated ePub file doesn’t validate and Google Play Books rejects it with an error. For example, the Draft2Digital ePub validator returns a thick wall of errors:

ERROR(RSC-005): .tmp.tmpfjo5g478.epub/EPUB.package.opf(8,24): Error while parsing file: character content of element "dc:date" invalid; must be a string with length at least 1 (actual length was 0)

ERROR(CSS-001): .tmp.tmpfjo5g478.epub/EPUB.css.epub.css(1,405): The 'unicode-bidi' property must not be included in an EPUB Style Sheet.

ERROR(RSC-005): .tmp.tmpfjo5g478.epub/EPUB.xhtml.section0024.xhtml(38,20): Error while parsing file: attribute "align" not allowed here; expected attribute "about", "accesskey", "aria-activedescendant", "aria-atomic", "aria-autocomplete", "aria-busy", "aria-checked", "aria-colcount", "aria-colindex", "aria-colspan", "aria-controls", "aria-current", "aria-describedby", "aria-details", "aria-disabled", "aria-dropeffect", "aria-errormessage", "aria-expanded", "aria-flowto", "aria-grabbed", "aria-haspopup", "aria-hidden", "aria-invalid", "aria-keyshortcuts", "aria-label", "aria-labelledby", "aria-level", "aria-live", "aria-modal", "aria-multiline", "aria-multiselectable", "aria-orientation", "aria-owns", "aria-placeholder", "aria-posinset", "aria-pressed", "aria-readonly", "aria-relevant", "aria-required", "aria-roledescription", "aria-rowcount", "aria-rowindex", "aria-rowspan", "aria-selected", "aria-setsize", "aria-sort", "aria-valuemax", "aria-valuemin", "aria-valuenow", "aria-valuetext", "autocapitalize", "class", "colspan", "content", "contenteditable", "datatype", "dir", "draggable", "headers", "hidden", "id", "inlist", "is", "itemid", "itemprop", "itemref", "itemscope", "itemtype", "lang", "ns1:type", "ns2:alphabet", "ns2:ph", "onabort", "onautocomplete", "onautocompleteerror", "onblur", "oncancel", "oncanplay", "oncanplaythrough", "onchange", "onclick", "onclose", "oncontextmenu", "oncuechange", "ondblclick", "ondrag", "ondragend", "ondragenter", "ondragexit", "ondragleave", "ondragover", "ondragstart", "ondrop", "ondurationchange", "onemptied", "onended", "onerror", "onfocus", "onfocusin", "onfocusout", "oninput", "oninvalid", "onkeydown", "onkeypress", "onkeyup", "onload", "onloadeddata", "onloadedmetadata", "onloadstart", "onmousedown", "onmouseenter", "onmouseleave", "onmousemove", "onmouseout", "onmouseover", "onmouseup", "onpause", "onplay", "onplaying", "onprogress", "onratechange", "onreset", "onresize", "onscroll", "onseeked", "onseeking", "onselect", "onsort", "onstalled", "onsubmit", "onsuspend", "ontimeupdate", "ontoggle", "onvolumechange", "onwaiting", "onwheel", "prefix", "property", "rel", "resource", "rev", "role", "rowspan", "scope", "slot", "spellcheck", "style", "tabindex", "title", "translate", "typeof", "vocab", "xml:base", "xml:lang" or "xml:space" (with xmlns:ns1="http://www.idpf.org/2007/ops" xmlns:ns2="http://www.w3.org/2001/10/synthesis")

ERROR(RSC-005): .tmp.tmpfjo5g478.epub/EPUB.xhtml.section0024.xhtml(39,20): Error while parsing file: attribute "align" not allowed here; expected attribute "about", "accesskey", "aria-activedescendant", "aria-atomic", "aria-autocomplete", "aria-busy", "aria-checked", "aria-colcount", "aria-colindex", "aria-colspan", "aria-controls", "aria-current", "aria-describedby", "aria-details", "aria-disabled", "aria-dropeffect", "aria-errormessage", "aria-expanded", "aria-flowto", "aria-grabbed", "aria-haspopup", "aria-hidden", "aria-invalid", "aria-keyshortcuts", "aria-label", "aria-labelledby", "aria-level", "aria-live", "aria-modal", "aria-multiline", "aria-multiselectable", "aria-orientation", "aria-owns", "aria-placeholder", "aria-posinset", "aria-pressed", "aria-readonly", "aria-relevant", "aria-required", "aria-roledescription", "aria-rowcount", "aria-rowindex", "aria-rowspan", "aria-selected", "aria-setsize", "aria-sort", "aria-valuemax", "aria-valuemin", "aria-valuenow", "aria-valuetext", "autocapitalize", "class", "colspan", "content", "contenteditable", "datatype", "dir", "draggable", "headers", "hidden", "id", "inlist", "is", "itemid", "itemprop", "itemref", "itemscope", "itemtype", "lang", "ns1:type", "ns2:alphabet", "ns2:ph", "onabort", "onautocomplete", "onautocompleteerror", "onblur", "oncancel", "oncanplay", "oncanplaythrough", "onchange", "onclick", "onclose", "oncontextmenu", "oncuechange", "ondblclick", "ondrag", "ondragend", "ondragenter", "ondragexit", "ondragleave", "ondragover", "ondragstart", "ondrop", "ondurationchange", "onemptied", "onended", "onerror", "onfocus", "onfocusin", "onfocusout", "oninput", "oninvalid", "onkeydown", "onkeypress", "onkeyup", "onload", "onloadeddata", "onloadedmetadata", "onloadstart", "onmousedown", "onmouseenter", "onmouseleave", "onmousemove", "onmouseout", "onmouseover", "onmouseup", "onpause", "onplay", "onplaying", "onprogress", "onratechange", "onreset", "onresize", "onscroll", "onseeked", "onseeking", "onselect", "onsort", "onstalled", "onsubmit", "onsuspend", "ontimeupdate", "ontoggle", "onvolumechange", "onwaiting", "onwheel", "prefix", "property", "rel", "resource", "rev", "role", "rowspan", "scope", "slot", "spellcheck", "style", "tabindex", "title", "translate", "typeof", "vocab", "xml:base", "xml:lang" or "xml:space" (with xmlns:ns1="http://www.idpf.org/2007/ops" xmlns:ns2="http://www.w3.org/2001/10/synthesis")

ERROR(RSC-005): .tmp.tmpfjo5g478.epub/EPUB.xhtml.section0024.xhtml(45,20): Error while parsing file: attribute "align" not allowed here; expected attribute "about", "accesskey", "aria-activedescendant", "aria-atomic", "aria-autocomplete", "aria-busy", "aria-checked", "aria-colcount", "aria-colindex", "aria-colspan", "aria-controls", "aria-current", "aria-describedby", "aria-details", "aria-disabled", "aria-dropeffect", "aria-errormessage", "aria-expanded", "aria-flowto", "aria-grabbed", "aria-haspopup", "aria-hidden", "aria-invalid", "aria-keyshortcuts", "aria-label", "aria-labelledby", "aria-level", "aria-live", "aria-modal", "aria-multiline", "aria-multiselectable", "aria-orientation", "aria-owns", "aria-placeholder", "aria-posinset", "aria-pressed", "aria-readonly", "aria-relevant", "aria-required", "aria-roledescription", "aria-rowcount", "aria-rowindex", "aria-rowspan", "aria-selected", "aria-setsize", "aria-sort", "aria-valuemax", "aria-valuemin", "aria-valuenow", "aria-valuetext", "autocapitalize", "class", "colspan", "content", "contenteditable", "datatype", "dir", "draggable", "headers", "hidden", "id", "inlist", "is", "itemid", "itemprop", "itemref", "itemscope", "itemtype", "lang", "ns1:type", "ns2:alphabet", "ns2:ph", "onabort", "onautocomplete", "onautocompleteerror", "onblur", "oncancel", "oncanplay", "oncanplaythrough", "onchange", "onclick", "onclose", "oncontextmenu", "oncuechange", "ondblclick", "ondrag", "ondragend", "ondragenter", "ondragexit", "ondragleave", "ondragover", "ondragstart", "ondrop", "ondurationchange", "onemptied", "onended", "onerror", "onfocus", "onfocusin", "onfocusout", "oninput", "oninvalid", "onkeydown", "onkeypress", "onkeyup", "onload", "onloadeddata", "onloadedmetadata", "onloadstart", "onmousedown", "onmouseenter", "onmouseleave", "onmousemove", "onmouseout", "onmouseover", "onmouseup", "onpause", "onplay", "onplaying", "onprogress", "onratechange", "onreset", "onresize", "onscroll", "onseeked", "onseeking", "onselect", "onsort", "onstalled", "onsubmit", "onsuspend", "ontimeupdate", "ontoggle", "onvolumechange", "onwaiting", "onwheel", "prefix", "property", "rel", "resource", "rev", "role", "rowspan", "slot", "spellcheck", "style", "tabindex", "title", "translate", "typeof", "vocab", "xml:base", "xml:lang" or "xml:space" (with xmlns:ns1="http://www.idpf.org/2007/ops" xmlns:ns2="http://www.w3.org/2001/10/synthesis")

ERROR(RSC-005): .tmp.tmpfjo5g478.epub/EPUB.xhtml.section0024.xhtml(46,20): Error while parsing file: attribute "align" not allowed here; expected attribute "about", "accesskey", "aria-activedescendant", "aria-atomic", "aria-autocomplete", "aria-busy", "aria-checked", "aria-colcount", "aria-colindex", "aria-colspan", "aria-controls", "aria-current", "aria-describedby", "aria-details", "aria-disabled", "aria-dropeffect", "aria-errormessage", "aria-expanded", "aria-flowto", "aria-grabbed", "aria-haspopup", "aria-hidden", "aria-invalid", "aria-keyshortcuts", "aria-label", "aria-labelledby", "aria-level", "aria-live", "aria-modal", "aria-multiline", "aria-multiselectable", "aria-orientation", "aria-owns", "aria-placeholder", "aria-posinset", "aria-pressed", "aria-readonly", "aria-relevant", "aria-required", "aria-roledescription", "aria-rowcount", "aria-rowindex", "aria-rowspan", "aria-selected", "aria-setsize", "aria-sort", "aria-valuemax", "aria-valuemin", "aria-valuenow", "aria-valuetext", "autocapitalize", "class", "colspan", "content", "contenteditable", "datatype", "dir", "draggable", "headers", "hidden", "id", "inlist", "is", "itemid", "itemprop", "itemref", "itemscope", "itemtype", "lang", "ns1:type", "ns2:alphabet", "ns2:ph", "onabort", "onautocomplete", "onautocompleteerror", "onblur", "oncancel", "oncanplay", "oncanplaythrough", "onchange", "onclick", "onclose", "oncontextmenu", "oncuechange", "ondblclick", "ondrag", "ondragend", "ondragenter", "ondragexit", "ondragleave", "ondragover", "ondragstart", "ondrop", "ondurationchange", "onemptied", "onended", "onerror", "onfocus", "onfocusin", "onfocusout", "oninput", "oninvalid", "onkeydown", "onkeypress", "onkeyup", "onload", "onloadeddata", "onloadedmetadata", "onloadstart", "onmousedown", "onmouseenter", "onmouseleave", "onmousemove", "onmouseout", "onmouseover", "onmouseup", "onpause", "onplay", "onplaying", "onprogress", "onratechange", "onreset", "onresize", "onscroll", "onseeked", "onseeking", "onselect", "onsort", "onstalled", "onsubmit", "onsuspend", "ontimeupdate", "ontoggle", "onvolumechange", "onwaiting", "onwheel", "prefix", "property", "rel", "resource", "rev", "role", "rowspan", "slot", "spellcheck", "style", "tabindex", "title", "translate", "typeof", "vocab", "xml:base", "xml:lang" or "xml:space" (with xmlns:ns1="http://www.idpf.org/2007/ops" xmlns:ns2="http://www.w3.org/2001/10/synthesis")

ERROR(RSC-005): .tmp.tmpfjo5g478.epub/EPUB.xhtml.section0024.xhtml(50,20): Error while parsing file: attribute "align" not allowed here; expected attribute "about", "accesskey", "aria-activedescendant", "aria-atomic", "aria-autocomplete", "aria-busy", "aria-checked", "aria-colcount", "aria-colindex", "aria-colspan", "aria-controls", "aria-current", "aria-describedby", "aria-details", "aria-disabled", "aria-dropeffect", "aria-errormessage", "aria-expanded", "aria-flowto", "aria-grabbed", "aria-haspopup", "aria-hidden", "aria-invalid", "aria-keyshortcuts", "aria-label", "aria-labelledby", "aria-level", "aria-live", "aria-modal", "aria-multiline", "aria-multiselectable", "aria-orientation", "aria-owns", "aria-placeholder", "aria-posinset", "aria-pressed", "aria-readonly", "aria-relevant", "aria-required", "aria-roledescription", "aria-rowcount", "aria-rowindex", "aria-rowspan", "aria-selected", "aria-setsize", "aria-sort", "aria-valuemax", "aria-valuemin", "aria-valuenow", "aria-valuetext", "autocapitalize", "class", "colspan", "content", "contenteditable", "datatype", "dir", "draggable", "headers", "hidden", "id", "inlist", "is", "itemid", "itemprop", "itemref", "itemscope", "itemtype", "lang", "ns1:type", "ns2:alphabet", "ns2:ph", "onabort", "onautocomplete", "onautocompleteerror", "onblur", "oncancel", "oncanplay", "oncanplaythrough", "onchange", "onclick", "onclose", "oncontextmenu", "oncuechange", "ondblclick", "ondrag", "ondragend", "ondragenter", "ondragexit", "ondragleave", "ondragover", "ondragstart", "ondrop", "ondurationchange", "onemptied", "onended", "onerror", "onfocus", "onfocusin", "onfocusout", "oninput", "oninvalid", "onkeydown", "onkeypress", "onkeyup", "onload", "onloadeddata", "onloadedmetadata", "onloadstart", "onmousedown", "onmouseenter", "onmouseleave", "onmousemove", "onmouseout", "onmouseover", "onmouseup", "onpause", "onplay", "onplaying", "onprogress", "onratechange", "onreset", "onresize", "onscroll", "onseeked", "onseeking", "onselect", "onsort", "onstalled", "onsubmit", "onsuspend", "ontimeupdate", "ontoggle", "onvolumechange", "onwaiting", "onwheel", "prefix", "property", "rel", "resource", "rev", "role", "rowspan", "slot", "spellcheck", "style", "tabindex", "title", "translate", "typeof", "vocab", "xml:base", "xml:lang" or "xml:space" (with xmlns:ns1="http://www.idpf.org/2007/ops" xmlns:ns2="http://www.w3.org/2001/10/synthesis")

ERROR(RSC-005): .tmp.tmpfjo5g478.epub/EPUB.xhtml.section0024.xhtml(51,20): Error while parsing file: attribute "align" not allowed here; expected attribute "about", "accesskey", "aria-activedescendant", "aria-atomic", "aria-autocomplete", "aria-busy", "aria-checked", "aria-colcount", "aria-colindex", "aria-colspan", "aria-controls", "aria-current", "aria-describedby", "aria-details", "aria-disabled", "aria-dropeffect", "aria-errormessage", "aria-expanded", "aria-flowto", "aria-grabbed", "aria-haspopup", "aria-hidden", "aria-invalid", "aria-keyshortcuts", "aria-label", "aria-labelledby", "aria-level", "aria-live", "aria-modal", "aria-multiline", "aria-multiselectable", "aria-orientation", "aria-owns", "aria-placeholder", "aria-posinset", "aria-pressed", "aria-readonly", "aria-relevant", "aria-required", "aria-roledescription", "aria-rowcount", "aria-rowindex", "aria-rowspan", "aria-selected", "aria-setsize", "aria-sort", "aria-valuemax", "aria-valuemin", "aria-valuenow", "aria-valuetext", "autocapitalize", "class", "colspan", "content", "contenteditable", "datatype", "dir", "draggable", "headers", "hidden", "id", "inlist", "is", "itemid", "itemprop", "itemref", "itemscope", "itemtype", "lang", "ns1:type", "ns2:alphabet", "ns2:ph", "onabort", "onautocomplete", "onautocompleteerror", "onblur", "oncancel", "oncanplay", "oncanplaythrough", "onchange", "onclick", "onclose", "oncontextmenu", "oncuechange", "ondblclick", "ondrag", "ondragend", "ondragenter", "ondragexit", "ondragleave", "ondragover", "ondragstart", "ondrop", "ondurationchange", "onemptied", "onended", "onerror", "onfocus", "onfocusin", "onfocusout", "oninput", "oninvalid", "onkeydown", "onkeypress", "onkeyup", "onload", "onloadeddata", "onloadedmetadata", "onloadstart", "onmousedown", "onmouseenter", "onmouseleave", "onmousemove", "onmouseout", "onmouseover", "onmouseup", "onpause", "onplay", "onplaying", "onprogress", "onratechange", "onreset", "onresize", "onscroll", "onseeked", "onseeking", "onselect", "onsort", "onstalled", "onsubmit", "onsuspend", "ontimeupdate", "ontoggle", "onvolumechange", "onwaiting", "onwheel", "prefix", "property", "rel", "resource", "rev", "role", "rowspan", "slot", "spellcheck", "style", "tabindex", "title", "translate", "typeof", "vocab", "xml:base", "xml:lang" or "xml:space" (with xmlns:ns1="http://www.idpf.org/2007/ops" xmlns:ns2="http://www.w3.org/2001/10/synthesis")
[...]

Hi @ PaoloAmoroso

I can open your downloaded epub file with no issues with Calibre.
Maybe in Calibre you can then format it in a way Google Books can accept it.

The problem I am facing with my blog, is that the feature simply does not work. All I see is this:

@Kroeber Thanks for the feedback. I’d prefer downloaded ePub files to validate and open in at least a few major ereading apps and platforms rather than having to edit the files. I confirm the issues with your blog.

I was able to open my blog’s ePub file with BookFusion.

The ePub generation feature works remarkably well. Aside from MathJax and the broken rendering of part of a post, all formatting is preserved. I second the feedback of others in this thread about book organization and metadata.

This is disappointing for me. I have subscribed to this feature for years. It stopped working several months ago. And I cannot get support for it. I don’t know what to do.

@Kroeber I’m going to look into the issues you’re having today. Sorry it’s taken so long for me to get to it.

@PaoloAmoroso Besides the first two errors, I’m assuming the other ones are from some custom HTML inserted into one of your posts. The epub format is a little picky, and we simply output whatever custom HTML you might’ve inserted, so that could be the cause here.

2 Likes

@matt I actually don’t remember having ever inserted any HTML in my posts, only Markdown. But my blog does have custom CSS:

article pre code {
    white-space: pre !important;
}
article pre {
    overflow-x: scroll;
}

body footer nav {display:none}

When you open up the ebook, what post shows up as chapter 24? Based on this error:

[...] section0024.xhtml(38,20): Error while parsing file: attribute "align" not allowed here [...]

It seems there might be an element or two with an align attribute in that one post (all errors are from section0024.xhtml).

The 24-th TOC entry is this post, which has pretty plain formatting. The previous one is this and the following one this. The source of all these posts includes only Markdown.

Thanks matt.

I would love to see this feature, as I just had the plan to write a book for myself. When I click on the demo link I only get a literally unhelpful http 500 message. I’d donate if I could see that at least the demo works.

If you really need an ebook format urgently this might be helpful: https://pandoc.org/

1 Like

Hi @matt , are there any updates on this issue?