jekyll-theme-paperwiki 0.1.21 → 0.1.22
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/_config.yml +119 -0
- data/_data/navigation.yml +1 -0
- data/_includes/collections_header.html +10 -0
- data/_includes/collections_sidebar.html +11 -7
- data/_includes/entry_tags.html +3 -1
- data/_includes/global_header.html +3 -0
- data/_includes/random_redirect.html +1 -0
- data/_includes/wiki_sidebar.html +29 -16
- data/_layouts/collections.html +1 -1
- data/_layouts/portal.html +15 -10
- data/_layouts/random.html +1 -1
- data/_layouts/reference_desk.html +26 -19
- data/_sass/partials/_base.scss +2 -1
- data/_sass/partials/_entries.scss +5 -0
- data/_sass/partials/_global.scss +4 -1
- data/assets/.DS_Store +0 -0
- data/assets/css/css.scss +1 -0
- data/assets/fonts/.DS_Store +0 -0
- data/assets/js/.DS_Store +0 -0
- data/assets/js/lunr.js +1753 -1754
- data/assets/js/search.js +21 -22
- data/assets/js/toc.js +9 -9
- metadata +7 -4
- data/assets/js/lunr.unicodeNormalizer.ts +0 -162
data/assets/js/search.js
CHANGED
@@ -1,11 +1,10 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
/***
|
2
|
+
* Yoinked in its entirety from https://davidwalsh.name/adding-search-to-your-site-with-javascript
|
3
|
+
* and https://trackjs.com/blog/site-search-with-javascript-part-2/
|
4
|
+
*/
|
5
5
|
|
6
6
|
// Build the search index
|
7
7
|
var searchIndex = lunr(function() {
|
8
|
-
// this.use("lunr.unicodeNormalizer")
|
9
8
|
// Define searchable fields for each page
|
10
9
|
this.ref("id");
|
11
10
|
this.field("title", { boost: 100 }); // Boost the importance of the title field, prioritizing title matches
|
@@ -49,25 +48,25 @@ var resultPages = results.map(function (match) {
|
|
49
48
|
|
50
49
|
// Text highlighting
|
51
50
|
function formatContent(content, searchTerm) {
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
51
|
+
var termIdx = content.toLowerCase().indexOf(searchTerm.toLowerCase());
|
52
|
+
if (termIdx >= 0) {
|
53
|
+
var startIdx = Math.max(0, termIdx - 140);
|
54
|
+
var endIdx = Math.min(content.length, termIdx + searchTerm.length + 140);
|
55
|
+
var trimmedContent = (startIdx === 0) ? "" : "…";
|
56
|
+
trimmedContent += content.substring(startIdx, endIdx);
|
57
|
+
trimmedContent += (endIdx >= content.length) ? "" : "…"
|
59
58
|
|
60
|
-
|
61
|
-
|
62
|
-
|
59
|
+
var highlightedContent = trimmedContent.replace(new RegExp(searchTerm, "ig"), function matcher(match) {
|
60
|
+
return "<mark class='search_result-highlight'>" + match + "</mark>";
|
61
|
+
});
|
63
62
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
63
|
+
return highlightedContent;
|
64
|
+
}
|
65
|
+
else {
|
66
|
+
var emptyTrimmedString = content.substr(0, 280);
|
67
|
+
emptyTrimmedString += (content.length < 280) ? "" : "…";
|
68
|
+
return emptyTrimmedString;
|
69
|
+
}
|
71
70
|
}
|
72
71
|
|
73
72
|
|
data/assets/js/toc.js
CHANGED
@@ -1,19 +1,19 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
*/
|
1
|
+
/***
|
2
|
+
* Demo for this article:
|
3
|
+
* http://blustemy.io/creating-a-table-of-contents-in-javascript/
|
4
|
+
*/
|
5
5
|
|
6
6
|
class TableOfContents {
|
7
7
|
/*
|
8
|
-
|
9
|
-
|
8
|
+
The parameters from and to must be Element objects in the DOM.
|
9
|
+
*/
|
10
10
|
constructor({ from, to }) {
|
11
11
|
this.fromElement = from;
|
12
12
|
this.toElement = to;
|
13
13
|
// Get all the ordered headings.
|
14
14
|
this.headingElements = this.fromElement.querySelectorAll("h2, h3, h4, h5, h6");
|
15
15
|
this.tocElement = document.createElement("div");
|
16
|
-
|
16
|
+
}
|
17
17
|
|
18
18
|
/*
|
19
19
|
Get the most important heading level.
|
@@ -32,14 +32,14 @@ class TableOfContents {
|
|
32
32
|
|
33
33
|
/*
|
34
34
|
Generate a unique id string for the heading from its text content.
|
35
|
-
|
35
|
+
*/
|
36
36
|
static generateId(headingElement) {
|
37
37
|
return headingElement.textContent.replace(/\s+/g, "_");
|
38
38
|
}
|
39
39
|
|
40
40
|
/*
|
41
41
|
Convert <h1> to 1 … <h6> to 6.
|
42
|
-
|
42
|
+
*/
|
43
43
|
static getHeadingLevel(headingElement) {
|
44
44
|
switch (headingElement.tagName.toLowerCase()) {
|
45
45
|
case "h1": return 1;
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-theme-paperwiki
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.22
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- pomeloshark
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-09-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -32,6 +32,7 @@ extra_rdoc_files: []
|
|
32
32
|
files:
|
33
33
|
- LICENSE.txt
|
34
34
|
- README.md
|
35
|
+
- _config.yml
|
35
36
|
- _data/navigation.yml
|
36
37
|
- _includes/collections_header.html
|
37
38
|
- _includes/collections_sidebar.html
|
@@ -73,7 +74,9 @@ files:
|
|
73
74
|
- _sass/variables/_fonts.scss
|
74
75
|
- _sass/variables/_media-queries.scss
|
75
76
|
- _sass/variables/_misc.scss
|
77
|
+
- assets/.DS_Store
|
76
78
|
- assets/css/css.scss
|
79
|
+
- assets/fonts/.DS_Store
|
77
80
|
- assets/fonts/Inter/.DS_Store
|
78
81
|
- assets/fonts/Inter/Inter-Bold.otf
|
79
82
|
- assets/fonts/Inter/Inter-Bold.woff
|
@@ -2382,8 +2385,8 @@ files:
|
|
2382
2385
|
- assets/images/RemixIcon/Weather/windy-line.svg
|
2383
2386
|
- assets/images/favicon.png
|
2384
2387
|
- assets/images/homepage.png
|
2388
|
+
- assets/js/.DS_Store
|
2385
2389
|
- assets/js/lunr.js
|
2386
|
-
- assets/js/lunr.unicodeNormalizer.ts
|
2387
2390
|
- assets/js/search.js
|
2388
2391
|
- assets/js/toc.js
|
2389
2392
|
homepage: https://github.com/pomeloshark/jekyll-theme-paperwiki
|
@@ -2405,7 +2408,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
2405
2408
|
- !ruby/object:Gem::Version
|
2406
2409
|
version: '0'
|
2407
2410
|
requirements: []
|
2408
|
-
rubygems_version: 3.
|
2411
|
+
rubygems_version: 3.4.6
|
2409
2412
|
signing_key:
|
2410
2413
|
specification_version: 4
|
2411
2414
|
summary: A Jekyll theme meant for use as a personal wiki.
|
@@ -1,162 +0,0 @@
|
|
1
|
-
import * as lunr from "lunr";
|
2
|
-
|
3
|
-
/*!
|
4
|
-
* lunr.unicodeNormalizer
|
5
|
-
* by Chris Van <cvan>, 2014
|
6
|
-
* Extension for lunr.js <http://lunrjs.com/>
|
7
|
-
* Includes code from https://github.com/dodo/node-slug/blob/master/slug.js
|
8
|
-
*/
|
9
|
-
|
10
|
-
const charmap: {[inchar: string]: string} = {
|
11
|
-
// Latin & IPA
|
12
|
-
'À': 'A', 'Á': 'A', 'Â': 'A', 'Ã': 'A', 'Ā': 'A', 'Ȧ': 'A', 'Ä': 'A',
|
13
|
-
'Å': 'A', 'Ǎ': 'A', 'Ą': 'A', 'Ạ': 'A', 'Æ': 'AE', 'Ḃ': 'B', 'Ḅ': 'B',
|
14
|
-
'Ç': 'C', 'Ć': 'C', 'Ĉ': 'C', 'Č': 'C', 'Ċ': 'C', 'Ḋ': 'D', 'Ḍ': 'D',
|
15
|
-
'Ḏ': 'D', 'Ď': 'D', 'Ð': 'D', 'È': 'E', 'É': 'E', 'Ê': 'E', 'Ẽ': 'E',
|
16
|
-
'Ē': 'E', 'Ė': 'E', 'Ë': 'E', 'Ě': 'E', 'Ẹ': 'E', 'Ę': 'E', 'Ǵ': 'G',
|
17
|
-
'Ĝ': 'G', 'Ġ': 'G', 'Ǧ': 'G', 'Ĥ': 'H', 'Ȟ': 'H', 'Ḥ': 'H', 'Ì': 'I',
|
18
|
-
'Í': 'I', 'Î': 'I', 'Ĩ': 'I', 'Ī': 'I', 'İ': 'I', 'Ï': 'I', 'Ǐ': 'I',
|
19
|
-
'Ị': 'I', 'Į': 'I', 'Ḱ': 'K', 'Ǩ': 'K', 'Ḵ': 'K', 'Ḳ': 'K', 'Ĺ': 'L',
|
20
|
-
'Ḻ': 'L', 'Ḷ': 'L', 'Ḿ': 'M', 'Ṁ': 'M', 'Ṃ': 'M', 'Ǹ': 'N', 'Ń': 'N',
|
21
|
-
'Ñ': 'N', 'Ṅ': 'N', 'Ň': 'N', 'Ŋ': 'N', 'Ɲ': 'N', 'Ṇ': 'N', 'Ò': 'O',
|
22
|
-
'Ó': 'O', 'Ô': 'O', 'Õ': 'O', 'Ō': 'O', 'Ȯ': 'O', 'Ö': 'O', 'Ő': 'O',
|
23
|
-
'Ǫ': 'O', 'Ọ': 'O', 'Ɔ': 'O', 'Ø': 'O', 'Ŕ': 'R', 'Ṙ': 'R', 'Ř': 'R',
|
24
|
-
'Ṛ': 'R', 'Ś': 'S', 'Ŝ': 'S', 'Ṡ': 'S', 'Ṣ': 'S', 'Ș': 'S', 'Ş': 'S',
|
25
|
-
'Ṭ': 'T', 'Ț': 'T', 'Ţ': 'T', 'Ù': 'U', 'Ú': 'U', 'Û': 'U', 'Ũ': 'U',
|
26
|
-
'Ū': 'U', 'Ü': 'U', 'Ű': 'U', 'Ǔ': 'U', 'Ụ': 'U', 'Ṳ': 'U', 'Ų': 'U',
|
27
|
-
'Ẁ': 'W', 'Ẃ': 'W', 'Ŵ': 'W', 'Ẉ': 'W', 'Ỳ': 'Y', 'Ý': 'Y', 'Ŷ': 'Y',
|
28
|
-
'Ỹ': 'Y', 'Ȳ': 'Y', 'Ẏ': 'Y', 'Ÿ': 'Y', 'Ź': 'Z', 'Ẑ': 'Z', 'Ż': 'Z',
|
29
|
-
'Ž': 'Z', 'Ẓ': 'Z', 'Ẕ': 'Z', 'Þ': 'TH', 'ß': 'ss',
|
30
|
-
'à': 'a', 'á': 'a', 'â': 'a', 'ã': 'a', 'ā': 'a', 'ȧ': 'a', 'ä': 'a',
|
31
|
-
'å': 'a', 'ǎ': 'a', 'ą': 'a', 'ạ': 'a', 'ɑ': 'a', 'ɐ': 'a', 'ɒ': 'a',
|
32
|
-
'æ': 'ae',
|
33
|
-
'ç': 'c', 'è': 'e', 'é': 'e', 'ê': 'e', 'ë': 'e', 'ì': 'i', 'í': 'i',
|
34
|
-
'î': 'i', 'ï': 'i', 'ð': 'd', 'ñ': 'n', 'ò': 'o', 'ó': 'o', 'ô': 'o',
|
35
|
-
'õ': 'o', 'ö': 'o', 'ő': 'o', 'ø': 'o', 'ù': 'u', 'ú': 'u', 'û': 'u',
|
36
|
-
'ü': 'u', 'ű': 'u', 'ý': 'y', 'þ': 'th', 'ÿ': 'y', 'ẞ': 'SS',
|
37
|
-
|
38
|
-
// Greek
|
39
|
-
'Α': 'A', 'Β': 'B', 'Γ': 'G', 'Δ': 'D', 'Ε': 'E', 'Ζ': 'Z', 'Η': 'H',
|
40
|
-
'Θ': '8', 'Ι': 'I', 'Κ': 'K', 'Λ': 'L', 'Μ': 'M', 'Ν': 'N', 'Ξ': '3',
|
41
|
-
'Ο': 'O', 'Π': 'P', 'Ρ': 'R', 'Σ': 'S', 'Τ': 'T', 'Υ': 'Y', 'Φ': 'F',
|
42
|
-
'Χ': 'X', 'Ψ': 'PS', 'Ω': 'W',
|
43
|
-
'Ά': 'A', 'Έ': 'E', 'Ί': 'I', 'Ό': 'O', 'Ύ': 'Y', 'Ή': 'H', 'Ώ': 'W',
|
44
|
-
'Ϊ': 'I', 'Ϋ': 'Y',
|
45
|
-
'α': 'a', 'β': 'b', 'γ': 'g', 'δ': 'd', 'ε': 'e', 'ζ': 'z', 'η': 'h',
|
46
|
-
'θ': '8', 'ι': 'i', 'κ': 'k', 'λ': 'l', 'μ': 'm', 'ν': 'n', 'ξ': '3',
|
47
|
-
'ο': 'o', 'π': 'p', 'ρ': 'r', 'σ': 's', 'τ': 't', 'υ': 'y', 'φ': 'f',
|
48
|
-
'χ': 'x', 'ψ': 'ps', 'ω': 'w',
|
49
|
-
'ά': 'a', 'έ': 'e', 'ί': 'i', 'ό': 'o', 'ύ': 'y', 'ή': 'h', 'ώ': 'w',
|
50
|
-
'ς': 's', 'ϊ': 'i', 'ΰ': 'y', 'ϋ': 'y', 'ΐ': 'i',
|
51
|
-
|
52
|
-
// Turkish
|
53
|
-
'Ş': 'S', 'İ': 'I', 'Ğ': 'G',
|
54
|
-
'ş': 's', 'ı': 'i', 'ğ': 'g',
|
55
|
-
|
56
|
-
// Russian
|
57
|
-
'А': 'A', 'Б': 'B', 'В': 'V', 'Г': 'G', 'Д': 'D', 'Е': 'E', 'Ё': 'Yo',
|
58
|
-
'Ж': 'Zh', 'З': 'Z', 'И': 'I', 'Й': 'J', 'К': 'K', 'Л': 'L', 'М': 'M',
|
59
|
-
'Н': 'N', 'О': 'O', 'П': 'P', 'Р': 'R', 'С': 'S', 'Т': 'T', 'У': 'U',
|
60
|
-
'Ф': 'F', 'Х': 'H', 'Ц': 'C', 'Ч': 'Ch', 'Ш': 'Sh', 'Щ': 'Sh', 'Ъ': 'U',
|
61
|
-
'Ы': 'Y', 'Ь': '', 'Э': 'E', 'Ю': 'Yu', 'Я': 'Ya',
|
62
|
-
'а': 'a', 'б': 'b', 'в': 'v', 'г': 'g', 'д': 'd', 'е': 'e', 'ё': 'yo',
|
63
|
-
'ж': 'zh', 'з': 'z', 'и': 'i', 'й': 'j', 'к': 'k', 'л': 'l', 'м': 'm',
|
64
|
-
'н': 'n', 'о': 'o', 'п': 'p', 'р': 'r', 'с': 's', 'т': 't', 'у': 'u',
|
65
|
-
'ф': 'f', 'х': 'h', 'ц': 'c', 'ч': 'ch', 'ш': 'sh', 'щ': 'sh', 'ъ': 'u',
|
66
|
-
'ы': 'y', 'ь': '', 'э': 'e', 'ю': 'yu', 'я': 'ya',
|
67
|
-
|
68
|
-
// Ukranian
|
69
|
-
'Є': 'Ye', 'І': 'I', 'Ї': 'Yi', 'Ґ': 'G',
|
70
|
-
'є': 'ye', 'і': 'i', 'ї': 'yi', 'ґ': 'g',
|
71
|
-
|
72
|
-
// Czech
|
73
|
-
'Č': 'C', 'Ď': 'D', 'Ě': 'E', 'Ň': 'N', 'Ř': 'R', 'Š': 'S', 'Ť': 'T',
|
74
|
-
'Ů': 'U', 'Ž': 'Z',
|
75
|
-
'č': 'c', 'ď': 'd', 'ě': 'e', 'ň': 'n', 'ř': 'r', 'š': 's', 'ť': 't',
|
76
|
-
'ů': 'u', 'ž': 'z',
|
77
|
-
|
78
|
-
// Polish
|
79
|
-
'Ą': 'A', 'Ć': 'C', 'Ę': 'e', 'Ł': 'L', 'Ń': 'N', 'Ś': 'S', 'Ź': 'Z',
|
80
|
-
'Ż': 'Z',
|
81
|
-
'ą': 'a', 'ć': 'c', 'ę': 'e', 'ł': 'l', 'ń': 'n', 'ś': 's', 'ź': 'z',
|
82
|
-
'ż': 'z',
|
83
|
-
|
84
|
-
// Latvian
|
85
|
-
'Ā': 'A', 'Ē': 'E', 'Ģ': 'G', 'Ī': 'i', 'Ķ': 'k', 'Ļ': 'L', 'Ņ': 'N',
|
86
|
-
'Ū': 'u',
|
87
|
-
'ā': 'a', 'ē': 'e', 'ģ': 'g', 'ī': 'i', 'ķ': 'k', 'ļ': 'l', 'ņ': 'n',
|
88
|
-
'ū': 'u',
|
89
|
-
|
90
|
-
// Currency
|
91
|
-
'€': 'euro', '₢': 'cruzeiro', '₣': 'french franc', '£': 'pound',
|
92
|
-
'₤': 'lira', '₥': 'mill', '₦': 'naira', '₧': 'peseta', '₨': 'rupee',
|
93
|
-
'₩': 'won', '₪': 'new shequel', '₫': 'dong', '₭': 'kip', '₮': 'tugrik',
|
94
|
-
'₯': 'drachma', '₰': 'penny', '₱': 'peso', '₲': 'guarani',
|
95
|
-
'₳': 'austral', '₴': 'hryvnia', '₵': 'cedi', '¢': 'cent', '¥': 'yen',
|
96
|
-
'元': 'yuan', '円': 'yen', '﷼': 'rial', '₠': 'ecu', '¤': 'currency',
|
97
|
-
'฿': 'baht', "$": 'dollar', '₹': 'indian rupee',
|
98
|
-
|
99
|
-
// Symbols
|
100
|
-
'©': '(c)', 'œ': 'oe', 'Œ': 'OE', '∑': 'sum', '®': '(r)', '†': '+',
|
101
|
-
'“': '"', '”': '"', '‘': "'", '’': "'", '∂': 'd', 'ƒ': 'f', '™': 'tm',
|
102
|
-
'℠': 'sm', '…': '...', '˚': 'o', 'º': 'o', 'ª': 'a', '•': '*',
|
103
|
-
'∆': 'delta', '∞': 'infinity', '♥': 'love', '&': 'and', '|': 'or',
|
104
|
-
'<': 'less', '>': 'greater'
|
105
|
-
};
|
106
|
-
const charmapPattern = Object.keys(charmap).map(function(char) {
|
107
|
-
// Update this with every normalized character that is also a unicode
|
108
|
-
// operator.
|
109
|
-
return char.replace(/[\|\$]/g, '\\$&'); // `$&` -> returns matched text
|
110
|
-
}).join('|');
|
111
|
-
const charmapRegExp = new RegExp('(' + charmapPattern + ')', 'g');
|
112
|
-
|
113
|
-
function unicodeFolder(str: string) {
|
114
|
-
return str.replace(charmapRegExp, function(char: string) {
|
115
|
-
return charmap[char];
|
116
|
-
});
|
117
|
-
}
|
118
|
-
|
119
|
-
export default function patchLunr(lunrmod: any) {
|
120
|
-
var tokenizer = function(obj: any, metadata: any) {
|
121
|
-
if (!arguments.length || obj === null || obj === undefined) return [];
|
122
|
-
if (Array.isArray(obj)) {
|
123
|
-
return obj.map(function(t) {
|
124
|
-
return new lunrmod.Token(
|
125
|
-
unicodeFolder(lunrmod.utils.asString(t)).toLowerCase(),
|
126
|
-
lunrmod.utils.clone(metadata))
|
127
|
-
});
|
128
|
-
}
|
129
|
-
var str = obj.toString(), len = str.length, tokens = []
|
130
|
-
|
131
|
-
for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {
|
132
|
-
var char = str.charAt(sliceEnd),
|
133
|
-
sliceLength = sliceEnd - sliceStart
|
134
|
-
|
135
|
-
if ((char.match(lunrmod.tokenizer.separator) || sliceEnd == len)) {
|
136
|
-
|
137
|
-
if (sliceLength > 0) {
|
138
|
-
var tokenMetadata = lunrmod.utils.clone(metadata) || {}
|
139
|
-
tokenMetadata["position"] = [sliceStart, sliceLength]
|
140
|
-
tokenMetadata["index"] = tokens.length
|
141
|
-
|
142
|
-
tokens.push(
|
143
|
-
new lunrmod.Token (
|
144
|
-
unicodeFolder(str.slice(sliceStart, sliceEnd)).toLowerCase(),
|
145
|
-
tokenMetadata
|
146
|
-
)
|
147
|
-
)
|
148
|
-
}
|
149
|
-
|
150
|
-
sliceStart = sliceEnd + 1
|
151
|
-
}
|
152
|
-
}
|
153
|
-
|
154
|
-
return tokens
|
155
|
-
}
|
156
|
-
|
157
|
-
for (const attr in lunrmod.tokenizer){
|
158
|
-
// @ts-ignore
|
159
|
-
tokenizer[attr] = lunrmod.tokenizer[attr];
|
160
|
-
}
|
161
|
-
lunrmod.tokenizer = tokenizer;
|
162
|
-
}
|