nanoc-conref-fs 0.4.3 → 0.4.4

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
  SHA1:
3
- metadata.gz: 80883b64d0bb6285ba2dd26c11d991310170d5d3
4
- data.tar.gz: b961ceb417cd9538101760a2c871e32e3bf86b2a
3
+ metadata.gz: cbf03675daecb4694ef342f40682105c08117466
4
+ data.tar.gz: b654f9aec04cb0b670be30f8a292bca44f154c79
5
5
  SHA512:
6
- metadata.gz: 71dcfcc7919e46fe2bc62bf351149eb8af6ede84036e6236807508d72aab159aa05a40eb016d25b03bf40db42fb07a9ba737bc9133d51e12c29676fb3057a083
7
- data.tar.gz: 3d73990232db307ab431627c5cd40dcbc286bf22dd35864bcbaa37f322c6b8ab7da31456a7b64a74f91e695c09a5858a6d814e80516938e9d92c2f148ee2c61b
6
+ metadata.gz: 21894f1ea9a1a74fdf32f0b8030687d424716bf8feae45fb0f9f8c965bdc0651de8ebd224337d3ac9d015f4c1b35b873bd831c1058692a510555208456a39001
7
+ data.tar.gz: 9d272820c3cc481104c5da4083e988b293335776fd595d453b5c0a83f575192d588f7a03eae571101136d23514feb196754b334fd89fa7ac339f416c4580be0c
data/Gemfile CHANGED
@@ -1,11 +1,4 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'nanoc', '~> 4.0.0rc3'
4
- gem 'liquid'
5
- gem 'kramdown'
6
- gem 'activesupport'
7
-
8
- gem 'rake'
9
- gem 'minitest'
10
- gem 'awesome_print'
11
- gem 'safe_yaml'
3
+ # Specify your gem's dependencies in jekyll-html-pipeline.gemspec
4
+ gemspec
@@ -28,7 +28,7 @@ class ConrefFS < Nanoc::DataSource
28
28
  identifier :'conref-fs'
29
29
 
30
30
  # Before iterating over the file objects, this method loads the data folder
31
- # and applies to to an ivar for later usage.
31
+ # and applies it to an ivar for later usage.
32
32
  def load_objects(dir_name, kind, klass)
33
33
  if klass == Nanoc::Int::Item && @variables.nil?
34
34
  data = Datafiles.process(@site_config)
@@ -47,16 +47,16 @@ class ConrefFS < Nanoc::DataSource
47
47
  association = page_vars[:data_association]
48
48
  toc = VariableMixin.fetch_data_file(association)
49
49
  meta[:parents] = if toc.is_a?(Array)
50
- find_array_parents(toc, meta['title'])
51
- elsif toc.is_a?(Hash)
52
- find_hash_parents(toc, meta['title'])
53
- end
50
+ find_array_parents(toc, meta['title'])
51
+ elsif toc.is_a?(Hash)
52
+ find_hash_parents(toc, meta['title'])
53
+ end
54
54
 
55
55
  meta[:children] = if toc.is_a?(Array)
56
- find_array_children(toc, meta['title'])
57
- elsif toc.is_a?(Hash)
58
- find_hash_children(toc, meta['title'])
59
- end
56
+ find_array_children(toc, meta['title'])
57
+ elsif toc.is_a?(Hash)
58
+ find_hash_children(toc, meta['title'])
59
+ end
60
60
  end
61
61
  page_vars.each_pair do |name, value|
62
62
  meta[name.to_s] = value
@@ -103,7 +103,6 @@ class ConrefFS < Nanoc::DataSource
103
103
  parents
104
104
  end
105
105
 
106
-
107
106
  # Given a category file that's an array, this method finds
108
107
  # the children of an item, probably a map topic
109
108
  def find_array_children(toc, title)
@@ -162,20 +161,28 @@ class ConrefFS < Nanoc::DataSource
162
161
  result = ''
163
162
  # This pass replaces any conditionals
164
163
  result = if content =~ Conrefifier::BLOCK_SUB
165
- Conrefifier.apply_liquid(content, page_vars)
164
+ content.gsub(Conrefifier::BLOCK_SUB) do |match|
165
+ Conrefifier.apply_liquid(match, page_vars).chomp
166
+ end
166
167
  else
167
- content
168
+ content
168
169
  end
169
170
 
170
171
  # This pass converts the frontmatter variables,
171
172
  # and inserts data variables into the body
172
- result = if result =~ Conrefifier::SINGLE_SUB
173
- result.gsub(Conrefifier::SINGLE_SUB) do |match|
174
- Conrefifier.apply_liquid(match, page_vars)
175
- end
176
- else
177
- result
178
- end
173
+ if result =~ Conrefifier::SINGLE_SUB
174
+ result = result.gsub(Conrefifier::SINGLE_SUB) do |match|
175
+ resolution = Conrefifier.apply_liquid(match, page_vars).strip
176
+ if resolution.start_with?('*')
177
+ if resolution[1] != '*'
178
+ resolution = resolution.sub(/\*(.+?)\*/, '<em>\1</em>')
179
+ else
180
+ resolution = resolution.sub(/\*{2}(.+?)\*{2}/, '<strong>\1</strong>')
181
+ end
182
+ end
183
+ resolution
184
+ end
185
+ end
179
186
 
180
187
  # This second pass renders any previously inserted
181
188
  # data conditionals within the body
@@ -186,7 +193,7 @@ class ConrefFS < Nanoc::DataSource
186
193
  end
187
194
 
188
195
  result
189
- rescue Liquid::SyntaxError => e
196
+ rescue Liquid::SyntaxError
190
197
  # unrecognized Liquid, so just return the content
191
198
  # STDERR.puts "Could not convert #{filename}: #{e.message}"
192
199
  result
@@ -1,3 +1,3 @@
1
1
  module Conrefifier
2
- VERSION = '0.4.3'
2
+ VERSION = '0.4.4'
3
3
  end
@@ -17,10 +17,11 @@ Gem::Specification.new do |spec|
17
17
  spec.test_files = spec.files.grep(%r{^(test)/})
18
18
  spec.require_paths = ['lib']
19
19
 
20
- spec.add_runtime_dependency 'nanoc', '>= 3.1.6'
20
+ spec.add_runtime_dependency 'nanoc', '~> 4.0'
21
21
  spec.add_runtime_dependency 'activesupport', '~> 4.2'
22
22
  spec.add_runtime_dependency 'liquid', '~> 3.0'
23
23
 
24
24
  spec.add_development_dependency 'rake'
25
25
  spec.add_development_dependency 'minitest', '~> 5.8'
26
+ spec.add_development_dependency 'awesome_print'
26
27
  end
@@ -188,4 +188,28 @@ class DatafilesTest < MiniTest::Test
188
188
  assert_equal output_file, test_file
189
189
  end
190
190
  end
191
+
192
+ def test_it_works_if_an_asterisk_is_the_first_character
193
+ with_site(name: FIXTURES_DIR) do |site|
194
+
195
+ site = Nanoc::Int::SiteLoader.new.new_from_cwd
196
+ site.compile
197
+
198
+ output_file = read_output_file('maliciousness', 'asterisk_single')
199
+ test_file = read_test_file('maliciousness', 'asterisk_single')
200
+ assert_equal output_file, test_file
201
+ end
202
+ end
203
+
204
+ def test_it_works_if_asterisks_are_the_first_two_characters
205
+ with_site(name: FIXTURES_DIR) do |site|
206
+
207
+ site = Nanoc::Int::SiteLoader.new.new_from_cwd
208
+ site.compile
209
+
210
+ output_file = read_output_file('maliciousness', 'asterisk_double')
211
+ test_file = read_test_file('maliciousness', 'asterisk_double')
212
+ assert_equal output_file, test_file
213
+ end
214
+ end
191
215
  end
@@ -6,8 +6,8 @@ class DatafilesTest < MiniTest::Test
6
6
  end
7
7
 
8
8
  def test_it_collects_the_files
9
- files = Datafiles.collect_data(File.join(FIXTURES_DIR, 'data'))
10
- names = %w(categories/category categories/simple reusables/intro reusables/names variables/empty variables/product)
9
+ files = Datafiles.collect_data(File.join(FIXTURES_DIR, 'data')).sort
10
+ names = %w(categories/category categories/simple reusables/intro reusables/names variables/asterisks variables/empty variables/product)
11
11
  names.map! { |name| File.join(FIXTURES_DIR, 'data', "#{name}.yml") }
12
12
  assert_equal files, names
13
13
  end
data/test/fixtures/Rules CHANGED
@@ -9,20 +9,17 @@ compile '/**/*.md' do
9
9
  layout '/retrieve.*'
10
10
  elsif item[:filename] =~ /_children/
11
11
  layout '/children.*'
12
+ elsif item[:filename] =~ /asterisk/
13
+ layout '/asterisk.*'
12
14
  else
13
15
  layout '/default.*'
14
16
  end
15
17
  end
16
18
 
17
-
18
19
  route '/**/*.md' do
19
20
  item.identifier.without_ext + '/index.html'
20
21
  end
21
22
 
22
- route '/**/*.html}' do
23
-
24
- end
25
-
26
23
  route '/**/*' do
27
24
  item.identifier.to_s
28
25
  end
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>
5
+ Asterisk
6
+ </title>
7
+ </head>
8
+
9
+ <body>
10
+ <strong>Two-factor authentication</strong>, or 2FA, is a way of logging into websites that requires more than just a password. Using a password to log into a website is susceptible to security threats, because it represents a _single_ piece of information a malicious person needs to acquire. The added security that 2FA provides is requiring _additional information_ to sign in.
11
+
12
+ *Ta-da!*
13
+
14
+ </body>
15
+ </html>
@@ -0,0 +1,6 @@
1
+ ---
2
+ title: Asterisk
3
+ intro: {{ site.data.variables.asterisks.about-two-factor-authentication-strong }}
4
+ ---
5
+
6
+ *Ta-da!*
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>
5
+ Asterisk
6
+ </title>
7
+ </head>
8
+
9
+ <body>
10
+ <em>Two-factor authentication</em>, or 2FA, is a way of logging into websites that requires more than just a password. Using a password to log into a website is susceptible to security threats, because it represents a _single_ piece of information a malicious person needs to acquire. The added security that 2FA provides is requiring _additional information_ to sign in.
11
+
12
+ *Ta-da!*
13
+
14
+ </body>
15
+ </html>
@@ -0,0 +1,6 @@
1
+ ---
2
+ title: Asterisk
3
+ intro: {{ site.data.variables.asterisks.about-two-factor-authentication }}
4
+ ---
5
+
6
+ *Ta-da!*
@@ -0,0 +1,5 @@
1
+ about-two-factor-authentication: |
2
+ *Two-factor authentication*, or 2FA, is a way of logging into websites that requires more than just a password. Using a password to log into a website is susceptible to security threats, because it represents a _single_ piece of information a malicious person needs to acquire. The added security that 2FA provides is requiring _additional information_ to sign in.
3
+
4
+ about-two-factor-authentication-strong: |
5
+ **Two-factor authentication**, or 2FA, is a way of logging into websites that requires more than just a password. Using a password to log into a website is susceptible to security threats, because it represents a _single_ piece of information a malicious person needs to acquire. The added security that 2FA provides is requiring _additional information_ to sign in.
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>
5
+ <%= @item[:title] %>
6
+ </title>
7
+ </head>
8
+
9
+ <body>
10
+ <%= @item[:intro] %>
11
+
12
+ <%= yield %>
13
+
14
+ </body>
15
+ </html>
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nanoc-conref-fs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Garen Torikian
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-10 00:00:00.000000000 Z
11
+ date: 2015-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nanoc
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 3.1.6
19
+ version: '4.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 3.1.6
26
+ version: '4.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activesupport
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '5.8'
83
+ - !ruby/object:Gem::Dependency
84
+ name: awesome_print
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  description:
84
98
  email:
85
99
  - gjtorikian@gmail.com
@@ -121,6 +135,10 @@ files:
121
135
  - test/fixtures/content/frontmatter/different.md
122
136
  - test/fixtures/content/frontmatter/title.html
123
137
  - test/fixtures/content/frontmatter/title.md
138
+ - test/fixtures/content/maliciousness/asterisk_double.html
139
+ - test/fixtures/content/maliciousness/asterisk_double.md
140
+ - test/fixtures/content/maliciousness/asterisk_single.html
141
+ - test/fixtures/content/maliciousness/asterisk_single.md
124
142
  - test/fixtures/content/maliciousness/unknown.html
125
143
  - test/fixtures/content/maliciousness/unknown.md
126
144
  - test/fixtures/content/obfuscation/admonitions.html
@@ -139,8 +157,10 @@ files:
139
157
  - test/fixtures/data/categories/simple.yml
140
158
  - test/fixtures/data/reusables/intro.yml
141
159
  - test/fixtures/data/reusables/names.yml
160
+ - test/fixtures/data/variables/asterisks.yml
142
161
  - test/fixtures/data/variables/empty.yml
143
162
  - test/fixtures/data/variables/product.yml
163
+ - test/fixtures/layouts/asterisk.html
144
164
  - test/fixtures/layouts/children.html
145
165
  - test/fixtures/layouts/default.html
146
166
  - test/fixtures/layouts/retrieve.html
@@ -167,7 +187,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
167
187
  version: '0'
168
188
  requirements: []
169
189
  rubyforge_project:
170
- rubygems_version: 2.4.5
190
+ rubygems_version: 2.4.5.1
171
191
  signing_key:
172
192
  specification_version: 4
173
193
  summary: A Nanoc filesystem to permit using conrefs/reusables in your content.
@@ -193,6 +213,10 @@ test_files:
193
213
  - test/fixtures/content/frontmatter/different.md
194
214
  - test/fixtures/content/frontmatter/title.html
195
215
  - test/fixtures/content/frontmatter/title.md
216
+ - test/fixtures/content/maliciousness/asterisk_double.html
217
+ - test/fixtures/content/maliciousness/asterisk_double.md
218
+ - test/fixtures/content/maliciousness/asterisk_single.html
219
+ - test/fixtures/content/maliciousness/asterisk_single.md
196
220
  - test/fixtures/content/maliciousness/unknown.html
197
221
  - test/fixtures/content/maliciousness/unknown.md
198
222
  - test/fixtures/content/obfuscation/admonitions.html
@@ -211,8 +235,10 @@ test_files:
211
235
  - test/fixtures/data/categories/simple.yml
212
236
  - test/fixtures/data/reusables/intro.yml
213
237
  - test/fixtures/data/reusables/names.yml
238
+ - test/fixtures/data/variables/asterisks.yml
214
239
  - test/fixtures/data/variables/empty.yml
215
240
  - test/fixtures/data/variables/product.yml
241
+ - test/fixtures/layouts/asterisk.html
216
242
  - test/fixtures/layouts/children.html
217
243
  - test/fixtures/layouts/default.html
218
244
  - test/fixtures/layouts/retrieve.html