middleman-search-gds 0.11.0a → 0.11.2
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 +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
|