cloudcannon-jekyll 3.0.0 → 3.1.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
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