jekyll-maps 1.1.6 → 2.0.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
  SHA1:
3
- metadata.gz: 3bf3fffa8b6a67a476bdbe5fc43b4448098bb365
4
- data.tar.gz: a2907b6e1a100ed5ed7d66bdbfcd2278b2316127
3
+ metadata.gz: ff712952d8af10379eb6c0b661849966afda5d95
4
+ data.tar.gz: 7c177d50a81d48be0231d9b3f408d0b893d5143b
5
5
  SHA512:
6
- metadata.gz: a326efc82dd3efa73f3c140137c0f87f29f86e93d8d795883cd4a83f57d7064ee8868e3e250932c04cda356fa784eada946ea9ba612ad9a85c107a8d5dfcaf38
7
- data.tar.gz: f7bb0962ad9a89794a2c767b88a92870bb995048b313c678e92fe8ed71fd7bb8672ca3dee3b14bdefbfab2168a9929f903b3473b9e7575b6c8581ca1d125b612
6
+ metadata.gz: b08891aa61f5a8206265a7eb89cb744f7e9762c71bc82442be66725104654dd0b883fe8b6498d223bcfe5d65eeca8ef4066c0ed8d2f1845f46cb89d642f62b30
7
+ data.tar.gz: 4e2253c2dfa01023e861b5b75ccf8258e1b81904f35a43b085350a82af7bb251c06e51ba9cc204841a5aafd08e7cea27fbd584165593bcfb6e1f24ea961a5829
data/History.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 2.0.0 / 2016-11-06
2
+
3
+ * change default behaviour to load location from current page
4
+ * removed on-page flag
5
+ * change attributes syntax to HTML-style
6
+
1
7
  ## 1.1.6 / 2016-09-07
2
8
  * fix #15 - broken page if there is <header> tag used
3
9
  * allow setting custom zoom level with `zoom:10` attribute
@@ -1,4 +1,5 @@
1
1
  require "securerandom"
2
+ require "ostruct"
2
3
  require "jekyll-maps/google_map_api"
3
4
  require "jekyll-maps/google_map_tag"
4
5
  require "jekyll-maps/location_finder"
@@ -7,16 +7,40 @@ module Jekyll
7
7
  end
8
8
 
9
9
  def find(site, page)
10
- if @options[:flags][:on_page]
10
+ if @options[:filters].empty?
11
11
  @documents << page if location?(page)
12
12
  else
13
13
  site.collections.each { |_, collection| filter(collection.docs) }
14
- site.data.each { |_, docs| filter(docs) }
14
+ site_data(site).each { |_, items| traverse(items) }
15
15
  end
16
16
 
17
17
  convert
18
18
  end
19
19
 
20
+ private
21
+ def site_data(site)
22
+ return {} unless data_source?
23
+
24
+ path = @options[:filters]["src"].scan(%r!_data\/([^\/]+)!).join(".")
25
+ return site.data if path.empty?
26
+
27
+ data = OpenStruct.new(site.data)
28
+ data[path]
29
+ end
30
+
31
+ private
32
+ def data_source?
33
+ filters = @options[:filters]
34
+ filters.key?("src") && filters["src"].start_with?("_data")
35
+ end
36
+
37
+ private
38
+ def traverse(items)
39
+ return filter(items) if items.is_a?(Array)
40
+
41
+ items.each { |_, children| traverse(children) } if items.is_a?(Hash)
42
+ end
43
+
20
44
  private
21
45
  def filter(docs)
22
46
  docs.each do |doc|
@@ -31,8 +55,13 @@ module Jekyll
31
55
 
32
56
  private
33
57
  def match_filters?(doc)
34
- @options[:filters].each do |key, value|
35
- return false if doc[key].nil? || doc[key] != value
58
+ @options[:filters].each do |filter, value|
59
+ if filter == "src"
60
+ return true unless doc.respond_to?(:relative_path)
61
+ return false unless doc.relative_path.start_with?(value)
62
+ elsif doc[filter].nil? || doc[filter] != value
63
+ return false
64
+ end
36
65
  end
37
66
  end
38
67
 
@@ -1,10 +1,9 @@
1
1
  module Jekyll
2
2
  module Maps
3
3
  class OptionsParser
4
- OPTIONS_SYNTAX = %r!([^\s]+)\s*:\s*([^\s]+)!
4
+ OPTIONS_SYNTAX = %r!([^\s]+)\s*=\s*['"]+([^\s'"]+)['"]+!
5
5
  ALLOWED_FLAGS = %w(
6
6
  no_cluster
7
- on_page
8
7
  ).freeze
9
8
  ALLOWED_ATTRIBUTES = %w(
10
9
  id
@@ -1,5 +1,5 @@
1
1
  module Jekyll
2
2
  module Maps
3
- VERSION = "1.1.6".freeze
3
+ VERSION = "2.0.0".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-maps
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.6
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anatoliy Yastreb
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-07 00:00:00.000000000 Z
11
+ date: 2016-11-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll