jekyll-theme-basically-basic 1.2.0 → 1.3.0

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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -1
  3. data/README.md +233 -73
  4. data/_includes/scripts.html +12 -1
  5. data/_includes/search-form.html +13 -0
  6. data/_includes/search/algolia-search-scripts.html +52 -0
  7. data/_includes/search/lunr-search-scripts.html +106 -0
  8. data/_layouts/default.html +18 -3
  9. data/_sass/basically-basic.scss +2 -1
  10. data/_sass/basically-basic/_base.scss +5 -5
  11. data/_sass/basically-basic/_global.scss +5 -1
  12. data/_sass/basically-basic/_navicons.scss +148 -125
  13. data/_sass/basically-basic/_search.scss +101 -0
  14. data/_sass/basically-basic/_sidebar.scss +166 -142
  15. data/_sass/basically-basic/_syntax-highlighting.scss +6 -0
  16. data/_sass/basically-basic/_utilities.scss +6 -5
  17. data/_sass/basically-basic/utilities/_visibility.scss +32 -0
  18. data/assets/javascripts/lunr/lunr.da.min.js +18 -0
  19. data/assets/javascripts/lunr/lunr.de.min.js +18 -0
  20. data/assets/javascripts/lunr/lunr.du.min.js +18 -0
  21. data/assets/javascripts/lunr/lunr.es.min.js +18 -0
  22. data/assets/javascripts/lunr/lunr.fi.min.js +18 -0
  23. data/assets/javascripts/lunr/lunr.fr.min.js +18 -0
  24. data/assets/javascripts/lunr/lunr.hu.min.js +18 -0
  25. data/assets/javascripts/lunr/lunr.it.min.js +18 -0
  26. data/assets/javascripts/lunr/lunr.ja.min.js +1 -0
  27. data/assets/javascripts/lunr/lunr.jp.min.js +1 -0
  28. data/assets/javascripts/lunr/lunr.min.js +6 -0
  29. data/assets/javascripts/lunr/lunr.multi.min.js +1 -0
  30. data/assets/javascripts/lunr/lunr.no.min.js +18 -0
  31. data/assets/javascripts/lunr/lunr.pt.min.js +18 -0
  32. data/assets/javascripts/lunr/lunr.ro.min.js +18 -0
  33. data/assets/javascripts/lunr/lunr.ru.min.js +18 -0
  34. data/assets/javascripts/lunr/lunr.stemmer.support.min.js +1 -0
  35. data/assets/javascripts/lunr/lunr.sv.min.js +18 -0
  36. data/assets/javascripts/lunr/lunr.tr.min.js +18 -0
  37. data/assets/javascripts/main.js +11 -1
  38. data/assets/javascripts/search-data.json +27 -0
  39. metadata +27 -2
@@ -0,0 +1,52 @@
1
+ <!-- Including InstantSearch.js library and styling -->
2
+ <script src="https://cdn.jsdelivr.net/npm/instantsearch.js@2.3.3/dist/instantsearch.min.js"></script>
3
+ <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/instantsearch.js@2.3.3/dist/instantsearch.min.css">
4
+ <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/instantsearch.js@2.3.3/dist/instantsearch-theme-algolia.min.css">
5
+
6
+ <script>
7
+ // Instanciating InstantSearch.js with Algolia credentials
8
+ const search = instantsearch({
9
+ appId: '{{ site.algolia.application_id }}',
10
+ apiKey: '{{ site.algolia.search_only_api_key }}',
11
+ indexName: '{{ site.algolia.index_name }}',
12
+ searchParameters: {
13
+ restrictSearchableAttributes: [
14
+ 'title',
15
+ 'content'
16
+ ]
17
+ }
18
+ });
19
+
20
+ const hitTemplate = function(hit) {
21
+ const url = hit.url;
22
+ const title = hit._highlightResult.title.value;
23
+ const content = hit._highlightResult.html.value;
24
+
25
+ return `
26
+ <article class="entry">
27
+ <h3 class="entry-title"><a href="{{ site.baseurl }}${url}">${title}</a></h3>
28
+ <div class="entry-excerpt">${content}</div>
29
+ </article>
30
+ `;
31
+ }
32
+
33
+ // Adding searchbar and results widgets
34
+ search.addWidget(
35
+ instantsearch.widgets.searchBox({
36
+ container: '.search-searchbar',
37
+ {% unless site.algolia.powered_by == false %}poweredBy: true,{% endunless %}
38
+ placeholder: '{{ site.data.theme.t.menu.search_placeholder_text | default: "Enter your search term..." }}'
39
+ })
40
+ );
41
+ search.addWidget(
42
+ instantsearch.widgets.hits({
43
+ container: '.search-hits',
44
+ templates: {
45
+ item: hitTemplate
46
+ }
47
+ })
48
+ );
49
+
50
+ // Starting the search
51
+ search.start();
52
+ </script>
@@ -0,0 +1,106 @@
1
+ {%- assign lang = site.lang | slice: 0, 2 | default: "en" -%}
2
+ {%- case lang -%}
3
+ {%- when "da" -%}
4
+ {%- assign lang = "da" -%}
5
+ {%- when "de" -%}
6
+ {%- assign lang = "de" -%}
7
+ {%- when "du" -%}
8
+ {%- assign lang = "du" -%}
9
+ {-% when "es" -%}
10
+ {%- assign lang = "es" -%}
11
+ {%- when "fi" -%}
12
+ {%- assign lang = "fi" -%}
13
+ {%- when "fr" -%}
14
+ {%- assign lang = "fr" -%}
15
+ {%- when "hu" -%}
16
+ {%- assign lang = "hu" -%}
17
+ {%- when "it" -%}
18
+ {%- assign lang = "it" -%}
19
+ {%- when "ja" -%}
20
+ {%- assign lang = "ja" -%}
21
+ {%- when "jp" -%}
22
+ {%- assign lang = "jp" -%}
23
+ {%- when "no" -%}
24
+ {%- assign lang = "no" -%}
25
+ {%- when "pt" -%}
26
+ {%- assign lang = "pt" -%}
27
+ {%- when "ro" -%}
28
+ {%- assign lang = "ro" -%}
29
+ {%- when "ru" -%}
30
+ {%- assign lang = "ru" -%}
31
+ {%- when "sv" -%}
32
+ {%- assign lang = "sv" -%}
33
+ {%- when "tr" -%}
34
+ {%- assign lang = "tr" -%}
35
+ {%- else -%}
36
+ {%- assign lang = "en" -%}
37
+ {%- endcase -%}
38
+ <script src="{{ '/assets/javascripts/lunr/lunr.min.js' | absolute_url }}"></script>
39
+ <script src="{{ '/assets/javascripts/search-data.json' | absolute_url }}"></script>
40
+ {%- unless lang == "en" -%}
41
+ <script src="{{ '/assets/javascripts/lunr/lunr.stemmer.support.min.js' | absolute_url }}"></script>
42
+ <script src="{{ '/assets/javascripts/lunr/lunr.' | append: lang | append: '.min.js' | absolute_url }}"></script>
43
+ {%- endunless %}
44
+ <script>
45
+ var idx = lunr(function () {
46
+ {% unless lang == "en" %}
47
+ // use the language
48
+ this.use(lunr.{{ lang }});
49
+ {% endunless %}
50
+ // the, the normal lunr index initialization
51
+ this.field('title')
52
+ this.field('excerpt')
53
+ this.field('categories')
54
+ this.field('tags')
55
+ this.ref('id')
56
+
57
+ this.pipeline.remove(lunr.trimmer)
58
+
59
+ // add documents to index
60
+ for (var item in store) {
61
+ this.add({
62
+ title: store[item].title,
63
+ excerpt: store[item].excerpt,
64
+ categories: store[item].categories,
65
+ tags: store[item].tags,
66
+ id: item
67
+ })
68
+ }
69
+ });
70
+
71
+ console.log(jQuery.type(idx));
72
+
73
+ $(document).ready(function () {
74
+ $('input#search').on('keyup', function () {
75
+ var resultdiv = $('#results');
76
+ var query = $(this).val().toLowerCase();
77
+ var result =
78
+ idx.query(function (q) {
79
+ query.split(lunr.tokenizer.separator).forEach(function (term) {
80
+ q.term(term, { boost: 100 })
81
+ if (query.lastIndexOf(" ") != query.length - 1) {
82
+ q.term(term, { usePipeline: false, wildcard: lunr.Query.wildcard.TRAILING, boost: 10 })
83
+ }
84
+ if (term != "") {
85
+ q.term(term, { usePipeline: false, editDistance: 1, boost: 1 })
86
+ }
87
+ })
88
+ });
89
+ resultdiv.empty();
90
+ resultdiv.prepend('<p class="results-found">' + result.length + ' {{ site.data.theme.t.menu.results_found | default: "Result(s) found" }}</p>');
91
+ for (var item in result) {
92
+ var ref = result[item].ref;
93
+ var searchitem =
94
+ '<article class="entry">' +
95
+ '<h3 class="entry-title">' +
96
+ '<a href="' + store[ref].url + '">' + store[ref].title + '</a>' +
97
+ '</h3>' +
98
+ '<div class="entry-excerpt">' +
99
+ '<p>' + store[ref].excerpt.split(" ").splice(0, 20).join(" ") + '...</p>' +
100
+ '</div>' +
101
+ '</article>';
102
+ resultdiv.append(searchitem);
103
+ }
104
+ });
105
+ });
106
+ </script>
@@ -1,6 +1,6 @@
1
1
  <!DOCTYPE html>
2
2
  <!--
3
- Basically Basic Jekyll Theme 1.2.0
3
+ Basically Basic Jekyll Theme 1.3.0
4
4
  Copyright 2017-2018 Michael Rose - mademistakes.com | @mmistakes
5
5
  Free for personal and commercial use under the MIT license
6
6
  https://github.com/mmistakes/jekyll-basically-theme/blob/master/LICENSE.md
@@ -13,9 +13,18 @@
13
13
  {% include skip-links.html %}
14
14
 
15
15
  <div class="sidebar-toggle-wrapper">
16
+ {% if site.search %}
17
+ <button class="search-toggle" type="button">
18
+ <svg class="icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15.99 16">
19
+ <title>{{ site.data.theme.t.search | default: 'Search' }}</title>
20
+ <path d="M15.5,13.12L13.19,10.8a1.69,1.69,0,0,0-1.28-.55l-0.06-.06A6.5,6.5,0,0,0,5.77,0,6.5,6.5,0,0,0,2.46,11.59a6.47,6.47,0,0,0,7.74.26l0.05,0.05a1.65,1.65,0,0,0,.5,1.24l2.38,2.38A1.68,1.68,0,0,0,15.5,13.12ZM6.4,2A4.41,4.41,0,1,1,2,6.4,4.43,4.43,0,0,1,6.4,2Z" transform="translate(-.01)"></path>
21
+ </svg>
22
+ </button>
23
+ {% endif %}
24
+
16
25
  <button class="toggle navicon-button larr" type="button">
17
26
  <span class="toggle-inner">
18
- <span class="sidebar-toggle-label">{{ site.data.theme.t.menu | default: 'Menu' }}</span>
27
+ <span class="sidebar-toggle-label visually-hidden">{{ site.data.theme.t.menu | default: 'Menu' }}</span>
19
28
  <span class="navicon"></span>
20
29
  </span>
21
30
  </button>
@@ -31,7 +40,13 @@
31
40
  <div class="canvas">
32
41
  <div class="wrapper">
33
42
  {% include masthead.html %}
34
- {{ content }}
43
+ <div class="initial-content">
44
+ {{ content }}
45
+ </div>
46
+
47
+ <div class="search-content">
48
+ {% include search-form.html %}
49
+ </div>
35
50
  </div>
36
51
  </div>
37
52
 
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Basically Basic Jekyll Theme 1.2.0
2
+ * Basically Basic Jekyll Theme 1.3.0
3
3
  * Copyright 2017-2018 Michael Rose - mademistakes | @mmistakes
4
4
  * Free for personal and commercial use under the MIT license
5
5
  * https://github.com/mmistakes/jekyll-theme-basically-basic/blob/master/LICENSE.md
@@ -22,6 +22,7 @@
22
22
  @import "basically-basic/global";
23
23
  @import "basically-basic/sidebar";
24
24
  @import "basically-basic/navigation";
25
+ @import "basically-basic/search";
25
26
  @import "basically-basic/footer";
26
27
  @import "basically-basic/entries";
27
28
  @import "basically-basic/buttons";
@@ -111,8 +111,8 @@ a {
111
111
  }
112
112
  }
113
113
 
114
- *:focus {
115
- border-color: $accent-color;
116
- outline: none;
117
- box-shadow: 0 0 10px $accent-color;
118
- }
114
+ // *:focus {
115
+ // border-color: $accent-color;
116
+ // outline: none;
117
+ // box-shadow: 0 0 10px $accent-color;
118
+ // }
@@ -6,7 +6,9 @@
6
6
  @include fluid-type($min-vw, $max-vw, 20px, 24px);
7
7
  margin: 0;
8
8
  padding: 1.8125rem 1rem;
9
- padding-right: calc(10vw + #{$navicon-width}); /* make room for sidebar toggle */
9
+ padding-right: calc(
10
+ 10vw + (2 * #{$navicon-width})
11
+ ); /* make room for sidebar toggle */
10
12
  font-family: $base-font-family;
11
13
  font-weight: bold;
12
14
  line-height: 1;
@@ -21,8 +23,10 @@
21
23
 
22
24
  a {
23
25
  display: -ms-flexbox;
26
+ display: -webkit-box;
24
27
  display: flex;
25
28
  -ms-flex-align: center;
29
+ -webkit-box-align: center;
26
30
  align-items: center;
27
31
  min-height: $site-image-height;
28
32
  color: $text-color;
@@ -1,125 +1,148 @@
1
- /* ==========================================================================
2
- Navicons
3
- ========================================================================== */
4
-
5
- .navicon-button {
6
- display: inline-block;
7
- position: relative;
8
- margin: 0.90625rem 0;
9
- padding: 0.90625rem 1rem;
10
- transition: $navicon-duration / 2;
11
- border: 0;
12
- outline: none;
13
- background-color: $navicon-nav-bg-close;
14
- line-height: 5 * $navicon-height;
15
- cursor: pointer;
16
- -moz-user-select: none;
17
- -ms-user-select: none;
18
- -webkit-user-select: none;
19
- user-select: none;
20
-
21
- @include breakpoint($medium) {
22
- margin-right: 2rem;
23
- }
24
-
25
- @include breakpoint($large) {
26
- margin-right: 5vw;
27
- }
28
-
29
- &.open {
30
- background-color: $navicon-nav-bg-open;
31
- }
32
-
33
- .navicon::before,
34
- .navicon::after {
35
- transition-duration: $navicon-duration / 2;
36
- }
37
-
38
- &:hover {
39
- transition-duration: $navicon-duration;
40
-
41
- .navicon::before,
42
- .navicon::after {
43
- transition-duration: $navicon-duration / 2;
44
- }
45
-
46
- .navicon::before { top: (2.5 * $navicon-height); }
47
- .navicon::after { top: (-2.5 * $navicon-height); }
48
- }
49
- }
50
-
51
- .navicon {
52
- position: relative;
53
- width: $navicon-width;
54
- height: $navicon-height;
55
- transition-duration: $navicon-duration;
56
- border-radius: $navicon-width;
57
- background: $navicon-content-bg;
58
-
59
- &::before,
60
- &::after {
61
- display: block;
62
- position: absolute;
63
- width: $navicon-width;
64
- height: $navicon-height;
65
- transition-duration: $navicon-duration $navicon-duration / 2;
66
- border-radius: $navicon-width;
67
- background: $navicon-content-bg;
68
- content: '';
69
- }
70
-
71
- &::before { top: (2 * $navicon-height); }
72
- &::after { top: (-2 * $navicon-height); }
73
- }
74
-
75
- .open:not(.steps) .navicon::before,
76
- .open:not(.steps) .navicon::after {
77
- top: 0 !important;
78
- }
79
-
80
- .open {
81
- transform: scale($navicon-toggled-size);
82
-
83
- .navicon::before,
84
- .navicon::after {
85
- transition-duration: $navicon-duration;
86
- }
87
-
88
- /* Arrows */
89
- &.larr .navicon,
90
- &.rarr .navicon,
91
- &.uarr .navicon {
92
-
93
- &::before,
94
- &::after {
95
- width: (0.6 * $navicon-width);
96
- }
97
-
98
- &::before {
99
- transform: rotate(35deg);
100
- transform-origin: left top;
101
- }
102
-
103
- &::after {
104
- transform: rotate(-35deg);
105
- transform-origin: left bottom;
106
- }
107
- }
108
-
109
- &.uarr {
110
- transform: scale($navicon-toggled-size) rotate(90deg);
111
- }
112
-
113
- &.rarr .navicon {
114
-
115
- &::before {
116
- transform: translate3d(1em, 0, 0) rotate(-35deg);
117
- transform-origin: right top;
118
- }
119
-
120
- &::after {
121
- transform: translate3d(1em, 0, 0) rotate(35deg);
122
- transform-origin: right bottom;
123
- }
124
- }
125
- }
1
+ /* ==========================================================================
2
+ Navicons
3
+ ========================================================================== */
4
+
5
+ .navicon-button {
6
+ display: inline-block;
7
+ position: relative;
8
+ padding: 0.90625rem 0;
9
+ min-height: $site-image-height;
10
+ -webkit-transition: $navicon-duration / 2;
11
+ transition: $navicon-duration / 2;
12
+ border: 0;
13
+ outline: none;
14
+ background-color: $navicon-nav-bg-close;
15
+ line-height: 5 * $navicon-height;
16
+ cursor: pointer;
17
+ -moz-user-select: none;
18
+ -ms-user-select: none;
19
+ -webkit-user-select: none;
20
+ user-select: none;
21
+
22
+ &.open {
23
+ background-color: $navicon-nav-bg-open;
24
+ }
25
+
26
+ .navicon::before,
27
+ .navicon::after {
28
+ -webkit-transition-duration: $navicon-duration / 2;
29
+ transition-duration: $navicon-duration / 2;
30
+ }
31
+
32
+ &:hover {
33
+ -webkit-transition-duration: $navicon-duration;
34
+ transition-duration: $navicon-duration;
35
+
36
+ .navicon::before,
37
+ .navicon::after {
38
+ -webkit-transition-duration: $navicon-duration / 2;
39
+ transition-duration: $navicon-duration / 2;
40
+ }
41
+
42
+ .navicon::before {
43
+ top: (2.5 * $navicon-height);
44
+ }
45
+ .navicon::after {
46
+ top: (-2.5 * $navicon-height);
47
+ }
48
+ }
49
+ }
50
+
51
+ .navicon {
52
+ position: relative;
53
+ width: $navicon-width;
54
+ height: $navicon-height;
55
+ -webkit-transition-duration: $navicon-duration;
56
+ transition-duration: $navicon-duration;
57
+ border-radius: $navicon-width;
58
+ background: $navicon-content-bg;
59
+
60
+ &::before,
61
+ &::after {
62
+ display: block;
63
+ position: absolute;
64
+ width: $navicon-width;
65
+ height: $navicon-height;
66
+ -webkit-transition-duration: $navicon-duration $navicon-duration / 2;
67
+ transition-duration: $navicon-duration $navicon-duration / 2;
68
+ border-radius: $navicon-width;
69
+ background: $navicon-content-bg;
70
+ content: "";
71
+ }
72
+
73
+ &::before {
74
+ top: (2 * $navicon-height);
75
+ }
76
+ &::after {
77
+ top: (-2 * $navicon-height);
78
+ }
79
+ }
80
+
81
+ .open:not(.steps) .navicon::before,
82
+ .open:not(.steps) .navicon::after {
83
+ top: 0 !important;
84
+ }
85
+
86
+ .open {
87
+ -webkit-transform: scale($navicon-toggled-size);
88
+ -ms-transform: scale($navicon-toggled-size);
89
+ transform: scale($navicon-toggled-size);
90
+
91
+ .navicon::before,
92
+ .navicon::after {
93
+ -webkit-transition-duration: $navicon-duration;
94
+ transition-duration: $navicon-duration;
95
+ }
96
+
97
+ /* Arrows */
98
+ &.larr .navicon,
99
+ &.rarr .navicon,
100
+ &.uarr .navicon {
101
+ &::before,
102
+ &::after {
103
+ width: (0.6 * $navicon-width);
104
+ }
105
+
106
+ &::before {
107
+ -webkit-transform: rotate(35deg);
108
+ -ms-transform: rotate(35deg);
109
+ transform: rotate(35deg);
110
+ -webkit-transform-origin: left top;
111
+ -ms-transform-origin: left top;
112
+ transform-origin: left top;
113
+ }
114
+
115
+ &::after {
116
+ -webkit-transform: rotate(-35deg);
117
+ -ms-transform: rotate(-35deg);
118
+ transform: rotate(-35deg);
119
+ -webkit-transform-origin: left bottom;
120
+ -ms-transform-origin: left bottom;
121
+ transform-origin: left bottom;
122
+ }
123
+ }
124
+
125
+ &.uarr {
126
+ -webkit-transform: scale($navicon-toggled-size) rotate(90deg);
127
+ -ms-transform: scale($navicon-toggled-size) rotate(90deg);
128
+ transform: scale($navicon-toggled-size) rotate(90deg);
129
+ }
130
+
131
+ &.rarr .navicon {
132
+ &::before {
133
+ -webkit-transform: translate3d(1em, 0, 0) rotate(-35deg);
134
+ transform: translate3d(1em, 0, 0) rotate(-35deg);
135
+ -webkit-transform-origin: right top;
136
+ -ms-transform-origin: right top;
137
+ transform-origin: right top;
138
+ }
139
+
140
+ &::after {
141
+ -webkit-transform: translate3d(1em, 0, 0) rotate(35deg);
142
+ transform: translate3d(1em, 0, 0) rotate(35deg);
143
+ -webkit-transform-origin: right bottom;
144
+ -ms-transform-origin: right bottom;
145
+ transform-origin: right bottom;
146
+ }
147
+ }
148
+ }