jekyll-epub icon indicating copy to clipboard operation
jekyll-epub copied to clipboard

Create an eBook (epub) of your Jekyll blog

= jekyll-epub

Create an eBook (epub) of your Jekyll blog

== How To

=== Create your blog ;)

First, you need to create your own Jekyll Blog ;) Please, refer to the {Jekyll documentation}[http://wiki.github.com/mojombo/jekyll/].

=== Configuration

Then, you must add a configuration file : _epub.yml. This file is pretty similar to the Jekyll configuration file (_config.yml) except that's you must add in some specifics entries. This entries are in the mapping epub:

_epub.yml :

epub: name: "My Jekyll Blog" lang: en identifier: my_blog.example.com-123456

Note that's in the file, you can also use all the {Jekyll configuration options}[http://wiki.github.com/mojombo/jekyll/configuration]. However, it is prudent not to change the permalink option, or you may spend a lot of time to set the proper access to resources (images, CSS, ...). You have been warned;)

Here is the list of options :

  • name: String : The name of your book. This is a mandatory option.
  • title: String : The title of your book. This is a mandatory option.
  • identifier: String : A unique identifier for your book. If you have one, you can use an ISBN. If not given, Jekyll-epub will generate an UUID for you.
  • subject: String : The subject of the book.
  • description: String : An abstract of your book.
  • relation: String :
  • creator: String : The identity of the creator of the book.
  • contributor: String : The identity of the contributor of the book.
  • publisher: String : The identity of the publisher.
  • date: Date : You really want to know ;)
  • rights: String : The copyright of your book.
  • type: String : The type of the book (I mean the kind)
  • format: String : Some informations about the book format (The physical format)
  • source: String : Information about the source of the book.
  • coverage: String : Provides information on the spatial and/or time relevance of the book.
  • cover-image: String : The image to use for the cover of the book (i use a 540 × 648 pixels image)
  • pages-order: [page | post] : A list of pages and/or posts you want to order at the begenning of the book. If you don't specify any order, Jekyll-epub will generate the book with the posts first (from the older to the newer), then the pages.

=== Layout

If you want to use a special layout for your book, you can use the epub: mapping in the header of your pages, posts, layouts. This mapping is similar to the layout: mapping except that's it is specific for the epub generation. In this example :


epub: my_ebook layout: post

This is the content of my post...

When we generate the epub, Jekyll-epub will use the layout my_ebook.

=== Liquid extension

You can also use two Liquid extensions :

{% epub %} ... This will only be display in the epub ... {% endepub %}

{% noepub %} ... This will not be display in the epub ... {% endnoepub %}

Since I have add those two extensions, if you want to use them, you also need to use one of the two following solution

==== Use jekyll_epub

  1. Run jekyll_epub instead of jekyll to generate you site and eBook.

Otherwise, you will not be able to generate your (web) site.

See jekyll_epub --help for more information

==== Use Rack tasks

  1. Create a Rakefile in your root's Jekyll blog directory
  2. Add the following code in your Rakefile

require 'jekyll/epub/tasks' Jekyll::Epub::Tasks do web :serve_port, 4000 epub :destination, "_epub" end

Use rake epub to generate the epub, use rake site to generate the website, use rake serve to serve the website.

== Note on Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.

== Copyright

Copyright (c) 2010 Gregoire Lejeune. See LICENSE for details.