jekyll-theme-amethyst 0.5.5 → 0.5.6
Sign up to get free protection for your applications and to get access to all the features.
- 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
|