jekyll-data-revised 1.0.1 → 1.2.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: 8235a1de5929de3afae76827b3d20547fd0ff9837b8aa7d4d3a553a007efc8dd
4
- data.tar.gz: 5eae835b1f3023ce3e242a8d3e1cadac9a9e2a56d0b335aba3ed3b0587f627bd
3
+ metadata.gz: 707b112f76f32fc1f14554a99f27c6c3efdddc6c86fa4d144a1dfd502cf9545b
4
+ data.tar.gz: 2b338246b25bc273206dcccb74220078a81163dd21dd2c4da370aed5c0deca9d
5
5
  SHA512:
6
- metadata.gz: 0d000fd359099279f80bf071947e8dab18d4d450109c3848fe76186b5f3f180ed4c39bda9d43103378cd8332b901a1b667b8a3bb71fedd9f8f7dbb0b6ac9182a
7
- data.tar.gz: 5758af8fe853e8948ce9fb0a620c9dabcbe6b8c596199c8505ea0cd583dfa38adf8a18e89026e296de0a9f2034ed1f52865fdc4f861bf9e56f2dfc288c7c01f7
6
+ metadata.gz: 55e039056d3b85569f743de12de8e6f4f093dff9f96f6bce4006329834482e0bc052d0307e51d890e830cce39bdb94721f12010dc266b3fd136e372033f160d1
7
+ data.tar.gz: 4434fff2d13688928b3bee6ce25e4947b59fb2980e5b84c11072443718640dab99aaf102487444852ff03384995ce073c0a0b6364fbdc27c13d637cf3f404659
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-data-revised
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ashwin Maroli
@@ -106,19 +106,8 @@ email:
106
106
  executables: []
107
107
  extensions: []
108
108
  extra_rdoc_files: []
109
- files:
110
- - LICENSE.txt
111
- - README.md
112
- - lib/jekyll-data.rb
113
- - lib/jekyll-data/reader.rb
114
- - lib/jekyll-data/theme_configuration.rb
115
- - lib/jekyll-data/theme_data_reader.rb
116
- - lib/jekyll-data/themed_site_drop.rb
117
- - lib/jekyll-data/version.rb
118
- - lib/jekyll/build_options.rb
119
- - lib/jekyll/data_path.rb
120
- - lib/jekyll/theme_drop.rb
121
- homepage: https://github.com/ashmaroli/jekyll-data
109
+ files: []
110
+ homepage: https://github.com/ashmaroli/jekyll-data-revised
122
111
  licenses:
123
112
  - MIT
124
113
  metadata:
@@ -1,21 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2016-2017 Ashwin Maroli & Contributors
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.
data/README.md DELETED
@@ -1,125 +0,0 @@
1
- # JekyllData
2
-
3
- [![Gem Version](https://img.shields.io/gem/v/jekyll-data.svg)](https://rubygems.org/gems/jekyll-data)
4
- [![Build Status](https://img.shields.io/travis/ashmaroli/jekyll-data/master.svg?label=Build%20Status)][travis]
5
-
6
- [travis]: https://travis-ci.org/ashmaroli/jekyll-data
7
-
8
- Introducing a plugin that reads data files within **jekyll theme-gems** and adds the resulting hash to the site's internal data hash. If a **`_config.yml`** is present at the root of the theme-gem, it will be evaluated and the extracted hash data will be incorporated into the site's existing config hash.
9
-
10
-
11
- ## Installation
12
-
13
- Simply add the plugin to your site's Gemfile and config file like every other jekyll plugin gem:
14
-
15
- ```ruby
16
- # Gemfile
17
-
18
- group :jekyll_plugins do
19
- gem "jekyll-data"
20
- end
21
- ```
22
- ..and run
23
-
24
- bundle install
25
-
26
-
27
- > **Note: If the plugin has been marked as a `runtime_dependency` by the theme-gem's author it will be installed automatically with the theme-gem. Yet, it is recommended that the plugin be added to `:jekyll_plugins` group in the Gemfile rather than the `gems:` array in the config file while building or serving the site to avoid 'overriding' the `gems:` array data that may have been read-in from the theme-gem.**
28
-
29
-
30
- ## Usage
31
-
32
- **Note:** *This plugin will only run in conjunction with a gem-based Jekyll-theme.*
33
-
34
- 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
-
36
- 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:
37
-
38
- **DEFAULTS** < **_config.yml in theme-gem** < **_config.yml at source** < **Override configs via command-line**.
39
-
40
-
41
- ### Theme Configuration
42
-
43
- Jekyll themes (built prior to `Jekyll 3.2`) usually ship with configuration settings defined in the config file, which are then used within the theme's template files directly under the `site` namespace (e.g. `{{ site.myvariable }}`). This is not possible with theme-gems as a config file and data files within gems are not natively read (as of Jekyll 3.3), and hence require end-users to inspect a *demo* or *example* directory to source those files.
44
-
45
- This plugin provides a solution to that hurdle:
46
-
47
- JekyllData now reads the config file (at present only `_config.yml`) present within the theme-gem and uses the data to modify the site's config hash. This allows the theme-gem to continue using `{{ site.myvariable }}` within its templates and work out-of-the-box as intended, with minimal user intervention.
48
-
49
- **Note: the plugins required by the theme may be listed under the `gems:` array and will be automatically `required` by Jekyll while building/serving, provided that the user doesn't have a different `gems:` array in the config file at source. Hence it is recommended to add all other plugins ( including `jekyll-data` ) via the Gemfile's `:jekyll_plugins` group.**
50
-
51
- #### The `theme` namespace
52
-
53
- From `v1.0`, JekyllData no longer supports reading theme configuration provided as a `[theme-name].***` file within the `_data` directory and instead the `theme` namespace points to a certain key in the bundled `_config.yml`.
54
-
55
- For `{{ theme.variable }}` to work, the config file should nest all such key-value pairs under the `[theme-name]` key, as outlined in the example below for a theme-gem called `solitude`:
56
-
57
- ```yaml
58
- # <solitude-0.1.0>/_config.yml
59
-
60
- # the settings below have been used in this theme's templates via the `theme`
61
- # namespace. e.g. `{{ theme.recent_posts.style }}` instead of using the more
62
- # verbose `{{ site.solitude.recent_posts.style }}` though both are functionally
63
- # the same.
64
- #
65
- solitude:
66
- sidebar : true # enter 'false' to enable horizontal navbar instead.
67
- theme_variant : Charcoal # choose from 'Ocean', 'Grass', 'Charcoal'
68
- recent_posts :
69
- style : list # choose from 'list' and 'grid'.
70
- quantity : '4' # either '4' or '6'
71
-
72
- ```
73
-
74
-
75
- ### Data files
76
-
77
- Data files may be used to supplement theme templates (e.g. locales and translated UI text) and can be named as desired.
78
- - Organize related small data files in sub-directories. (or)
79
- - Declare all related data as mapped data blocks within a single file.
80
-
81
- To illustrate with an example, consider a `locales.yml` that has mappings for `en:`, `fr:`, `it:`.
82
-
83
- ```yaml
84
- # <theme-gem>/_data/locales.yml
85
-
86
- en:
87
- previous : previous
88
- next : next
89
-
90
- fr:
91
- previous : précédent
92
- next : prochain
93
-
94
- it:
95
- previous : precedente
96
- next : seguente
97
- ```
98
-
99
- the Hash from above would be identical to one had the gem been shipped with a `_data/locales` directory containing individual files for each language data.
100
-
101
-
102
- ### Overriding Data Files
103
-
104
- To override data shipped with a theme-gem, simply have an identical hash at the site-source.
105
-
106
- Irrespective of whether the theme-gem ships with consolidated data files of related entities, or sub-directories containing individual files, the data can be overridden with a single file or with multiple files.
107
-
108
- For example, if a theme-gem contains the above sample `locales.yml`, then to override the `fr:` key-data simply have either of the following:
109
- - a **`_data/locales/fr.yml`** with identical subkey(s).
110
- - a **`_data/locales.yml`** with **`fr:`** with identical subkey(s).
111
-
112
- --
113
- > **Note**
114
- - having an **empty** `_data/locales.yml` at `source` directory will override the **entire `["data"]["locales"]` payload** from the theme-gem as **`false`**.
115
- - having an **empty** `_data/locales/fr.yml` at `source` directory will override the **enire `["data"]["locales"]["fr"]` payload** from the theme-gem as **`false`**
116
-
117
-
118
- ## Contributing
119
-
120
- Bug reports and pull requests are welcome at the [GitHub Repo](https://github.com/ashmaroli/jekyll-data). This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
121
-
122
-
123
- ## License
124
-
125
- The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
@@ -1,49 +0,0 @@
1
- require "jekyll"
2
- require "jekyll-data/version"
3
-
4
- module JekyllData
5
- autoload :Reader, "jekyll-data/reader"
6
- autoload :ThemedSiteDrop, "jekyll-data/themed_site_drop"
7
- autoload :ThemeDataReader, "jekyll-data/theme_data_reader"
8
- autoload :ThemeConfiguration, "jekyll-data/theme_configuration"
9
- end
10
-
11
- # Monkey-patches
12
- require_relative "jekyll/build_options"
13
- require_relative "jekyll/data_path"
14
- require_relative "jekyll/theme_drop"
15
-
16
- # ----------------------------------------------------------------------------
17
- # Modify the current site instance if it uses a gem-based theme else have this
18
- # plugin disabled.
19
- #
20
- # if a '_config.yml' is present at the root of theme-gem, it is evaluated and
21
- # the extracted hash data is incorprated into the site's config hash.
22
- # ----------------------------------------------------------------------------
23
- Jekyll::Hooks.register :site, :after_reset do |site|
24
- if site.theme
25
- file = site.in_theme_dir("_config.yml")
26
- JekyllData::ThemeConfiguration.reconfigure(site) if File.exist?(file)
27
- else
28
- Jekyll.logger.abort_with(
29
- "JekyllData:",
30
- "Error! This plugin only works with gem-based jekyll-themes. " \
31
- "Please disable this plugin to proceed."
32
- )
33
- end
34
- end
35
-
36
- # ---------------------------------------------------------------------------
37
- # Replace Jekyll::Reader with a subclass JekyllData::Reader only if the
38
- # site uses a gem-based theme.
39
- #
40
- # If a _config.yml exists at the root of the theme-gem, output its path.
41
- # Placed here inorder to avoid outputting the path after every regeneration.
42
- # ---------------------------------------------------------------------------
43
- Jekyll::Hooks.register :site, :after_init do |site|
44
- if site.theme
45
- file = site.in_theme_dir("_config.yml")
46
- Jekyll.logger.info "Theme Config file:", file if File.exist?(file)
47
- site.reader = JekyllData::Reader.new(site)
48
- end
49
- end
@@ -1,223 +0,0 @@
1
- # encoding: UTF-8
2
- require "csv"
3
-
4
- module JekyllData
5
- class Reader < Jekyll::Reader
6
- def initialize(site)
7
- @site = site
8
- @theme = site.theme
9
- @theme_data_files = Dir[File.join(site.theme.root,
10
- site.config["data_dir"], "**", "*.{yaml,yml,json,csv}")]
11
- end
12
-
13
- # Read data files within theme-gem.
14
- #
15
- # Returns nothing.
16
- def read
17
- super
18
- read_theme_data
19
- end
20
-
21
- # Read data files within a theme gem and add them to internal data
22
- #
23
- # Returns a hash appended with new data
24
- def read_theme_data
25
- if @theme.data_path
26
- #
27
- # show contents of "<theme>/_data/" dir being read while degugging.
28
- inspect_theme_data
29
- theme_data = ThemeDataReader.new(site).read(site.config["data_dir"])
30
- @site.data = Jekyll::Utils.deep_merge_hashes(theme_data, @site.data)
31
- #
32
- # show contents of merged site.data hash while debugging with
33
- # additional --show-data switch.
34
- inspect_merged_hash if site.config["show-data"] && site.config["verbose"]
35
- end
36
- end
37
-
38
- private
39
-
40
- # Private:
41
- # (only while debugging)
42
- #
43
- # Print a list of data file(s) within the theme-gem
44
- def inspect_theme_data
45
- print_clear_line
46
- Jekyll.logger.debug "Reading:", "Theme Data Files..."
47
- @theme_data_files.each { |file| Jekyll.logger.debug "", file }
48
- print_clear_line
49
- Jekyll.logger.debug "Merging:", "Theme Data Hash..."
50
-
51
- unless site.config["show-data"] && site.config["verbose"]
52
- Jekyll.logger.debug "", "use --show-data with --verbose to output " \
53
- "merged Data Hash.".cyan
54
- print_clear_line
55
- end
56
- end
57
-
58
- # Private:
59
- # (only while debugging)
60
- #
61
- # Print contents of the merged data hash
62
- def inspect_merged_hash
63
- Jekyll.logger.debug "Inspecting:", "Site Data >>"
64
-
65
- # the width of generated logger[message]
66
- @width = 50
67
- @dashes = "-" * @width
68
-
69
- inspect_hash @site.data
70
- print_clear_line
71
- end
72
-
73
- # --------------------------------------------------------------------
74
- # Private helper methods to inspect data hash and output contents
75
- # to logger at level debugging.
76
- # --------------------------------------------------------------------
77
-
78
- # Dissect the (merged) site.data hash and print its contents
79
- #
80
- # - Print the key string(s)
81
- # - Individually analyse the hash[key] values and extract contents
82
- # to output.
83
- def inspect_hash(hash)
84
- hash.each do |key, value|
85
- print_key key
86
- if value.is_a? Hash
87
- inspect_inner_hash value
88
- elsif value.is_a? Array
89
- extract_hashes_and_print value
90
- else
91
- print_string value.to_s
92
- end
93
- end
94
- end
95
-
96
- # Analyse deeper hashes and extract contents to output
97
- def inspect_inner_hash(hash)
98
- hash.each do |key, value|
99
- if value.is_a? Array
100
- print_label key
101
- extract_hashes_and_print value
102
- elsif value.is_a? Hash
103
- print_subkey_and_value key, value
104
- else
105
- print_hash key, value
106
- end
107
- end
108
- end
109
-
110
- # If an array of strings, print. Otherwise assume as an
111
- # array of hashes (sequences) that needs further analysis.
112
- def extract_hashes_and_print(array)
113
- array.each do |entry|
114
- if entry.is_a? String
115
- print_list entry
116
- else
117
- inspect_inner_hash entry
118
- end
119
- end
120
- end
121
-
122
- #
123
-
124
- # --------------------------------------------------------------------
125
- # Private methods for formatting log messages while debugging
126
- # --------------------------------------------------------------------
127
-
128
- # Splits a string longer than the value of '@width' into smaller
129
- # strings and prints each line as a logger[message]
130
- #
131
- # string - the long string
132
- #
133
- # label - optional text to designate the printed lines.
134
- def print_long_string(string, label = "")
135
- strings = string.scan(%r!(.{1,#{@width}})(\s+|\W|\Z)!).map { |s| s.join.strip }
136
- first_line = strings.first.cyan
137
-
138
- label.empty? ? print_value(first_line) : print(label, first_line)
139
- strings[1..-1].each { |s| print_value s.cyan }
140
- end
141
-
142
- # Prints key as logger[topic] and value as [message]
143
- def print_hash(key, value)
144
- if value.length > @width
145
- print_long_string value, "#{key}:"
146
- else
147
- print "#{key}:", value.cyan
148
- end
149
- end
150
-
151
- def print_list(item)
152
- if item.length > @width
153
- print_long_string item, "-"
154
- else
155
- print "-", item.cyan
156
- end
157
- end
158
-
159
- def print_string(str)
160
- if str.length > @width
161
- print_long_string str
162
- else
163
- print_value str.inspect
164
- end
165
- end
166
-
167
- # Prints the site.data[key] in color
168
- def print_key(key)
169
- print_clear_line
170
- print "Data Key:", " #{key} ".center(@width, "=")
171
- print_clear_line
172
- end
173
-
174
- # Prints label, keys and values of mappings
175
- def print_subkey_and_value(key, value)
176
- print_label key
177
- value.each do |subkey, val|
178
- if val.is_a? Hash
179
- print_inner_subkey subkey
180
- inspect_inner_hash val
181
- elsif val.is_a? Array
182
- print_inner_subkey subkey
183
- extract_hashes_and_print val
184
- elsif val.is_a? String
185
- print_hash subkey, val
186
- end
187
- end
188
- end
189
-
190
- # Print only logger[message], [topic] = nil
191
- def print_value(value)
192
- if value.is_a? Array
193
- extract_hashes_and_print value
194
- else
195
- print "", value
196
- end
197
- end
198
-
199
- # Print only logger[topic] appended with a colon
200
- def print_label(key)
201
- print_value " #{key} ".center(@width, "-")
202
- end
203
-
204
- def print_inner_subkey(key)
205
- print "#{key}:", @dashes
206
- end
207
-
208
- def print_dashes
209
- print "", @dashes
210
- end
211
-
212
- def print_clear_line
213
- print ""
214
- end
215
-
216
- # Redefine Jekyll Loggers to have the [topic] indented by 30.
217
- # (rjust by just 29 to accomodate the additional whitespace added
218
- # by Jekyll)
219
- def print(topic, message = "")
220
- Jekyll.logger.debug topic.rjust(29), message
221
- end
222
- end
223
- end
@@ -1,64 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- module JekyllData
4
- class ThemeConfiguration < Jekyll::Configuration
5
- class << self
6
- # Public: Establish a new site.config hash by reading an optional config
7
- # file within the theme-gem and appending the resulting hash to
8
- # existing site.config filling in keys not already defined.
9
- #
10
- # site: current Jekyll::Site instance.
11
- #
12
- # Returns a config Hash to be used by an 'after_reset' hook.
13
- def reconfigure(site)
14
- default_hash = Jekyll::Configuration::DEFAULTS
15
- theme_config = ThemeConfiguration.new(site).read_theme_config
16
-
17
- # Merge with existing site.config and strip any remaining defaults
18
- config = Jekyll::Utils.deep_merge_hashes(
19
- theme_config, site.config
20
- ).reject { |key, value| value == default_hash[key] }
21
-
22
- # Merge DEFAULTS < _config.yml in theme-gem < config file(s) from source
23
- # and redefine site.config
24
- site.config = Jekyll::Configuration.from(
25
- Jekyll::Utils.deep_merge_hashes(theme_config, config)
26
- )
27
- end
28
- end
29
-
30
- #
31
-
32
- def initialize(site)
33
- @site = site
34
- end
35
-
36
- # Public: Read the '_config.yml' file within the theme-gem.
37
- # Additionally validates that the extracted config data and the
38
- # the 'value' of '<site.theme.name> key', when present, is a Hash.
39
- #
40
- # Returns a Configuration Hash
41
- def read_theme_config
42
- file = @site.in_theme_dir("_config.yml")
43
- theme_name = @site.theme.name
44
-
45
- config = safe_load_file(file)
46
-
47
- check_config_is_hash!(config, file)
48
- validate_config_hash config[theme_name] unless config[theme_name].nil?
49
-
50
- config
51
- end
52
-
53
- private
54
-
55
- # Validate the <site.theme.name> key's value to be accessed via the `theme`
56
- # namespace.
57
- def validate_config_hash(value)
58
- unless value.is_a? Hash
59
- Jekyll.logger.abort_with "JekyllData:", "Theme Configuration should be a " \
60
- "Hash of key:value pairs or mappings. But got #{value.class} instead."
61
- end
62
- end
63
- end
64
- end
@@ -1,37 +0,0 @@
1
- module JekyllData
2
- class ThemeDataReader < Jekyll::DataReader
3
- attr_reader :site, :content
4
- def initialize(site)
5
- @site = site
6
- @content = {}
7
- @entry_filter = Jekyll::EntryFilter.new(site)
8
- end
9
-
10
- def read(dir)
11
- return unless site.theme && site.theme.data_path
12
- base = site.in_theme_dir(dir)
13
- read_data_to(base, @content)
14
- @content
15
- end
16
-
17
- def read_data_to(dir, data)
18
- return unless File.directory?(dir) && !@entry_filter.symlink?(dir)
19
-
20
- entries = Dir.chdir(dir) do
21
- Dir["*.{yaml,yml,json,csv}"] + Dir["*"].select { |fn| File.directory?(fn) }
22
- end
23
-
24
- entries.each do |entry|
25
- path = @site.in_theme_dir(dir, entry)
26
- next if @entry_filter.symlink?(path)
27
-
28
- if File.directory?(path)
29
- read_data_to(path, data[sanitize_filename(entry)] = {})
30
- else
31
- key = sanitize_filename(File.basename(entry, ".*"))
32
- data[key] = read_data_file(path)
33
- end
34
- end
35
- end
36
- end
37
- end
@@ -1,15 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- module JekyllData
4
- class ThemedSiteDrop < Jekyll::Drops::SiteDrop
5
- extend Forwardable
6
-
7
- mutable false
8
-
9
- def_delegator :@obj, :site_data, :data
10
- def_delegators :@obj, :theme
11
-
12
- private
13
- def_delegator :@obj, :config, :fallback_data
14
- end
15
- end
@@ -1,3 +0,0 @@
1
- module JekyllData
2
- VERSION = "1.0.1".freeze
3
- end
@@ -1,17 +0,0 @@
1
- module Jekyll
2
- class Command
3
- class << self
4
- #
5
- # patch original method to inject a '--show-data' switch to display
6
- # merged data hash
7
- #
8
- alias_method :original_build_options, :add_build_options
9
-
10
- def add_build_options(c)
11
- original_build_options(c)
12
- c.option "show-data", "--show-data",
13
- "Print merged site-data hash when used with --verbose."
14
- end
15
- end
16
- end
17
- end
@@ -1,7 +0,0 @@
1
- module Jekyll
2
- class Theme
3
- def data_path
4
- path_for "_data".freeze
5
- end
6
- end
7
- end
@@ -1,20 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- module Jekyll
4
- module Drops
5
- class UnifiedPayloadDrop < Drop
6
- def site
7
- @site_drop ||= JekyllData::ThemedSiteDrop.new(@obj)
8
- end
9
-
10
- # Register a namespace to easily call subkeys under <theme-name> key
11
- # in the _config.yml within a theme-gem via its bundled templates.
12
- # e.g. with this drop, theme-specific variables usually called like
13
- # {{ site.minima.date_format }} can be shortened to simply
14
- # {{ theme.date_format }}.
15
- def theme
16
- @theme_drop ||= site[site.theme.name]
17
- end
18
- end
19
- end
20
- end