jekyll-dark-ored 0.1.1 → 0.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d5ca7c3a98eff7b3ec3a828407450f87ec42c99d192a8d5b3bb6b0ee08d7af7f
4
- data.tar.gz: 0a9a21ee02d4990a0edb5f8a9cf1f975e27237c6fc1d9b7d977a8fa3502e55ca
3
+ metadata.gz: b99292b0db7345491cae7b1d3298e0df7349846c678307167447fe77971409f1
4
+ data.tar.gz: 5ac2f44fc1329b2de89f0676700f15cef4ad52f1b5fdac0d55b9b96b647d85ac
5
5
  SHA512:
6
- metadata.gz: 1f681841ec52cd592305ace106b2538e5810453675063e7862c8bea1d7b55653842aee71f3302bdbe49ddb3a1a117da365e3ba8e9e4ea27c6c41f43c60863738
7
- data.tar.gz: b9c7329c7e164fcd411039b75e8c5bc2633202cd79de053a79971b127301bec169f2e8b9c40bc8d5c401d2d3ebca89fc33e3410bf412ca840e492a3ae44da3f8
6
+ metadata.gz: ccdb292372425737b508095b28b1bc44b91494fe9e8b44352df9fde029ed102b0e3f08921d9c3abc38b7eaf6e66d255cf690804d99345c38b7a4b399cdb54419
7
+ data.tar.gz: 148cffb4b8165cb4b31adf9e57c42dd058c361459ae48fde61343bf8ec96a68cd5ffee9b1de66038eddc4e781f15fc6e63679408969a09a2a903d5db643e0e72
@@ -24,5 +24,24 @@
24
24
  </p>
25
25
  </footer>
26
26
  </body>
27
- <script type="text/javascript" src="{{'/assets/js/menu.js' | absolute_url }}"></script>
27
+ <script type="text/javascript" src="{{'/assets/js/simple-jekyll-search.min.js' | absolute_url }}"></script>
28
+ <script type="text/javascript" src="{{'/assets/js/app.js' | absolute_url }}"></script>
29
+ <script type="text/javascript">
30
+ var sjs = SimpleJekyllSearch({
31
+ searchInput: qs('#search-input'),
32
+ resultsContainer: qs('#search-results'),
33
+ json: '{{ "search.json" | absolute_url }}',
34
+ searchResultTemplate: '<div class="s-result"><a href="{url}" title="{title}">{title}</a><p>{description}</p></div>',
35
+ });
36
+ qs('#search-input').addEventListener('input', function(e){
37
+ e.preventDefault();
38
+ search = this.value
39
+ search = search.trim();
40
+ if (search.length > 0){
41
+ sjs.search(this.value);
42
+ }else{
43
+ qs('#search-results').innerHTML = ''
44
+ }
45
+ })
46
+ </script>
28
47
  </html>
@@ -4,7 +4,6 @@
4
4
  <meta charset="utf-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}</title>
7
- <link rel="stylesheet" type="text/css" href="{{ '/assets/css/normalize.css' | absolute_url }}" />
8
7
  <link rel="stylesheet" type="text/css" href="{{ '/assets/css/fontello-embedded.css' | absolute_url }}" />
9
8
  <link rel="stylesheet" type="text/css" href="{{ '/assets/css/style.css' | absolute_url }}" />
10
9
  <link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ '/feed.xml' | absolute_url }}" />
@@ -23,6 +22,7 @@
23
22
  <nav>
24
23
  <a href="{{ site.url }}"><span class="navbar-title float-left" id="site-title">{{ site.title }}</span></a>
25
24
  <a href="#" id="toggle-menu"><i class="icon-menu"></i></a>
25
+ <a href="#" id="toggle-search" class="icon-search"></a>
26
26
  <div id="main-nav">
27
27
  {% for p in site.pages %}
28
28
  {% if p.title %}
@@ -33,6 +33,13 @@
33
33
  </nav>
34
34
  </div>
35
35
  </header>
36
+ <div id="search-div">
37
+ <div id="search">
38
+ <input id="search-input" autocomplete="off" />
39
+ <button type="reset"><i class="icon-cancel"></i></button>
40
+ </div>
41
+ <div id="search-results"></div>
42
+ </div>
36
43
  <div id="home">
37
44
  <div id="site-desc">
38
45
  <h1>{{ site.title }}</h1>
@@ -87,12 +87,17 @@ footer {
87
87
  }
88
88
  }
89
89
 
90
- #content {
90
+ #content, #search-results {
91
91
  width: 90%;
92
92
  max-width: 1024px;
93
93
  margin: 1rem auto;
94
94
  }
95
95
 
96
+ #content.no-scroll {
97
+ position: fixed;
98
+ width: 100%;
99
+ }
100
+
96
101
  #entries {
97
102
  .entry {
98
103
  padding: .5rem;
@@ -138,6 +143,54 @@ table {
138
143
  float: right;
139
144
  }
140
145
 
146
+ #toggle-search {
147
+ float: right;
148
+ }
149
+
150
+ /* Search */
151
+
152
+ #search-div {
153
+ position: fixed;
154
+ left: 0;
155
+ top: 54px;
156
+ z-index: 20;
157
+ background: $black;
158
+ width: 100%;
159
+ height: calc(100vh - 54px);
160
+ display: none;
161
+
162
+ #search {
163
+ width: 90%;
164
+ max-width: 380px;
165
+ margin: 1rem auto;
166
+ position: relative;
167
+ font-size: 1.2rem;
168
+ }
169
+
170
+ #search-input {
171
+ width: 100%;
172
+ border: 0;
173
+ border-radius: 0;
174
+ border-bottom: 1px solid;
175
+ background: transparent;
176
+ color: $white;
177
+ padding-right: 1.6rem;
178
+
179
+ &+button {
180
+ position: absolute;
181
+ right: 0;
182
+ background: transparent;
183
+ border: 0;
184
+ color: $white;
185
+ }
186
+ }
187
+
188
+ &.open {
189
+ display: block;
190
+ overflow-y: auto;
191
+ }
192
+ }
193
+
141
194
  @media (max-width: 1024px){
142
195
  #home {
143
196
  height: auto;
data/assets/js/app.js ADDED
@@ -0,0 +1,52 @@
1
+ qs = function(ele){
2
+ return document.querySelector(ele);
3
+ }
4
+
5
+ var main_nav = qs('#main-nav');
6
+ var toggle_menu = qs('#toggle-menu');
7
+ var toggle_search = qs('#toggle-search');
8
+ var search_div = qs('#search-div');
9
+ var content_div = qs('#content');
10
+
11
+ toggle_menu.addEventListener('click', function(e){
12
+ e.preventDefault();
13
+ e.stopPropagation();
14
+ this.classList.toggle('open');
15
+ main_nav.classList.toggle('open');
16
+ });
17
+
18
+ qs('body').addEventListener('click', function(e){
19
+ main_nav.classList.remove('open');
20
+ toggle_menu.classList.remove('open');
21
+ });
22
+
23
+ var tables = document.querySelectorAll('table');
24
+ tables.forEach(function(t){
25
+ t.classList.add('responsive');
26
+ th = t.querySelectorAll('thead th');
27
+ tr = t.querySelectorAll('tbody tr');
28
+ tr.forEach(function(e){
29
+ th.forEach(function(e2, i){
30
+ e.children[i].setAttribute('data-title', e2.innerHTML);
31
+ });
32
+ });
33
+ });
34
+
35
+ toggle_search.addEventListener('click', function(e){
36
+ e.preventDefault();
37
+ e.stopPropagation();
38
+ if(search_div.classList.contains('open')){
39
+ qs('#search-input').value = '';
40
+ qs('#search-results').innerHTML = '';
41
+ search_div.classList.remove('open');
42
+ content_div.classList.remove('no-scroll');
43
+ }else{
44
+ search_div.classList.add('open');
45
+ content_div.classList.add('no-scroll');
46
+ }
47
+ });
48
+
49
+ qs('#search-input + button').addEventListener('click', function(){
50
+ qs('#search-input').value = '';
51
+ qs('#search-results').innerHTML = '';
52
+ });
@@ -0,0 +1,6 @@
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(){"use strict";var f={load:function w(t,e){var n=function r(){return window.XMLHttpRequest?new window.XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP")}();n.open("GET",t,!0),n.onreadystatechange=function i(e,n){return function(){if(4===e.readyState&&200===e.status)try{n(null,JSON.parse(e.responseText))}catch(t){n(t,null)}}}(n,e),n.send()}};(function y(t){if(!function e(t){return!!t&&"undefined"!=typeof t.required&&t.required instanceof Array}(t))throw new Error("-- OptionsValidator: required options missing");if(!(this instanceof y))return new y(t);var r=t.required;this.getRequiredOptions=function(){return r},this.validate=function(e){var n=[];return r.forEach(function(t){"undefined"==typeof e[t]&&n.push(t)}),n}});var n=function g(t,e){var n=e.length,r=t.length;if(n<r)return!1;if(r===n)return t===e;t:for(var i=0,o=0;i<r;i++){for(var u=t.charCodeAt(i);o<n;)if(e.charCodeAt(o++)===u)continue t;return!1}return!0},e=new function t(){this.matches=function(t,e){return n(e.toLowerCase(),t.toLowerCase())}};var r=new function O(){this.matches=function(e,t){return!!e&&(e=e.trim().toLowerCase(),(t=t.trim().toLowerCase()).split(" ").filter(function(t){return 0<=e.indexOf(t)}).length===t.split(" ").length)}};var l={put:function z(t){if(c(t))return s(t);if(function e(t){return Boolean(t)&&"[object Array]"===Object.prototype.toString.call(t)}(t))return function i(t){var e=[];a();for(var n=0,r=t.length;n<r;n++)c(t[n])&&e.push(s(t[n]));return e}(t);return undefined},clear:a,search:function S(t){return t?function a(t,e,n,r){for(var i=[],o=0;o<t.length&&i.length<r.limit;o++){var u=d(t[o],e,n,r);u&&i.push(u)}return i}(o,t,u.searchStrategy,u).sort(u.sort):[]},setOptions:function q(t){(u=t||{}).fuzzy=t.fuzzy||!1,u.limit=t.limit||10,u.searchStrategy=t.fuzzy?e:r,u.sort=t.sort||i}};function i(){return 0}var o=[],u={};function a(){return o.length=0,o}function c(t){return Boolean(t)&&"[object Object]"===Object.prototype.toString.call(t)}function s(t){return o.push(t),o}function d(t,e,n,r){for(var i in t)if(!p(t[i],r.exclude)&&n.matches(t[i],e))return t}function p(t,e){for(var n=!1,r=0,i=(e=e||[]).length;r<i;r++){var o=e[r];!n&&new RegExp(t).test(o)&&(n=!0)}return n}u.fuzzy=!1,u.limit=10,u.searchStrategy=u.fuzzy?e:r,u.sort=i;var h={compile:function j(r){return m.template.replace(m.pattern,function(t,e){var n=m.middleware(e,r[e],m.template);return void 0!==n?n:r[e]||t})},setOptions:function C(t){m.pattern=t.pattern||m.pattern,m.template=t.template||m.template,"function"==typeof t.middleware&&(m.middleware=t.middleware)}},m={};m.pattern=/\{(.*?)\}/g,m.template="",m.middleware=function(){};var v={merge:function L(t,e){var n={};for(var r in t)n[r]=t[r],"undefined"!=typeof e[r]&&(n[r]=e[r]);return n},isJSON:function M(t){try{return!!(t instanceof Object&&JSON.parse(JSON.stringify(t)))}catch(e){return!1}}};!function(t){var o={searchInput:null,resultsContainer:null,json:[],success:Function.prototype,searchResultTemplate:'<li><a href="{url}" title="{desc}">{title}</a></li>',templateMiddleware:Function.prototype,sortMiddleware:function(){return 0},noResultsText:"No results found",limit:10,fuzzy:!1,exclude:[]},n=["searchInput","resultsContainer","json"],r=function y(e){if(!function n(t){return!!t&&"undefined"!=typeof t.required&&t.required instanceof Array}(e))throw new Error("-- OptionsValidator: required options missing");if(!(this instanceof y))return new y(e);var r=e.required;this.getRequiredOptions=function(){return r},this.validate=function(e){var n=[];return r.forEach(function(t){"undefined"==typeof e[t]&&n.push(t)}),n}}({required:n});function i(t){o.success(t),l.put(t),function e(){o.searchInput.addEventListener("keyup",function(t){(function e(t){return-1===[13,16,20,37,38,39,40,91].indexOf(t)})(t.which)&&(u(),c(t.target.value))})}()}function u(){o.resultsContainer.innerHTML=""}function a(t){o.resultsContainer.innerHTML+=t}function c(t){(function e(t){return t&&0<t.length})(t)&&(u(),function i(t,e){var n=t.length;if(0===n)return a(o.noResultsText);for(var r=0;r<n;r++)t[r].query=e,a(h.compile(t[r]))}(l.search(t),t))}function s(t){throw new Error("SimpleJekyllSearch --- "+t)}t.SimpleJekyllSearch=function(t){return 0<r.validate(t).length&&s("You must specify the following required options: "+n),o=v.merge(o,t),h.setOptions({template:o.searchResultTemplate,middleware:o.templateMiddleware}),l.setOptions({fuzzy:o.fuzzy,limit:o.limit,sort:o.sortMiddleware}),v.isJSON(o.json)?i(o.json):function e(n){f.load(n,function(t,e){t&&s("failed to get JSON ("+n+")"),i(e)})}(o.json),{search:c}}}(window)}();
data/search.json ADDED
@@ -0,0 +1,16 @@
1
+ ---
2
+ ---
3
+ [
4
+ {% for post in site.posts %}
5
+ {
6
+
7
+ "title" : "{{ post.title | strip_html | escape }}",
8
+ "url" : "{{ post.url | absolute_url }}",
9
+ "category" : "{{post.categories | join: ', '}}",
10
+ "tags" : "{{ post.tags | join: ', ' }}",
11
+ "date" : "{{ post.date }}",
12
+ "description" : "{{post.description | strip_html | strip_newlines | escape }}"
13
+
14
+ } {% unless forloop.last %},{% endunless %}
15
+ {% endfor %}
16
+ ]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-dark-ored
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alfonso Saavedra "Son Link"
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-28 00:00:00.000000000 Z
11
+ date: 2019-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -71,7 +71,9 @@ files:
71
71
  - _sass/microcss.scss
72
72
  - assets/css/fontello-embedded.css
73
73
  - assets/css/style.scss
74
- - assets/js/menu.js
74
+ - assets/js/app.js
75
+ - assets/js/simple-jekyll-search.min.js
76
+ - search.json
75
77
  homepage: https://github.com/son-link/jekyll-dark-ored
76
78
  licenses:
77
79
  - GPL3
data/assets/js/menu.js DELETED
@@ -1,26 +0,0 @@
1
- var main_nav = document.querySelector('#main-nav');
2
- var toggle_menu = document.querySelector('#toggle-menu');
3
-
4
- toggle_menu.addEventListener('click', function(e){
5
- e.preventDefault();
6
- e.stopPropagation();
7
- this.classList.toggle('open');
8
- main_nav.classList.toggle('open');
9
- });
10
-
11
- document.querySelector('body').addEventListener('click', function(e){
12
- main_nav.classList.remove('open');
13
- toggle_menu.classList.remove('open');
14
- });
15
-
16
- var tables = document.querySelectorAll('table');
17
- tables.forEach(function(t){
18
- t.classList.add('responsive');
19
- th = t.querySelectorAll('thead th');
20
- tr = t.querySelectorAll('tbody tr');
21
- tr.forEach(function(e){
22
- th.forEach(function(e2, i){
23
- e.children[i].setAttribute('data-title', e2.innerHTML);
24
- });
25
- });
26
- });