jekyll-data 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +0 -2
- data/lib/jekyll-data.rb +17 -14
- data/lib/jekyll-data/reader.rb +3 -3
- data/lib/jekyll-data/theme_configuration.rb +1 -1
- data/lib/jekyll-data/theme_data_reader.rb +5 -1
- data/lib/jekyll-data/themed_site_drop.rb +2 -3
- data/lib/jekyll-data/version.rb +3 -1
- data/lib/jekyll/build_options.rb +6 -4
- data/lib/jekyll/data_path.rb +3 -1
- data/lib/jekyll/theme_drop.rb +5 -6
- metadata +14 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 95e3f9216da63cda9e38c9affb6abd7670f39a29918adc7c7e11ee8f2be2053f
|
4
|
+
data.tar.gz: 60732d8194aa06c2bf12ce37d05beeb097e49a537409c4324cd0bb2aeb945398
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cc79ac198e020303b2a880f32baa681f61d838ccb241f359e1524eb9e5cd0e0ee0a0d5143359e063a87f9fb19b7d8c47fd1485c8ae9360570927f1aaebc9c672
|
7
|
+
data.tar.gz: 4011a6f4bf630320827a6545ccd472d9c593af8bf10ecdf856a8f3d07edab07dd6edc10aff7f00630a6307b77a91931b836caa5ad751397aadc2699d5daaed44
|
data/README.md
CHANGED
@@ -29,8 +29,6 @@ end
|
|
29
29
|
|
30
30
|
## Usage
|
31
31
|
|
32
|
-
**Note:** *This plugin will only run in conjunction with a gem-based Jekyll-theme.*
|
33
|
-
|
34
32
|
As long as the plugin-gem has been installed properly, and is included in the Gemfile's `:jekyll_plugins` group, data files supported by Jekyll and present in the `_data` directory at the root of your theme-gem will be read. Their contents will be added to the site's internal data hash, provided, an identical data hash doesn't already exist at the site-source.
|
35
33
|
|
36
34
|
If the theme-gem also includes a `_config.yml` at its root, then it will be read as well. The resulting config hash will be mixed into the site's existing config hash, filling in where the *keys* are not already defined. In other words, the config file at `source` will override corresponding identical keys in a `_config.yml` within the theme-gem which would in turn override corresponding `DEFAULTS` from Jekyll:
|
data/lib/jekyll-data.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "jekyll"
|
2
4
|
require "jekyll-data/version"
|
3
5
|
|
@@ -14,22 +16,19 @@ require_relative "jekyll/data_path"
|
|
14
16
|
require_relative "jekyll/theme_drop"
|
15
17
|
|
16
18
|
# ----------------------------------------------------------------------------
|
17
|
-
# Modify the current site instance if it uses a gem-based theme
|
18
|
-
# plugin disabled.
|
19
|
+
# Modify the current site instance only if it uses a gem-based theme.
|
19
20
|
#
|
20
21
|
# if a '_config.yml' is present at the root of theme-gem, it is evaluated and
|
21
22
|
# the extracted hash data is incorprated into the site's config hash.
|
23
|
+
#
|
24
|
+
# *Jekyll 4.0 has this feature incorporated in its core.*
|
22
25
|
# ----------------------------------------------------------------------------
|
23
|
-
Jekyll::
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
"JekyllData:",
|
30
|
-
"Error! This plugin only works with gem-based jekyll-themes. " \
|
31
|
-
"Please disable this plugin to proceed."
|
32
|
-
)
|
26
|
+
unless Jekyll::VERSION.start_with?("4")
|
27
|
+
Jekyll::Hooks.register :site, :after_reset do |site|
|
28
|
+
if site.theme
|
29
|
+
file = site.in_theme_dir("_config.yml")
|
30
|
+
JekyllData::ThemeConfiguration.reconfigure(site) if File.exist?(file)
|
31
|
+
end
|
33
32
|
end
|
34
33
|
end
|
35
34
|
|
@@ -39,11 +38,15 @@ end
|
|
39
38
|
#
|
40
39
|
# If a _config.yml exists at the root of the theme-gem, output its path.
|
41
40
|
# Placed here inorder to avoid outputting the path after every regeneration.
|
41
|
+
#
|
42
|
+
# *Jekyll 4.0 detects a theme-configuration natively.*
|
42
43
|
# ---------------------------------------------------------------------------
|
43
44
|
Jekyll::Hooks.register :site, :after_init do |site|
|
44
45
|
if site.theme
|
45
|
-
|
46
|
-
|
46
|
+
unless Jekyll::VERSION.start_with?("4")
|
47
|
+
file = site.in_theme_dir("_config.yml")
|
48
|
+
Jekyll.logger.info "Theme Config file:", file if File.exist?(file)
|
49
|
+
end
|
47
50
|
site.reader = JekyllData::Reader.new(site)
|
48
51
|
end
|
49
52
|
end
|
data/lib/jekyll-data/reader.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require "csv"
|
3
4
|
|
4
5
|
module JekyllData
|
@@ -6,8 +7,7 @@ module JekyllData
|
|
6
7
|
def initialize(site)
|
7
8
|
@site = site
|
8
9
|
@theme = site.theme
|
9
|
-
@theme_data_files = Dir[File.join(site.theme.
|
10
|
-
site.config["data_dir"], "**", "*.{yaml,yml,json,csv}")]
|
10
|
+
@theme_data_files = Dir[File.join(site.theme.data_path, "**", "*.{yaml,yml,json,csv,tsv}")]
|
11
11
|
end
|
12
12
|
|
13
13
|
# Read data files within theme-gem.
|
@@ -1,6 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module JekyllData
|
2
4
|
class ThemeDataReader < Jekyll::DataReader
|
3
5
|
attr_reader :site, :content
|
6
|
+
|
4
7
|
def initialize(site)
|
5
8
|
@site = site
|
6
9
|
@content = {}
|
@@ -9,6 +12,7 @@ module JekyllData
|
|
9
12
|
|
10
13
|
def read(dir)
|
11
14
|
return unless site.theme && site.theme.data_path
|
15
|
+
|
12
16
|
base = site.in_theme_dir(dir)
|
13
17
|
read_data_to(base, @content)
|
14
18
|
@content
|
@@ -18,7 +22,7 @@ module JekyllData
|
|
18
22
|
return unless File.directory?(dir) && !@entry_filter.symlink?(dir)
|
19
23
|
|
20
24
|
entries = Dir.chdir(dir) do
|
21
|
-
Dir["*.{yaml,yml,json,csv}"] + Dir["*"].select { |fn| File.directory?(fn) }
|
25
|
+
Dir["*.{yaml,yml,json,csv,tsv}"] + Dir["*"].select { |fn| File.directory?(fn) }
|
22
26
|
end
|
23
27
|
|
24
28
|
entries.each do |entry|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module JekyllData
|
4
4
|
class ThemedSiteDrop < Jekyll::Drops::SiteDrop
|
@@ -9,7 +9,6 @@ module JekyllData
|
|
9
9
|
def_delegator :@obj, :site_data, :data
|
10
10
|
def_delegators :@obj, :theme
|
11
11
|
|
12
|
-
private
|
13
|
-
def_delegator :@obj, :config, :fallback_data
|
12
|
+
private def_delegator :@obj, :config, :fallback_data
|
14
13
|
end
|
15
14
|
end
|
data/lib/jekyll-data/version.rb
CHANGED
data/lib/jekyll/build_options.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Jekyll
|
2
4
|
class Command
|
3
5
|
class << self
|
@@ -7,10 +9,10 @@ module Jekyll
|
|
7
9
|
#
|
8
10
|
alias_method :original_build_options, :add_build_options
|
9
11
|
|
10
|
-
def add_build_options(
|
11
|
-
original_build_options(
|
12
|
-
|
13
|
-
|
12
|
+
def add_build_options(cmd)
|
13
|
+
original_build_options(cmd)
|
14
|
+
cmd.option "show-data", "--show-data",
|
15
|
+
"Print merged site-data hash when used with --verbose."
|
14
16
|
end
|
15
17
|
end
|
16
18
|
end
|
data/lib/jekyll/data_path.rb
CHANGED
data/lib/jekyll/theme_drop.rb
CHANGED
@@ -1,19 +1,18 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Jekyll
|
4
4
|
module Drops
|
5
5
|
class UnifiedPayloadDrop < Drop
|
6
|
-
def site
|
7
|
-
@site_drop ||= JekyllData::ThemedSiteDrop.new(@obj)
|
8
|
-
end
|
9
|
-
|
10
6
|
# Register a namespace to easily call subkeys under <theme-name> key
|
11
7
|
# in the _config.yml within a theme-gem via its bundled templates.
|
12
8
|
# e.g. with this drop, theme-specific variables usually called like
|
13
9
|
# {{ site.minima.date_format }} can be shortened to simply
|
14
10
|
# {{ theme.date_format }}.
|
15
11
|
def theme
|
16
|
-
@theme_drop ||=
|
12
|
+
@theme_drop ||= begin
|
13
|
+
config = site.send(:fallback_data)
|
14
|
+
config[config["theme"]]
|
15
|
+
end
|
17
16
|
end
|
18
17
|
end
|
19
18
|
end
|
metadata
CHANGED
@@ -1,36 +1,39 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-data
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ashwin Maroli
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-09-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '3.3'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 5.0.0
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '3.3'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 5.0.0
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: bundler
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '1.14'
|
34
37
|
- - ">="
|
35
38
|
- !ruby/object:Gem::Version
|
36
39
|
version: 1.14.3
|
@@ -38,9 +41,6 @@ dependencies:
|
|
38
41
|
prerelease: false
|
39
42
|
version_requirements: !ruby/object:Gem::Requirement
|
40
43
|
requirements:
|
41
|
-
- - "~>"
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: '1.14'
|
44
44
|
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: 1.14.3
|
@@ -87,19 +87,19 @@ dependencies:
|
|
87
87
|
- !ruby/object:Gem::Version
|
88
88
|
version: '10.0'
|
89
89
|
- !ruby/object:Gem::Dependency
|
90
|
-
name: rubocop
|
90
|
+
name: rubocop-jekyll
|
91
91
|
requirement: !ruby/object:Gem::Requirement
|
92
92
|
requirements:
|
93
93
|
- - "~>"
|
94
94
|
- !ruby/object:Gem::Version
|
95
|
-
version: 0.
|
95
|
+
version: 0.10.0
|
96
96
|
type: :development
|
97
97
|
prerelease: false
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
100
|
- - "~>"
|
101
101
|
- !ruby/object:Gem::Version
|
102
|
-
version: 0.
|
102
|
+
version: 0.10.0
|
103
103
|
description:
|
104
104
|
email:
|
105
105
|
- ashmaroli@gmail.com
|
@@ -138,8 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
138
138
|
- !ruby/object:Gem::Version
|
139
139
|
version: '0'
|
140
140
|
requirements: []
|
141
|
-
|
142
|
-
rubygems_version: 2.6.10
|
141
|
+
rubygems_version: 3.0.6
|
143
142
|
signing_key:
|
144
143
|
specification_version: 4
|
145
144
|
summary: A plugin to read '_config.yml' and data files within Jekyll theme-gems
|