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.
data/assets/js/search.js CHANGED
@@ -1,11 +1,10 @@
1
- // Yoinked in its entirety from https://davidwalsh.name/adding-search-to-your-site-with-javascript and https://trackjs.com/blog/site-search-with-javascript-part-2/
2
-
3
- //var lunr = require("lunr")
4
- //require("lunr.unicodeNormalizer")(lunr)
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
- var termIdx = content.toLowerCase().indexOf(searchTerm.toLowerCase());
53
- if (termIdx >= 0) {
54
- var startIdx = Math.max(0, termIdx - 140);
55
- var endIdx = Math.min(content.length, termIdx + searchTerm.length + 140);
56
- var trimmedContent = (startIdx === 0) ? "" : "…";
57
- trimmedContent += content.substring(startIdx, endIdx);
58
- trimmedContent += (endIdx >= content.length) ? "" : "…"
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
- var highlightedContent = trimmedContent.replace(new RegExp(searchTerm, "ig"), function matcher(match) {
61
- return "<mark class='search_result-highlight'>" + match + "</mark>";
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
- return highlightedContent;
65
- }
66
- else {
67
- var emptyTrimmedString = content.substr(0, 280);
68
- emptyTrimmedString += (content.length < 280) ? "" : "&hellip;";
69
- return emptyTrimmedString;
70
- }
63
+ return highlightedContent;
64
+ }
65
+ else {
66
+ var emptyTrimmedString = content.substr(0, 280);
67
+ emptyTrimmedString += (content.length < 280) ? "" : "&hellip;";
68
+ return emptyTrimmedString;
69
+ }
71
70
  }
72
71
 
73
72
 
data/assets/js/toc.js CHANGED
@@ -1,19 +1,19 @@
1
- /*
2
- Demo for this article:
3
- http://blustemy.io/creating-a-table-of-contents-in-javascript/
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
- The parameters from and to must be Element objects in the DOM.
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.21
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: 2023-09-15 00:00:00.000000000 Z
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.2.15
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
- }