cloudcannon-jekyll 0.3.2 → 0.3.3
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 +4 -4
- data/HISTORY.md +4 -0
- data/lib/cloudcannon-jekyll/reader.rb +20 -15
- data/lib/cloudcannon-jekyll/readers/data-reader.rb +14 -12
- data/lib/cloudcannon-jekyll/readers/old-data-reader.rb +43 -41
- data/lib/cloudcannon-jekyll/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '08b8d41b4f28b0bca7c2258cea56bb78a4f5681268ceb43cb22c9354dca500b7'
|
4
|
+
data.tar.gz: 2bd8a07284c6e42ae4c3e4c8f588e085482b8e8a5d7a595cb13e7e62b5490c2d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2787ad164d3525eefe7c1e9797ba74cfd81d9a918839808abb016f83eb98184c32c5057fc0464ee2136929486b350cf7c509ed1779d1458f794a35e86571d14c
|
7
|
+
data.tar.gz: cb5e1901ccd2a0d94a4adb11b5d693101d03588f1b5ba4cc866c1ce6ca49c92c79f4c78927b6b671ce8b1748d72e4e895d64ee9d50033720be08a0634521bc61
|
data/HISTORY.md
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "jekyll"
|
4
|
-
|
5
|
-
|
6
|
-
require_relative "readers/data-reader"
|
7
|
-
rescue NameError
|
8
|
-
require_relative "readers/old-data-reader"
|
9
|
-
end
|
4
|
+
require_relative "readers/old-data-reader"
|
5
|
+
require_relative "readers/data-reader"
|
10
6
|
|
11
7
|
module CloudCannonJekyll
|
12
8
|
# Wraps read functions into one class
|
@@ -18,21 +14,30 @@ module CloudCannonJekyll
|
|
18
14
|
end
|
19
15
|
|
20
16
|
def read_data(dir = "_data")
|
21
|
-
|
22
|
-
|
23
|
-
|
17
|
+
# DataReader doesn't exist in old versions of Jekyll
|
18
|
+
if Jekyll::VERSION.start_with? "2."
|
19
|
+
CloudCannonJekyll::OldDataReader.new(@site).read(dir)
|
20
|
+
else
|
21
|
+
CloudCannonJekyll::DataReader.new(@site).read(dir)
|
22
|
+
end
|
24
23
|
end
|
25
24
|
|
26
25
|
def read_drafts(dir = "")
|
27
|
-
Jekyll
|
28
|
-
|
29
|
-
|
26
|
+
# PostReader doesn't exist in old versions of Jekyll
|
27
|
+
if Jekyll::VERSION.start_with? "2."
|
28
|
+
@site.read_content(dir, "_drafts", Jekyll::Draft)
|
29
|
+
else
|
30
|
+
Jekyll::PostReader.new(@site).read_drafts(dir)
|
31
|
+
end
|
30
32
|
end
|
31
33
|
|
32
34
|
def read_posts(dir = "")
|
33
|
-
Jekyll
|
34
|
-
|
35
|
-
|
35
|
+
# PostReader doesn't exist in old versions of Jekyll
|
36
|
+
if Jekyll::VERSION.start_with? "2."
|
37
|
+
@site.read_content(dir, "_posts", Jekyll::Post)
|
38
|
+
else
|
39
|
+
Jekyll::PostReader.new(@site).read_posts(dir)
|
40
|
+
end
|
36
41
|
end
|
37
42
|
end
|
38
43
|
end
|
@@ -1,18 +1,20 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
3
|
+
unless Jekyll::VERSION.start_with? "2."
|
4
|
+
require "jekyll"
|
4
5
|
|
5
|
-
module CloudCannonJekyll
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
6
|
+
module CloudCannonJekyll
|
7
|
+
# Reads data files and creates a collections-style hash representation
|
8
|
+
class DataReader < Jekyll::DataReader
|
9
|
+
# Determines how to read a data file.
|
10
|
+
# This is overridden return a hash instead of reading the file.
|
11
|
+
#
|
12
|
+
# Returns a hash with the path to the data file.
|
13
|
+
def read_data_file(path)
|
14
|
+
{
|
15
|
+
"path" => path,
|
16
|
+
}
|
17
|
+
end
|
16
18
|
end
|
17
19
|
end
|
18
20
|
end
|
@@ -1,55 +1,57 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
3
|
+
if Jekyll::VERSION.start_with? "2."
|
4
|
+
require "jekyll"
|
5
|
+
|
6
|
+
module CloudCannonJekyll
|
7
|
+
# Reads data files and creates a collections-style hash representation
|
8
|
+
# Aims to replicate the data reading logic in Jekyll 2.5
|
9
|
+
class OldDataReader
|
10
|
+
attr_reader :site
|
11
|
+
|
12
|
+
def initialize(site)
|
13
|
+
@site = site
|
14
|
+
@safe = site.safe
|
15
|
+
@content = {}
|
16
|
+
end
|
16
17
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
18
|
+
def read(dir)
|
19
|
+
base = Jekyll.sanitized_path(@site.source, dir)
|
20
|
+
read_data_to(base, @content)
|
21
|
+
@content
|
22
|
+
end
|
22
23
|
|
23
|
-
|
24
|
-
|
24
|
+
def read_data_to(dir, data)
|
25
|
+
return unless File.directory?(dir) && (!@safe || !File.symlink?(dir))
|
25
26
|
|
26
|
-
|
27
|
-
|
28
|
-
|
27
|
+
entries = Dir.chdir(dir) do
|
28
|
+
Dir["*.{yaml,yml,json,csv}"] + Dir["*"].select { |fn| File.directory?(fn) }
|
29
|
+
end
|
29
30
|
|
30
|
-
|
31
|
-
|
32
|
-
|
31
|
+
entries.each do |entry|
|
32
|
+
path = Jekyll.sanitized_path(dir, entry)
|
33
|
+
next if File.symlink?(path) && @safe
|
33
34
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
35
|
+
key = sanitize_filename(File.basename(entry, ".*"))
|
36
|
+
if File.directory?(path)
|
37
|
+
read_data_to(path, data[key] = {})
|
38
|
+
else
|
39
|
+
data[key] = read_data_file(path)
|
40
|
+
end
|
39
41
|
end
|
40
42
|
end
|
41
|
-
end
|
42
43
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
44
|
+
def read_data_file(path)
|
45
|
+
{
|
46
|
+
"path" => path,
|
47
|
+
}
|
48
|
+
end
|
48
49
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
50
|
+
def sanitize_filename(name)
|
51
|
+
name.gsub!(%r![^\w\s_-]+!, "")
|
52
|
+
name.gsub!(%r!(^|\b\s)\s+($|\s?\b)!, '\\1\\2')
|
53
|
+
name.gsub(%r!\s+!, "_")
|
54
|
+
end
|
53
55
|
end
|
54
56
|
end
|
55
57
|
end
|
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: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- CloudCannon
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-12-
|
11
|
+
date: 2020-12-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|