Поиск по сайту
Пример вывода поиска в Jekyll.
Основная суть в использовании поиска для статического сайта на Jekyll это получение данных нужных типов записей в виде Json массива и дальнейшей его передачи JS скрипту, который распарсит этот массив.
Имеется готовое решение которое можно использовать в своем шаблоне.
<!-- подключаем скрипт -->
<script src="{{ '/assets/js/simple-jekyll-search.min.js?v=' | relative_url }}{{ site.version }}"></script>
<!-- формируем массив данных -->
<script>
const searchJson = `[
{% for post in site.posts %}
{
"title" : "{% if post.title != "" %}{{ post.title | strip_html | escape }}{% else %}{{ post.excerpt | strip_html | escape | strip }}{%endif%}",
"tags" : "{{ post.tags | join: ', ' }}",
"url" : "{{ site.baseurl }}{{ post.url }}",
"date" : "{{ post.date | date: '%d.%m.%Y' | default: '' }}",
"description" : "{{ post.description | default: '' }}"
},
{% endfor %}
{% for post in site.steps %}
{
"title" : "{% if post.title != "" %}{{ post.title | strip_html | escape }}{% else %}{{ post.excerpt | strip_html | escape | strip }}{%endif%}",
"tags" : "{{ post.tags | join: ', ' }}",
"url" : "{{ site.baseurl }}{{ post.url }}",
"date" : "{{ post.date | date: '%d.%m.%Y' | default: '' }}",
"description" : "{{ post.description | default: '' }}"
}{% unless forloop.last %},{% endunless %}
{% endfor %}
]`
// передаем данные в скрипт
new SimpleJekyllSearch(searchJson)
</script>
Обязательно ознакомьтесь с документацией js скрипта SimpleJekyllSearch, так как в примере указана общая концепция, но не сама реализация.