Skip to content

Commit

Permalink
Minimize JSON data (mmistakes#1449)
Browse files Browse the repository at this point in the history
* Remove Lunr trimmer & bring back colons

* Add Greek Stemmer

* Translate search_placeholder_text and results_found to Greek

* Minimize JSON data

* Truncate Words

* Move store variable into a new file

* Move Lunr files into a new folder

* Add defer to lunr scripts

* Add search_full_content switch
  • Loading branch information
nickgarlis authored and mmistakes committed Jan 5, 2018
1 parent 76b02a8 commit 3fb63f3
Show file tree
Hide file tree
Showing 8 changed files with 67 additions and 89 deletions.
3 changes: 2 additions & 1 deletion _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
minimal_mistakes_skin : "default" # "air", "aqua", "contrast", "dark", "dirt", "neon", "mint", "plum", "sunrise"

# Site Settings
locale : "en"
locale : "en-US"
title : "Site Title"
title_separator : "-"
name : "Your Name"
Expand Down Expand Up @@ -52,6 +52,7 @@ reCaptcha:
atom_feed:
path : # blank (default) uses feed.xml
search : # true, false (default)
search_full_content : # true, false (default)

# SEO Related
google_site_verification :
Expand Down
5 changes: 3 additions & 2 deletions _includes/scripts.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,9 @@
{% else %}
{% assign lang = "en" %}
{% endcase %}
<script src="{{ '/assets/js/lunr.min.js' | absolute_url }}"></script>
<script src="{{ '/assets/js/lunr-' | append: lang | append: '.js' | absolute_url }}"></script>
<script defer src="{{ '/assets/js/lunr/lunr.min.js' | absolute_url }}"></script>
<script defer src="{{ '/assets/js/lunr/lunr-store.js' | absolute_url }}"></script>
<script defer src="{{ '/assets/js/lunr/lunr-' | append: lang | append: '.js' | absolute_url }}"></script>
{% endif %}

{% include analytics.html %}
Expand Down
55 changes: 12 additions & 43 deletions assets/js/lunr-en.js → assets/js/lunr/lunr-en.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,58 +11,27 @@ var idx = lunr(function () {

this.pipeline.remove(lunr.trimmer)

{% assign count = 0 %}
{% for c in site.collections %}
{% assign docs = c.docs | where_exp:'doc','doc.search != false' %}
{% for doc in docs %}
this.add({
title: {{ doc.title | jsonify }},
excerpt: {{ doc.content | strip_html | truncatewords: 20 | jsonify }},
categories: {{ doc.categories | jsonify }},
tags: {{ doc.tags | jsonify }},
id: {{ count }}
})
{% assign count = count | plus: 1 %}
{% endfor %}
{% endfor %}
for (var item in store) {
this.add({
title: store[item].title,
excerpt: store[item].excerpt,
categories: store[item].categories,
tags: store[item].tags,
id: item
})
}
});

console.log( jQuery.type(idx) );

var store = [
{% for c in site.collections %}
{% if forloop.last %}
{% assign l = true %}
{% endif %}
{% assign docs = c.docs | where_exp:'doc','doc.search != false' %}
{% for doc in docs %}
{% if doc.header.teaser %}
{% capture teaser %}{{ doc.header.teaser }}{% endcapture %}
{% else %}
{% assign teaser = site.teaser %}
{% endif %}
{
"title": {{ doc.title | jsonify }},
"url": {{ doc.url | absolute_url | jsonify }},
"excerpt": {{ doc.content | strip_html | truncatewords: 20 | jsonify }},
"teaser":
{% if teaser contains "://" %}
{{ teaser | jsonify }}
{% else %}
{{ teaser | absolute_url | jsonify }}
{% endif %}
}{% unless forloop.last and l %},{% endunless %}
{% endfor %}
{% endfor %}]

$(document).ready(function() {
$('input#search').on('keyup', function () {
var resultdiv = $('#results');
var query = $(this).val().toLowerCase();
var result =
idx.query(function (q) {
query.split(lunr.tokenizer.separator).forEach(function (term) {
q.term(term, { boost: 100 })
q.term(term, { boost: 100 })
if(query.lastIndexOf(" ") != query.length-1){
q.term(term, { usePipeline: false, wildcard: lunr.Query.wildcard.TRAILING, boost: 10 })
}
Expand All @@ -85,7 +54,7 @@ $(document).ready(function() {
'<div class="archive__item-teaser">'+
'<img src="'+store[ref].teaser+'" alt="">'+
'</div>'+
'<p class="archive__item-excerpt" itemprop="description">'+store[ref].excerpt+'</p>'+
'<p class="archive__item-excerpt" itemprop="description">'+store[ref].excerpt.split(" ").splice(0,20).join(" ")+'...</p>'+
'</article>'+
'</div>';
}
Expand All @@ -96,7 +65,7 @@ $(document).ready(function() {
'<h2 class="archive__item-title" itemprop="headline">'+
'<a href="'+store[ref].url+'" rel="permalink">'+store[ref].title+'</a>'+
'</h2>'+
'<p class="archive__item-excerpt" itemprop="description">'+store[ref].excerpt+'</p>'+
'<p class="archive__item-excerpt" itemprop="description">'+store[ref].excerpt.split(" ").splice(0,20).join(" ")+'...</p>'+
'</article>'+
'</div>';
}
Expand Down
53 changes: 11 additions & 42 deletions assets/js/lunr-gr.js → assets/js/lunr/lunr-gr.js
Original file line number Diff line number Diff line change
Expand Up @@ -464,50 +464,19 @@ var idx = lunr(function () {
this.pipeline.add(greekStemmer)
this.pipeline.remove(lunr.stemmer)

{% assign count = 0 %}
{% for c in site.collections %}
{% assign docs = c.docs | where_exp:'doc','doc.search != false' %}
{% for doc in docs %}
this.add({
title: {{ doc.title | jsonify }},
excerpt: {{ doc.content | strip_html | truncatewords: 20 | jsonify }},
categories: {{ doc.categories | jsonify }},
tags: {{ doc.tags | jsonify }},
id: {{ count }}
})
{% assign count = count | plus: 1 %}
{% endfor %}
{% endfor %}
for (var item in store) {
this.add({
title: store[item].title,
excerpt: store[item].excerpt,
categories: store[item].categories,
tags: store[item].tags,
id: item
})
}
});

console.log( jQuery.type(idx) );

var store = [
{% for c in site.collections %}
{% if forloop.last %}
{% assign l = true %}
{% endif %}
{% assign docs = c.docs | where_exp:'doc','doc.search != false' %}
{% for doc in docs %}
{% if doc.header.teaser %}
{% capture teaser %}{{ doc.header.teaser }}{% endcapture %}
{% else %}
{% assign teaser = site.teaser %}
{% endif %}
{
"title": {{ doc.title | jsonify }},
"url": {{ doc.url | absolute_url | jsonify }},
"excerpt": {{ doc.content | strip_html | truncatewords: 20 | jsonify }},
"teaser":
{% if teaser contains "://" %}
{{ teaser | jsonify }}
{% else %}
{{ teaser | absolute_url | jsonify }}
{% endif %}
}{% unless forloop.last and l %},{% endunless %}
{% endfor %}
{% endfor %}]

$(document).ready(function() {
$('input#search').on('keyup', function () {
var resultdiv = $('#results');
Expand Down Expand Up @@ -538,7 +507,7 @@ $(document).ready(function() {
'<div class="archive__item-teaser">'+
'<img src="'+store[ref].teaser+'" alt="">'+
'</div>'+
'<p class="archive__item-excerpt" itemprop="description">'+store[ref].excerpt+'</p>'+
'<p class="archive__item-excerpt" itemprop="description">'+store[ref].excerpt.split(" ").splice(0,20).join(" ")+'...</p>'+
'</article>'+
'</div>';
}
Expand All @@ -549,7 +518,7 @@ $(document).ready(function() {
'<h2 class="archive__item-title" itemprop="headline">'+
'<a href="'+store[ref].url+'" rel="permalink">'+store[ref].title+'</a>'+
'</h2>'+
'<p class="archive__item-excerpt" itemprop="description">'+store[ref].excerpt+'</p>'+
'<p class="archive__item-excerpt" itemprop="description">'+store[ref].excerpt.split(" ").splice(0,20).join(" ")+'...</p>'+
'</article>'+
'</div>';
}
Expand Down
36 changes: 36 additions & 0 deletions assets/js/lunr/lunr-store.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
layout: null
---

var store = [
{% for c in site.collections %}
{% if forloop.last %}
{% assign l = true %}
{% endif %}
{% assign docs = c.docs | where_exp:'doc','doc.search != false' %}
{% for doc in docs %}
{% if doc.header.teaser %}
{% capture teaser %}{{ doc.header.teaser }}{% endcapture %}
{% else %}
{% assign teaser = site.teaser %}
{% endif %}
{
"title": {{ doc.title | jsonify }},
"excerpt":
{% if site.search_full_content == true %}
{{ doc.content | strip_html | strip_newlines | jsonify }},
{% else %}
{{ doc.content | strip_html | strip_newlines | truncatewords: 50 | jsonify }},
{% endif %}
"categories": {{ doc.categories | jsonify }},
"tags": {{ doc.tags | jsonify }},
"url": {{ doc.url | absolute_url | jsonify }},
"teaser":
{% if teaser contains "://" %}
{{ teaser | jsonify }}
{% else %}
{{ teaser | absolute_url | jsonify }}
{% endif %}
}{% unless forloop.last and l %},{% endunless %}
{% endfor %}
{% endfor %}]
File renamed without changes.
1 change: 1 addition & 0 deletions docs/_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ atom_feed:
path : # blank (default) uses feed.xml

search : true # true, false (default)
search_full_content : true # true, false (default)

# SEO Related
google_site_verification : "UQj93ERU9zgECodaaXgVpkjrFn9UrDMEzVamacSoQ8Y" # Replace this with your ID, or delete
Expand Down
3 changes: 2 additions & 1 deletion test/_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ theme : "minimal-mistakes-jekyll"
minimal_mistakes_skin : "default" # "air", "aqua", "contrast", "dark", "dirt", "neon", "mint", "plum", "sunrise"

# Site Settings
locale : "en"
locale : "en-US"
title : "Minimal Mistakes Development Test Site"
title_separator : "-"
name : "Your Name"
Expand Down Expand Up @@ -50,6 +50,7 @@ staticman:
atom_feed:
path : # blank (default) uses feed.xml
search : true # true, false (default)
search_full_content : true # true, false (default)

# SEO Related
google_site_verification :
Expand Down

0 comments on commit 3fb63f3

Please sign in to comment.