jekyll-theme-amethyst 0.5.4 → 0.5.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '098f1973205c26d8a0bdbb0c188b2be769783ab3b527b39088e3fa2bbbb9e7c6'
4
- data.tar.gz: 0fac758e9d16da28ba89ec6e43487a4bb66d65eeb20468111a98a967c3306865
3
+ metadata.gz: bc62c023ae273db79b3acc529dddc7135d43bfe271fb6881f1bb40ddd1cfe8e2
4
+ data.tar.gz: e942d04b53cebbc392adeb2568e2c76cc89375c4d2856088e7b3b4882af6536f
5
5
  SHA512:
6
- metadata.gz: 061a89dc8273ddbe34207b55dee3c2569d0f7feb670f6b3956ab6b48b5c97413c4c5f742f33bb2d61a574c7a0a4a5f328d8bb18c1c41920924a9d4bf45d0c4ef
7
- data.tar.gz: d2f40a4e94f42d0a77545f9e61659d25dce7640dea0af24a9597b347adedba086baee1d61fcc3166da6dd0e19597f90b072d5aa1601cd118d39c9ee573b55bfd
6
+ metadata.gz: 1d408de5207f6847843de164aefefe67e2625788d31cef75e7f3a01d0c9c259d7750465e3efef0acf3572e2561002b5852a7a05b3f2951c009abf6d0715a4a8a
7
+ data.tar.gz: 31238e7c423a739c1a779ad90a98192efa45d6b7898fe958ddac5f6b69bf71548ac882a705d7e4f5a8115837b972a75d8a6f5f316deec5d5c7d320732c29354c
@@ -47,7 +47,7 @@
47
47
 
48
48
 
49
49
  {% if layout.amethyst.pagetype == "navigation" %}
50
- <meta name="robots" content="{{ layout.amethyst.robots | default: 'noindex,follow' }}">
50
+ <meta name="robots" content="{{ page.amethyst.robots | default: layout.amethyst.robots | default: 'noindex,follow' }}">
51
51
  <meta name="docsearch:amethyst_pagetype_navigation" content="1">
52
52
  {% endif %}
53
53
 
@@ -1,12 +1,12 @@
1
- /*! https://github.com/jquery/typesense-minibar 1.0.2 */
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( var(--tsmb-size-sm) * 0.5 );
9
- --tsmb-size-input: calc( var(--tsmb-size-base) * 1.2 );
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-base);
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) / 2);
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(var(--tsmb-size-sm) + var(--tsmb-size-edge) + (var(--tsmb-size-input) / 2) - 1em - var(--tsmb-size-edge));
99
- right: var(--tsmb-size-base);
100
- width: 2em;
101
- height: 2em;
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-sm);
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 {
@@ -1,9 +1,23 @@
1
- /*! https://github.com/jquery/typesense-minibar 1.0.2 */
1
+ /*! https://github.com/jquery/typesense-minibar 1.1.1 */
2
2
  globalThis.tsminibar = function tsminibar (form) {
3
- const { origin, key, collection } = form.dataset;
3
+ const { origin, collection } = form.dataset;
4
4
  const group = !!form.dataset.group;
5
5
  const cache = new Map();
6
- const state = { query: '', hits: [], cursor: -1, open: false };
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'; // for fetch mode:cors,credentials:omit
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('click', () => {
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('keydown', (e) => {
51
- if (!(e.altKey || e.ctrlKey || e.metaKey || e.shiftKey)) {
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', close);
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?` + new URLSearchParams({
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">No results for '${escape(state.query)}'.</div>`) + (form.dataset.foot ? '<a href="https://typesense.org" class="tsmb-foot" title="Search by Typesense"></a>' : '');
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
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-05-11 00:00:00.000000000 Z
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.6.1
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.6.1
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.15.1
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.15.1
89
+ version: 0.17.0
90
90
  - !ruby/object:Gem::Dependency
91
91
  name: jekyll-archives
92
92
  requirement: !ruby/object:Gem::Requirement