middleman-search-gds 0.11.0a → 0.11.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/CHANGELOG.md +3 -0
- data/README.md +19 -3
- data/lib/middleman-search/search-index-resource.rb +9 -3
- data/lib/middleman-search/version.rb +1 -1
- metadata +10 -10
- /data/{middleman-search.gemspec → middleman-search-gds.gemspec} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: da8fdabed383e3f9b0113de262a53ec7c570e9852d7dd766d6f16ffca553974f
|
4
|
+
data.tar.gz: c3f9e64751b03205d21ed946c3df60203fb2a03f0f4ce895ea9b221932ff2161
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93fbc2ae89a34470cfd9e29dca9d1279637b6a6b900642d8cf44c9b7e024df1bee4802b8307334340ce734eceb79882e0c32b27f8d7815c00122c8988a2d6209
|
7
|
+
data.tar.gz: d531d18d40a6b4d985fd4fe0aaf0135545c8476e72fdf1bb039a294cf3c69e920547a5f8a0398521d4a0840e3524683091421e2a4374332438213d6c0b205a87
|
data/CHANGELOG.md
ADDED
data/README.md
CHANGED
@@ -16,6 +16,12 @@ Or install it yourself as:
|
|
16
16
|
|
17
17
|
$ gem install middleman-search
|
18
18
|
|
19
|
+
## Deployment
|
20
|
+
|
21
|
+
New releases of this gem do not get deployed automatically.
|
22
|
+
|
23
|
+
To release it you will need to follow the process to [publish to rubygems.org](https://guides.rubygems.org/publishing/#publishing-to-rubygemsorg), using the alphagov credentials - contact someone in GOV.UK senior tech for access.
|
24
|
+
|
19
25
|
## Usage
|
20
26
|
|
21
27
|
You need to activate the module in your `config.rb`, telling the extension how to index your resources:
|
@@ -49,9 +55,19 @@ Where `resources` is a list of the beginning of the URL of the resources to inde
|
|
49
55
|
|
50
56
|
Note that a special field `id` is included automatically, with an autogenerated identifier to be used as the `ref` for the document.
|
51
57
|
|
52
|
-
|
53
|
-
|
54
|
-
|
58
|
+
Dynamic resources can be proxied as below:
|
59
|
+
|
60
|
+
```ruby
|
61
|
+
ProxyPages.resources.each do |resource|
|
62
|
+
proxy "/foo/#{resource.filename}.html", "templates/my_template.html", { title: resource.title }
|
63
|
+
end
|
64
|
+
```
|
65
|
+
|
66
|
+
All fields values are retrieved from the resource `data` (i.e. its frontmatter), or from the `options` in the `resource.metadata` (i.e. any options specified in a `proxy` page - the third parameter in the example above). The exceptions are:
|
67
|
+
|
68
|
+
- `url`, which is the actual resource url
|
69
|
+
- `content`, which is by default the text extracted from the rendered resource (without its layout).
|
70
|
+
Indexing lots of content can cause performance issues, so you may want to override this field in the resource data (e.g. `content: ""`) if the page contents aren't relevant to the index.
|
55
71
|
|
56
72
|
You can then query the index from Javascript via the `lunrIndex` object (see [Index file](#index-file) for more info):
|
57
73
|
|
@@ -128,17 +128,23 @@ module Middleman
|
|
128
128
|
def value_for(resource, field, opts={})
|
129
129
|
case field.to_s
|
130
130
|
when 'content'
|
131
|
+
overridden_content = retrieve_custom_value(resource, field)
|
132
|
+
return overridden_content unless overridden_content.nil?
|
131
133
|
|
132
134
|
html = resource.render( { :layout => false }, { :current_path => resource.path } )
|
133
135
|
Nokogiri::HTML(html).xpath("//text()").text
|
134
136
|
when 'url'
|
135
137
|
resource.url
|
136
138
|
else
|
137
|
-
|
138
|
-
value ? Array(value).compact.join(" ") : nil
|
139
|
+
retrieve_custom_value(resource, field)
|
139
140
|
end
|
140
141
|
end
|
141
142
|
|
143
|
+
def retrieve_custom_value(resource, field)
|
144
|
+
value = resource.data.send(field) || resource.metadata.fetch(:options, {}).fetch(field, nil)
|
145
|
+
value ? Array(value).compact.join(" ") : nil
|
146
|
+
end
|
147
|
+
|
142
148
|
private
|
143
149
|
|
144
150
|
def minified_path(resource_name)
|
@@ -150,7 +156,7 @@ module Middleman
|
|
150
156
|
def lunr_resource(resource_name)
|
151
157
|
@lunr_dirs.flat_map do |dir|
|
152
158
|
[File.join(dir, minified_path(resource_name)), File.join(dir, resource_name)]
|
153
|
-
end.detect { |file| File.
|
159
|
+
end.detect { |file| File.exist? file } or raise "Couldn't find #{resource_name} nor #{minified_path(resource_name)} in #{@lunr_dirs.map {|dir| File.absolute_path dir }.join File::PATH_SEPARATOR}"
|
154
160
|
end
|
155
161
|
end
|
156
162
|
end
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: middleman-search-gds
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Government Digital Service
|
8
8
|
- Matías García Isaía
|
9
9
|
- Santiago Palladino
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2023-03-08 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: middleman-core
|
@@ -94,6 +94,7 @@ extra_rdoc_files: []
|
|
94
94
|
files:
|
95
95
|
- ".gitignore"
|
96
96
|
- ".travis.yml"
|
97
|
+
- CHANGELOG.md
|
97
98
|
- Gemfile
|
98
99
|
- LICENSE.txt
|
99
100
|
- README.md
|
@@ -102,7 +103,7 @@ files:
|
|
102
103
|
- lib/middleman-search/search-index-resource.rb
|
103
104
|
- lib/middleman-search/version.rb
|
104
105
|
- lib/middleman_extension.rb
|
105
|
-
- middleman-search.gemspec
|
106
|
+
- middleman-search-gds.gemspec
|
106
107
|
- vendor/assets/javascripts/lunr.da.js
|
107
108
|
- vendor/assets/javascripts/lunr.de.js
|
108
109
|
- vendor/assets/javascripts/lunr.du.js
|
@@ -124,7 +125,7 @@ homepage: http://github.com/alphagov/middleman-search
|
|
124
125
|
licenses:
|
125
126
|
- MIT
|
126
127
|
metadata: {}
|
127
|
-
post_install_message:
|
128
|
+
post_install_message:
|
128
129
|
rdoc_options: []
|
129
130
|
require_paths:
|
130
131
|
- lib
|
@@ -135,13 +136,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
135
136
|
version: '0'
|
136
137
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
137
138
|
requirements:
|
138
|
-
- - "
|
139
|
+
- - ">="
|
139
140
|
- !ruby/object:Gem::Version
|
140
|
-
version:
|
141
|
+
version: '0'
|
141
142
|
requirements: []
|
142
|
-
|
143
|
-
|
144
|
-
signing_key:
|
143
|
+
rubygems_version: 3.4.7
|
144
|
+
signing_key:
|
145
145
|
specification_version: 4
|
146
146
|
summary: LunrJS-based search for Middleman
|
147
147
|
test_files: []
|
File without changes
|