cloudcannon-jekyll 3.0.0 → 3.1.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: 37060b4654f27c7236d0952625b91b56b081c6be24c1a76c034036a80ba1735d
4
- data.tar.gz: 055c7dbc77a247c254b05bcecedf5a45a9595c0b4ceae671676ec32fa1f771c3
3
+ metadata.gz: 0fed35269d24b4a1fd24b64ff5d89264e69e31b4d2b1451923824ae994ed43df
4
+ data.tar.gz: 3f0338deb85d35b56f577f90408ad11660479a05d203ce4b5a17588b44439e0c
5
5
  SHA512:
6
- metadata.gz: 4b9536ca8a4097fa234c35a30226a9c17bd9a020e5d883ef82f38883a9a93d6e8f6afbfe17197b949468baec9d6a077f3467ec9b3a23fdaf19740590ce28ba1b
7
- data.tar.gz: 89bdca52d720c403ddcaf8dc3d20debc1e1da51664874585b132332b199ef444c20c5104686b7ab576b0b5a6ccfad4cabd91157bc38e08a78ca5300e313ea211
6
+ metadata.gz: 20e086e703f86bf8221b88cc9e419b7f1715976a42fa736a0e0d08df2a1e062b583f0bfdb201f2ee5bfde4cbd1e8a2a8bb0f23436eaba8e5b3275467fec9e08e
7
+ data.tar.gz: 728c3feb864fcc8eed871fd188d4304870733e66074657af3a5ceeef4760d4f38478b59dacfa606c454adde6ff8ba15e45f0da82082535858316cc666d76b027
data/HISTORY.md CHANGED
@@ -1,3 +1,16 @@
1
+ # 3.1.0
2
+
3
+ * Add options for ignoring and preventing parsing collections
4
+ * Fix potential null reference
5
+
6
+ # 3.0.2
7
+
8
+ * Remove excerpt from output
9
+
10
+ # 3.0.1
11
+
12
+ * Support aliases in YAML configuration files
13
+
1
14
  # 3.0.0
2
15
 
3
16
  * Add `collections_config_override`
data/README.md CHANGED
@@ -12,7 +12,7 @@ create a JSON file used to automatically integrate the site with CloudCannon.
12
12
 
13
13
  - [Installation](#installation)
14
14
  - [Configuration](#configuration)
15
- - [Development](#plugin-options)
15
+ - [Development](#development)
16
16
  - [License](#license)
17
17
 
18
18
  ***
@@ -55,7 +55,7 @@ module CloudCannonJekyll
55
55
  end
56
56
 
57
57
  def config_file(path)
58
- loaded = YAML.safe_load(File.read(path)) # Also works for JSON
58
+ loaded = YAML.safe_load(File.read(path), aliases: true) # Also loads JSON
59
59
  Logger.info "⚙️ Using config file at #{path.bold}"
60
60
  loaded
61
61
  rescue Errno::ENOENT
@@ -88,11 +88,11 @@ module CloudCannonJekyll
88
88
  '_inputs' => @site_config['_inputs'],
89
89
  '_editables' => @site_config['_editables'],
90
90
  '_structures' => @site_config['_structures'],
91
+ '_enabled_editors' => @site_config['_enabled_editors'],
91
92
 
92
93
  # Deprecated keys
93
94
  '_array_structures' => @site_config['_array_structures'],
94
95
  '_comments' => @site_config['_comments'],
95
- '_enabled_editors' => @site_config['_enabled_editors'],
96
96
  '_instance_values' => @site_config['_instance_values'],
97
97
  '_options' => @site_config['_options']
98
98
  }
@@ -24,7 +24,8 @@ module CloudCannonJekyll
24
24
 
25
25
  def generate_collections_config
26
26
  collections = @site.config['collections'] || {}
27
- collections_config = @config['collections_config']&.dup || {}
27
+ input_collections_config = @config['collections_config'] || {}
28
+ collections_config = input_collections_config.reject { |_, v| v == false }
28
29
 
29
30
  return collections_config if @config['collections_config_override']
30
31
 
@@ -56,6 +57,8 @@ module CloudCannonJekyll
56
57
  collection_keys = (defaults.keys + collections.keys).uniq
57
58
 
58
59
  collection_keys.each do |key|
60
+ next if input_collections_config[key] == false
61
+
59
62
  processed = (defaults[key] || {})
60
63
  .merge(collections[key] || {})
61
64
  .merge(collections_config[key] || {})
@@ -71,6 +74,8 @@ module CloudCannonJekyll
71
74
  end
72
75
 
73
76
  @split_posts.each_key do |key|
77
+ next if input_collections_config[key] == false
78
+
74
79
  posts_path = @split_posts[key]&.first&.relative_path&.sub(%r{(^|/)_posts.*}, '\1_posts')
75
80
  next unless posts_path
76
81
 
@@ -84,6 +89,8 @@ module CloudCannonJekyll
84
89
  end
85
90
 
86
91
  @split_drafts.each_key do |key|
92
+ next if input_collections_config[key] == false
93
+
87
94
  drafts_path = @split_drafts[key]&.first&.relative_path&.sub(%r{(^|/)_drafts.*}, '\1_drafts')
88
95
  next unless drafts_path
89
96
 
@@ -113,6 +120,10 @@ module CloudCannonJekyll
113
120
  collections_config.each_key do |key|
114
121
  next if key == 'data'
115
122
 
123
+ collections[key] ||= []
124
+
125
+ next if collections_config.dig(key, 'parser') == false
126
+
116
127
  collections[key] = if key == 'posts' || key.end_with?('/posts')
117
128
  @split_posts[key]
118
129
  elsif key == 'drafts' || key.end_with?('/drafts')
@@ -157,7 +168,7 @@ module CloudCannonJekyll
157
168
  def document_type(doc)
158
169
  if IS_JEKYLL_2_X_X && (doc.instance_of?(Jekyll::Post) || doc.instance_of?(Jekyll::Draft))
159
170
  :posts
160
- elsif doc.respond_to? :type
171
+ elsif doc.respond_to?(:type)
161
172
  doc.type
162
173
  elsif doc.respond_to?(:collection)
163
174
  doc.collection.label.to_sym
@@ -167,14 +178,12 @@ module CloudCannonJekyll
167
178
  end
168
179
 
169
180
  def legacy_document_data(doc)
170
- data = doc.data.merge(
171
- {
172
- categories: doc.categories,
173
- tags: doc.tags,
174
- date: doc.date
175
- }
176
- )
181
+ legacy_data = {}
182
+ legacy_data['categories'] = doc.categories if doc.respond_to?(:categories)
183
+ legacy_data['tags'] = doc.tags if doc.respond_to?(:tags)
184
+ legacy_data['date'] = doc.date if doc.respond_to?(:date)
177
185
 
186
+ data = doc.data.merge(legacy_data)
178
187
  data['slug'] = doc.slug if doc.respond_to?(:slug)
179
188
  data
180
189
  end
@@ -188,11 +197,12 @@ module CloudCannonJekyll
188
197
  data = if legacy_doc?(doc)
189
198
  legacy_document_data(doc)
190
199
  elsif doc.respond_to?(:data)
191
- doc.data
200
+ doc.data.dup
192
201
  else
193
202
  {}
194
203
  end
195
204
 
205
+ data.delete('excerpt')
196
206
  defaults = @site.frontmatter_defaults.all(doc.relative_path, document_type(doc))
197
207
  defaults.merge(data)
198
208
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CloudCannonJekyll
4
- VERSION = '3.0.0'
4
+ VERSION = '3.1.0'
5
5
  end
@@ -4,6 +4,7 @@ set -ex
4
4
 
5
5
  JEKYLL_VERSION=2.4.0 bundle update && $(dirname "$0")/test &&
6
6
  JEKYLL_VERSION=3.0.0 bundle update && $(dirname "$0")/test &&
7
+ JEKYLL_VERSION=3.3.1 bundle update && $(dirname "$0")/test &&
7
8
  JEKYLL_VERSION=3.8.5 bundle update && $(dirname "$0")/test &&
8
9
  JEKYLL_VERSION=4.2.1 bundle update && $(dirname "$0")/test
9
10
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudcannon-jekyll
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - CloudCannon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-12 00:00:00.000000000 Z
11
+ date: 2022-04-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -120,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
120
  - !ruby/object:Gem::Version
121
121
  version: '0'
122
122
  requirements: []
123
- rubygems_version: 3.0.3
123
+ rubygems_version: 3.1.6
124
124
  signing_key:
125
125
  specification_version: 4
126
126
  summary: CloudCannon Jekyll integration