jekyll-books 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/jekyll-books.gemspec +1 -1
- data/lib/_config.yml +8 -1
- data/lib/jekyll-books.rb +2 -1
- data/lib/jekyll-books/book_reader.rb +22 -0
- data/lib/jekyll/generators/book.rb +1 -1
- data/lib/jekyll/hooks/ebook.rb +24 -0
- data/lib/jekyll/pages/ebook.rb +16 -0
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 85a22ad3caf46109f426994c389833038857d95cc143e410b9505fb2e3e31456
|
4
|
+
data.tar.gz: bc168f8e78a84d14bdafc0b81188ce769d9a16ba2fd4ebc93ec3d9603dd19e95
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 72c3738c0798c8b8f9dec909ff293e16ae614bc3149006aad0c171e006d2130bb80b507beb1ed250646def706cd3129d782ced540eb3be1f751f7df4a70e3f50
|
7
|
+
data.tar.gz: 00d0fae31d30261ce6cac519133e62653364a026377ef027c70c4f36a00f37c5436030707d6d72d4a950003b070fca022be69fea6b7db7a98d6fbaf6a8199250
|
data/jekyll-books.gemspec
CHANGED
data/lib/_config.yml
CHANGED
data/lib/jekyll-books.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require "jekyll/pages/chapter"
|
2
2
|
require "jekyll/pages/book"
|
3
|
+
require "jekyll/pages/ebook"
|
3
4
|
require_relative "summary"
|
4
5
|
|
5
6
|
class BookReader
|
@@ -23,6 +24,12 @@ class BookReader
|
|
23
24
|
recursive_read_chapters(summary.read, 1, book_page)
|
24
25
|
add_prev_and_next
|
25
26
|
|
27
|
+
if params["ebook"]["enabled"]
|
28
|
+
pages << ebook_page
|
29
|
+
|
30
|
+
ebook_page.data["book"] = book_page
|
31
|
+
end
|
32
|
+
|
26
33
|
pages
|
27
34
|
end
|
28
35
|
|
@@ -86,4 +93,19 @@ class BookReader
|
|
86
93
|
})
|
87
94
|
)
|
88
95
|
end
|
96
|
+
|
97
|
+
def ebook_page
|
98
|
+
default_setting = {
|
99
|
+
"layout" => "ebook",
|
100
|
+
"destination" => "ebooks"
|
101
|
+
}
|
102
|
+
@ebook_page ||= Jekyll::EbookPage.new(
|
103
|
+
site,
|
104
|
+
default_setting
|
105
|
+
.merge(params["ebook"])
|
106
|
+
.merge({
|
107
|
+
"name" => name
|
108
|
+
})
|
109
|
+
)
|
110
|
+
end
|
89
111
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require "jekyll/pages/ebook"
|
2
|
+
|
3
|
+
module Jekyll
|
4
|
+
Jekyll::Hooks.register :pages, :post_write do |page|
|
5
|
+
if page.is_a? Jekyll::EbookPage
|
6
|
+
default_setting = {
|
7
|
+
"formats" => ["pdf"]
|
8
|
+
}
|
9
|
+
|
10
|
+
configs = Jekyll.configuration()
|
11
|
+
books_config = configs["books_settings"] || {}
|
12
|
+
ebook_config = default_setting.merge(books_config["ebook"] || {})
|
13
|
+
if ebook_config["enabled"]
|
14
|
+
input = page.destination("")
|
15
|
+
site = page.site
|
16
|
+
dir = site.in_dest_dir(page.dir)
|
17
|
+
ebook_config["formats"].each do |format|
|
18
|
+
output = File.join(dir, "#{page.data["name"]}.#{format}")
|
19
|
+
system "ebook-convert #{input} #{output} --title=#{page.data['book']['title']} --authors=#{configs['title']} --level1-toc=//h:h1"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Jekyll
|
2
|
+
class EbookPage < Page
|
3
|
+
def initialize(site, params)
|
4
|
+
@site = site
|
5
|
+
@base = site.source
|
6
|
+
@dir = params["destination"]
|
7
|
+
@name = "#{params["name"]}.md"
|
8
|
+
|
9
|
+
self.process(@name)
|
10
|
+
|
11
|
+
self.data = {}
|
12
|
+
self.data["name"] = params["name"]
|
13
|
+
self.data["layout"] = params["layout"] #temp
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-books
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sharon Zhang
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-05-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -58,8 +58,10 @@ files:
|
|
58
58
|
- lib/jekyll-books/summary.rb
|
59
59
|
- lib/jekyll/commands/book.rb
|
60
60
|
- lib/jekyll/generators/book.rb
|
61
|
+
- lib/jekyll/hooks/ebook.rb
|
61
62
|
- lib/jekyll/pages/book.rb
|
62
63
|
- lib/jekyll/pages/chapter.rb
|
64
|
+
- lib/jekyll/pages/ebook.rb
|
63
65
|
- lib/util.rb
|
64
66
|
homepage: https://github.com/erlzhang/jekyll-books
|
65
67
|
licenses:
|
@@ -80,8 +82,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
80
82
|
- !ruby/object:Gem::Version
|
81
83
|
version: '0'
|
82
84
|
requirements: []
|
83
|
-
|
84
|
-
rubygems_version: 2.7.8
|
85
|
+
rubygems_version: 3.0.3
|
85
86
|
signing_key:
|
86
87
|
specification_version: 4
|
87
88
|
summary: Jekyll books generatoer.
|