jekyll-theme-amethyst 0.5.5 → 0.5.6
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.
- checksums.yaml +4 -4
- data/_sass/typesense-minibar.css +23 -14
- data/assets/typesense-minibar.js +39 -33
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bc62c023ae273db79b3acc529dddc7135d43bfe271fb6881f1bb40ddd1cfe8e2
|
4
|
+
data.tar.gz: e942d04b53cebbc392adeb2568e2c76cc89375c4d2856088e7b3b4882af6536f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1d408de5207f6847843de164aefefe67e2625788d31cef75e7f3a01d0c9c259d7750465e3efef0acf3572e2561002b5852a7a05b3f2951c009abf6d0715a4a8a
|
7
|
+
data.tar.gz: 31238e7c423a739c1a779ad90a98192efa45d6b7898fe958ddac5f6b69bf71548ac882a705d7e4f5a8115837b972a75d8a6f5f316deec5d5c7d320732c29354c
|
data/_sass/typesense-minibar.css
CHANGED
@@ -1,12 +1,12 @@
|
|
1
|
-
/*! https://github.com/jquery/typesense-minibar 1.
|
1
|
+
/*! https://github.com/jquery/typesense-minibar 1.1.1 */
|
2
2
|
.tsmb-form {
|
3
3
|
--tsmb-size-edge: 1px;
|
4
4
|
--tsmb-size-radius: 3px;
|
5
5
|
--tsmb-size-highlight: 2px;
|
6
6
|
--tsmb-size-base: 1rem;
|
7
7
|
--tsmb-size-sm: 0.8rem;
|
8
|
-
--tsmb-size-half: calc(
|
9
|
-
--tsmb-size-input: calc(
|
8
|
+
--tsmb-size-half: calc(var(--tsmb-size-sm)/2);
|
9
|
+
--tsmb-size-input: calc(var(--tsmb-size-base) * 1.2);
|
10
10
|
|
11
11
|
--tsmb-color-base-background: #fff;
|
12
12
|
--tsmb-color-base30: #333;
|
@@ -24,10 +24,12 @@
|
|
24
24
|
position: relative;
|
25
25
|
width: 20rem;
|
26
26
|
max-width: 100%;
|
27
|
+
padding: 0;
|
27
28
|
color: var(--tsmb-color-base30);
|
28
29
|
}
|
29
30
|
|
30
31
|
.tsmb-form input[type=search] {
|
32
|
+
box-sizing: border-box;
|
31
33
|
-webkit-appearance: none;
|
32
34
|
-moz-appearance: none;
|
33
35
|
appearance: none;
|
@@ -68,15 +70,22 @@
|
|
68
70
|
background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='654 -372 1664 1664' width='20' height='20'><path d='M1806,332c0-123.3-43.8-228.8-131.5-316.5C1586.8-72.2,1481.3-116,1358-116s-228.8,43.8-316.5,131.5 C953.8,103.2,910,208.7,910,332s43.8,228.8,131.5,316.5C1129.2,736.2,1234.7,780,1358,780s228.8-43.8,316.5-131.5 C1762.2,560.8,1806,455.3,1806,332z M2318,1164c0,34.7-12.7,64.7-38,90s-55.3,38-90,38c-36,0-66-12.7-90-38l-343-342 c-119.3,82.7-252.3,124-399,124c-95.3,0-186.5-18.5-273.5-55.5s-162-87-225-150s-113-138-150-225S654,427.3,654,332 s18.5-186.5,55.5-273.5s87-162,150-225s138-113,225-150S1262.7-372,1358-372s186.5,18.5,273.5,55.5s162,87,225,150s113,138,150,225 S2062,236.7,2062,332c0,146.7-41.3,279.7-124,399l343,343C2305.7,1098.7,2318,1128.7,2318,1164z'/></svg>") 0 50% / contain no-repeat;
|
69
71
|
position: absolute;
|
70
72
|
top: calc(var(--tsmb-size-sm) + var(--tsmb-size-edge));
|
71
|
-
left: var(--tsmb-size-
|
73
|
+
left: var(--tsmb-size-sm);
|
72
74
|
width: var(--tsmb-size-base);
|
73
75
|
height: var(--tsmb-size-input);
|
74
76
|
opacity: 0.5;
|
75
77
|
}
|
76
78
|
|
79
|
+
/* js only */
|
80
|
+
.tsmb-form--open input[type=search],
|
81
|
+
.tsmb-form--slash input[type=search] {
|
82
|
+
padding-right: calc(var(--tsmb-size-sm) + var(--tsmb-size-base) + var(--tsmb-size-base));
|
83
|
+
}
|
84
|
+
|
77
85
|
.tsmb-icon-close {
|
86
|
+
box-sizing: border-box;
|
78
87
|
position: absolute;
|
79
|
-
top: calc(50% - var(--tsmb-size-base)
|
88
|
+
top: calc(50% - var(--tsmb-size-base)/2);
|
80
89
|
right: var(--tsmb-size-base);
|
81
90
|
width: var(--tsmb-size-base);
|
82
91
|
height: var(--tsmb-size-base);
|
@@ -95,15 +104,16 @@
|
|
95
104
|
content: '/';
|
96
105
|
display: inline-block;
|
97
106
|
position: absolute;
|
98
|
-
top: calc(
|
99
|
-
right: var(--tsmb-size-
|
100
|
-
width:
|
101
|
-
height:
|
107
|
+
top: calc(50% - (var(--tsmb-size-input) + var(--tsmb-size-sm)/2)/2);
|
108
|
+
right: var(--tsmb-size-sm);
|
109
|
+
width: calc(var(--tsmb-size-input) + var(--tsmb-size-sm)/2);
|
110
|
+
height: calc(var(--tsmb-size-input) + var(--tsmb-size-sm)/2);
|
102
111
|
|
103
|
-
font-size: var(--tsmb-size-
|
104
|
-
line-height: 2;
|
112
|
+
font-size: var(--tsmb-size-base);
|
113
|
+
line-height: calc(var(--tsmb-size-input) + var(--tsmb-size-sm)/2);
|
105
114
|
text-align: center;
|
106
115
|
|
116
|
+
background: var(--tsmb-color-base-background);
|
107
117
|
border: var(--tsmb-size-edge) solid var(--tsmb-color-base90);
|
108
118
|
border-radius: var(--tsmb-size-radius);
|
109
119
|
color: var(--tsmb-color-base90);
|
@@ -179,15 +189,14 @@
|
|
179
189
|
padding: var(--tsmb-size-base);
|
180
190
|
}
|
181
191
|
|
182
|
-
.tsmb-foot
|
192
|
+
.tsmb-foot,
|
193
|
+
.tsmb-foot:hover {
|
183
194
|
display: block;
|
184
195
|
text-align: right;
|
185
196
|
font-size: var(--tsmb-size-sm);
|
186
197
|
line-height: 18px;
|
187
198
|
padding: var(--tsmb-size-half) var(--tsmb-size-sm);
|
188
199
|
box-shadow: 0 0 10px rgba(0,0,0,0.12);
|
189
|
-
}
|
190
|
-
.tsmb-foot:hover {
|
191
200
|
text-decoration: none;
|
192
201
|
}
|
193
202
|
.tsmb-foot::before {
|
data/assets/typesense-minibar.js
CHANGED
@@ -1,9 +1,23 @@
|
|
1
|
-
/*! https://github.com/jquery/typesense-minibar 1.
|
1
|
+
/*! https://github.com/jquery/typesense-minibar 1.1.1 */
|
2
2
|
globalThis.tsminibar = function tsminibar (form) {
|
3
|
-
const { origin,
|
3
|
+
const { origin, collection } = form.dataset;
|
4
4
|
const group = !!form.dataset.group;
|
5
5
|
const cache = new Map();
|
6
|
-
const state = { query: '',
|
6
|
+
const state = { query: '', cursor: -1, open: false, hits: [] };
|
7
|
+
const searchParams = new URLSearchParams({
|
8
|
+
per_page: '5',
|
9
|
+
query_by: 'hierarchy.lvl0,hierarchy.lvl1,hierarchy.lvl2,hierarchy.lvl3,hierarchy.lvl4,hierarchy.lvl5,content',
|
10
|
+
include_fields: 'hierarchy.lvl0,hierarchy.lvl1,hierarchy.lvl2,hierarchy.lvl3,hierarchy.lvl4,hierarchy.lvl5,content,url_without_anchor,url,id',
|
11
|
+
highlight_full_fields: 'hierarchy.lvl0,hierarchy.lvl1,hierarchy.lvl2,hierarchy.lvl3,hierarchy.lvl4,hierarchy.lvl5,content',
|
12
|
+
group_by: 'url_without_anchor',
|
13
|
+
group_limit: '1',
|
14
|
+
sort_by: 'item_priority:desc',
|
15
|
+
snippet_threshold: '8',
|
16
|
+
highlight_affix_num_tokens: '12',
|
17
|
+
'x-typesense-api-key': form.dataset.key,
|
18
|
+
...Object.fromEntries(new URLSearchParams(form.dataset.searchParams))
|
19
|
+
});
|
20
|
+
const noResults = form.dataset.noResults || "No results for '{}'.";
|
7
21
|
|
8
22
|
const input = form.querySelector('input[type=search]');
|
9
23
|
const listbox = document.createElement('div');
|
@@ -12,11 +26,11 @@ globalThis.tsminibar = function tsminibar (form) {
|
|
12
26
|
input.after(listbox);
|
13
27
|
|
14
28
|
let preconnect = null;
|
15
|
-
input.addEventListener('focus', ()
|
29
|
+
input.addEventListener('focus', function () {
|
16
30
|
if (!preconnect) {
|
17
31
|
preconnect = document.createElement('link');
|
18
32
|
preconnect.rel = 'preconnect';
|
19
|
-
preconnect.crossOrigin = 'anonymous'; //
|
33
|
+
preconnect.crossOrigin = 'anonymous'; // match fetch cors,credentials:omit
|
20
34
|
preconnect.href = origin;
|
21
35
|
document.head.append(preconnect);
|
22
36
|
}
|
@@ -25,19 +39,12 @@ globalThis.tsminibar = function tsminibar (form) {
|
|
25
39
|
render();
|
26
40
|
}
|
27
41
|
});
|
28
|
-
input.addEventListener('
|
29
|
-
if (!state.open && state.hits.length) {
|
30
|
-
state.open = true;
|
31
|
-
render();
|
32
|
-
}
|
33
|
-
});
|
34
|
-
input.addEventListener('input', async () => {
|
42
|
+
input.addEventListener('input', async function () {
|
35
43
|
const query = state.query = input.value;
|
36
44
|
if (!query) {
|
37
45
|
state.hits = []; // don't leak old hits on focus
|
38
46
|
state.cursor = -1;
|
39
|
-
close();
|
40
|
-
return;
|
47
|
+
return close();
|
41
48
|
}
|
42
49
|
const hits = await search(query);
|
43
50
|
if (state.query === query) { // ignore non-current query
|
@@ -47,8 +54,14 @@ globalThis.tsminibar = function tsminibar (form) {
|
|
47
54
|
render();
|
48
55
|
}
|
49
56
|
});
|
50
|
-
input.addEventListener('
|
51
|
-
if (!
|
57
|
+
input.addEventListener('click', function () {
|
58
|
+
if (!state.open && state.hits.length) {
|
59
|
+
state.open = true;
|
60
|
+
render();
|
61
|
+
}
|
62
|
+
});
|
63
|
+
input.addEventListener('keydown', function (e) {
|
64
|
+
if (!e.altKey && !e.ctrlKey && !e.metaKey && !e.shiftKey) {
|
52
65
|
if (e.code === 'ArrowDown') moveCursor(1);
|
53
66
|
if (e.code === 'ArrowUp') moveCursor(-1);
|
54
67
|
if (e.code === 'Escape') close();
|
@@ -58,11 +71,15 @@ globalThis.tsminibar = function tsminibar (form) {
|
|
58
71
|
}
|
59
72
|
}
|
60
73
|
});
|
61
|
-
form.addEventListener('submit', (e)
|
74
|
+
form.addEventListener('submit', function (e) {
|
62
75
|
e.preventDefault(); // disable fallback
|
63
76
|
});
|
64
77
|
form.insertAdjacentHTML('beforeend', '<svg viewBox="0 0 12 12" width="20" height="20" aria-hidden="true" class="tsmb-icon-close" style="display: none;"><path d="M9 3L3 9M3 3L9 9"/></svg>');
|
65
|
-
form.querySelector('.tsmb-icon-close').addEventListener('click',
|
78
|
+
form.querySelector('.tsmb-icon-close').addEventListener('click', function () {
|
79
|
+
input.value = '';
|
80
|
+
input.focus();
|
81
|
+
close();
|
82
|
+
});
|
66
83
|
connect();
|
67
84
|
|
68
85
|
function close () {
|
@@ -98,30 +115,19 @@ globalThis.tsminibar = function tsminibar (form) {
|
|
98
115
|
}
|
99
116
|
|
100
117
|
async function search (query) {
|
118
|
+
let lvl0;
|
101
119
|
let hits = cache.get(query);
|
102
120
|
if (hits) {
|
103
121
|
cache.delete(query);
|
104
122
|
cache.set(query, hits); // LRU
|
105
123
|
return hits;
|
106
124
|
}
|
125
|
+
searchParams.set('q', query);
|
107
126
|
const resp = await fetch(
|
108
|
-
`${origin}/collections/${collection}/documents/search?` +
|
109
|
-
q: query,
|
110
|
-
per_page: '5',
|
111
|
-
query_by: 'hierarchy.lvl0,hierarchy.lvl1,hierarchy.lvl2,hierarchy.lvl3,hierarchy.lvl4,hierarchy.lvl5,content',
|
112
|
-
include_fields: 'hierarchy.lvl0,hierarchy.lvl1,hierarchy.lvl2,hierarchy.lvl3,hierarchy.lvl4,hierarchy.lvl5,content,url_without_anchor,url,id',
|
113
|
-
highlight_full_fields: 'hierarchy.lvl0,hierarchy.lvl1,hierarchy.lvl2,hierarchy.lvl3,hierarchy.lvl4,hierarchy.lvl5,content',
|
114
|
-
group_by: 'url_without_anchor',
|
115
|
-
group_limit: '1',
|
116
|
-
sort_by: 'item_priority:desc',
|
117
|
-
snippet_threshold: '8',
|
118
|
-
highlight_affix_num_tokens: '12',
|
119
|
-
'x-typesense-api-key': key,
|
120
|
-
}),
|
127
|
+
`${origin}/collections/${collection}/documents/search?` + searchParams,
|
121
128
|
{ mode: 'cors', credentials: 'omit', method: 'GET' }
|
122
129
|
);
|
123
130
|
const data = await resp.json();
|
124
|
-
let lvl0;
|
125
131
|
hits = data?.grouped_hits?.map(ghit => {
|
126
132
|
const hit = ghit.hits[0];
|
127
133
|
return {
|
@@ -146,7 +152,7 @@ globalThis.tsminibar = function tsminibar (form) {
|
|
146
152
|
listbox.hidden = !state.open;
|
147
153
|
form.classList.toggle('tsmb-form--open', state.open);
|
148
154
|
if (state.open) {
|
149
|
-
listbox.innerHTML = (state.hits.map((hit, i) => `<div role="option"${i === state.cursor ? ' aria-selected="true"' : ''}>${hit.lvl0 ? `<div class="tsmb-suggestion_group">${hit.lvl0}</div>` : ''}<a href="${hit.url}" tabindex="-1"><div class="tsmb-suggestion_title">${hit.title}</div><div class="tsmb-suggestion_content">${hit.content}</div></a></div>`).join('') || `<div class="tsmb-empty"
|
155
|
+
listbox.innerHTML = (state.hits.map((hit, i) => `<div role="option"${i === state.cursor ? ' aria-selected="true"' : ''}>${hit.lvl0 ? `<div class="tsmb-suggestion_group">${hit.lvl0}</div>` : ''}<a href="${hit.url}" tabindex="-1"><div class="tsmb-suggestion_title">${hit.title}</div><div class="tsmb-suggestion_content">${hit.content}</div></a></div>`).join('') || `<div class="tsmb-empty">${noResults.replace('{}', escape(state.query))}</div>`) + (form.dataset.foot ? '<a href="https://typesense.org" class="tsmb-foot" title="Search by Typesense"></a>' : '');
|
150
156
|
}
|
151
157
|
}
|
152
158
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-theme-amethyst
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Timo Tijhof
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2023-
|
12
|
+
date: 2023-10-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: jekyll
|
@@ -65,28 +65,28 @@ dependencies:
|
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.
|
68
|
+
version: 0.7.0
|
69
69
|
type: :runtime
|
70
70
|
prerelease: false
|
71
71
|
version_requirements: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.
|
75
|
+
version: 0.7.0
|
76
76
|
- !ruby/object:Gem::Dependency
|
77
77
|
name: jekyll-feed
|
78
78
|
requirement: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.
|
82
|
+
version: 0.17.0
|
83
83
|
type: :runtime
|
84
84
|
prerelease: false
|
85
85
|
version_requirements: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.
|
89
|
+
version: 0.17.0
|
90
90
|
- !ruby/object:Gem::Dependency
|
91
91
|
name: jekyll-archives
|
92
92
|
requirement: !ruby/object:Gem::Requirement
|