dendron-jekyll 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (141) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +68 -0
  4. data/Rakefile +1 -0
  5. data/_includes/active.html +8 -0
  6. data/_includes/archive-single.html +33 -0
  7. data/_includes/crumbs.html +15 -0
  8. data/_includes/css/custom.scss.liquid +1 -0
  9. data/_includes/css/just-the-docs.scss.liquid +7 -0
  10. data/_includes/documents-collection.html +25 -0
  11. data/_includes/figure +9 -0
  12. data/_includes/head.html +40 -0
  13. data/_includes/head_custom.html +0 -0
  14. data/_includes/js/custom.js +0 -0
  15. data/_includes/nav.html +37 -0
  16. data/_includes/sidebar.html +19 -0
  17. data/_includes/title.html +5 -0
  18. data/_includes/toc +7 -0
  19. data/_includes/toc-mm.html +96 -0
  20. data/_includes/toc.html +16 -0
  21. data/_includes/vendor/anchor_headings.html +100 -0
  22. data/_layouts/about.html +5 -0
  23. data/_layouts/archive.html +30 -0
  24. data/_layouts/default.html +160 -0
  25. data/_layouts/home.html +5 -0
  26. data/_layouts/page.html +5 -0
  27. data/_layouts/post.html +5 -0
  28. data/_layouts/single.html +97 -0
  29. data/_layouts/table_wrappers.html +7 -0
  30. data/_layouts/vendor/compress.html +10 -0
  31. data/_sass/base.scss +108 -0
  32. data/_sass/buttons.scss +118 -0
  33. data/_sass/code.scss +261 -0
  34. data/_sass/color_schemes/dark.scss +17 -0
  35. data/_sass/color_schemes/light.scss +0 -0
  36. data/_sass/content.scss +196 -0
  37. data/_sass/custom/custom.scss +0 -0
  38. data/_sass/labels.scss +37 -0
  39. data/_sass/layout.scss +205 -0
  40. data/_sass/minimal-mistakes/_animations.scss +21 -0
  41. data/_sass/minimal-mistakes/_archive.scss +455 -0
  42. data/_sass/minimal-mistakes/_base.scss +357 -0
  43. data/_sass/minimal-mistakes/_buttons.scss +97 -0
  44. data/_sass/minimal-mistakes/_footer.scss +86 -0
  45. data/_sass/minimal-mistakes/_forms.scss +393 -0
  46. data/_sass/minimal-mistakes/_masthead.scss +93 -0
  47. data/_sass/minimal-mistakes/_mixins.scss +92 -0
  48. data/_sass/minimal-mistakes/_navigation.scss +566 -0
  49. data/_sass/minimal-mistakes/_notices.scss +105 -0
  50. data/_sass/minimal-mistakes/_page.scss +553 -0
  51. data/_sass/minimal-mistakes/_print.scss +252 -0
  52. data/_sass/minimal-mistakes/_reset.scss +187 -0
  53. data/_sass/minimal-mistakes/_search.scss +132 -0
  54. data/_sass/minimal-mistakes/_sidebar.scss +347 -0
  55. data/_sass/minimal-mistakes/_syntax.scss +324 -0
  56. data/_sass/minimal-mistakes/_tables.scss +39 -0
  57. data/_sass/minimal-mistakes/_utilities.scss +593 -0
  58. data/_sass/minimal-mistakes/_variables.scss +169 -0
  59. data/_sass/minimal-mistakes/skins/_air.scss +23 -0
  60. data/_sass/minimal-mistakes/skins/_aqua.scss +30 -0
  61. data/_sass/minimal-mistakes/skins/_contrast.scss +51 -0
  62. data/_sass/minimal-mistakes/skins/_dark.scss +28 -0
  63. data/_sass/minimal-mistakes/skins/_default.scss +5 -0
  64. data/_sass/minimal-mistakes/skins/_dirt.scss +33 -0
  65. data/_sass/minimal-mistakes/skins/_mint.scss +23 -0
  66. data/_sass/minimal-mistakes/skins/_neon.scss +57 -0
  67. data/_sass/minimal-mistakes/skins/_plum.scss +64 -0
  68. data/_sass/minimal-mistakes/skins/_sunrise.scss +44 -0
  69. data/_sass/minimal-mistakes/vendor/breakpoint/_breakpoint.scss +114 -0
  70. data/_sass/minimal-mistakes/vendor/breakpoint/_context.scss +95 -0
  71. data/_sass/minimal-mistakes/vendor/breakpoint/_helpers.scss +151 -0
  72. data/_sass/minimal-mistakes/vendor/breakpoint/_legacy-settings.scss +50 -0
  73. data/_sass/minimal-mistakes/vendor/breakpoint/_no-query.scss +15 -0
  74. data/_sass/minimal-mistakes/vendor/breakpoint/_parsers.scss +215 -0
  75. data/_sass/minimal-mistakes/vendor/breakpoint/_respond-to.scss +82 -0
  76. data/_sass/minimal-mistakes/vendor/breakpoint/_settings.scss +71 -0
  77. data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_double.scss +33 -0
  78. data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_query.scss +82 -0
  79. data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_resolution.scss +31 -0
  80. data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_single.scss +26 -0
  81. data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_triple.scss +36 -0
  82. data/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_default-pair.scss +21 -0
  83. data/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_default.scss +22 -0
  84. data/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_double-string.scss +22 -0
  85. data/_sass/minimal-mistakes/vendor/breakpoint/parsers/resolution/_resolution.scss +60 -0
  86. data/_sass/minimal-mistakes/vendor/breakpoint/parsers/single/_default.scss +13 -0
  87. data/_sass/minimal-mistakes/vendor/breakpoint/parsers/triple/_default.scss +18 -0
  88. data/_sass/minimal-mistakes/vendor/magnific-popup/_magnific-popup.scss +649 -0
  89. data/_sass/minimal-mistakes/vendor/magnific-popup/_settings.scss +46 -0
  90. data/_sass/minimal-mistakes/vendor/susy/_su.scss +4 -0
  91. data/_sass/minimal-mistakes/vendor/susy/_susy-prefix.scss +13 -0
  92. data/_sass/minimal-mistakes/vendor/susy/_susy.scss +5 -0
  93. data/_sass/minimal-mistakes/vendor/susy/plugins/_svg-grid.scss +5 -0
  94. data/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_prefix.scss +7 -0
  95. data/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-api.scss +114 -0
  96. data/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-grid-math.scss +67 -0
  97. data/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-settings.scss +14 -0
  98. data/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-unprefix.scss +18 -0
  99. data/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-utilities.scss +133 -0
  100. data/_sass/minimal-mistakes/vendor/susy/susy/_api.scss +318 -0
  101. data/_sass/minimal-mistakes/vendor/susy/susy/_normalize.scss +261 -0
  102. data/_sass/minimal-mistakes/vendor/susy/susy/_parse.scss +163 -0
  103. data/_sass/minimal-mistakes/vendor/susy/susy/_settings.scss +329 -0
  104. data/_sass/minimal-mistakes/vendor/susy/susy/_su-math.scss +441 -0
  105. data/_sass/minimal-mistakes/vendor/susy/susy/_su-validate.scss +213 -0
  106. data/_sass/minimal-mistakes/vendor/susy/susy/_syntax-helpers.scss +191 -0
  107. data/_sass/minimal-mistakes/vendor/susy/susy/_unprefix.scss +56 -0
  108. data/_sass/minimal-mistakes/vendor/susy/susy/_utilities.scss +167 -0
  109. data/_sass/modules.scss +25 -0
  110. data/_sass/navigation.scss +196 -0
  111. data/_sass/print.scss +40 -0
  112. data/_sass/search.scss +323 -0
  113. data/_sass/support/_functions.scss +9 -0
  114. data/_sass/support/_variables.scss +135 -0
  115. data/_sass/support/mixins/_buttons.scss +27 -0
  116. data/_sass/support/mixins/_layout.scss +34 -0
  117. data/_sass/support/mixins/_typography.scss +86 -0
  118. data/_sass/support/mixins/mixins.scss +3 -0
  119. data/_sass/support/support.scss +3 -0
  120. data/_sass/tables.scss +58 -0
  121. data/_sass/typography.scss +60 -0
  122. data/_sass/utilities/_colors.scss +239 -0
  123. data/_sass/utilities/_layout.scss +95 -0
  124. data/_sass/utilities/_lists.scss +17 -0
  125. data/_sass/utilities/_spacing.scss +165 -0
  126. data/_sass/utilities/_typography.scss +91 -0
  127. data/_sass/utilities/utilities.scss +5 -0
  128. data/_sass/vendor/normalize.scss/README.md +78 -0
  129. data/_sass/vendor/normalize.scss/normalize.scss +427 -0
  130. data/_sass/vendor/normalize.scss/package.json +70 -0
  131. data/assets/css/just-the-docs-dark.scss +3 -0
  132. data/assets/css/just-the-docs-default.scss +8 -0
  133. data/assets/css/just-the-docs-light.scss +3 -0
  134. data/assets/images/just-the-docs.png +0 -0
  135. data/assets/images/search.svg +1 -0
  136. data/assets/js/just-the-docs.js +473 -0
  137. data/assets/js/vendor/lunr.min.js +6 -0
  138. data/assets/js/zzzz-search-data.json +60 -0
  139. data/bin/just-the-docs +16 -0
  140. data/lib/tasks/search.rake +74 -0
  141. metadata +245 -0
@@ -0,0 +1,3 @@
1
+ ---
2
+ ---
3
+ {% include css/just-the-docs.scss.liquid color_scheme="dark" %}
@@ -0,0 +1,8 @@
1
+ ---
2
+ ---
3
+ {% if site.color_scheme and site.color_scheme != "nil" %}
4
+ {% assign color_scheme = site.color_scheme %}
5
+ {% else %}
6
+ {% assign color_scheme = "light" %}
7
+ {% endif %}
8
+ {% include css/just-the-docs.scss.liquid color_scheme=color_scheme %}
@@ -0,0 +1,3 @@
1
+ ---
2
+ ---
3
+ {% include css/just-the-docs.scss.liquid color_scheme="light" %}
@@ -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,473 @@
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" | absolute_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('hpath', { boost: 200 });
83
+ this.field('title', { boost: 100 });
84
+ this.field('content', { boost: 2 });
85
+ {%- if site.search.rel_url != false %}
86
+ this.field('relUrl');
87
+ {%- endif %}
88
+ this.metadataWhitelist = ['position']
89
+
90
+ for (var i in docs) {
91
+ this.add({
92
+ id: i,
93
+ title: docs[i].title,
94
+ hpath: docs[i].hpath,
95
+ content: docs[i].content,
96
+ {%- if site.search.rel_url != false %}
97
+ relUrl: docs[i].relUrl
98
+ {%- endif %}
99
+ });
100
+ }
101
+ });
102
+
103
+ searchLoaded(index, docs);
104
+ } else {
105
+ console.log('Error loading ajax request. Request status:' + request.status);
106
+ }
107
+ };
108
+
109
+ request.onerror = function(){
110
+ console.log('There was a connection error');
111
+ };
112
+
113
+ request.send();
114
+ }
115
+
116
+ function searchLoaded(index, docs) {
117
+ var index = index;
118
+ var docs = docs;
119
+ var searchInput = document.getElementById('search-input');
120
+ var searchResults = document.getElementById('search-results');
121
+ var mainHeader = document.getElementById('main-header');
122
+ var currentInput;
123
+ var currentSearchIndex = 0;
124
+
125
+ function showSearch() {
126
+ document.documentElement.classList.add('search-active');
127
+ }
128
+
129
+ function hideSearch() {
130
+ document.documentElement.classList.remove('search-active');
131
+ }
132
+
133
+ function update() {
134
+ currentSearchIndex++;
135
+
136
+ var input = searchInput.value;
137
+ if (input === '') {
138
+ hideSearch();
139
+ } else {
140
+ showSearch();
141
+ // scroll search input into view, workaround for iOS Safari
142
+ window.scroll(0, -1);
143
+ setTimeout(function(){ window.scroll(0, 0); }, 0);
144
+ }
145
+ if (input === currentInput) {
146
+ return;
147
+ }
148
+ currentInput = input;
149
+ searchResults.innerHTML = '';
150
+ if (input === '') {
151
+ return;
152
+ }
153
+
154
+ var results = index.query(function (query) {
155
+ var tokens = lunr.tokenizer(input)
156
+ query.term(tokens, {
157
+ boost: 10
158
+ });
159
+ query.term(tokens, {
160
+ wildcard: lunr.Query.wildcard.TRAILING
161
+ });
162
+ });
163
+
164
+ if ((results.length == 0) && (input.length > 2)) {
165
+ var tokens = lunr.tokenizer(input).filter(function(token, i) {
166
+ return token.str.length < 20;
167
+ })
168
+ if (tokens.length > 0) {
169
+ results = index.query(function (query) {
170
+ query.term(tokens, {
171
+ editDistance: Math.round(Math.sqrt(input.length / 2 - 1))
172
+ });
173
+ });
174
+ }
175
+ }
176
+
177
+ if (results.length == 0) {
178
+ var noResultsDiv = document.createElement('div');
179
+ noResultsDiv.classList.add('search-no-result');
180
+ noResultsDiv.innerText = 'No results found';
181
+ searchResults.appendChild(noResultsDiv);
182
+
183
+ } else {
184
+ var resultsList = document.createElement('ul');
185
+ resultsList.classList.add('search-results-list');
186
+ searchResults.appendChild(resultsList);
187
+
188
+ addResults(resultsList, results, 0, 10, 100, currentSearchIndex);
189
+ }
190
+
191
+ function addResults(resultsList, results, start, batchSize, batchMillis, searchIndex) {
192
+ if (searchIndex != currentSearchIndex) {
193
+ return;
194
+ }
195
+ for (var i = start; i < (start + batchSize); i++) {
196
+ if (i == results.length) {
197
+ return;
198
+ }
199
+ addResult(resultsList, results[i]);
200
+ }
201
+ setTimeout(function() {
202
+ addResults(resultsList, results, start + batchSize, batchSize, batchMillis, searchIndex);
203
+ }, batchMillis);
204
+ }
205
+
206
+ function addResult(resultsList, result) {
207
+ var doc = docs[result.ref];
208
+
209
+ var resultsListItem = document.createElement('li');
210
+ resultsListItem.classList.add('search-results-list-item');
211
+ resultsList.appendChild(resultsListItem);
212
+
213
+ var resultLink = document.createElement('a');
214
+ resultLink.classList.add('search-result');
215
+ resultLink.setAttribute('href', doc.url);
216
+ resultsListItem.appendChild(resultLink);
217
+
218
+ var resultTitle = document.createElement('div');
219
+ resultTitle.classList.add('search-result-title');
220
+ resultLink.appendChild(resultTitle);
221
+
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.hpath;
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-" | absolute_url }}' + theme + '.css');
460
+ }
461
+
462
+ // Document ready
463
+
464
+ jtd.onReady(function(){
465
+ initNav();
466
+ {%- if site.search_enabled != false %}
467
+ initSearch();
468
+ {%- endif %}
469
+ });
470
+
471
+ })(window.jtd = window.jtd || {});
472
+
473
+ {% include js/custom.js %}