gepub
- http://rdoc.info/github/skoji/gepub/master/frames
DESCRIPTION:
a generic EPUB parser/generator library.
FEATURES/PROBLEMS:
- GEPUB::Book provides functionality to create EPUB file, and parsing EPUB files
-
Handle every metadata in EPUB2/EPUB3.
- See issues for known problems.
If you are using GEPUB::Builder and do not like its behaviour(e.g. the block inside is evaluated as inside the Builder instance), please consider using GEPUB::Book directly.
SYNOPSIS:
Example
```ruby require ‘rubygems’ require ‘gepub’
book = GEPUB::Book.new book.primary_identifier(‘http://example.jp/bookid_in_url’, ‘BookID’, ‘URL’) book.language = ‘ja’
book.add_title ‘GEPUBサンプル文書’, title_type: GEPUB::TITLE_TYPE::MAIN, lang: ‘ja’, file_as: ‘GEPUB Sample Book’, display_seq: 1, alternates: { ‘en’ => ‘GEPUB Sample Book (Japanese)’, ‘el’ => ‘GEPUB δείγμα (Ιαπωνικά)’, ‘th’ => ‘GEPUB ตัวอย่าง (ญี่ปุ่น)’ }
you can do the same thing using method chain
book.add_title(‘これはあくまでサンプルです’, title_type: GEPUB::TITLE_TYPE::SUBTITLE).display_seq(1).add_alternates(‘en’ => ‘this book is just a sample.’)
use arguments
book.add_creator ‘小嶋智’, display_seq:1, alternates: { ‘en’ => ‘KOJIMA Satoshi’ } book.add_contributor ‘電書部’, display_seq: 1, alternates: => ‘Denshobu’ book.add_contributor ‘アサガヤデンショ’, display_seq: 2, alternates: => ‘Asagaya Densho’ # you can also use method chain book.add_contributor(‘湘南電書鼎談’).display_seq(3).add_alternates(‘en’ => ‘Shonan Densho Teidan’) book.add_contributor(‘電子雑誌トルタル’).display_seq(4).add_alternates(‘en’ => ‘eMagazine Torutaru’)
imgfile = File.join(File.dirname(FILE), ‘image1.jpg’) File.open(imgfile) do |io| book.add_item(‘img/image1.jpg’,content: io).cover_image end
within ordered block, add_item will be added to spine.
book.ordered { book.add_item(‘text/cover.xhtml’, content: StringIO.new(«-COVER)).landmark(type: ‘cover’, title: ‘cover page’) <html xmlns="http://www.w3.org/1999/xhtml"> <head>
</body></html>
COVER
book.add_item(‘text/chap1.xhtml’).add_content(StringIO.new(«-CHAP_ONE)).toc_text(‘Chapter 1’).landmark(type: ‘bodymatter’, title: ‘本文’)
the first page
CHAP_ONE book.add_item(‘text/chap1-1.xhtml’).add_content(StringIO.new(«-SEC_ONE_ONE)) # do not appear on table of contents
the second page
SEC_ONE_ONE book.add_item(‘text/chap2.xhtml’).add_content(StringIO.new(«-CHAP_TWO)).toc_text(‘Chapter 2’)
the third page
CHAP_TWO # to add nav file: # book.add_item(‘path/to/nav’).add_content(nav_html_content).add_property(‘nav’) } epubname = File.join(File.dirname(FILE), ‘example_test.epub’)
if you do not specify your own nav document with add_item,
# simple navigation text will be generated in generate_epub. # auto-generated nav file will not appear on spine. book.generate_epub(epubname) ``` * examples in this repository
INSTALL:
- gem install gepub