1
0
mirror of https://github.com/thangisme/notes.git synced 2024-12-22 22:46:23 -05:00
notes/lib/tasks/search.rake
EricFromCanada 60c82cb518 Allow for ampersand in title or URL
Because `page.title` (and `page.url`) is already escaped and page titles served by lunrjs do not need escaping, ampersands need to be unescaped to display properly in search results.
2019-01-16 00:31:30 -05:00

28 lines
923 B
Ruby

namespace :search do
desc 'Generate the files needed for search functionality'
task :init do
puts 'Creating search data json file...'
mkdir_p 'assets/js'
touch 'assets/js/search-data.json'
content = %Q[{{ page.content | markdownify | strip_html | escape_once | remove: 'Table of contents' | remove: '```' | remove: '---' | replace: '\\', ' ' | normalize_whitespace }}]
puts 'Done.'
puts 'Generating content...'
File.open('assets/js/search-data.json', 'w') do |f|
f.puts '---
---
{
{% for page in site.html_pages %}{% if page.search_exclude != true %}"{{ forloop.index0 }}": {
"id": "{{ forloop.index0 }}",
"title": "{{ page.title | replace: '&', '&' }}",
"content": "'+content+'",
"url": "{{ page.url | absolute_url }}",
"relUrl": "{{ page.url }}"
}{% unless forloop.last %},{% endunless %}
{% endif %}{% endfor %}
}'
end
puts 'Done.'
end
end