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.
Files changed (58) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +8 -0
  3. data/README.md +23 -0
  4. data/_includes/adsense-under-header.html +12 -0
  5. data/_includes/disqus.html +14 -0
  6. data/_includes/featuredbox.html +59 -0
  7. data/_includes/pagination.html +25 -0
  8. data/_includes/postbox.html +51 -0
  9. data/_includes/search-lunr.html +21 -0
  10. data/_includes/share.html +34 -0
  11. data/_includes/star_rating.html +9 -0
  12. data/_includes/star_rating_postbox.html +9 -0
  13. data/_includes/toc.html +87 -0
  14. data/_layouts/archive.html +21 -0
  15. data/_layouts/categories.html +23 -0
  16. data/_layouts/default.html +208 -0
  17. data/_layouts/page.html +24 -0
  18. data/_layouts/post.html +181 -0
  19. data/_layouts/tags.html +23 -0
  20. data/_sass/_stars.scss +137 -0
  21. data/_sass/_starsnonscss.scss +92 -0
  22. data/_sass/_syntax.scss +69 -0
  23. data/assets/css/main.scss +13 -0
  24. data/assets/css/screen.css +901 -0
  25. data/assets/fonts/casper-icons.eot +0 -0
  26. data/assets/fonts/casper-icons.svg +19 -0
  27. data/assets/fonts/casper-icons.ttf +0 -0
  28. data/assets/fonts/casper-icons.woff +0 -0
  29. data/assets/images/1.jpg +0 -0
  30. data/assets/images/10.jpg +0 -0
  31. data/assets/images/11.jpg +0 -0
  32. data/assets/images/12.jpg +0 -0
  33. data/assets/images/13.jpg +0 -0
  34. data/assets/images/14.jpg +0 -0
  35. data/assets/images/15.jpg +0 -0
  36. data/assets/images/16.jpg +0 -0
  37. data/assets/images/17.jpg +0 -0
  38. data/assets/images/2.jpg +0 -0
  39. data/assets/images/3.jpg +0 -0
  40. data/assets/images/4.jpg +0 -0
  41. data/assets/images/5.jpg +0 -0
  42. data/assets/images/6.jpg +0 -0
  43. data/assets/images/7.jpg +0 -0
  44. data/assets/images/8.jpg +0 -0
  45. data/assets/images/9.jpg +0 -0
  46. data/assets/images/avatar.png +0 -0
  47. data/assets/images/favicon.ico +0 -0
  48. data/assets/images/jumbotron.jpg +0 -0
  49. data/assets/images/log.png +0 -0
  50. data/assets/images/logo.png +0 -0
  51. data/assets/images/mediumish-jekyll-template.png +0 -0
  52. data/assets/js/ie10-viewport-bug-workaround.js +24 -0
  53. data/assets/js/jquery.min.js +2 -0
  54. data/assets/js/lazyload.js +258 -0
  55. data/assets/js/lunr.js +2977 -0
  56. data/assets/js/lunrsearchengine.js +89 -0
  57. data/assets/js/mediumish.js +129 -0
  58. 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"> &times; </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: []