just-the-hm-docs 1.0.0.rc1
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 +7 -0
- data/LICENSE.txt +21 -0
- data/README.md +24 -0
- data/Rakefile +1 -0
- data/_includes/components/aux_nav.html +15 -0
- data/_includes/components/breadcrumbs.html +15 -0
- data/_includes/components/children_nav.html +9 -0
- data/_includes/components/footer.html +34 -0
- data/_includes/components/header.html +11 -0
- data/_includes/components/mermaid.html +5 -0
- data/_includes/components/search_footer.html +7 -0
- data/_includes/components/search_header.html +9 -0
- data/_includes/components/sidebar.html +69 -0
- data/_includes/css/callouts.scss.liquid +93 -0
- data/_includes/css/custom.scss.liquid +1 -0
- data/_includes/css/just-the-docs.scss.liquid +10 -0
- data/_includes/fix_linenos.html +65 -0
- data/_includes/footer_custom.html +3 -0
- data/_includes/head.html +46 -0
- data/_includes/head_custom.html +4 -0
- data/_includes/header_custom.html +0 -0
- data/_includes/icons/code_copy.html +15 -0
- data/_includes/icons/document.html +6 -0
- data/_includes/icons/expand.html +6 -0
- data/_includes/icons/external_link.html +5 -0
- data/_includes/icons/icons.html +13 -0
- data/_includes/icons/link.html +6 -0
- data/_includes/icons/menu.html +6 -0
- data/_includes/icons/search.html +6 -0
- data/_includes/js/custom.js +0 -0
- data/_includes/lunr/custom-data.json +0 -0
- data/_includes/lunr/custom-index.js +0 -0
- data/_includes/mermaid_config.js +1 -0
- data/_includes/nav.html +251 -0
- data/_includes/nav_footer_custom.html +0 -0
- data/_includes/search_placeholder_custom.html +1 -0
- data/_includes/title.html +5 -0
- data/_includes/toc_heading_custom.html +1 -0
- data/_includes/vendor/anchor_headings.html +172 -0
- data/_layouts/about.html +5 -0
- data/_layouts/default.html +41 -0
- data/_layouts/home.html +5 -0
- data/_layouts/minimal.html +60 -0
- data/_layouts/page.html +5 -0
- data/_layouts/post.html +5 -0
- data/_layouts/table_wrappers.html +7 -0
- data/_layouts/vendor/compress.html +10 -0
- data/_sass/base.scss +114 -0
- data/_sass/buttons.scss +113 -0
- data/_sass/code.scss +210 -0
- data/_sass/color_schemes/dark.scss +28 -0
- data/_sass/color_schemes/hm.scss +26 -0
- data/_sass/color_schemes/light.scss +208 -0
- data/_sass/content.scss +239 -0
- data/_sass/custom/custom.scss +30 -0
- data/_sass/custom/hm-branding.scss +259 -0
- data/_sass/custom/hm-code.scss +153 -0
- data/_sass/custom/hm-colors.scss +15 -0
- data/_sass/custom/hm-notes.scss +38 -0
- data/_sass/custom/setup.scss +160 -0
- data/_sass/labels.scss +33 -0
- data/_sass/layout.scss +206 -0
- data/_sass/modules.scss +17 -0
- data/_sass/navigation.scss +235 -0
- data/_sass/print.scss +40 -0
- data/_sass/search.scss +311 -0
- data/_sass/skiptomain.scss +30 -0
- data/_sass/support/_functions.scss +11 -0
- data/_sass/support/_variables.scss +129 -0
- data/_sass/support/mixins/_buttons.scss +27 -0
- data/_sass/support/mixins/_layout.scss +34 -0
- data/_sass/support/mixins/_typography.scss +84 -0
- data/_sass/support/mixins/mixins.scss +3 -0
- data/_sass/support/support.scss +3 -0
- data/_sass/tables.scss +54 -0
- data/_sass/typography.scss +63 -0
- data/_sass/utilities/_colors.scss +237 -0
- data/_sass/utilities/_layout.scss +101 -0
- data/_sass/utilities/_lists.scss +15 -0
- data/_sass/utilities/_spacing.scss +162 -0
- data/_sass/utilities/_typography.scss +85 -0
- data/_sass/utilities/utilities.scss +5 -0
- data/_sass/vendor/OneDarkJekyll/LICENSE +21 -0
- data/_sass/vendor/OneDarkJekyll/README.md +25 -0
- data/_sass/vendor/OneDarkJekyll/colors.less +30 -0
- data/_sass/vendor/OneDarkJekyll/syntax-firewatch-green.scss +200 -0
- data/_sass/vendor/OneDarkJekyll/syntax-firewatch.scss +200 -0
- data/_sass/vendor/OneDarkJekyll/syntax-one-dark-vivid.scss +200 -0
- data/_sass/vendor/OneDarkJekyll/syntax-one-dark.scss +200 -0
- data/_sass/vendor/OneDarkJekyll/syntax-variables.less +56 -0
- data/_sass/vendor/OneDarkJekyll/syntax.less +93 -0
- data/_sass/vendor/normalize.scss/README.md +7 -0
- data/_sass/vendor/normalize.scss/normalize.scss +351 -0
- data/assets/css/just-the-docs-dark.scss +3 -0
- data/assets/css/just-the-docs-default.scss +8 -0
- data/assets/css/just-the-docs-light.scss +3 -0
- data/assets/favicon/android-chrome-192x192.png +0 -0
- data/assets/favicon/android-chrome-512x512.png +0 -0
- data/assets/favicon/apple-touch-icon.png +0 -0
- data/assets/favicon/favicon-16x16.png +0 -0
- data/assets/favicon/favicon-32x32.png +0 -0
- data/assets/favicon/favicon.ico +0 -0
- data/assets/favicon/site.webmanifest +1 -0
- data/assets/images/.gitkeep +0 -0
- data/assets/images/hm-logo.svg +1 -0
- data/assets/images/search.svg +1 -0
- data/assets/js/just-the-docs.js +528 -0
- data/assets/js/vendor/lunr.min.js +61 -0
- data/assets/js/zzzz-search-data.json +74 -0
- data/bin/just-the-hm-docs +16 -0
- data/changelog.md +17 -0
- data/favicon.ico +0 -0
- data/lib/tasks/search.rake +88 -0
- metadata +217 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg width="38" height="38" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="#FF424A" d="M0 0h38v38H0z"/><mask id="a" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="5" y="11" width="28" height="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.925 11.277h26.569v15.674H5.925V11.277Z" fill="#fff"/></mask><g mask="url(#a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M32.082 22.565c-.293.167-.605.27-.931.27-.742 0-1.17-.376-1.347-.984-.36-1.233-.024-3.468.1-4.93.167-1.978.247-2.754.279-3.168.075-.965-.3-2.04-1.391-2.032-1.014.007-2.337 1.231-2.921 2.463.142-1.578-.31-2.915-1.503-2.907-1.194.009-2.417 1.794-2.79 2.562.076-.718.117-1.019.15-1.407.032-.387.02-.668-.384-.707-.244-.025-.72.06-.996.107-.353.06-.467.314-.532.863-.047.397-.17 1.969-.292 3.483-.277.022-.73.11-1 .148-.51.072-.835.128-1.333.217.168-1.77.415-3.66.5-4.352.051-.42.011-.682-.42-.734-.245-.03-.988.078-1.219.116-.38.063-.524.389-.573.643-.194 1.027-.38 2.884-.504 4.767-.815.2-1.621.432-2.425.698.08-1.462.133-3.093.083-3.898-.072-1.16-.732-1.923-1.746-1.923-1.08 0-2.327.585-3.11 1.25-.51.435-.799.939-.799 1.338 0 .406.203.775.738.775.413-.57 1.496-1.568 2.1-1.568.545 0 .684.475.684.96 0 .398-.08 2.239-.158 3.794-2.075.933-4.417 2.713-4.417 5.497 0 1.803 1.093 2.986 2.66 2.986 2.05 0 3.124-1.869 3.46-3.911.171-1.047.303-2.405.393-3.58l.028-.01a43.509 43.509 0 0 1 2.413-.732c-.123 2.36-.186 4.5.442 6.05.53 1.31 1.656 2.255 3.42 2.242 1.213-.01 2.344-.5 2.85-.961a.701.701 0 0 0 .233-.512c-.011-.3-.2-.545-.45-.71-.502.287-1.058.53-1.847.56-.789.03-1.86-.403-2.3-1.854-.38-1.25-.27-3.715-.166-5.299.764-.152 1.535-.306 2.31-.39l.024-.037-.028.332c-.153 1.758-.354 4.486-.346 5.029.007.413.215.58.523.578.308-.003.858-.11 1.05-.176.157-.054.282-.126.368-.261.077-.122.118-.304.133-.544.039-.646.145-2.236.245-3.245.1-1.008.198-1.886.38-2.664.363-1.567 1.11-3.264 1.79-3.269.437-.003.451.825.328 1.963-.124 1.137-.457 5.3-.45 5.804.007.44.136.671.511.669.308-.002.89-.046 1.12-.139.145-.058.252-.111.326-.241.065-.115.104-.288.12-.576.037-.66.276-3.327.484-4.17.398-1.608 1.23-2.683 1.693-2.686.462-.003.318 1.142.197 2.448-.233 2.521-.472 5.152.155 6.438.371.761 1.039 1.476 2.622 1.476.593 0 1.276-.24 1.641-.602a.915.915 0 0 0 .236-.6.924.924 0 0 0-.41-.747ZM8.507 25.178c-.5 0-.862-.446-.862-1.357 0-1.542 1.252-2.853 2.583-3.607-.088.954-.22 1.98-.312 2.61-.173 1.167-.58 2.354-1.409 2.354Z" fill="#fff"/></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg width="28" height="28" viewBox="0 0 28 28" xmlns="http://www.w3.org/2000/svg"><title>Search</title><g fill-rule="nonzero" fill="#959396"><path d="M17.332 20.735c-5.537 0-10-4.6-10-10.247 0-5.646 4.463-10.247 10-10.247 5.536 0 10 4.601 10 10.247s-4.464 10.247-10 10.247zm0-4c3.3 0 6-2.783 6-6.247 0-3.463-2.7-6.247-6-6.247s-6 2.784-6 6.247c0 3.464 2.7 6.247 6 6.247z"/><path d="M11.672 13.791L.192 25.271 3.02 28.1 14.5 16.62z"/></g></svg>
|
|
@@ -0,0 +1,528 @@
|
|
|
1
|
+
---
|
|
2
|
+
---
|
|
3
|
+
(function (jtd, undefined) {
|
|
4
|
+
|
|
5
|
+
// Event handling
|
|
6
|
+
|
|
7
|
+
jtd.addEvent = function(el, type, handler) {
|
|
8
|
+
if (el.attachEvent) el.attachEvent('on'+type, handler); else el.addEventListener(type, handler);
|
|
9
|
+
}
|
|
10
|
+
jtd.removeEvent = function(el, type, handler) {
|
|
11
|
+
if (el.detachEvent) el.detachEvent('on'+type, handler); else el.removeEventListener(type, handler);
|
|
12
|
+
}
|
|
13
|
+
jtd.onReady = function(ready) {
|
|
14
|
+
// in case the document is already rendered
|
|
15
|
+
if (document.readyState!='loading') ready();
|
|
16
|
+
// modern browsers
|
|
17
|
+
else if (document.addEventListener) document.addEventListener('DOMContentLoaded', ready);
|
|
18
|
+
// IE <= 8
|
|
19
|
+
else document.attachEvent('onreadystatechange', function(){
|
|
20
|
+
if (document.readyState=='complete') ready();
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Show/hide mobile menu
|
|
25
|
+
|
|
26
|
+
function initNav() {
|
|
27
|
+
jtd.addEvent(document, 'click', function(e){
|
|
28
|
+
var target = e.target;
|
|
29
|
+
while (target && !(target.classList && target.classList.contains('nav-list-expander'))) {
|
|
30
|
+
target = target.parentNode;
|
|
31
|
+
}
|
|
32
|
+
if (target) {
|
|
33
|
+
e.preventDefault();
|
|
34
|
+
target.parentNode.classList.toggle('active');
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
const siteNav = document.getElementById('site-nav');
|
|
39
|
+
const mainHeader = document.getElementById('main-header');
|
|
40
|
+
const menuButton = document.getElementById('menu-button');
|
|
41
|
+
|
|
42
|
+
jtd.addEvent(menuButton, 'click', function(e){
|
|
43
|
+
e.preventDefault();
|
|
44
|
+
|
|
45
|
+
if (menuButton.classList.toggle('nav-open')) {
|
|
46
|
+
siteNav.classList.add('nav-open');
|
|
47
|
+
mainHeader.classList.add('nav-open');
|
|
48
|
+
} else {
|
|
49
|
+
siteNav.classList.remove('nav-open');
|
|
50
|
+
mainHeader.classList.remove('nav-open');
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
{%- if site.search_enabled != false and site.search.button %}
|
|
55
|
+
const searchInput = document.getElementById('search-input');
|
|
56
|
+
const searchButton = document.getElementById('search-button');
|
|
57
|
+
|
|
58
|
+
jtd.addEvent(searchButton, 'click', function(e){
|
|
59
|
+
e.preventDefault();
|
|
60
|
+
|
|
61
|
+
mainHeader.classList.add('nav-open');
|
|
62
|
+
searchInput.focus();
|
|
63
|
+
});
|
|
64
|
+
{%- endif %}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
{%- if site.search_enabled != false %}
|
|
68
|
+
// Site search
|
|
69
|
+
|
|
70
|
+
function initSearch() {
|
|
71
|
+
var request = new XMLHttpRequest();
|
|
72
|
+
request.open('GET', '{{ "assets/js/search-data.json" | relative_url }}', true);
|
|
73
|
+
|
|
74
|
+
request.onload = function(){
|
|
75
|
+
if (request.status >= 200 && request.status < 400) {
|
|
76
|
+
var docs = JSON.parse(request.responseText);
|
|
77
|
+
|
|
78
|
+
lunr.tokenizer.separator = {{ site.search.tokenizer_separator | default: site.search_tokenizer_separator | default: "/[\s\-/]+/" }}
|
|
79
|
+
|
|
80
|
+
var index = lunr(function(){
|
|
81
|
+
this.ref('id');
|
|
82
|
+
this.field('title', { boost: 200 });
|
|
83
|
+
this.field('content', { boost: 2 });
|
|
84
|
+
{%- if site.search.rel_url != false %}
|
|
85
|
+
this.field('relUrl');
|
|
86
|
+
{%- endif %}
|
|
87
|
+
this.metadataWhitelist = ['position']
|
|
88
|
+
|
|
89
|
+
for (var i in docs) {
|
|
90
|
+
{% include lunr/custom-index.js %}
|
|
91
|
+
this.add({
|
|
92
|
+
id: i,
|
|
93
|
+
title: docs[i].title,
|
|
94
|
+
content: docs[i].content,
|
|
95
|
+
{%- if site.search.rel_url != false %}
|
|
96
|
+
relUrl: docs[i].relUrl
|
|
97
|
+
{%- endif %}
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
searchLoaded(index, docs);
|
|
103
|
+
} else {
|
|
104
|
+
console.log('Error loading ajax request. Request status:' + request.status);
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
request.onerror = function(){
|
|
109
|
+
console.log('There was a connection error');
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
request.send();
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
function searchLoaded(index, docs) {
|
|
116
|
+
var index = index;
|
|
117
|
+
var docs = docs;
|
|
118
|
+
var searchInput = document.getElementById('search-input');
|
|
119
|
+
var searchResults = document.getElementById('search-results');
|
|
120
|
+
var mainHeader = document.getElementById('main-header');
|
|
121
|
+
var currentInput;
|
|
122
|
+
var currentSearchIndex = 0;
|
|
123
|
+
|
|
124
|
+
function showSearch() {
|
|
125
|
+
document.documentElement.classList.add('search-active');
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
function hideSearch() {
|
|
129
|
+
document.documentElement.classList.remove('search-active');
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
function update() {
|
|
133
|
+
currentSearchIndex++;
|
|
134
|
+
|
|
135
|
+
var input = searchInput.value;
|
|
136
|
+
if (input === '') {
|
|
137
|
+
hideSearch();
|
|
138
|
+
} else {
|
|
139
|
+
showSearch();
|
|
140
|
+
// scroll search input into view, workaround for iOS Safari
|
|
141
|
+
window.scroll(0, -1);
|
|
142
|
+
setTimeout(function(){ window.scroll(0, 0); }, 0);
|
|
143
|
+
}
|
|
144
|
+
if (input === currentInput) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
currentInput = input;
|
|
148
|
+
searchResults.innerHTML = '';
|
|
149
|
+
if (input === '') {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
var results = index.query(function (query) {
|
|
154
|
+
var tokens = lunr.tokenizer(input)
|
|
155
|
+
query.term(tokens, {
|
|
156
|
+
boost: 10
|
|
157
|
+
});
|
|
158
|
+
query.term(tokens, {
|
|
159
|
+
wildcard: lunr.Query.wildcard.TRAILING
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
if ((results.length == 0) && (input.length > 2)) {
|
|
164
|
+
var tokens = lunr.tokenizer(input).filter(function(token, i) {
|
|
165
|
+
return token.str.length < 20;
|
|
166
|
+
})
|
|
167
|
+
if (tokens.length > 0) {
|
|
168
|
+
results = index.query(function (query) {
|
|
169
|
+
query.term(tokens, {
|
|
170
|
+
editDistance: Math.round(Math.sqrt(input.length / 2 - 1))
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
if (results.length == 0) {
|
|
177
|
+
var noResultsDiv = document.createElement('div');
|
|
178
|
+
noResultsDiv.classList.add('search-no-result');
|
|
179
|
+
noResultsDiv.innerText = 'No results found';
|
|
180
|
+
searchResults.appendChild(noResultsDiv);
|
|
181
|
+
|
|
182
|
+
} else {
|
|
183
|
+
var resultsList = document.createElement('ul');
|
|
184
|
+
resultsList.classList.add('search-results-list');
|
|
185
|
+
searchResults.appendChild(resultsList);
|
|
186
|
+
|
|
187
|
+
addResults(resultsList, results, 0, 10, 100, currentSearchIndex);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
function addResults(resultsList, results, start, batchSize, batchMillis, searchIndex) {
|
|
191
|
+
if (searchIndex != currentSearchIndex) {
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
for (var i = start; i < (start + batchSize); i++) {
|
|
195
|
+
if (i == results.length) {
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
addResult(resultsList, results[i]);
|
|
199
|
+
}
|
|
200
|
+
setTimeout(function() {
|
|
201
|
+
addResults(resultsList, results, start + batchSize, batchSize, batchMillis, searchIndex);
|
|
202
|
+
}, batchMillis);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
function addResult(resultsList, result) {
|
|
206
|
+
var doc = docs[result.ref];
|
|
207
|
+
|
|
208
|
+
var resultsListItem = document.createElement('li');
|
|
209
|
+
resultsListItem.classList.add('search-results-list-item');
|
|
210
|
+
resultsList.appendChild(resultsListItem);
|
|
211
|
+
|
|
212
|
+
var resultLink = document.createElement('a');
|
|
213
|
+
resultLink.classList.add('search-result');
|
|
214
|
+
resultLink.setAttribute('href', doc.url);
|
|
215
|
+
resultsListItem.appendChild(resultLink);
|
|
216
|
+
|
|
217
|
+
var resultTitle = document.createElement('div');
|
|
218
|
+
resultTitle.classList.add('search-result-title');
|
|
219
|
+
resultLink.appendChild(resultTitle);
|
|
220
|
+
|
|
221
|
+
// note: the SVG svg-doc is only loaded as a Jekyll include if site.search_enabled is true; see _includes/icons/icons.html
|
|
222
|
+
var resultDoc = document.createElement('div');
|
|
223
|
+
resultDoc.classList.add('search-result-doc');
|
|
224
|
+
resultDoc.innerHTML = '<svg viewBox="0 0 24 24" class="search-result-icon"><use xlink:href="#svg-doc"></use></svg>';
|
|
225
|
+
resultTitle.appendChild(resultDoc);
|
|
226
|
+
|
|
227
|
+
var resultDocTitle = document.createElement('div');
|
|
228
|
+
resultDocTitle.classList.add('search-result-doc-title');
|
|
229
|
+
resultDocTitle.innerHTML = doc.doc;
|
|
230
|
+
resultDoc.appendChild(resultDocTitle);
|
|
231
|
+
var resultDocOrSection = resultDocTitle;
|
|
232
|
+
|
|
233
|
+
if (doc.doc != doc.title) {
|
|
234
|
+
resultDoc.classList.add('search-result-doc-parent');
|
|
235
|
+
var resultSection = document.createElement('div');
|
|
236
|
+
resultSection.classList.add('search-result-section');
|
|
237
|
+
resultSection.innerHTML = doc.title;
|
|
238
|
+
resultTitle.appendChild(resultSection);
|
|
239
|
+
resultDocOrSection = resultSection;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
var metadata = result.matchData.metadata;
|
|
243
|
+
var titlePositions = [];
|
|
244
|
+
var contentPositions = [];
|
|
245
|
+
for (var j in metadata) {
|
|
246
|
+
var meta = metadata[j];
|
|
247
|
+
if (meta.title) {
|
|
248
|
+
var positions = meta.title.position;
|
|
249
|
+
for (var k in positions) {
|
|
250
|
+
titlePositions.push(positions[k]);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
if (meta.content) {
|
|
254
|
+
var positions = meta.content.position;
|
|
255
|
+
for (var k in positions) {
|
|
256
|
+
var position = positions[k];
|
|
257
|
+
var previewStart = position[0];
|
|
258
|
+
var previewEnd = position[0] + position[1];
|
|
259
|
+
var ellipsesBefore = true;
|
|
260
|
+
var ellipsesAfter = true;
|
|
261
|
+
for (var k = 0; k < {{ site.search.preview_words_before | default: 5 }}; k++) {
|
|
262
|
+
var nextSpace = doc.content.lastIndexOf(' ', previewStart - 2);
|
|
263
|
+
var nextDot = doc.content.lastIndexOf('. ', previewStart - 2);
|
|
264
|
+
if ((nextDot >= 0) && (nextDot > nextSpace)) {
|
|
265
|
+
previewStart = nextDot + 1;
|
|
266
|
+
ellipsesBefore = false;
|
|
267
|
+
break;
|
|
268
|
+
}
|
|
269
|
+
if (nextSpace < 0) {
|
|
270
|
+
previewStart = 0;
|
|
271
|
+
ellipsesBefore = false;
|
|
272
|
+
break;
|
|
273
|
+
}
|
|
274
|
+
previewStart = nextSpace + 1;
|
|
275
|
+
}
|
|
276
|
+
for (var k = 0; k < {{ site.search.preview_words_after | default: 10 }}; k++) {
|
|
277
|
+
var nextSpace = doc.content.indexOf(' ', previewEnd + 1);
|
|
278
|
+
var nextDot = doc.content.indexOf('. ', previewEnd + 1);
|
|
279
|
+
if ((nextDot >= 0) && (nextDot < nextSpace)) {
|
|
280
|
+
previewEnd = nextDot;
|
|
281
|
+
ellipsesAfter = false;
|
|
282
|
+
break;
|
|
283
|
+
}
|
|
284
|
+
if (nextSpace < 0) {
|
|
285
|
+
previewEnd = doc.content.length;
|
|
286
|
+
ellipsesAfter = false;
|
|
287
|
+
break;
|
|
288
|
+
}
|
|
289
|
+
previewEnd = nextSpace;
|
|
290
|
+
}
|
|
291
|
+
contentPositions.push({
|
|
292
|
+
highlight: position,
|
|
293
|
+
previewStart: previewStart, previewEnd: previewEnd,
|
|
294
|
+
ellipsesBefore: ellipsesBefore, ellipsesAfter: ellipsesAfter
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
if (titlePositions.length > 0) {
|
|
301
|
+
titlePositions.sort(function(p1, p2){ return p1[0] - p2[0] });
|
|
302
|
+
resultDocOrSection.innerHTML = '';
|
|
303
|
+
addHighlightedText(resultDocOrSection, doc.title, 0, doc.title.length, titlePositions);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
if (contentPositions.length > 0) {
|
|
307
|
+
contentPositions.sort(function(p1, p2){ return p1.highlight[0] - p2.highlight[0] });
|
|
308
|
+
var contentPosition = contentPositions[0];
|
|
309
|
+
var previewPosition = {
|
|
310
|
+
highlight: [contentPosition.highlight],
|
|
311
|
+
previewStart: contentPosition.previewStart, previewEnd: contentPosition.previewEnd,
|
|
312
|
+
ellipsesBefore: contentPosition.ellipsesBefore, ellipsesAfter: contentPosition.ellipsesAfter
|
|
313
|
+
};
|
|
314
|
+
var previewPositions = [previewPosition];
|
|
315
|
+
for (var j = 1; j < contentPositions.length; j++) {
|
|
316
|
+
contentPosition = contentPositions[j];
|
|
317
|
+
if (previewPosition.previewEnd < contentPosition.previewStart) {
|
|
318
|
+
previewPosition = {
|
|
319
|
+
highlight: [contentPosition.highlight],
|
|
320
|
+
previewStart: contentPosition.previewStart, previewEnd: contentPosition.previewEnd,
|
|
321
|
+
ellipsesBefore: contentPosition.ellipsesBefore, ellipsesAfter: contentPosition.ellipsesAfter
|
|
322
|
+
}
|
|
323
|
+
previewPositions.push(previewPosition);
|
|
324
|
+
} else {
|
|
325
|
+
previewPosition.highlight.push(contentPosition.highlight);
|
|
326
|
+
previewPosition.previewEnd = contentPosition.previewEnd;
|
|
327
|
+
previewPosition.ellipsesAfter = contentPosition.ellipsesAfter;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
var resultPreviews = document.createElement('div');
|
|
332
|
+
resultPreviews.classList.add('search-result-previews');
|
|
333
|
+
resultLink.appendChild(resultPreviews);
|
|
334
|
+
|
|
335
|
+
var content = doc.content;
|
|
336
|
+
for (var j = 0; j < Math.min(previewPositions.length, {{ site.search.previews | default: 3 }}); j++) {
|
|
337
|
+
var position = previewPositions[j];
|
|
338
|
+
|
|
339
|
+
var resultPreview = document.createElement('div');
|
|
340
|
+
resultPreview.classList.add('search-result-preview');
|
|
341
|
+
resultPreviews.appendChild(resultPreview);
|
|
342
|
+
|
|
343
|
+
if (position.ellipsesBefore) {
|
|
344
|
+
resultPreview.appendChild(document.createTextNode('... '));
|
|
345
|
+
}
|
|
346
|
+
addHighlightedText(resultPreview, content, position.previewStart, position.previewEnd, position.highlight);
|
|
347
|
+
if (position.ellipsesAfter) {
|
|
348
|
+
resultPreview.appendChild(document.createTextNode(' ...'));
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
{%- if site.search.rel_url != false %}
|
|
354
|
+
var resultRelUrl = document.createElement('span');
|
|
355
|
+
resultRelUrl.classList.add('search-result-rel-url');
|
|
356
|
+
resultRelUrl.innerText = doc.relUrl;
|
|
357
|
+
resultTitle.appendChild(resultRelUrl);
|
|
358
|
+
{%- endif %}
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
function addHighlightedText(parent, text, start, end, positions) {
|
|
362
|
+
var index = start;
|
|
363
|
+
for (var i in positions) {
|
|
364
|
+
var position = positions[i];
|
|
365
|
+
var span = document.createElement('span');
|
|
366
|
+
span.innerHTML = text.substring(index, position[0]);
|
|
367
|
+
parent.appendChild(span);
|
|
368
|
+
index = position[0] + position[1];
|
|
369
|
+
var highlight = document.createElement('span');
|
|
370
|
+
highlight.classList.add('search-result-highlight');
|
|
371
|
+
highlight.innerHTML = text.substring(position[0], index);
|
|
372
|
+
parent.appendChild(highlight);
|
|
373
|
+
}
|
|
374
|
+
var span = document.createElement('span');
|
|
375
|
+
span.innerHTML = text.substring(index, end);
|
|
376
|
+
parent.appendChild(span);
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
jtd.addEvent(searchInput, 'focus', function(){
|
|
381
|
+
setTimeout(update, 0);
|
|
382
|
+
});
|
|
383
|
+
|
|
384
|
+
jtd.addEvent(searchInput, 'keyup', function(e){
|
|
385
|
+
switch (e.keyCode) {
|
|
386
|
+
case 27: // When esc key is pressed, hide the results and clear the field
|
|
387
|
+
searchInput.value = '';
|
|
388
|
+
break;
|
|
389
|
+
case 38: // arrow up
|
|
390
|
+
case 40: // arrow down
|
|
391
|
+
case 13: // enter
|
|
392
|
+
e.preventDefault();
|
|
393
|
+
return;
|
|
394
|
+
}
|
|
395
|
+
update();
|
|
396
|
+
});
|
|
397
|
+
|
|
398
|
+
jtd.addEvent(searchInput, 'keydown', function(e){
|
|
399
|
+
switch (e.keyCode) {
|
|
400
|
+
case 38: // arrow up
|
|
401
|
+
e.preventDefault();
|
|
402
|
+
var active = document.querySelector('.search-result.active');
|
|
403
|
+
if (active) {
|
|
404
|
+
active.classList.remove('active');
|
|
405
|
+
if (active.parentElement.previousSibling) {
|
|
406
|
+
var previous = active.parentElement.previousSibling.querySelector('.search-result');
|
|
407
|
+
previous.classList.add('active');
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
return;
|
|
411
|
+
case 40: // arrow down
|
|
412
|
+
e.preventDefault();
|
|
413
|
+
var active = document.querySelector('.search-result.active');
|
|
414
|
+
if (active) {
|
|
415
|
+
if (active.parentElement.nextSibling) {
|
|
416
|
+
var next = active.parentElement.nextSibling.querySelector('.search-result');
|
|
417
|
+
active.classList.remove('active');
|
|
418
|
+
next.classList.add('active');
|
|
419
|
+
}
|
|
420
|
+
} else {
|
|
421
|
+
var next = document.querySelector('.search-result');
|
|
422
|
+
if (next) {
|
|
423
|
+
next.classList.add('active');
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
return;
|
|
427
|
+
case 13: // enter
|
|
428
|
+
e.preventDefault();
|
|
429
|
+
var active = document.querySelector('.search-result.active');
|
|
430
|
+
if (active) {
|
|
431
|
+
active.click();
|
|
432
|
+
} else {
|
|
433
|
+
var first = document.querySelector('.search-result');
|
|
434
|
+
if (first) {
|
|
435
|
+
first.click();
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
return;
|
|
439
|
+
}
|
|
440
|
+
});
|
|
441
|
+
|
|
442
|
+
jtd.addEvent(document, 'click', function(e){
|
|
443
|
+
if (e.target != searchInput) {
|
|
444
|
+
hideSearch();
|
|
445
|
+
}
|
|
446
|
+
});
|
|
447
|
+
}
|
|
448
|
+
{%- endif %}
|
|
449
|
+
|
|
450
|
+
// Switch theme
|
|
451
|
+
|
|
452
|
+
jtd.getTheme = function() {
|
|
453
|
+
var cssFileHref = document.querySelector('[rel="stylesheet"]').getAttribute('href');
|
|
454
|
+
return cssFileHref.substring(cssFileHref.lastIndexOf('-') + 1, cssFileHref.length - 4);
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
jtd.setTheme = function(theme) {
|
|
458
|
+
var cssFile = document.querySelector('[rel="stylesheet"]');
|
|
459
|
+
cssFile.setAttribute('href', '{{ "assets/css/just-the-docs-" | relative_url }}' + theme + '.css');
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
// Scroll site-nav to ensure the link to the current page is visible
|
|
463
|
+
|
|
464
|
+
function scrollNav() {
|
|
465
|
+
const href = document.location.pathname;
|
|
466
|
+
const siteNav = document.getElementById('site-nav');
|
|
467
|
+
const targetLink = siteNav.querySelector('a[href="' + href + '"], a[href="' + href + '/"]');
|
|
468
|
+
if(targetLink){
|
|
469
|
+
const rect = targetLink.getBoundingClientRect();
|
|
470
|
+
siteNav.scrollBy(0, rect.top - 3*rect.height);
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
// Document ready
|
|
475
|
+
|
|
476
|
+
jtd.onReady(function(){
|
|
477
|
+
initNav();
|
|
478
|
+
{%- if site.search_enabled != false %}
|
|
479
|
+
initSearch();
|
|
480
|
+
{%- endif %}
|
|
481
|
+
scrollNav();
|
|
482
|
+
});
|
|
483
|
+
|
|
484
|
+
// Copy button on code
|
|
485
|
+
|
|
486
|
+
|
|
487
|
+
{%- if site.enable_copy_code_button != false %}
|
|
488
|
+
|
|
489
|
+
jtd.onReady(function(){
|
|
490
|
+
|
|
491
|
+
var codeBlocks = document.querySelectorAll('div.highlighter-rouge, div.listingblock, figure.highlight');
|
|
492
|
+
|
|
493
|
+
// note: the SVG svg-copied and svg-copy is only loaded as a Jekyll include if site.enable_copy_code_button is true; see _includes/icons/icons.html
|
|
494
|
+
var svgCopied = '<svg viewBox="0 0 24 24" class="copy-icon"><use xlink:href="#svg-copied"></use></svg>';
|
|
495
|
+
var svgCopy = '<svg viewBox="0 0 24 24" class="copy-icon"><use xlink:href="#svg-copy"></use></svg>';
|
|
496
|
+
|
|
497
|
+
codeBlocks.forEach(codeBlock => {
|
|
498
|
+
var copyButton = document.createElement('button');
|
|
499
|
+
var timeout = null;
|
|
500
|
+
copyButton.type = 'button';
|
|
501
|
+
copyButton.ariaLabel = 'Copy code to clipboard';
|
|
502
|
+
copyButton.innerHTML = svgCopy;
|
|
503
|
+
codeBlock.append(copyButton);
|
|
504
|
+
|
|
505
|
+
copyButton.addEventListener('click', function () {
|
|
506
|
+
if(timeout === null) {
|
|
507
|
+
var code = codeBlock.querySelector('pre:not(.lineno)').innerText;
|
|
508
|
+
window.navigator.clipboard.writeText(code);
|
|
509
|
+
|
|
510
|
+
copyButton.innerHTML = svgCopied;
|
|
511
|
+
|
|
512
|
+
var timeoutSetting = 4000;
|
|
513
|
+
|
|
514
|
+
timeout = setTimeout(function () {
|
|
515
|
+
copyButton.innerHTML = svgCopy;
|
|
516
|
+
timeout = null;
|
|
517
|
+
}, timeoutSetting);
|
|
518
|
+
}
|
|
519
|
+
});
|
|
520
|
+
});
|
|
521
|
+
|
|
522
|
+
});
|
|
523
|
+
|
|
524
|
+
{%- endif %}
|
|
525
|
+
|
|
526
|
+
})(window.jtd = window.jtd || {});
|
|
527
|
+
|
|
528
|
+
{% include js/custom.js %}
|