purelog 0.1.0

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.
@@ -0,0 +1,296 @@
1
+ /*!
2
+ * Simple-Jekyll-Search v1.7.2 (https://github.com/christian-fei/Simple-Jekyll-Search)
3
+ * Copyright 2015-2018, Christian Fei
4
+ * Licensed under the MIT License.
5
+ */
6
+ !(function () {
7
+ "use strict";
8
+ var f = {
9
+ load: function w(t, e) {
10
+ var n = (function r() {
11
+ return window.XMLHttpRequest
12
+ ? new window.XMLHttpRequest()
13
+ : new ActiveXObject("Microsoft.XMLHTTP");
14
+ })();
15
+ n.open("GET", t, !0),
16
+ (n.onreadystatechange = (function i(e, n) {
17
+ return function () {
18
+ if (4 === e.readyState && 200 === e.status)
19
+ try {
20
+ n(null, JSON.parse(e.responseText));
21
+ } catch (t) {
22
+ n(t, null);
23
+ }
24
+ };
25
+ })(n, e)),
26
+ n.send();
27
+ },
28
+ };
29
+ (function y(t) {
30
+ if (
31
+ !(function e(t) {
32
+ return (
33
+ !!t && "undefined" != typeof t.required && t.required instanceof Array
34
+ );
35
+ })(t)
36
+ )
37
+ throw new Error("-- OptionsValidator: required options missing");
38
+ if (!(this instanceof y)) return new y(t);
39
+ var r = t.required;
40
+ (this.getRequiredOptions = function () {
41
+ return r;
42
+ }),
43
+ (this.validate = function (e) {
44
+ var n = [];
45
+ return (
46
+ r.forEach(function (t) {
47
+ "undefined" == typeof e[t] && n.push(t);
48
+ }),
49
+ n
50
+ );
51
+ });
52
+ });
53
+ var n = function g(t, e) {
54
+ var n = e.length,
55
+ r = t.length;
56
+ if (n < r) return !1;
57
+ if (r === n) return t === e;
58
+ t: for (var i = 0, o = 0; i < r; i++) {
59
+ for (var u = t.charCodeAt(i); o < n; )
60
+ if (e.charCodeAt(o++) === u) continue t;
61
+ return !1;
62
+ }
63
+ return !0;
64
+ },
65
+ e = new (function t() {
66
+ this.matches = function (t, e) {
67
+ return n(e.toLowerCase(), t.toLowerCase());
68
+ };
69
+ })();
70
+ var r = new (function O() {
71
+ this.matches = function (e, t) {
72
+ return (
73
+ !!e &&
74
+ ((e = e.trim().toLowerCase()),
75
+ (t = t.trim().toLowerCase()).split(" ").filter(function (t) {
76
+ return 0 <= e.indexOf(t);
77
+ }).length === t.split(" ").length)
78
+ );
79
+ };
80
+ })();
81
+ var l = {
82
+ put: function z(t) {
83
+ if (c(t)) return s(t);
84
+ if (
85
+ (function e(t) {
86
+ return (
87
+ Boolean(t) && "[object Array]" === Object.prototype.toString.call(t)
88
+ );
89
+ })(t)
90
+ )
91
+ return (function i(t) {
92
+ var e = [];
93
+ a();
94
+ for (var n = 0, r = t.length; n < r; n++) c(t[n]) && e.push(s(t[n]));
95
+ return e;
96
+ })(t);
97
+ return undefined;
98
+ },
99
+ clear: a,
100
+ search: function S(t) {
101
+ return t
102
+ ? (function a(t, e, n, r) {
103
+ for (var i = [], o = 0; o < t.length && i.length < r.limit; o++) {
104
+ var u = d(t[o], e, n, r);
105
+ u && i.push(u);
106
+ }
107
+ return i;
108
+ })(o, t, u.searchStrategy, u).sort(u.sort)
109
+ : [];
110
+ },
111
+ setOptions: function q(t) {
112
+ ((u = t || {}).fuzzy = t.fuzzy || !1),
113
+ (u.limit = t.limit || 10),
114
+ (u.searchStrategy = t.fuzzy ? e : r),
115
+ (u.sort = t.sort || i);
116
+ },
117
+ };
118
+
119
+ function i() {
120
+ return 0;
121
+ }
122
+ var o = [],
123
+ u = {};
124
+
125
+ function a() {
126
+ return (o.length = 0), o;
127
+ }
128
+
129
+ function c(t) {
130
+ return (
131
+ Boolean(t) && "[object Object]" === Object.prototype.toString.call(t)
132
+ );
133
+ }
134
+
135
+ function s(t) {
136
+ return o.push(t), o;
137
+ }
138
+
139
+ function d(t, e, n, r) {
140
+ for (var i in t) if (!p(t[i], r.exclude) && n.matches(t[i], e)) return t;
141
+ }
142
+
143
+ function p(t, e) {
144
+ for (var n = !1, r = 0, i = (e = e || []).length; r < i; r++) {
145
+ var o = e[r];
146
+ !n && new RegExp(t).test(o) && (n = !0);
147
+ }
148
+ return n;
149
+ }
150
+ (u.fuzzy = !1),
151
+ (u.limit = 10),
152
+ (u.searchStrategy = u.fuzzy ? e : r),
153
+ (u.sort = i);
154
+ var h = {
155
+ compile: function j(r) {
156
+ return m.template.replace(m.pattern, function (t, e) {
157
+ var n = m.middleware(e, r[e], m.template);
158
+ return void 0 !== n ? n : r[e] || t;
159
+ });
160
+ },
161
+ setOptions: function C(t) {
162
+ (m.pattern = t.pattern || m.pattern),
163
+ (m.template = t.template || m.template),
164
+ "function" == typeof t.middleware && (m.middleware = t.middleware);
165
+ },
166
+ },
167
+ m = {};
168
+ (m.pattern = /\{(.*?)\}/g),
169
+ (m.template = ""),
170
+ (m.middleware = function () {});
171
+ var v = {
172
+ merge: function L(t, e) {
173
+ var n = {};
174
+ for (var r in t)
175
+ (n[r] = t[r]), "undefined" != typeof e[r] && (n[r] = e[r]);
176
+ return n;
177
+ },
178
+ isJSON: function M(t) {
179
+ try {
180
+ return !!(t instanceof Object && JSON.parse(JSON.stringify(t)));
181
+ } catch (e) {
182
+ return !1;
183
+ }
184
+ },
185
+ };
186
+ !(function (t) {
187
+ var o = {
188
+ searchInput: null,
189
+ resultsContainer: null,
190
+ json: [],
191
+ success: Function.prototype,
192
+ searchResultTemplate:
193
+ '<li><a href="{url}" title="{desc}">{title}</a></li>',
194
+ templateMiddleware: Function.prototype,
195
+ sortMiddleware: function () {
196
+ return 0;
197
+ },
198
+ noResultsText: "No results found",
199
+ limit: 10,
200
+ fuzzy: !1,
201
+ exclude: [],
202
+ },
203
+ n = ["searchInput", "resultsContainer", "json"],
204
+ r = (function y(e) {
205
+ if (
206
+ !(function n(t) {
207
+ return (
208
+ !!t &&
209
+ "undefined" != typeof t.required &&
210
+ t.required instanceof Array
211
+ );
212
+ })(e)
213
+ )
214
+ throw new Error("-- OptionsValidator: required options missing");
215
+ if (!(this instanceof y)) return new y(e);
216
+ var r = e.required;
217
+ (this.getRequiredOptions = function () {
218
+ return r;
219
+ }),
220
+ (this.validate = function (e) {
221
+ var n = [];
222
+ return (
223
+ r.forEach(function (t) {
224
+ "undefined" == typeof e[t] && n.push(t);
225
+ }),
226
+ n
227
+ );
228
+ });
229
+ })({
230
+ required: n,
231
+ });
232
+
233
+ function i(t) {
234
+ o.success(t),
235
+ l.put(t),
236
+ (function e() {
237
+ o.searchInput.addEventListener("keyup", function (t) {
238
+ (function e(t) {
239
+ return -1 === [13, 16, 20, 37, 38, 39, 40, 91].indexOf(t);
240
+ })(t.which) && (u(), c(t.target.value));
241
+ });
242
+ })();
243
+ }
244
+
245
+ function u() {
246
+ o.resultsContainer.innerHTML = "";
247
+ }
248
+
249
+ function a(t) {
250
+ o.resultsContainer.innerHTML += t;
251
+ }
252
+
253
+ function c(t) {
254
+ (function e(t) {
255
+ return t && 0 < t.length;
256
+ })(t) &&
257
+ (u(),
258
+ (function i(t, e) {
259
+ var n = t.length;
260
+ if (0 === n) return a(o.noResultsText);
261
+ for (var r = 0; r < n; r++) (t[r].query = e), a(h.compile(t[r]));
262
+ })(l.search(t), t));
263
+ }
264
+
265
+ function s(t) {
266
+ throw new Error("SimpleJekyllSearch --- " + t);
267
+ }
268
+ t.SimpleJekyllSearch = function (t) {
269
+ return (
270
+ 0 < r.validate(t).length &&
271
+ s("You must specify the following required options: " + n),
272
+ (o = v.merge(o, t)),
273
+ h.setOptions({
274
+ template: o.searchResultTemplate,
275
+ middleware: o.templateMiddleware,
276
+ }),
277
+ l.setOptions({
278
+ fuzzy: o.fuzzy,
279
+ limit: o.limit,
280
+ sort: o.sortMiddleware,
281
+ }),
282
+ v.isJSON(o.json)
283
+ ? i(o.json)
284
+ : (function e(n) {
285
+ f.load(n, function (t, e) {
286
+ t && s("failed to get JSON (" + n + ")"), i(e);
287
+ });
288
+ })(o.json),
289
+ {
290
+ search: c,
291
+ }
292
+ );
293
+ };
294
+ })(window);
295
+ })();
296
+
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Purelog
4
+ VERSION = "0.1.0"
5
+ end
data/lib/purelog.rb ADDED
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "jekyll"
4
+
5
+ module Purelog
6
+ # Reserved for future hooks/extensions
7
+ end
metadata ADDED
@@ -0,0 +1,85 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: purelog
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Brennan K. Brown
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2025-08-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: jekyll
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '4.3'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '4.3'
27
+ description: A responsive sidebar Jekyll theme using Pure.css, extracted from the
28
+ Purelog site.
29
+ email:
30
+ - mail@brennanbrown.ca
31
+ executables: []
32
+ extensions: []
33
+ extra_rdoc_files: []
34
+ files:
35
+ - LICENSE
36
+ - README.md
37
+ - _includes/analytics.html
38
+ - _includes/author.html
39
+ - _includes/footer.html
40
+ - _includes/head.html
41
+ - _includes/journal-data.html
42
+ - _includes/links.html
43
+ - _includes/post-data.html
44
+ - _includes/search.html
45
+ - _includes/sidebar.html
46
+ - _layouts/default.html
47
+ - _layouts/home.html
48
+ - _layouts/journal-entry.html
49
+ - _layouts/journals.html
50
+ - _layouts/notes.html
51
+ - _layouts/page.html
52
+ - _layouts/post.html
53
+ - assets/code.css
54
+ - assets/css/purelog.css
55
+ - assets/css/purelog.scss
56
+ - assets/main.css
57
+ - assets/simple-jekyll-search.js
58
+ - lib/purelog.rb
59
+ - lib/purelog/version.rb
60
+ homepage: https://github.com/brennanbrown/purelog
61
+ licenses:
62
+ - MIT
63
+ metadata:
64
+ homepage_uri: https://github.com/brennanbrown/purelog
65
+ source_code_uri: https://github.com/brennanbrown/purelog
66
+ post_install_message:
67
+ rdoc_options: []
68
+ require_paths:
69
+ - lib
70
+ required_ruby_version: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '3.0'
75
+ required_rubygems_version: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ requirements: []
81
+ rubygems_version: 3.5.3
82
+ signing_key:
83
+ specification_version: 4
84
+ summary: Purelog Jekyll theme (work-in-progress)
85
+ test_files: []