cheepub 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +9 -1
- data/README.md +40 -6
- data/doc/README_ja.md +11 -0
- data/lib/cheepub/cli.rb +6 -4
- data/lib/cheepub/generator.rb +25 -17
- data/lib/cheepub/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb88e2dae0bf74523ce1e187024db8e8e3ec3a332480461e020ca76af1ccef5e
|
4
|
+
data.tar.gz: d56c9785adfca375b8892f960e4be9c2f9b3f3fc222d6953e70e7471a55279a3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 05a9ec137505b9b7fe6ee3777500a96b0e9b9305e244b143406dba78ae24cb857f369e6f709b6b460dc216c5eccf2d125fb2fc4d95d468616d8bd0f29177bd13
|
7
|
+
data.tar.gz: e01f312ba85bc5c318689d74efcc3dec662bbe5c7979f331167d999e6417f5b8b1ad64384a12e3bfadae74ae6226514d23511dd23a7c0d115fccdc75694e0626
|
data/.travis.yml
CHANGED
@@ -1,11 +1,19 @@
|
|
1
1
|
sudo: false
|
2
2
|
language: ruby
|
3
|
+
env:
|
4
|
+
global:
|
5
|
+
- CC_TEST_REPORTER_ID=787a2f89b15c637323c7340d65ec17e898ac44480706b4b4122ea040c2a88f1d
|
3
6
|
rvm:
|
4
7
|
- 2.4.1
|
5
8
|
- 2.5.1
|
9
|
+
before_script:
|
10
|
+
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
11
|
+
- chmod +x ./cc-test-reporter
|
12
|
+
- ./cc-test-reporter before-build
|
6
13
|
before_install:
|
7
14
|
- gem install bundler -v 1.16.1
|
8
|
-
|
15
|
+
after_script:
|
16
|
+
- ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
|
9
17
|
branches:
|
10
18
|
only:
|
11
19
|
- master
|
data/README.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# Cheepub
|
2
2
|
|
3
|
-
|
3
|
+
[](https://badge.fury.io/rb/cheepub)[](https://travis-ci.org/takahashim/cheepub)
|
4
4
|
|
5
|
-
Cheepub
|
5
|
+
Cheepub is EPUB generator from Markdown. When you have markdown file, you can generate EPUB3 file with just one command: `cheepub sample.md`.
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
@@ -16,10 +16,6 @@ If you use the gem in your project, add this line to your application's Gemfile:
|
|
16
16
|
gem 'cheepub'
|
17
17
|
```
|
18
18
|
|
19
|
-
And then execute:
|
20
|
-
|
21
|
-
$ bundle
|
22
|
-
|
23
19
|
## Usage
|
24
20
|
|
25
21
|
You can add options `--title` and `--author`.
|
@@ -34,8 +30,46 @@ If you use front-matter section like Jekyll, you can execute without any options
|
|
34
30
|
$ cheepub source.md
|
35
31
|
```
|
36
32
|
|
33
|
+
### Options
|
34
|
+
|
35
|
+
* `-v, --version` print version
|
36
|
+
* `--author AUTOR` set author of the book
|
37
|
+
* `--title TITLE` set title of the book
|
38
|
+
* `--config CONFIG` set configuration file
|
39
|
+
* `-o, --out EPUBFILE` set output epub filename
|
40
|
+
* `-h, --help` print help
|
41
|
+
|
42
|
+
|
43
|
+
## Markdown extensions
|
44
|
+
|
45
|
+
Cheepub uses [Kramdown](https://github.com/gettalong/kramdown) and [Gepub](https://github.com/skoji/gepub).
|
46
|
+
So you can use Kramdown extensions and some other extensions from [DenDenMarkdown](https://github.com/denshoch/DenDenMarkdown).
|
47
|
+
|
48
|
+
* newpage (separate files): ex. `===` or `------`.
|
49
|
+
* tate-chu-yoko (horizontal in vertical): ex. `^30^` or `!?`.
|
50
|
+
* footnote: ex. `[^1]` and `[^1]: some notes about it`.
|
51
|
+
* ruby: ex. `{some base text|some ruby text}`
|
52
|
+
|
53
|
+
|
54
|
+
## Configuration
|
55
|
+
|
56
|
+
You can define configration with in front-matter or `--config` option.
|
57
|
+
|
58
|
+
### Configuration items
|
59
|
+
|
60
|
+
* id: identifier
|
61
|
+
* title: title of the book
|
62
|
+
* author: author of the book
|
63
|
+
* date: publishing date
|
64
|
+
* lastModified: last modified date-time
|
65
|
+
* pageDirection: `ltr` or `rtl`
|
66
|
+
|
37
67
|
## History
|
38
68
|
|
69
|
+
### 0.3.0
|
70
|
+
|
71
|
+
- add option `--out`
|
72
|
+
|
39
73
|
### 0.2.0
|
40
74
|
|
41
75
|
- add option `--title`, `--author`, `--config`
|
data/doc/README_ja.md
CHANGED
@@ -31,6 +31,17 @@ Cheepubはコマンドラインで使うことを想定しています。
|
|
31
31
|
$ cheepub sample.md
|
32
32
|
```
|
33
33
|
|
34
|
+
### コマンドラインオプション
|
35
|
+
|
36
|
+
* `--title 【タイトル】` タイトルを指定します。
|
37
|
+
* `--author 【著者名】` 著者名を指定します。
|
38
|
+
* `--config 【設定ファイル】` 後述のfront-matterに相当するYAMLファイルを別ファイルで与えた場合に使います。Markdownファイル内に設定を書きたくない人用です。
|
39
|
+
* `--out 【EPUBファイル名】 (または -o 【EPUBファイル名】)` 出力するEPUBファイル名を指定します。省略時はbook.epubになります。
|
40
|
+
* `--help` ヘルプを表示します。
|
41
|
+
* `--version` バージョンを表示します。
|
42
|
+
|
43
|
+
front-matterがない場合は`--title`と`--author`は必須です。
|
44
|
+
|
34
45
|
## CheepubのMarkdownについて
|
35
46
|
|
36
47
|
基本方針は3つです。
|
data/lib/cheepub/cli.rb
CHANGED
@@ -2,13 +2,14 @@ module Cheepub
|
|
2
2
|
class CLI < Clamp::Command
|
3
3
|
using Cheepub::ExtHash
|
4
4
|
|
5
|
-
option ["-v", "--version"], :flag, "
|
5
|
+
option ["-v", "--version"], :flag, "print version" do
|
6
6
|
puts Cheepub::VERSION
|
7
7
|
exit(0)
|
8
8
|
end
|
9
|
-
option ["--author"], "AUTOR", "author of the book"
|
10
|
-
option ["--title"], "TITLE", "title of the book"
|
11
|
-
option ["--config"], "CONFIG", "configuration file"
|
9
|
+
option ["--author"], "AUTOR", "set author of the book"
|
10
|
+
option ["--title"], "TITLE", "set title of the book"
|
11
|
+
option ["--config"], "CONFIG", "set configuration file"
|
12
|
+
option ["-o", "--out"], "EPUBFILE", "set output epub filename", attribute_name: :epubfile
|
12
13
|
|
13
14
|
parameter "SRC", "source file"
|
14
15
|
|
@@ -19,6 +20,7 @@ module Cheepub
|
|
19
20
|
end
|
20
21
|
params[:author] = author if author
|
21
22
|
params[:title] = title if title
|
23
|
+
params[:epubfile] = epubfile if epubfile
|
22
24
|
gen = Cheepub::Generator.new(src, params)
|
23
25
|
begin
|
24
26
|
gen.execute
|
data/lib/cheepub/generator.rb
CHANGED
@@ -19,10 +19,33 @@ module Cheepub
|
|
19
19
|
|
20
20
|
def execute
|
21
21
|
params = @params.merge(@content.header)
|
22
|
+
check_params(params)
|
23
|
+
book = GEPUB::Book.new
|
24
|
+
apply_params(book, params)
|
25
|
+
epubfile = params[:epubfile] || "book.epub"
|
26
|
+
book.generate_epub(epubfile)
|
27
|
+
end
|
28
|
+
|
29
|
+
def parse_creator(book, creator)
|
30
|
+
if creator.kind_of? String
|
31
|
+
book.add_creator(creator)
|
32
|
+
else
|
33
|
+
creator.each do |role, name|
|
34
|
+
if !ROLES.include?(role)
|
35
|
+
raise Cheepub::Error, "invalid role: '#{role}' for creator '#{name}'."
|
36
|
+
end
|
37
|
+
book.add_creator(name, nil, role)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def check_params(params)
|
22
43
|
if !params[:author] || !params[:title]
|
23
|
-
raise Cheepub::Error, "author and title
|
44
|
+
raise Cheepub::Error, "you must use `--author` and `--title`, or add front-matter in Markdown file."
|
24
45
|
end
|
25
|
-
|
46
|
+
end
|
47
|
+
|
48
|
+
def apply_params(book, params)
|
26
49
|
book.identifier = params[:id] || "urn:uuid:#{SecureRandom.uuid}"
|
27
50
|
book.title = params[:title]
|
28
51
|
if params[:creator]
|
@@ -48,21 +71,6 @@ module Cheepub
|
|
48
71
|
item.add_content(StringIO.new(page))
|
49
72
|
end
|
50
73
|
end
|
51
|
-
epubname = params[:epubname] || "book.epub"
|
52
|
-
book.generate_epub(epubname)
|
53
|
-
end
|
54
|
-
|
55
|
-
def parse_creator(book, creator)
|
56
|
-
if creator.kind_of? String
|
57
|
-
book.add_creator(creator)
|
58
|
-
else
|
59
|
-
creator.each do |role, name|
|
60
|
-
if !ROLES.include?(role)
|
61
|
-
raise Cheepub::Error, "invalid role: '#{role}' for creator '#{name}'."
|
62
|
-
end
|
63
|
-
book.add_creator(name, nil, role)
|
64
|
-
end
|
65
|
-
end
|
66
74
|
end
|
67
75
|
end
|
68
76
|
end
|
data/lib/cheepub/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cheepub
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- takahashim
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-05-
|
11
|
+
date: 2018-05-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gepub
|