jekyll-algolia 1.4.7 → 1.4.8

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
- SHA1:
3
- metadata.gz: 8fcc627a7b1dd5f0969aee5dd9b11520172b56b0
4
- data.tar.gz: 2c0e87cf5c96179356da5d91c99b18a66d123c99
2
+ SHA256:
3
+ metadata.gz: 057a2f81a44baa0f0408de91f01537b3e158841e4ae9b6106923d57a88f11159
4
+ data.tar.gz: d3e7d88edd82282fe99d506406d0884aafb48049066638e68cd3f8f3aa0e7cbf
5
5
  SHA512:
6
- metadata.gz: '095ff54e1d9f31b5110d534bebbab7a8390dff9f8095ee95632e947d5adcd079fc33b9255ac1b6e900ec2183683f07ab27e3f30c7de7ae79903757e89ffdcdd3'
7
- data.tar.gz: eb31b4f658e1097feb27a5d4762b0eab6087f11086c958c8acf727b6dfbb10e25ff6600c4e47c939aa17815b229feef230de636f999bd96aae2097d3ae86c996
6
+ metadata.gz: 8fb927d3c90919341f48d49b47aa5e72018c78f1c06241149f868d2c4395bf94ba5a7932ed5769a8873c6d9ac84872e31bf1cfda4a8bb9296765303025534b46
7
+ data.tar.gz: 2602e67b07d7582517a615b3410dde5ec375e0c1795015adc41f8059b3e6d4261918048056fa6330ac13df75c63d569aa06a5858e3d45cc596cc93348ecd3d36
@@ -38,6 +38,16 @@ group :jekyll_plugins do
38
38
  end
39
39
  ```
40
40
 
41
+ ## Running integration tests
42
+
43
+ Integration tests will do a full jekyll run, and push data to an Algolia index,
44
+ checking that records and settings are correctly saved. It is the slowest
45
+ possible kind of tests, but also the one closest to a real implementation.
46
+
47
+ Running those tests requires a real Algolia plan. You need to define
48
+ `ALGOLIA_APPLICATION_ID`, `ALGOLIA_API_KEY` and `ALGOLIA_INDEX_NAME` (we suggest
49
+ using `direnv` for that), and then run `./scripts/test_integration`.
50
+
41
51
  ## Linting
42
52
 
43
53
  Run `rake lint` to check the style of all ruby files. Run `rake
data/README.md CHANGED
@@ -1,12 +1,11 @@
1
1
  # Jekyll Algolia Plugin
2
2
 
3
- [![gem version][1]](https://rubygems.org/gems/jekyll-algolia)
3
+ [![gem version][1]][16]
4
4
  ![ruby][2]
5
5
  ![jekyll][3]
6
- [![build master][4]](https://travis-ci.org/algolia/jekyll-algolia)
7
- [![coverage master][5]](https://coveralls.io/github/algolia/jekyll-algolia?branch=master)
8
- [![build develop][6]](https://travis-ci.org/algolia/jekyll-algolia)
9
- [![coverage develop][7]](https://coveralls.io/github/algolia/jekyll-algolia?branch=develop)
6
+ [![build master][4]][17]
7
+ [![build develop][6]][17]
8
+ [![coverage master][5]][18]
10
9
 
11
10
  Add fast and relevant search to your Jekyll site.
12
11
 
@@ -21,7 +20,7 @@ This will push the content of your Jekyll website to your Algolia index.
21
20
  ## Documentation
22
21
 
23
22
  Full documentation can be found on
24
- [https://community.algolia.com/jekyll-algolia/](https://community.algolia.com/jekyll-algolia/getting-started.html)
23
+ [https://community.algolia.com/jekyll-algolia/][20]
25
24
 
26
25
  ## Installation
27
26
 
@@ -42,12 +41,12 @@ Once this is done, download all dependencies with `bundle install`.
42
41
 
43
42
  ## Basic configuration
44
43
 
45
- You need to provide certain Algolia credentials for this plugin to *index* your
44
+ You need to provide certain Algolia credentials for this plugin to _index_ your
46
45
  site.
47
46
 
48
- *If you don't yet have an Algolia account, we suggest that you open a free
47
+ _If you don't yet have an Algolia account, we suggest that you open a free
49
48
  [Community plan here][8]. You can find more information about the Algolia plans
50
- [in our FAQ][10].*
49
+ [in our FAQ][10]._
51
50
 
52
51
  Once signed in, you should get your application ID from [your dashboard][9] and
53
52
  define it inside your `_config.yml` file like this:
@@ -89,19 +88,42 @@ FAQ][10].
89
88
  Thanks to [Anatoliy Yastreb][14] for a [great tutorial][15] on creating Jekyll
90
89
  plugins.
91
90
 
92
-
93
91
  [1]: https://badge.fury.io/rb/jekyll-algolia.svg
92
+
94
93
  [2]: https://img.shields.io/badge/ruby-%3E%3D%202.3.0-green.svg
94
+
95
95
  [3]: https://img.shields.io/badge/jekyll-%3E%3D%203.6.0-green.svg
96
+
96
97
  [4]: https://img.shields.io/badge/dynamic/json.svg?label=build%3Amaster&query=value&uri=https%3A%2F%2Fimg.shields.io%2Ftravis%2Falgolia%2Fjekyll-algolia.json%3Fbranch%3Dmaster
97
- [5]: https://img.shields.io/badge/dynamic/json.svg?label=coverage%3Amaster&colorB=&prefix=&suffix=%25&query=$.coverage_change&uri=https%3A%2F%2Fcoveralls.io%2Fgithub%2Falgolia%2Fjekyll-algolia.json%3Fbranch%3Dmaster
98
+
99
+ [5]: https://coveralls.io/repos/github/algolia/jekyll-algolia/badge.svg?branch=master
100
+
98
101
  [6]: https://img.shields.io/badge/dynamic/json.svg?label=build%3Adevelop&query=value&uri=https%3A%2F%2Fimg.shields.io%2Ftravis%2Falgolia%2Fjekyll-algolia.json%3Fbranch%3Ddevelop
99
- [7]: https://img.shields.io/badge/dynamic/json.svg?label=coverage%3Adevelop&colorB=&prefix=&suffix=%25&query=$.coverage_change&uri=https%3A%2F%2Fcoveralls.io%2Fgithub%2Falgolia%2Fjekyll-algolia.json%3Fbranch%3Ddevelop
102
+
103
+ [7]: https://coveralls.io/repos/github/algolia/jekyll-algolia/badge.svg?branch=develop
104
+
100
105
  [8]: #more-about-the-community-plan
106
+
101
107
  [9]: https://www.algolia.com/api-keys
108
+
102
109
  [10]: https://community.algolia.com/jekyll-algolia/faq.html#how-many-records-will-the-plugin-need
110
+
103
111
  [11]: https://www.algolia.com/users/sign_up/hacker
112
+
104
113
  [12]: https://community.algolia.com/instantsearch.js/
114
+
105
115
  [13]: https://www.algolia.com/press#resources
116
+
106
117
  [14]: https://github.com/ayastreb/
118
+
107
119
  [15]: https://ayastreb.me/writing-a-jekyll-plugin/
120
+
121
+ [16]: https://rubygems.org/gems/jekyll-algolia
122
+
123
+ [17]: https://travis-ci.org/algolia/jekyll-algolia
124
+
125
+ [18]: https://coveralls.io/github/algolia/jekyll-algolia?branch=master
126
+
127
+ [19]: https://coveralls.io/github/algolia/jekyll-algolia?branch=develop
128
+
129
+ [20]: https://community.algolia.com/jekyll-algolia/getting-started.html
@@ -1,6 +1,6 @@
1
1
  E:[✗ Error] No records found
2
2
  E:
3
- E:The jekyll-algolia plugin could find any records to index
3
+ E:The jekyll-algolia plugin could not find any records to index.
4
4
  W:
5
5
  W:The plugin tried to extract records from the pages, posts and collections of your site but could not find anything to index.
6
6
  I:
@@ -19,6 +19,8 @@ module Jekyll
19
19
  require 'jekyll/algolia/utils'
20
20
  require 'jekyll/algolia/version'
21
21
 
22
+ MissingCredentialsError = Class.new(StandardError)
23
+
22
24
  # Public: Init the Algolia module
23
25
  #
24
26
  # config - A hash of Jekyll config option (merge of _config.yml options and
@@ -33,7 +35,12 @@ module Jekyll
33
35
  config = Configurator.init(config).config
34
36
  @site = Jekyll::Algolia::Site.new(config)
35
37
 
36
- exit 1 unless Configurator.assert_valid_credentials
38
+ unless Configurator.assert_valid_credentials
39
+ raise(
40
+ MissingCredentialsError,
41
+ "One or more credentials were not found for site at: #{@site.source}"
42
+ )
43
+ end
37
44
 
38
45
  Configurator.warn_of_deprecated_options
39
46
 
@@ -209,6 +209,7 @@ module Jekyll
209
209
  def self.verbose?
210
210
  value = get('verbose')
211
211
  return true if value == true
212
+
212
213
  false
213
214
  end
214
215
 
@@ -218,6 +219,7 @@ module Jekyll
218
219
  def self.dry_run?
219
220
  value = get('dry_run')
220
221
  return true if value == true
222
+
221
223
  false
222
224
  end
223
225
 
@@ -228,6 +230,7 @@ module Jekyll
228
230
  def self.force_settings?
229
231
  value = get('force_settings')
230
232
  return true if value == true
233
+
231
234
  false
232
235
  end
233
236
 
@@ -238,6 +241,7 @@ module Jekyll
238
241
  def self.extensions_to_index
239
242
  extensions = algolia('extensions_to_index')
240
243
  return [] if extensions.nil?
244
+
241
245
  extensions = extensions.split(',') if extensions.is_a? String
242
246
  extensions
243
247
  end
@@ -246,7 +250,7 @@ module Jekyll
246
250
  # with the indexing
247
251
  # Note that if other jekyll plugins are defined as part of the
248
252
  # :jekyll_plugins group in the Gemfile, we might be able to override them
249
- # using .load_overwrites in .load_overwrites in jekyll-algolia.rb.
253
+ # using .load_overwrites in jekyll-algolia.rb.
250
254
  # If they are simply required in Gemfile, then we might need to revert
251
255
  # their values to nil values from here
252
256
  def self.disable_other_plugins(config)
@@ -260,6 +264,10 @@ module Jekyll
260
264
  config['pagination'] = {} unless config['pagination'].is_a?(Hash)
261
265
  config['pagination']['enabled'] = false
262
266
 
267
+ # Disable autopages for jekyll-paginate-v2
268
+ config['autopages'] = {} unless config['autopages'].is_a?(Hash)
269
+ config['autopages']['enabled'] = false
270
+
263
271
  # Disable tags from jekyll-tagging
264
272
  config['tag_page_dir'] = nil
265
273
  config['tag_page_layout'] = nil
@@ -57,6 +57,7 @@ module Jekyll
57
57
  known_errors.each do |potential_error|
58
58
  error_check = send("#{potential_error}?", error, context)
59
59
  next if error_check == false
60
+
60
61
  return {
61
62
  name: potential_error,
62
63
  details: error_check
@@ -90,7 +90,15 @@ module Jekyll
90
90
  # an HTML meta refresh. We need to exclude those files from indexing.
91
91
  # https://github.com/jekyll/jekyll-redirect-from
92
92
  def self.redirect?(file)
93
- file.respond_to?(:name) && file.name == 'redirect.html'
93
+ # When using redirect_from, jekyll-redirect-from creates a page named
94
+ # `redirect.html`
95
+ return true if file.respond_to?(:name) && file.name == 'redirect.html'
96
+ # When using redirect_to, it sets the layout to `redirect`
97
+ if file.respond_to?(:data) && file.data['layout'] == 'redirect'
98
+ return true
99
+ end
100
+
101
+ false
94
102
  end
95
103
 
96
104
  # Public: Check if the file has one of the allowed extensions
@@ -305,6 +313,7 @@ module Jekyll
305
313
  selector = Configurator.algolia('nodes_to_index')
306
314
  first_node = Nokogiri::HTML(html).css(selector).first
307
315
  return nil if first_node.nil?
316
+
308
317
  first_node.to_s
309
318
  end
310
319
 
@@ -328,6 +328,7 @@ module Jekyll
328
328
 
329
329
  Logger.log("I:Updating settings of index #{index.name}")
330
330
  return if Configurator.dry_run?
331
+
331
332
  set_settings(settings)
332
333
  end
333
334
 
@@ -49,6 +49,7 @@ module Jekyll
49
49
  # line - The line to display, following the same format as .log
50
50
  def self.verbose(line)
51
51
  return unless Configurator.verbose?
52
+
52
53
  log(line)
53
54
  end
54
55
 
@@ -54,11 +54,7 @@ module Jekyll
54
54
  total: indexable_item_count,
55
55
  format: 'Rendering to HTML (%j%%) |%B|'
56
56
  )
57
- Jekyll::Hooks.register :pages, :post_render do |_|
58
- progress_bar.increment
59
- end
60
-
61
- Jekyll::Hooks.register :documents, :post_render do |_|
57
+ Jekyll::Hooks.register [:pages, :documents], :post_render do
62
58
  progress_bar.increment
63
59
  end
64
60
  end
@@ -42,6 +42,7 @@ module Jekyll
42
42
  # html - String representation of the HTML node
43
43
  def self.html_to_text(html)
44
44
  return nil if html.nil?
45
+
45
46
  text = Nokogiri::HTML(html).text
46
47
  text.tr("\n", ' ').squeeze(' ').strip
47
48
  end
@@ -54,6 +55,7 @@ module Jekyll
54
55
  hash.each do |key, value|
55
56
  next if value.nil?
56
57
  next if value.is_a?(String) && value.empty?
58
+
57
59
  new_hash[key] = value
58
60
  end
59
61
  new_hash
@@ -84,6 +86,7 @@ module Jekyll
84
86
  # It is basically a wrapper around [].find, handling more edge-cases
85
87
  def self.find_by_key(items, key, value)
86
88
  return nil if items.nil?
89
+
87
90
  items.find do |item|
88
91
  item[key] == value
89
92
  end
@@ -140,6 +143,7 @@ module Jekyll
140
143
  end
141
144
 
142
145
  return nil if diff.empty?
146
+
143
147
  diff
144
148
  end
145
149
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Jekyll
4
4
  module Algolia
5
- VERSION = '1.4.7'
5
+ VERSION = '1.4.8'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-algolia
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.7
4
+ version: 1.4.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Carry
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-26 00:00:00.000000000 Z
11
+ date: 2018-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: algolia_html_extractor
@@ -334,7 +334,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
334
334
  version: '0'
335
335
  requirements: []
336
336
  rubyforge_project:
337
- rubygems_version: 2.6.13
337
+ rubygems_version: 2.7.7
338
338
  signing_key:
339
339
  specification_version: 4
340
340
  summary: Index your Jekyll content into Algolia