Fixes external blog posts in search (#2470)

Fixes #2469. Separated `news` and `posts` from other collections in
search, since it caused duplicated entries. Also to ensure they are in
chronological reverse order.

Signed-off-by: George Araujo <george.gcac@gmail.com>
This commit is contained in:
George 2024-06-02 13:48:09 -03:00 committed by GitHub
parent afc56cc987
commit b4f90ff416
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 55 additions and 20 deletions

View File

@ -76,15 +76,49 @@
{
{%- assign title = post.title | escape -%}
id: "post-{{ title | slugify }}",
{% if post.redirect == blank %}
title: "{{ title }}",
{% elsif post.redirect contains '://' %}
// TODO: fix the svg icon position for external posts
// title: '{{ title }} <svg width="2rem" height="2rem" top=".5rem" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg"><path d="M17 13.5v6H5v-12h6m3-3h6v6m0-6-9 9" class="icon_svg-stroke" stroke="#999" stroke-width="1.5" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg>',
title: "{{ title }}",
{% else %}
title: "{{ title }}",
{% endif %}
description: "{{ post.description | strip_html | strip_newlines | escape }}",
section: "Posts",
handler: () => {
{% if post.redirect == blank %}
window.location.href = "{{ post.url | relative_url }}";
{% elsif post.redirect contains '://' %}
window.open("{{ post.redirect }}", "_blank");
{% else %}
window.location.href = "{{ post.redirect | relative_url }}";
{% endif %}
},
},
{%- endfor -%}
{%- assign news = site.news | reverse -%}
{%- for item in news -%}
{
{%- if item.inline -%}
{%- assign title = item.content | remove: '<p>' | remove: '</p>' | escape | strip -%}
{%- else -%}
{%- assign title = item.title | escape -%}
{%- endif -%}
id: "news-{{ title | slugify }}",
title: '{{ title | emojify }}',
description: "{{ item.description | strip_html | strip_newlines | escape }}",
section: "News",
{%- unless item.inline -%}
handler: () => {
window.location.href = "{{ item.url | relative_url }}";
},
{%- endunless -%}
},
{%- endfor -%}
{%- for collection in site.collections -%}
{%- if collection.label != 'news' and collection.label != 'posts' -%}
{%- for item in collection.docs -%}
{
{%- if item.inline -%}
@ -103,6 +137,7 @@
{%- endunless -%}
},
{%- endfor -%}
{%- endif -%}
{%- endfor -%}
{%- if site.socials_in_search -%}
{%- if site.email -%}