medium-theme 0.0.1
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 +7 -0
- data/LICENSE.txt +8 -0
- data/README.md +23 -0
- data/_includes/adsense-under-header.html +12 -0
- data/_includes/disqus.html +14 -0
- data/_includes/featuredbox.html +59 -0
- data/_includes/pagination.html +25 -0
- data/_includes/postbox.html +51 -0
- data/_includes/search-lunr.html +21 -0
- data/_includes/share.html +34 -0
- data/_includes/star_rating.html +9 -0
- data/_includes/star_rating_postbox.html +9 -0
- data/_includes/toc.html +87 -0
- data/_layouts/archive.html +21 -0
- data/_layouts/categories.html +23 -0
- data/_layouts/default.html +208 -0
- data/_layouts/page.html +24 -0
- data/_layouts/post.html +181 -0
- data/_layouts/tags.html +23 -0
- data/_sass/_stars.scss +137 -0
- data/_sass/_starsnonscss.scss +92 -0
- data/_sass/_syntax.scss +69 -0
- data/assets/css/main.scss +13 -0
- data/assets/css/screen.css +901 -0
- data/assets/fonts/casper-icons.eot +0 -0
- data/assets/fonts/casper-icons.svg +19 -0
- data/assets/fonts/casper-icons.ttf +0 -0
- data/assets/fonts/casper-icons.woff +0 -0
- data/assets/images/1.jpg +0 -0
- data/assets/images/10.jpg +0 -0
- data/assets/images/11.jpg +0 -0
- data/assets/images/12.jpg +0 -0
- data/assets/images/13.jpg +0 -0
- data/assets/images/14.jpg +0 -0
- data/assets/images/15.jpg +0 -0
- data/assets/images/16.jpg +0 -0
- data/assets/images/17.jpg +0 -0
- data/assets/images/2.jpg +0 -0
- data/assets/images/3.jpg +0 -0
- data/assets/images/4.jpg +0 -0
- data/assets/images/5.jpg +0 -0
- data/assets/images/6.jpg +0 -0
- data/assets/images/7.jpg +0 -0
- data/assets/images/8.jpg +0 -0
- data/assets/images/9.jpg +0 -0
- data/assets/images/avatar.png +0 -0
- data/assets/images/favicon.ico +0 -0
- data/assets/images/jumbotron.jpg +0 -0
- data/assets/images/log.png +0 -0
- data/assets/images/logo.png +0 -0
- data/assets/images/mediumish-jekyll-template.png +0 -0
- data/assets/js/ie10-viewport-bug-workaround.js +24 -0
- data/assets/js/jquery.min.js +2 -0
- data/assets/js/lazyload.js +258 -0
- data/assets/js/lunr.js +2977 -0
- data/assets/js/lunrsearchengine.js +89 -0
- data/assets/js/mediumish.js +129 -0
- metadata +170 -0
@@ -0,0 +1,89 @@
|
|
1
|
+
---
|
2
|
+
layout: null
|
3
|
+
sitemap: false
|
4
|
+
---
|
5
|
+
|
6
|
+
{% assign counter = 0 %}
|
7
|
+
var documents = [{% for page in site.pages %}{% if page.url contains '.xml' or page.url contains 'assets' or page.url contains 'category' or page.url contains 'tag' %}{% else %}{
|
8
|
+
"id": {{ counter }},
|
9
|
+
"url": "{{ site.url }}{{site.baseurl}}{{ page.url }}",
|
10
|
+
"title": "{{ page.title }}",
|
11
|
+
"body": "{{ page.content | markdownify | replace: '.', '. ' | replace: '</h2>', ': ' | replace: '</h3>', ': ' | replace: '</h4>', ': ' | replace: '</p>', ' ' | strip_html | strip_newlines | replace: ' ', ' ' | replace: '"', ' ' }}"{% assign counter = counter | plus: 1 %}
|
12
|
+
}, {% endif %}{% endfor %}{% for page in site.without-plugin %}{
|
13
|
+
"id": {{ counter }},
|
14
|
+
"url": "{{ site.url }}{{site.baseurl}}{{ page.url }}",
|
15
|
+
"title": "{{ page.title }}",
|
16
|
+
"body": "{{ page.content | markdownify | replace: '.', '. ' | replace: '</h2>', ': ' | replace: '</h3>', ': ' | replace: '</h4>', ': ' | replace: '</p>', ' ' | strip_html | strip_newlines | replace: ' ', ' ' | replace: '"', ' ' }}"{% assign counter = counter | plus: 1 %}
|
17
|
+
}, {% endfor %}{% for page in site.posts %}{
|
18
|
+
"id": {{ counter }},
|
19
|
+
"url": "{{ site.url }}{{site.baseurl}}{{ page.url }}",
|
20
|
+
"title": "{{ page.title }}",
|
21
|
+
"body": "{{ page.date | date: "%Y/%m/%d" }} - {{ page.content | markdownify | replace: '.', '. ' | replace: '</h2>', ': ' | replace: '</h3>', ': ' | replace: '</h4>', ': ' | replace: '</p>', ' ' | strip_html | strip_newlines | replace: ' ', ' ' | replace: '"', ' ' }}"{% assign counter = counter | plus: 1 %}
|
22
|
+
}{% if forloop.last %}{% else %}, {% endif %}{% endfor %}];
|
23
|
+
|
24
|
+
var idx = lunr(function () {
|
25
|
+
this.ref('id')
|
26
|
+
this.field('title')
|
27
|
+
this.field('body')
|
28
|
+
|
29
|
+
documents.forEach(function (doc) {
|
30
|
+
this.add(doc)
|
31
|
+
}, this)
|
32
|
+
});
|
33
|
+
function lunr_search(term) {
|
34
|
+
document.getElementById('lunrsearchresults').innerHTML = '<ul></ul>';
|
35
|
+
if(term) {
|
36
|
+
document.getElementById('lunrsearchresults').innerHTML = "<p>Search results for '" + term + "'</p>" + document.getElementById('lunrsearchresults').innerHTML;
|
37
|
+
//put results on the screen.
|
38
|
+
var results = idx.search(term);
|
39
|
+
if(results.length>0){
|
40
|
+
//console.log(idx.search(term));
|
41
|
+
//if results
|
42
|
+
for (var i = 0; i < results.length; i++) {
|
43
|
+
// more statements
|
44
|
+
var ref = results[i]['ref'];
|
45
|
+
var url = documents[ref]['url'];
|
46
|
+
var title = documents[ref]['title'];
|
47
|
+
var body = documents[ref]['body'].substring(0,160)+'...';
|
48
|
+
document.querySelectorAll('#lunrsearchresults ul')[0].innerHTML = document.querySelectorAll('#lunrsearchresults ul')[0].innerHTML + "<li class='lunrsearchresult'><a href='" + url + "'><span class='title'>" + title + "</span><br /><span class='body'>"+ body +"</span><br /><span class='url'>"+ url +"</span></a></li>";
|
49
|
+
}
|
50
|
+
} else {
|
51
|
+
document.querySelectorAll('#lunrsearchresults ul')[0].innerHTML = "<li class='lunrsearchresult'>No results found...</li>";
|
52
|
+
}
|
53
|
+
}
|
54
|
+
return false;
|
55
|
+
}
|
56
|
+
|
57
|
+
function lunr_search(term) {
|
58
|
+
$('#lunrsearchresults').show( 400 );
|
59
|
+
$( "body" ).addClass( "modal-open" );
|
60
|
+
|
61
|
+
document.getElementById('lunrsearchresults').innerHTML = '<div id="resultsmodal" class="modal fade show d-block" tabindex="-1" role="dialog" aria-labelledby="resultsmodal"> <div class="modal-dialog shadow-lg" role="document"> <div class="modal-content"> <div class="modal-header" id="modtit"> <button type="button" class="close" id="btnx" data-dismiss="modal" aria-label="Close"> × </button> </div> <div class="modal-body"> <ul class="mb-0"> </ul> </div> <div class="modal-footer"><button id="btnx" type="button" class="btn btn-danger btn-sm" data-dismiss="modal">Close</button></div></div> </div></div>';
|
62
|
+
if(term) {
|
63
|
+
document.getElementById('modtit').innerHTML = "<h5 class='modal-title'>Search results for '" + term + "'</h5>" + document.getElementById('modtit').innerHTML;
|
64
|
+
//put results on the screen.
|
65
|
+
var results = idx.search(term);
|
66
|
+
if(results.length>0){
|
67
|
+
//console.log(idx.search(term));
|
68
|
+
//if results
|
69
|
+
for (var i = 0; i < results.length; i++) {
|
70
|
+
// more statements
|
71
|
+
var ref = results[i]['ref'];
|
72
|
+
var url = documents[ref]['url'];
|
73
|
+
var title = documents[ref]['title'];
|
74
|
+
var body = documents[ref]['body'].substring(0,160)+'...';
|
75
|
+
document.querySelectorAll('#lunrsearchresults ul')[0].innerHTML = document.querySelectorAll('#lunrsearchresults ul')[0].innerHTML + "<li class='lunrsearchresult'><a href='" + url + "'><span class='title'>" + title + "</span><br /><small><span class='body'>"+ body +"</span><br /><span class='url'>"+ url +"</span></small></a></li>";
|
76
|
+
}
|
77
|
+
} else {
|
78
|
+
document.querySelectorAll('#lunrsearchresults ul')[0].innerHTML = "<li class='lunrsearchresult'>Sorry, no results found. Close & try a different search!</li>";
|
79
|
+
}
|
80
|
+
}
|
81
|
+
return false;
|
82
|
+
}
|
83
|
+
|
84
|
+
$(function() {
|
85
|
+
$("#lunrsearchresults").on('click', '#btnx', function () {
|
86
|
+
$('#lunrsearchresults').hide( 5 );
|
87
|
+
$( "body" ).removeClass( "modal-open" );
|
88
|
+
});
|
89
|
+
});
|
@@ -0,0 +1,129 @@
|
|
1
|
+
jQuery(document).ready(function($){
|
2
|
+
|
3
|
+
//fix for stupid ie object cover
|
4
|
+
if (document.documentMode || /Edge/.test(navigator.userAgent)) {
|
5
|
+
jQuery('.featured-box-img-cover').each(function(){
|
6
|
+
var t = jQuery(this),
|
7
|
+
s = 'url(' + t.attr('src') + ')',
|
8
|
+
p = t.parent(),
|
9
|
+
d = jQuery('<div></div>');
|
10
|
+
|
11
|
+
p.append(d);
|
12
|
+
d.css({
|
13
|
+
'height' : '290',
|
14
|
+
'background-size' : 'cover',
|
15
|
+
'background-repeat' : 'no-repeat',
|
16
|
+
'background-position' : '50% 20%',
|
17
|
+
'background-image' : s
|
18
|
+
});
|
19
|
+
t.hide();
|
20
|
+
});
|
21
|
+
}
|
22
|
+
|
23
|
+
// alertbar later
|
24
|
+
$(document).scroll(function () {
|
25
|
+
var y = $(this).scrollTop();
|
26
|
+
if (y > 280) {
|
27
|
+
$('.alertbar').fadeIn();
|
28
|
+
} else {
|
29
|
+
$('.alertbar').fadeOut();
|
30
|
+
}
|
31
|
+
});
|
32
|
+
|
33
|
+
|
34
|
+
// Smooth on external page
|
35
|
+
$(function() {
|
36
|
+
setTimeout(function() {
|
37
|
+
if (location.hash) {
|
38
|
+
/* we need to scroll to the top of the window first, because the browser will always jump to the anchor first before JavaScript is ready, thanks Stack Overflow: http://stackoverflow.com/a/3659116 */
|
39
|
+
window.scrollTo(0, 0);
|
40
|
+
target = location.hash.split('#');
|
41
|
+
smoothScrollTo($('#'+target[1]));
|
42
|
+
}
|
43
|
+
}, 1);
|
44
|
+
|
45
|
+
// taken from: https://css-tricks.com/snippets/jquery/smooth-scrolling/
|
46
|
+
$('a[href*=\\#]:not([href=\\#])').click(function() {
|
47
|
+
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
|
48
|
+
smoothScrollTo($(this.hash));
|
49
|
+
return false;
|
50
|
+
}
|
51
|
+
});
|
52
|
+
|
53
|
+
function smoothScrollTo(target) {
|
54
|
+
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
|
55
|
+
|
56
|
+
if (target.length) {
|
57
|
+
$('html,body').animate({
|
58
|
+
scrollTop: target.offset().top
|
59
|
+
}, 1000);
|
60
|
+
}
|
61
|
+
}
|
62
|
+
});
|
63
|
+
|
64
|
+
|
65
|
+
// Hide Header on on scroll down
|
66
|
+
var didScroll;
|
67
|
+
var lastScrollTop = 0;
|
68
|
+
var delta = 5;
|
69
|
+
var navbarHeight = $('nav').outerHeight();
|
70
|
+
|
71
|
+
$(window).scroll(function(event){
|
72
|
+
didScroll = true;
|
73
|
+
});
|
74
|
+
|
75
|
+
setInterval(function() {
|
76
|
+
if (didScroll) {
|
77
|
+
hasScrolled();
|
78
|
+
didScroll = false;
|
79
|
+
}
|
80
|
+
}, 250);
|
81
|
+
|
82
|
+
function hasScrolled() {
|
83
|
+
var st = $(this).scrollTop();
|
84
|
+
|
85
|
+
// Make sure they scroll more than delta
|
86
|
+
if(Math.abs(lastScrollTop - st) <= delta)
|
87
|
+
return;
|
88
|
+
|
89
|
+
// If they scrolled down and are past the navbar, add class .nav-up.
|
90
|
+
// This is necessary so you never see what is "behind" the navbar.
|
91
|
+
if (st > lastScrollTop && st > navbarHeight){
|
92
|
+
// Scroll Down
|
93
|
+
$('nav').removeClass('nav-down').addClass('nav-up');
|
94
|
+
$('.nav-up').css('top', - $('nav').outerHeight() + 'px');
|
95
|
+
|
96
|
+
} else {
|
97
|
+
// Scroll Up
|
98
|
+
if(st + $(window).height() < $(document).height()) {
|
99
|
+
$('nav').removeClass('nav-up').addClass('nav-down');
|
100
|
+
$('.nav-up, .nav-down').css('top', '0px');
|
101
|
+
}
|
102
|
+
}
|
103
|
+
|
104
|
+
lastScrollTop = st;
|
105
|
+
}
|
106
|
+
|
107
|
+
$('.site-content').css('margin-top', $('header').outerHeight() + 'px');
|
108
|
+
|
109
|
+
// spoilers
|
110
|
+
$(document).on('click', '.spoiler', function() {
|
111
|
+
$(this).removeClass('spoiler');
|
112
|
+
});
|
113
|
+
|
114
|
+
});
|
115
|
+
|
116
|
+
// deferred style loading
|
117
|
+
var loadDeferredStyles = function () {
|
118
|
+
var addStylesNode = document.getElementById("deferred-styles");
|
119
|
+
var replacement = document.createElement("div");
|
120
|
+
replacement.innerHTML = addStylesNode.textContent;
|
121
|
+
document.body.appendChild(replacement);
|
122
|
+
addStylesNode.parentElement.removeChild(addStylesNode);
|
123
|
+
};
|
124
|
+
var raf = window.requestAnimationFrame || window.mozRequestAnimationFrame ||
|
125
|
+
window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;
|
126
|
+
if (raf) raf(function () {
|
127
|
+
window.setTimeout(loadDeferredStyles, 0);
|
128
|
+
});
|
129
|
+
else window.addEventListener('load', loadDeferredStyles);
|
metadata
ADDED
@@ -0,0 +1,170 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: medium-theme
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- hutusi
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2025-01-28 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.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: jekyll-paginate
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.1'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.1'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: jekyll-feed
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.10'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.10'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: jekyll-seo-tag
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2.5'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '2.5'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: bundler
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
description:
|
84
|
+
email:
|
85
|
+
- huziyong@gmail.com
|
86
|
+
executables: []
|
87
|
+
extensions: []
|
88
|
+
extra_rdoc_files: []
|
89
|
+
files:
|
90
|
+
- LICENSE.txt
|
91
|
+
- README.md
|
92
|
+
- _includes/adsense-under-header.html
|
93
|
+
- _includes/disqus.html
|
94
|
+
- _includes/featuredbox.html
|
95
|
+
- _includes/pagination.html
|
96
|
+
- _includes/postbox.html
|
97
|
+
- _includes/search-lunr.html
|
98
|
+
- _includes/share.html
|
99
|
+
- _includes/star_rating.html
|
100
|
+
- _includes/star_rating_postbox.html
|
101
|
+
- _includes/toc.html
|
102
|
+
- _layouts/archive.html
|
103
|
+
- _layouts/categories.html
|
104
|
+
- _layouts/default.html
|
105
|
+
- _layouts/page.html
|
106
|
+
- _layouts/post.html
|
107
|
+
- _layouts/tags.html
|
108
|
+
- _sass/_stars.scss
|
109
|
+
- _sass/_starsnonscss.scss
|
110
|
+
- _sass/_syntax.scss
|
111
|
+
- assets/css/main.scss
|
112
|
+
- assets/css/screen.css
|
113
|
+
- assets/fonts/casper-icons.eot
|
114
|
+
- assets/fonts/casper-icons.svg
|
115
|
+
- assets/fonts/casper-icons.ttf
|
116
|
+
- assets/fonts/casper-icons.woff
|
117
|
+
- assets/images/1.jpg
|
118
|
+
- assets/images/10.jpg
|
119
|
+
- assets/images/11.jpg
|
120
|
+
- assets/images/12.jpg
|
121
|
+
- assets/images/13.jpg
|
122
|
+
- assets/images/14.jpg
|
123
|
+
- assets/images/15.jpg
|
124
|
+
- assets/images/16.jpg
|
125
|
+
- assets/images/17.jpg
|
126
|
+
- assets/images/2.jpg
|
127
|
+
- assets/images/3.jpg
|
128
|
+
- assets/images/4.jpg
|
129
|
+
- assets/images/5.jpg
|
130
|
+
- assets/images/6.jpg
|
131
|
+
- assets/images/7.jpg
|
132
|
+
- assets/images/8.jpg
|
133
|
+
- assets/images/9.jpg
|
134
|
+
- assets/images/avatar.png
|
135
|
+
- assets/images/favicon.ico
|
136
|
+
- assets/images/jumbotron.jpg
|
137
|
+
- assets/images/log.png
|
138
|
+
- assets/images/logo.png
|
139
|
+
- assets/images/mediumish-jekyll-template.png
|
140
|
+
- assets/js/ie10-viewport-bug-workaround.js
|
141
|
+
- assets/js/jquery.min.js
|
142
|
+
- assets/js/lazyload.js
|
143
|
+
- assets/js/lunr.js
|
144
|
+
- assets/js/lunrsearchengine.js
|
145
|
+
- assets/js/mediumish.js
|
146
|
+
homepage: https://github.com/hutusi/mediumish-theme-jekyll
|
147
|
+
licenses:
|
148
|
+
- MIT
|
149
|
+
metadata:
|
150
|
+
plugin_type: theme
|
151
|
+
post_install_message:
|
152
|
+
rdoc_options: []
|
153
|
+
require_paths:
|
154
|
+
- lib
|
155
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
161
|
+
requirements:
|
162
|
+
- - ">="
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: '0'
|
165
|
+
requirements: []
|
166
|
+
rubygems_version: 3.0.3.1
|
167
|
+
signing_key:
|
168
|
+
specification_version: 4
|
169
|
+
summary: A beautiful, mediumish theme for Jekyll.
|
170
|
+
test_files: []
|