nanoc-conref-fs 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/nanoc-conref-fs/conref-fs.rb +21 -4
- data/nanoc-conref-fs.gemspec +1 -1
- data/test/conref_fs_test.rb +11 -0
- data/test/fixtures/Rules +6 -1
- data/test/fixtures/content/datafiles/retrieve.html +16 -0
- data/test/fixtures/content/datafiles/retrieve.md +5 -0
- data/test/fixtures/layouts/retrieve.html +15 -0
- metadata +7 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4d7ad8948dbfd2807188dace405629e8556be38b
|
4
|
+
data.tar.gz: a2e748402407b1c74347d32c4f3cda89fff7d1cd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 331081baa3f15c26b040858f4a24ed03d9d01d6a73448b6da85c19d0908c852f2380eb07c0995cc2cd9d25e0ce454629cad01dae4842167108f049c8a14bcdd8
|
7
|
+
data.tar.gz: ef19358bbe4722d0181b6d999a8878aad3960208856978555ab22976ad79b2ebb75783bbf4a1d347c06d6d93984c7574b3e7e953956ea9d920f6509304fdbacd
|
@@ -1,20 +1,37 @@
|
|
1
1
|
require_relative 'conrefifier'
|
2
2
|
|
3
|
+
# Unsure why attr_accessor does not work here
|
4
|
+
module VariableMixin
|
5
|
+
def self.variables
|
6
|
+
@variables
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.variables=(variables)
|
10
|
+
@variables = variables
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
3
14
|
class ConrefFS < Nanoc::DataSource
|
4
15
|
include Nanoc::DataSources::Filesystem
|
16
|
+
include VariableMixin
|
5
17
|
|
6
18
|
identifier :conref_fs
|
7
19
|
|
8
20
|
# Before iterating over the file objects, this method loads the data folder
|
9
21
|
# and applies to to an ivar for later usage.
|
10
22
|
def load_objects(dir_name, kind, klass)
|
11
|
-
if klass == Nanoc::Int::Item && @
|
23
|
+
if klass == Nanoc::Int::Item && @variables.nil?
|
12
24
|
data = Datafiles.process(@site_config)
|
13
|
-
@
|
25
|
+
@variables = { 'site' => { 'config' => @site_config.to_h, 'data' => data } }
|
26
|
+
VariableMixin.variables = @variables
|
14
27
|
end
|
15
28
|
super
|
16
29
|
end
|
17
30
|
|
31
|
+
def self.fetch_variables
|
32
|
+
@variables
|
33
|
+
end
|
34
|
+
|
18
35
|
# This function calls the parent super, then adds additional metadata to the item.
|
19
36
|
def parse(content_filename, meta_filename, _kind)
|
20
37
|
meta, content = super
|
@@ -22,7 +39,7 @@ class ConrefFS < Nanoc::DataSource
|
|
22
39
|
unless page_vars[:data_association].nil?
|
23
40
|
association = page_vars[:data_association]
|
24
41
|
reference = association.split('.')
|
25
|
-
toc = @
|
42
|
+
toc = @variables['site']['data']
|
26
43
|
while key = reference.shift
|
27
44
|
toc = toc[key]
|
28
45
|
end
|
@@ -62,7 +79,7 @@ class ConrefFS < Nanoc::DataSource
|
|
62
79
|
def read(filename)
|
63
80
|
begin
|
64
81
|
page_vars = Conrefifier.file_variables(@site_config[:page_variables], filename)
|
65
|
-
page_vars = { :page => page_vars }.merge(@
|
82
|
+
page_vars = { :page => page_vars }.merge(@variables)
|
66
83
|
|
67
84
|
data = File.read(filename)
|
68
85
|
return data unless filename.start_with?('content')
|
data/nanoc-conref-fs.gemspec
CHANGED
@@ -3,7 +3,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |spec|
|
5
5
|
spec.name = 'nanoc-conref-fs'
|
6
|
-
spec.version = '0.
|
6
|
+
spec.version = '0.2.0'
|
7
7
|
spec.authors = ['Garen Torikian']
|
8
8
|
spec.email = ['gjtorikian@gmail.com']
|
9
9
|
spec.summary = 'A Nanoc filesystem to permit using conrefs/reusables in your content.'
|
data/test/conref_fs_test.rb
CHANGED
@@ -113,4 +113,15 @@ class DatafilesTest < MiniTest::Test
|
|
113
113
|
assert_equal output_file, test_file
|
114
114
|
end
|
115
115
|
end
|
116
|
+
|
117
|
+
def test_it_fetches_variables
|
118
|
+
with_site(name: FIXTURES_DIR) do |site|
|
119
|
+
|
120
|
+
site = Nanoc::Int::SiteLoader.new.new_from_cwd
|
121
|
+
site.compile
|
122
|
+
output_file = read_output_file('datafiles', 'retrieve')
|
123
|
+
test_file = read_test_file('datafiles', 'retrieve')
|
124
|
+
assert_equal output_file, test_file
|
125
|
+
end
|
126
|
+
end
|
116
127
|
end
|
data/test/fixtures/Rules
CHANGED
@@ -5,9 +5,14 @@ compile '/**/*.html' do
|
|
5
5
|
end
|
6
6
|
|
7
7
|
compile '/**/*.md' do
|
8
|
-
|
8
|
+
if item[:filename] =~ /retrieve/
|
9
|
+
layout '/retrieve.*'
|
10
|
+
else
|
11
|
+
layout '/default.*'
|
12
|
+
end
|
9
13
|
end
|
10
14
|
|
15
|
+
|
11
16
|
route '/**/*.md' do
|
12
17
|
item.identifier.without_ext + '/index.html'
|
13
18
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nanoc-conref-fs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Garen Torikian
|
@@ -104,6 +104,8 @@ files:
|
|
104
104
|
- test/fixtures/Rules
|
105
105
|
- test/fixtures/content/datafiles/deep.html
|
106
106
|
- test/fixtures/content/datafiles/deep.md
|
107
|
+
- test/fixtures/content/datafiles/retrieve.html
|
108
|
+
- test/fixtures/content/datafiles/retrieve.md
|
107
109
|
- test/fixtures/content/frontmatter/audience.html
|
108
110
|
- test/fixtures/content/frontmatter/audience.md
|
109
111
|
- test/fixtures/content/frontmatter/different.html
|
@@ -126,6 +128,7 @@ files:
|
|
126
128
|
- test/fixtures/data/variables/empty.yml
|
127
129
|
- test/fixtures/data/variables/product.yml
|
128
130
|
- test/fixtures/layouts/default.html
|
131
|
+
- test/fixtures/layouts/retrieve.html
|
129
132
|
- test/fixtures/nanoc.yaml
|
130
133
|
- test/test_helper.rb
|
131
134
|
homepage: https://github.com/gjtorikian/nanoc-conref-fs
|
@@ -158,6 +161,8 @@ test_files:
|
|
158
161
|
- test/fixtures/Rules
|
159
162
|
- test/fixtures/content/datafiles/deep.html
|
160
163
|
- test/fixtures/content/datafiles/deep.md
|
164
|
+
- test/fixtures/content/datafiles/retrieve.html
|
165
|
+
- test/fixtures/content/datafiles/retrieve.md
|
161
166
|
- test/fixtures/content/frontmatter/audience.html
|
162
167
|
- test/fixtures/content/frontmatter/audience.md
|
163
168
|
- test/fixtures/content/frontmatter/different.html
|
@@ -180,5 +185,6 @@ test_files:
|
|
180
185
|
- test/fixtures/data/variables/empty.yml
|
181
186
|
- test/fixtures/data/variables/product.yml
|
182
187
|
- test/fixtures/layouts/default.html
|
188
|
+
- test/fixtures/layouts/retrieve.html
|
183
189
|
- test/fixtures/nanoc.yaml
|
184
190
|
- test/test_helper.rb
|