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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c59c9ae557b182705af1b72463f36d6b07626f05f29a192643c602c52557b00a
4
- data.tar.gz: 96157a042254c8b62e2a60c9c27395a4bd25a03717ae246179e91595ca125f00
3
+ metadata.gz: 85a22ad3caf46109f426994c389833038857d95cc143e410b9505fb2e3e31456
4
+ data.tar.gz: bc168f8e78a84d14bdafc0b81188ce769d9a16ba2fd4ebc93ec3d9603dd19e95
5
5
  SHA512:
6
- metadata.gz: '09a2d4b4714d0738f7613e902e23c10e57d4312b24d8ab270856a534115d323d0b36fc5890a03fc272cdaeb3a3a0bb78136ea4d0373badfde856b25a9b975840'
7
- data.tar.gz: b3795977654cf4ac24f379a1b942d4c8226b70ab4fd4087969143657c28c7c4f98e824a9a0bd46f71e64cf713f90ce5bb6329c1a54f398288055209cc2e10e63
6
+ metadata.gz: 72c3738c0798c8b8f9dec909ff293e16ae614bc3149006aad0c171e006d2130bb80b507beb1ed250646def706cd3129d782ced540eb3be1f751f7df4a70e3f50
7
+ data.tar.gz: 00d0fae31d30261ce6cac519133e62653364a026377ef027c70c4f36a00f37c5436030707d6d72d4a950003b070fca022be69fea6b7db7a98d6fbaf6a8199250
data/jekyll-books.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "jekyll-books"
5
- spec.version = "0.2.1"
5
+ spec.version = "0.3.0"
6
6
  spec.authors = ["Sharon Zhang"]
7
7
  spec.email = ["zhangshiyu1992@hotmail.com"]
8
8
 
data/lib/_config.yml CHANGED
@@ -7,4 +7,11 @@ books_settings:
7
7
  book:
8
8
  layout: "book"
9
9
  chapter:
10
- layout: "chapter"
10
+ layout: "chapter"
11
+ # 是否自动打包成电子书
12
+ ebooks:
13
+ enabled: true
14
+ formats:
15
+ - "mobi"
16
+ - "pdf"
17
+ - ""
data/lib/jekyll-books.rb CHANGED
@@ -1,2 +1,3 @@
1
1
  require "jekyll/generators/book"
2
- require "jekyll/commands/book"
2
+ require "jekyll/commands/book"
3
+ require "jekyll/hooks/ebook"
@@ -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
@@ -52,4 +52,4 @@ module Jekyll
52
52
  books.reverse!
53
53
  end
54
54
  end
55
- end
55
+ 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.2.1
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: 2020-11-21 00:00:00.000000000 Z
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
- rubyforge_project:
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.