Cheepub
Cheepub is EPUB/PDF generator from Markdown. When you have markdown file, you can generate EPUB3 file with just one command: cheepub sample.md
.
Installation
You can install just use gem
command:
$ gem install cheepub
If you use the gem in your project, add this line to your application's Gemfile:
gem 'cheepub'
Usage
You can add options --title
and --author
.
$ cheepub --title foo --author bar source.md
With --latex
option, you can generate PDF with LaTeX.
$ cheepub --title foo --author bar --latex source.md
If you use front-matter section like Jekyll, you can execute without any options:
$ cheepub source.md
Options
-
-v, --version
print version -
--author AUTOR
set author of the book -
--title TITLE
set title of the book -
--config CONFIG
set configuration file -
--latex
generate PDF (with LaTeX) file -
--debug
set debug mode -
-o, --out OUTFILE
set output filename -
--[no-]titlepage
add titlepage or not -
--page-direction PAGE_DIRECTION
set page direction (ltr
orrtl
) -
--json
output JSON AST and exit -
-h, --help
print help
Markdown extensions
Cheepub uses Kramdown and Gepub. So you can use Kramdown extensions and some other extensions from DenDenMarkdown.
- newpage (separate files): ex.
===
or------
. - tate-chu-yoko (horizontal in vertical): ex.
^30^
or^!?^
. - footnote: ex.
[^1]
and[^1]: some notes about it
. - ruby: ex.
{some base text|some ruby text}
Configuration
You can define configration with in front-matter or --config
option.
Front Matter
Cheepub supports front-matter like Jekyll.
You can write author and title (and other configuration) at front of the markdown file.
---
title: The Last Leaf
author: O. Henry
---
In a little district west of Washington Square the streets have run crazy and broken themselves into small strips called "places." (...)
Configuration items
- id: identifier
- title: title of the book
- author: author of the book
- date: publishing date
- lastModified: last modified date-time
- pageDirection:
ltr
(horizontal) orrtl
(vertical) - titlepage: add titlepage
- colophone: add colophon page
- colophone_before, colophone_after: some notes before/after colophon table
- (LaTeX) latexCommand: command name of LaTeX (
uplatex
orlualatex
) - (LaTeX) documentClass: document class and options. (ex.
["jlreq", "tate,book,a4paper,twocolumn,openany"]
)
History
0.14.1
- fix some warnings in Ruby
0.14.0
- update
kramdown
0.13.0
- update
kramdown
,gepub
andrb_latex
0.12.0
- support colophon_(before|after) in EPUB
0.11.0
- support titlepage in LaTeX
- support colophon in LaTeX
0.10.0
- support Images in EPUB
0.9.0
- support Markdown (pipe) table
- cannot omit leading and trailing pipes (different with original kramdown)
0.8.0
- support option
--json
0.7.1
- show backtrace when
--debug
mode - use
rouge
for EPUB instead ofcoderay
- add more samples
- add scripts
conv_entity.rb
0.7.0
- support option
--debug
- support
documentClass
for LaTeX in frontmatter
0.6.0
- (experimental) generate PDF file with LaTeX
0.5.1
- fix to generate valid epub file
0.5.0
- support titlepage
0.4.0
- fix writing-mode (pageDirection)
- fix to generate nav.xhtml
0.3.0
- add option
--out
0.2.0
- add option
--title
,--author
,--config
0.1.0
- First release.
Development
After checking out the repo, run bin/setup
to install dependencies. Then, run rake test
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/takahashim/cheepub.