jekyll-default-layout 0.1.4 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 970ee9a0e8696a084a15b3dc3ffe1e07eca783fb
4
- data.tar.gz: 843be56844fe6c96330754727547f2a0e2d13224
2
+ SHA256:
3
+ metadata.gz: 3941bb67044e8bae733eab9d5ec785d72dab1076fcbfbb1274ad521111d4dfbe
4
+ data.tar.gz: 92d3902543dc52d3ad3464c907ce17765b9fb52f0921207ad88ac42caaa8e3b6
5
5
  SHA512:
6
- metadata.gz: 0e0a52822a3b1f64fa47f6c5e935bd120a4dcd4e04301607a58199255aef4d0ed53f0e7b970421fe1b4fc70a2acbbc7a77a7ddcda936fbdf4470649b99d0300f
7
- data.tar.gz: 73a62948e9f6ff0c83375104a280933e9cc8dc1231ddbce2c574868956896e4f2b6ccb50c385f6e9987aed4480296ee4539b12f1b9cbd162723d93959d832130
6
+ metadata.gz: 20ccc3597e3fcd6883edc794b32a88b2680658de39c65131e4648f3c3ff6f08b63e71ac1256a59c0dc52f92f4bd71fdb3e48eabac31c88de1b2a3a0a0fc52604
7
+ data.tar.gz: 8353beb0873a5907cde5e30511131ba514db3222c1f8606956b13b493854d638a16196d0bd4bd9ccf97a606ec593574bc882ef8c08cd4b019de9b851bd4e5f7e
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module JekyllDefaultLayout
2
4
  # Injects front matter defaults to set default layouts, if they exist
3
5
  class Generator < Jekyll::Generator
@@ -14,12 +16,14 @@ module JekyllDefaultLayout
14
16
  @site = site
15
17
  documents.each do |document|
16
18
  next unless should_set_layout?(document)
19
+
17
20
  document.data["layout"] = layout_for(document)
18
21
  end
19
22
  end
20
23
 
21
24
  def should_set_layout?(document)
22
- markdown?(document) && !layout_specified?(document)
25
+ !layout_specified?(document) &&
26
+ (markdown?(document) || (html?(document) && html_pages_enabled?))
23
27
  end
24
28
 
25
29
  # Does the given layout exist for the site?
@@ -37,8 +41,19 @@ module JekyllDefaultLayout
37
41
  markdown_converter.matches(document.extname)
38
42
  end
39
43
 
44
+ def html?(document)
45
+ document.extname == ".html"
46
+ end
47
+
48
+ # HTML pages are only given a default layout when the user opts in via
49
+ # `jekyll-default-layout: { html_pages: true }` in _config.yml.
50
+ def html_pages_enabled?
51
+ config = site.config["jekyll-default-layout"]
52
+ config.is_a?(Hash) && config["html_pages"] == true
53
+ end
54
+
40
55
  # What layout is appropriate for this document, if any
41
- # rubocop:disable Metrics/PerceivedComplexity
56
+ # rubocop:disable Metrics/PerceivedComplexity, Metrics/CyclomaticComplexity
42
57
  def layout_for(document)
43
58
  if index?(document) && layout_exists?("home")
44
59
  "home"
@@ -46,13 +61,16 @@ module JekyllDefaultLayout
46
61
  "page"
47
62
  elsif post?(document) && layout_exists?("post")
48
63
  "post"
64
+ elsif collection?(document) && layout_exists?(document.collection.label)
65
+ document.collection.label
49
66
  elsif layout_exists?("default")
50
67
  "default"
51
68
  end
52
69
  end
70
+ # rubocop:enable Metrics/PerceivedComplexity, Metrics/CyclomaticComplexity
53
71
 
54
72
  def documents
55
- [site.pages, site.posts.docs].flatten
73
+ [site.pages, site.collections.values.map(&:docs)].flatten
56
74
  end
57
75
 
58
76
  def markdown_converter
@@ -67,6 +85,10 @@ module JekyllDefaultLayout
67
85
  document.is_a?(Jekyll::Page)
68
86
  end
69
87
 
88
+ def collection?(document)
89
+ document.is_a?(Jekyll::Document) && !post?(document)
90
+ end
91
+
70
92
  def index?(document)
71
93
  document.url == "/"
72
94
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module JekyllDefaultLayout
2
- VERSION = "0.1.4".freeze
4
+ VERSION = "0.2.0"
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "jekyll"
2
4
  require "jekyll-default-layout/generator"
3
5
 
metadata CHANGED
@@ -1,43 +1,48 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-default-layout
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Balter
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2016-12-08 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: jekyll
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
- - - "~>"
16
+ - - ">="
18
17
  - !ruby/object:Gem::Version
19
18
  version: '3.0'
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: '5.0'
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
23
25
  requirements:
24
- - - "~>"
26
+ - - ">="
25
27
  - !ruby/object:Gem::Version
26
28
  version: '3.0'
29
+ - - "<"
30
+ - !ruby/object:Gem::Version
31
+ version: '5.0'
27
32
  - !ruby/object:Gem::Dependency
28
- name: rubocop
33
+ name: kramdown-parser-gfm
29
34
  requirement: !ruby/object:Gem::Requirement
30
35
  requirements:
31
36
  - - "~>"
32
37
  - !ruby/object:Gem::Version
33
- version: '0.43'
38
+ version: '1.0'
34
39
  type: :development
35
40
  prerelease: false
36
41
  version_requirements: !ruby/object:Gem::Requirement
37
42
  requirements:
38
43
  - - "~>"
39
44
  - !ruby/object:Gem::Version
40
- version: '0.43'
45
+ version: '1.0'
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: rspec
43
48
  requirement: !ruby/object:Gem::Requirement
@@ -52,7 +57,132 @@ dependencies:
52
57
  - - "~>"
53
58
  - !ruby/object:Gem::Version
54
59
  version: '3.5'
55
- description:
60
+ - !ruby/object:Gem::Dependency
61
+ name: rubocop
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: '1.0'
67
+ type: :development
68
+ prerelease: false
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '1.0'
74
+ - !ruby/object:Gem::Dependency
75
+ name: rubocop-factory_bot
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: 2.26.0
81
+ type: :development
82
+ prerelease: false
83
+ version_requirements: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: 2.26.0
88
+ - !ruby/object:Gem::Dependency
89
+ name: rubocop-jekyll
90
+ requirement: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: '0.11'
95
+ type: :development
96
+ prerelease: false
97
+ version_requirements: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: '0.11'
102
+ - !ruby/object:Gem::Dependency
103
+ name: rubocop-performance
104
+ requirement: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: '1.6'
109
+ type: :development
110
+ prerelease: false
111
+ version_requirements: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: '1.6'
116
+ - !ruby/object:Gem::Dependency
117
+ name: rubocop-rspec
118
+ requirement: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: '3.0'
123
+ type: :development
124
+ prerelease: false
125
+ version_requirements: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: '3.0'
130
+ - !ruby/object:Gem::Dependency
131
+ name: base64
132
+ requirement: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - ">="
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
137
+ type: :development
138
+ prerelease: false
139
+ version_requirements: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ version: '0'
144
+ - !ruby/object:Gem::Dependency
145
+ name: benchmark
146
+ requirement: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ type: :development
152
+ prerelease: false
153
+ version_requirements: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ - !ruby/object:Gem::Dependency
159
+ name: ostruct
160
+ requirement: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - ">="
163
+ - !ruby/object:Gem::Version
164
+ version: '0'
165
+ type: :development
166
+ prerelease: false
167
+ version_requirements: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ version: '0'
172
+ - !ruby/object:Gem::Dependency
173
+ name: tsort
174
+ requirement: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - ">="
177
+ - !ruby/object:Gem::Version
178
+ version: '0'
179
+ type: :development
180
+ prerelease: false
181
+ version_requirements: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - ">="
184
+ - !ruby/object:Gem::Version
185
+ version: '0'
56
186
  email:
57
187
  - ben.balter@github.com
58
188
  executables: []
@@ -66,7 +196,6 @@ homepage: https://github.com/benbalter/jekyll-default-layout
66
196
  licenses:
67
197
  - MIT
68
198
  metadata: {}
69
- post_install_message:
70
199
  rdoc_options: []
71
200
  require_paths:
72
201
  - lib
@@ -74,16 +203,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
74
203
  requirements:
75
204
  - - ">="
76
205
  - !ruby/object:Gem::Version
77
- version: '0'
206
+ version: '3.0'
78
207
  required_rubygems_version: !ruby/object:Gem::Requirement
79
208
  requirements:
80
209
  - - ">="
81
210
  - !ruby/object:Gem::Version
82
211
  version: '0'
83
212
  requirements: []
84
- rubyforge_project:
85
- rubygems_version: 2.5.2
86
- signing_key:
213
+ rubygems_version: 4.0.16
87
214
  specification_version: 4
88
215
  summary: Silently sets default layouts for Jekyll pages and posts
89
216
  test_files: []