jekyll-theme-chirpy 3.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 (107) hide show
  1. checksums.yaml +7 -0
  2. data/404.html +20 -0
  3. data/LICENSE +21 -0
  4. data/README.md +223 -0
  5. data/_config.yml +204 -0
  6. data/_data/contact.yml +30 -0
  7. data/_data/date_format.yml +7 -0
  8. data/_data/label.yml +19 -0
  9. data/_data/rights.yml +11 -0
  10. data/_data/share.yml +27 -0
  11. data/_includes/css-selector.html +10 -0
  12. data/_includes/disqus.html +25 -0
  13. data/_includes/favicons.html +32 -0
  14. data/_includes/footer.html +29 -0
  15. data/_includes/google-analytics.html +14 -0
  16. data/_includes/head.html +80 -0
  17. data/_includes/js-selector.html +39 -0
  18. data/_includes/lozad.html +10 -0
  19. data/_includes/mermaid.html +29 -0
  20. data/_includes/mode-toggle.html +145 -0
  21. data/_includes/no-linenos.html +10 -0
  22. data/_includes/panel.html +57 -0
  23. data/_includes/post-nav.html +28 -0
  24. data/_includes/post-paginator.html +80 -0
  25. data/_includes/post-sharing.html +23 -0
  26. data/_includes/read-time.html +19 -0
  27. data/_includes/refactor-content.html +66 -0
  28. data/_includes/related-posts.html +106 -0
  29. data/_includes/search-loader.html +28 -0
  30. data/_includes/search-results.html +19 -0
  31. data/_includes/sidebar.html +91 -0
  32. data/_includes/timeago.html +27 -0
  33. data/_includes/topbar.html +48 -0
  34. data/_includes/trending-tags.html +36 -0
  35. data/_includes/update-list.html +24 -0
  36. data/_layouts/archives.html +36 -0
  37. data/_layouts/categories.html +100 -0
  38. data/_layouts/category.html +24 -0
  39. data/_layouts/compress.html +10 -0
  40. data/_layouts/default.html +51 -0
  41. data/_layouts/home.html +96 -0
  42. data/_layouts/page.html +34 -0
  43. data/_layouts/post.html +130 -0
  44. data/_layouts/tag.html +24 -0
  45. data/_layouts/tags.html +21 -0
  46. data/_plugins/posts-lastmod-hook.rb +14 -0
  47. data/_sass/addon/commons.scss +1629 -0
  48. data/_sass/addon/module.scss +118 -0
  49. data/_sass/addon/syntax.scss +176 -0
  50. data/_sass/addon/variables.scss +27 -0
  51. data/_sass/colors/dark-syntax.scss +84 -0
  52. data/_sass/colors/dark-typography.scss +135 -0
  53. data/_sass/colors/light-syntax.scss +75 -0
  54. data/_sass/colors/light-typography.scss +76 -0
  55. data/_sass/jekyll-theme-chirpy.scss +22 -0
  56. data/_sass/layout/archives.scss +137 -0
  57. data/_sass/layout/categories.scss +64 -0
  58. data/_sass/layout/category-tag.scss +66 -0
  59. data/_sass/layout/home.scss +156 -0
  60. data/_sass/layout/post.scss +349 -0
  61. data/_sass/layout/tags.scss +18 -0
  62. data/_tabs/about.md +8 -0
  63. data/_tabs/archives.md +7 -0
  64. data/_tabs/categories.md +6 -0
  65. data/_tabs/tags.md +6 -0
  66. data/app.js +8 -0
  67. data/assets/css/style.scss +7 -0
  68. data/assets/img/favicons/android-icon-144x144.png +0 -0
  69. data/assets/img/favicons/android-icon-192x192.png +0 -0
  70. data/assets/img/favicons/android-icon-36x36.png +0 -0
  71. data/assets/img/favicons/android-icon-48x48.png +0 -0
  72. data/assets/img/favicons/android-icon-72x72.png +0 -0
  73. data/assets/img/favicons/android-icon-96x96.png +0 -0
  74. data/assets/img/favicons/apple-icon-114x114.png +0 -0
  75. data/assets/img/favicons/apple-icon-120x120.png +0 -0
  76. data/assets/img/favicons/apple-icon-144x144.png +0 -0
  77. data/assets/img/favicons/apple-icon-152x152.png +0 -0
  78. data/assets/img/favicons/apple-icon-180x180.png +0 -0
  79. data/assets/img/favicons/apple-icon-57x57.png +0 -0
  80. data/assets/img/favicons/apple-icon-60x60.png +0 -0
  81. data/assets/img/favicons/apple-icon-72x72.png +0 -0
  82. data/assets/img/favicons/apple-icon-76x76.png +0 -0
  83. data/assets/img/favicons/apple-icon-precomposed.png +0 -0
  84. data/assets/img/favicons/apple-icon.png +0 -0
  85. data/assets/img/favicons/browserconfig.xml +20 -0
  86. data/assets/img/favicons/favicon-16x16.png +0 -0
  87. data/assets/img/favicons/favicon-32x32.png +0 -0
  88. data/assets/img/favicons/favicon-96x96.png +0 -0
  89. data/assets/img/favicons/favicon.ico +0 -0
  90. data/assets/img/favicons/manifest.json +58 -0
  91. data/assets/img/favicons/ms-icon-144x144.png +0 -0
  92. data/assets/img/favicons/ms-icon-150x150.png +0 -0
  93. data/assets/img/favicons/ms-icon-310x310.png +0 -0
  94. data/assets/img/favicons/ms-icon-70x70.png +0 -0
  95. data/assets/js/data/cache-list.js +69 -0
  96. data/assets/js/data/search.json +17 -0
  97. data/assets/js/dist/categories.min.js +6 -0
  98. data/assets/js/dist/home.min.js +6 -0
  99. data/assets/js/dist/page.min.js +6 -0
  100. data/assets/js/dist/post.min.js +6 -0
  101. data/assets/js/dist/pvreport.min.js +6 -0
  102. data/assets/js/lib/jquery.disqusloader.min.js +8 -0
  103. data/feed.xml +60 -0
  104. data/index.html +4 -0
  105. data/robots.txt +10 -0
  106. data/sw.js +61 -0
  107. metadata +247 -0
@@ -0,0 +1,6 @@
1
+ /*!
2
+ * Chirpy v3.0.1 (https://github.com/cotes2020/jekyll-theme-chirpy/)
3
+ * © 2021 Cotes Chung
4
+ * MIT Licensed
5
+ */
6
+ function copyLink(e){e&&0!==e.length||(e=window.location.href);const t=$("<input>");$("body").append(t),t.val(e).select(),document.execCommand("copy"),t.remove(),alert("Link copied successfully!")}$(function(){$(window).scroll(()=>{$(this).scrollTop()>50&&"none"===$("#sidebar-trigger").css("display")?$("#back-to-top").fadeIn():$("#back-to-top").fadeOut()}),$("#back-to-top").click(()=>($("body,html").animate({scrollTop:0},800),!1))}),$(function(){$("input[type=checkbox]").addClass("unloaded"),$("input[type=checkbox][checked]").before('<i class="fas fa-check-circle checked"></i>'),$("input[type=checkbox]:not([checked])").before('<i class="far fa-circle"></i>')}),$(function(){const e=$("#sidebar-trigger"),t=$("#search-trigger"),o=$("#search-cancel"),s=$("#search-cleaner"),a=$("#main"),l=$("#topbar-title"),n=$("#search-wrapper"),c=$("#search-result-wrapper"),r=$("#search-results"),i=$("#search-input"),d=$("#search-hints"),u=function(){let e=0;return{block(){e=$(window).scrollTop()},release(){$("html,body").scrollTop(e)},getOffset:()=>e}}(),f={on(){e.addClass("unloaded"),l.addClass("unloaded"),t.addClass("unloaded"),n.addClass("d-flex"),o.addClass("loaded")},off(){o.removeClass("loaded"),n.removeClass("d-flex"),e.removeClass("unloaded"),l.removeClass("unloaded"),t.removeClass("unloaded")}},p=function(){let e=!1;return{on(){e||(c.removeClass("unloaded"),a.addClass("hidden"),e=!0,u.block())},off(){e&&(r.empty(),d.hasClass("unloaded")&&d.removeClass("unloaded"),c.addClass("unloaded"),s.removeClass("visible"),a.removeClass("hidden"),i.val(""),e=!1,u.release())},isVisible:()=>e}}();function h(){return o.hasClass("loaded")}t.click(function(){f.on(),p.on(),i.focus()}),o.click(function(){f.off(),p.off()}),i.focus(function(){n.addClass("input-focus")}),i.focusout(function(){n.removeClass("input-focus")}),i.on("keyup",function(e){8===e.keyCode&&""===i.val()?h()?d.removeClass("unloaded"):p.off():""!==i.val()&&(p.on(),s.hasClass("visible")||s.addClass("visible"),h()&&d.addClass("unloaded"))}),s.on("click",function(){i.val(""),h()?(d.removeClass("unloaded"),r.empty()):p.off(),i.focus(),s.removeClass("visible")})}),$(function(){const e=function(){let e=!1;const t=$("body");return{toggle(){!1===e?t.attr("sidebar-display",""):t.removeAttr("sidebar-display"),e=!e}}}();$("#sidebar-trigger").click(e.toggle),$("#mask").click(e.toggle)}),$(function(){$('[data-toggle="tooltip"]').tooltip()}),$(function(){const e=$("#topbar-wrapper"),t=$("#toc-wrapper"),o=$(".access"),s=$("#search-input");let a,l=0;const n=5,c=e.outerHeight();$(window).scroll(function(e){$("#topbar-title").is(":hidden")&&(a=!0)}),setInterval(function(){a&&(!function(){var a=$(this).scrollTop();Math.abs(l-a)<=n||(a>l&&a>c?(e.removeClass("topbar-down").addClass("topbar-up"),t.length>0&&t.removeClass("topbar-down"),o.length>0&&o.removeClass("topbar-down"),s.is(":focus")&&s.blur()):a+$(window).height()<$(document).height()&&(e.removeClass("topbar-up").addClass("topbar-down"),t.length>0&&t.addClass("topbar-down"),o.length>0&&o.addClass("topbar-down")),l=a)}(),a=!1)},250)}),$(function(){const e=$("#topbar-title"),t=$("div.post>h1"),o=e.text().trim();let s=t.length>0?t.text().trim():$("h1").text().trim();($("#page-category").length||$("#page-tag").length)&&/\s/.test(s)&&(s=s.replace(/[0-9]/g,"").trim()),$(window).scroll(function(){if($("#post-list").length||t.is(":hidden")||e.is(":hidden")||$("#sidebar.sidebar-expand").length)return!1;$(this).scrollTop()>=95?e.text()!==s&&e.text(s):e.text()!==o&&e.text(o)}),e.click(function(){$("body,html").animate({scrollTop:0},800)})}),$(function(){$("a[href*='#']").not("[href='#']").not("[href='#0']").click(function(e){if(this.pathname.replace(/^\//,"")===location.pathname.replace(/^\//,"")&&location.hostname===this.hostname){const t=16,o=decodeURI(this.hash);let s=RegExp(/^#fnref:/).test(o),a=RegExp(/^#fn:/).test(o),l=o.includes(":")?o.replace(/\:/,"\\:"):o,n=$(l);if(n.length){e.preventDefault(),history.pushState&&history.pushState(null,null,o);let l=$(this).offset().top,c=n.offset().top;const r=c<l,i=$("#topbar-wrapper").outerHeight();r&&s&&(c-=i+t/2),$("html,body").animate({scrollTop:c},800,()=>{const e=$(n);e.focus();if($("[scroll-focus=true]").length&&$("[scroll-focus=true]").attr("scroll-focus",!1),$(":target").length&&$(":target").attr("scroll-focus",!1),(a||s)&&e.attr("scroll-focus",!0),e.is(":focus"))return!1;e.attr("tabindex","-1"),e.focus()})}}})});
@@ -0,0 +1,6 @@
1
+ /*!
2
+ * Chirpy v3.0.1 (https://github.com/cotes2020/jekyll-theme-chirpy/)
3
+ * © 2021 Cotes Chung
4
+ * MIT Licensed
5
+ */
6
+ function copyLink(e){e&&0!==e.length||(e=window.location.href);const t=$("<input>");$("body").append(t),t.val(e).select(),document.execCommand("copy"),t.remove(),alert("Link copied successfully!")}$(function(){$(window).scroll(()=>{$(this).scrollTop()>50&&"none"===$("#sidebar-trigger").css("display")?$("#back-to-top").fadeIn():$("#back-to-top").fadeOut()}),$("#back-to-top").click(()=>($("body,html").animate({scrollTop:0},800),!1))}),$(function(){$("input[type=checkbox]").addClass("unloaded"),$("input[type=checkbox][checked]").before('<i class="fas fa-check-circle checked"></i>'),$("input[type=checkbox]:not([checked])").before('<i class="far fa-circle"></i>')}),$(function(){const e=$("#sidebar-trigger"),t=$("#search-trigger"),o=$("#search-cancel"),s=$("#search-cleaner"),a=$("#main"),n=$("#topbar-title"),l=$("#search-wrapper"),r=$("#search-result-wrapper"),i=$("#search-results"),c=$("#search-input"),d=$("#search-hints"),u=function(){let e=0;return{block(){e=$(window).scrollTop()},release(){$("html,body").scrollTop(e)},getOffset:()=>e}}(),h={on(){e.addClass("unloaded"),n.addClass("unloaded"),t.addClass("unloaded"),l.addClass("d-flex"),o.addClass("loaded")},off(){o.removeClass("loaded"),l.removeClass("d-flex"),e.removeClass("unloaded"),n.removeClass("unloaded"),t.removeClass("unloaded")}},f=function(){let e=!1;return{on(){e||(r.removeClass("unloaded"),a.addClass("hidden"),e=!0,u.block())},off(){e&&(i.empty(),d.hasClass("unloaded")&&d.removeClass("unloaded"),r.addClass("unloaded"),s.removeClass("visible"),a.removeClass("hidden"),c.val(""),e=!1,u.release())},isVisible:()=>e}}();function p(){return o.hasClass("loaded")}t.click(function(){h.on(),f.on(),c.focus()}),o.click(function(){h.off(),f.off()}),c.focus(function(){l.addClass("input-focus")}),c.focusout(function(){l.removeClass("input-focus")}),c.on("keyup",function(e){8===e.keyCode&&""===c.val()?p()?d.removeClass("unloaded"):f.off():""!==c.val()&&(f.on(),s.hasClass("visible")||s.addClass("visible"),p()&&d.addClass("unloaded"))}),s.on("click",function(){c.val(""),p()?(d.removeClass("unloaded"),i.empty()):f.off(),c.focus(),s.removeClass("visible")})}),$(function(){const e=function(){let e=!1;const t=$("body");return{toggle(){!1===e?t.attr("sidebar-display",""):t.removeAttr("sidebar-display"),e=!e}}}();$("#sidebar-trigger").click(e.toggle),$("#mask").click(e.toggle)}),$(function(){$('[data-toggle="tooltip"]').tooltip()}),$(function(){const e=$("#topbar-wrapper"),t=$("#toc-wrapper"),o=$(".access"),s=$("#search-input");let a,n=0;const l=5,r=e.outerHeight();$(window).scroll(function(e){$("#topbar-title").is(":hidden")&&(a=!0)}),setInterval(function(){a&&(!function(){var a=$(this).scrollTop();Math.abs(n-a)<=l||(a>n&&a>r?(e.removeClass("topbar-down").addClass("topbar-up"),t.length>0&&t.removeClass("topbar-down"),o.length>0&&o.removeClass("topbar-down"),s.is(":focus")&&s.blur()):a+$(window).height()<$(document).height()&&(e.removeClass("topbar-up").addClass("topbar-down"),t.length>0&&t.addClass("topbar-down"),o.length>0&&o.addClass("topbar-down")),n=a)}(),a=!1)},250)}),$(function(){const e=$("#topbar-title"),t=$("div.post>h1"),o=e.text().trim();let s=t.length>0?t.text().trim():$("h1").text().trim();($("#page-category").length||$("#page-tag").length)&&/\s/.test(s)&&(s=s.replace(/[0-9]/g,"").trim()),$(window).scroll(function(){if($("#post-list").length||t.is(":hidden")||e.is(":hidden")||$("#sidebar.sidebar-expand").length)return!1;$(this).scrollTop()>=95?e.text()!==s&&e.text(s):e.text()!==o&&e.text(o)}),e.click(function(){$("body,html").animate({scrollTop:0},800)})}),$(function(){let e=$(".timeago").length,t=void 0;function o(){return $(".timeago").each(function(){if($(this).children("i").length>0){$(this).text();let t=$(this).hasClass("lastmod"),o=$(this).children("i"),s=o.text();$(this).text(function(t,o){let s=new Date,a=new Date(t);if(a.getFullYear()!==s.getFullYear())return e-=1,a.toLocaleString("en-US",{year:"numeric",month:"short",day:"numeric"});if(a.getMonth()!==s.getMonth())return e-=1,a.toLocaleString("en-US",{month:"short",day:"numeric"});let n=Math.floor((s-a)/1e3),l=Math.floor(n/86400);if(l>=1)return e-=1,l+" day"+(l>1?"s":"")+" ago";let r=Math.floor(n/3600);if(r>=1)return r+" hour"+(r>1?"s":"")+" ago";let i=Math.floor(n/60);return i>=1?i+" minute"+(i>1?"s":"")+" ago":(o?"just":"Just")+" now"}(s,t)),$(this).append(o)}}),0===e&&void 0!==t&&clearInterval(t),e}0!==e&&o()>0&&(t=setInterval(o,6e4))}),$(function(){$("a:has(img)").addClass("img-hyperlink")}),$(function(){const e=new RegExp("^language-([a-z])+$");$("div[class^=language-").each(function(){$(this).attr("class").split(" ").forEach(t=>{if(e.test(t)){let e=t.substring("language-".length);$(this).attr("lang",`${e}`)}})})}),$(function(){$("a[href*='#']").not("[href='#']").not("[href='#0']").click(function(e){if(this.pathname.replace(/^\//,"")===location.pathname.replace(/^\//,"")&&location.hostname===this.hostname){const t=16,o=decodeURI(this.hash);let s=RegExp(/^#fnref:/).test(o),a=RegExp(/^#fn:/).test(o),n=o.includes(":")?o.replace(/\:/,"\\:"):o,l=$(n);if(l.length){e.preventDefault(),history.pushState&&history.pushState(null,null,o);let n=$(this).offset().top,r=l.offset().top;const i=r<n,c=$("#topbar-wrapper").outerHeight();i&&s&&(r-=c+t/2),$("html,body").animate({scrollTop:r},800,()=>{const e=$(l);e.focus();if($("[scroll-focus=true]").length&&$("[scroll-focus=true]").attr("scroll-focus",!1),$(":target").length&&$(":target").attr("scroll-focus",!1),(a||s)&&e.attr("scroll-focus",!0),e.is(":focus"))return!1;e.attr("tabindex","-1"),e.focus()})}}})});
@@ -0,0 +1,6 @@
1
+ /*!
2
+ * Chirpy v3.0.1 (https://github.com/cotes2020/jekyll-theme-chirpy/)
3
+ * © 2021 Cotes Chung
4
+ * MIT Licensed
5
+ */
6
+ const getInitStatus=function(){let e=!1;return()=>{let t=e;return e||(e=!0),t}}(),PvOpts={isEnabled:()=>"true"===$("meta[name=pv-cache-enabled]").attr("content"),getProxyEndpoint:()=>$("meta[name=pv-proxy-endpoint]").attr("content"),getLocalData:()=>$("meta[name=pv-cache-data]").attr("content")},PvCache=function(){const e="origin",t="proxy";function a(e){return localStorage.getItem(e)}function n(e,t){localStorage.setItem(e,t)}return{getData:()=>JSON.parse(localStorage.getItem("pv")),saveOriginCache(t){n("pv",t),n("pv_source",e),n("pv_created_date",(new Date).toJSON())},saveProxyCache(e){n("pv",e),n("pv_source",t),n("pv_created_date",(new Date).toJSON())},isFromOrigin:()=>a("pv_source")===e,isFromProxy:()=>a("pv_source")===t,isExpired(){if(PvCache.isFromOrigin()){let e=new Date(a("pv_created_date"));return e.setDate(e.getDate()+1),Date.now()>=e.getTime()}if(PvCache.isFromProxy()){let e=new Date(a("pv_created_date"));return e.setHours(e.getHours()+1),Date.now()>=e.getTime()}return!1},getAllPageviews:()=>PvCache.getData().totalsForAllResults["ga:pageviews"],newerThan:e=>PvCache.getAllPageviews()>e.totalsForAllResults["ga:pageviews"],inspectKeys(){null!==localStorage.getItem("pv")&&null!==localStorage.getItem("pv_source")&&null!==localStorage.getItem("pv_created_date")||localStorage.clear()}}}();function countUp(e,t,a){if(e<t){let n=new CountUp(a,e,t);n.error?console.error(n.error):n.start()}}function countPV(e,t){let a=0;if(void 0!==t)for(let n=0;n<t.length;++n){if(t[parseInt(n,10)][0]===e){a+=parseInt(t[parseInt(n,10)][1],10);break}}return a}function tacklePV(e,t,a,n){let r=countPV(t,e);if(r=0===r?1:r,n){const e=parseInt(a.text().replace(/,/g,""),10);r>e&&countUp(e,r,a.attr("id"))}else a.text((new Intl.NumberFormat).format(r))}function displayPageviews(e){if(void 0===e)return;let t=getInitStatus();const a=e.rows;if($("#post-list").length>0)$(".post-preview").each(function(){const e=$(this).find("a").attr("href");tacklePV(a,e,$(this).find(".pageviews"),t)});else if($(".post").length>0){const e=window.location.pathname;tacklePV(a,e,$("#pv"),t)}}function fetchProxyPageviews(){$.ajax({type:"GET",url:PvOpts.getProxyEndpoint(),dataType:"jsonp",jsonpCallback:"displayPageviews",success:(e,t,a)=>{PvCache.saveProxyCache(JSON.stringify(e))},error:(e,t,a)=>{console.log("Failed to load pageviews from proxy server: "+a)}})}function fetchPageviews(e=!0,t=!1){PvOpts.isEnabled()&&e?fetch(PvOpts.getLocalData()).then(e=>e.json()).then(e=>{t&&PvCache.newerThan(e)||(displayPageviews(e),PvCache.saveOriginCache(JSON.stringify(e)))}).then(()=>fetchProxyPageviews()):fetchProxyPageviews()}$(function(){if($(".pageviews").length>0){PvCache.inspectKeys();let e=PvCache.getData();e?(displayPageviews(e),PvCache.isExpired()?fetchPageviews(!0,PvCache.isFromProxy()):PvCache.isFromOrigin()&&fetchPageviews(!1)):fetchPageviews()}});
@@ -0,0 +1,8 @@
1
+ /*!
2
+ disqusLoader.js v1.0
3
+ A JavaScript plugin for lazy-loading Disqus comments widget.
4
+ -
5
+ By Osvaldas Valutis, www.osvaldas.info
6
+ Available for use under the MIT License
7
+ */
8
+ (function(e,g,h,d){var a=e(g),k=function(o,n){var q,p;return function(){var t=this,s=arguments,r=+new Date;q&&r<q+o?(clearTimeout(p),p=setTimeout(function(){q=r,n.apply(t,s)},o)):(q=r,n.apply(t,s))}},m=false,j=false,i=false,c=false,f="unloaded",b=e(),l=function(){if(!b.length||b.data("disqusLoaderStatus")=="loaded"){return true}var n=a.scrollTop();if(b.offset().top-n>a.height()*j||n-b.offset().top-b.outerHeight()-(a.height()*j)>0){return true}e("#disqus_thread").removeAttr("id");b.attr("id","disqus_thread").data("disqusLoaderStatus","loaded");if(f=="loaded"){DISQUS.reset({reload:true,config:i})}else{g.disqus_config=i;if(f=="unloaded"){f="loading";e.ajax({url:c,async:true,cache:true,dataType:"script",success:function(){f="loaded"}})}}};a.on("scroll resize",k(m,l));e.disqusLoader=function(o,n){n=e.extend({},{laziness:1,throttle:250,scriptUrl:false,disqusConfig:false},n);j=n.laziness+1;m=n.throttle;i=n.disqusConfig;c=c===false?n.scriptUrl:c;b=(typeof o=="string"?e(o):o).eq(0);b.data("disqusLoaderStatus","unloaded");l()}})(jQuery,window,document);
data/feed.xml ADDED
@@ -0,0 +1,60 @@
1
+ ---
2
+ layout: compress
3
+ # Atom Feed, reference: https://validator.w3.org/feed/docs/atom.html
4
+ ---
5
+
6
+ {% capture source %}
7
+ <feed xmlns="http://www.w3.org/2005/Atom">
8
+ <id>{{ "/" | absolute_url }}</id>
9
+ <title>{{ site.title }}</title>
10
+ <subtitle>{{ site.description }}</subtitle>
11
+ <updated>{{ site.time | date_to_xmlschema }}</updated>
12
+ <author>
13
+ <name>{{ site.author }}</name>
14
+ <uri>{{ "/" | absolute_url }}</uri>
15
+ </author>
16
+ <link rel="self" type="application/atom+xml" href="{{ page.url | absolute_url }}"/>
17
+ <link rel="alternate" type="text/html" hreflang="{{ site.lang | default: 'en' }}"
18
+ href="{{ '/' | absolute_url }}"/>
19
+ <generator uri="https://jekyllrb.com/" version="{{ jekyll.version }}">Jekyll</generator>
20
+ <rights> © {{ 'now' | date: '%Y' }} {{ site.author }} </rights>
21
+ <icon>{{ site.baseurl }}/assets/img/favicons/favicon.ico</icon>
22
+ <logo>{{ site.baseurl }}/assets/img/favicons/favicon-96x96.png</logo>
23
+
24
+ {% for post in site.posts limit: 5 %}
25
+ {% assign post_absolute_url = post.url | absolute_url %}
26
+ <entry>
27
+ <title>{{ post.title }}</title>
28
+ <link href="{{ post_absolute_url }}" rel="alternate" type="text/html" title="{{ post.title }}" />
29
+ <published>{{ post.date | date_to_xmlschema }}</published>
30
+ {% if post.last_modified_at %}
31
+ <updated>{{ post.last_modified_at | date_to_xmlschema }}</updated>
32
+ {% else %}
33
+ <updated>{{ post.date | date_to_xmlschema }}</updated>
34
+ {% endif %}
35
+ <id>{{ post_absolute_url }}</id>
36
+ <content src="{{ post_absolute_url }}" />
37
+ <author>
38
+ <name>{{ site.author }}</name>
39
+ </author>
40
+
41
+ {% if post.categories %}
42
+ {% for category in post.categories %}
43
+ <category term="{{ category }}" />
44
+ {% endfor %}
45
+ {% endif %}
46
+
47
+ {% if post.summary %}
48
+ <summary>{{ post.summary | strip }}</summary>
49
+ {% else %}
50
+ <summary>
51
+ {% include no-linenos.html content=post.content %}
52
+ {{ content | strip_html | truncate: 400 }}
53
+ </summary>
54
+ {% endif %}
55
+
56
+ </entry>
57
+ {% endfor %}
58
+ </feed>
59
+ {% endcapture %}
60
+ {{ source | replace: '&', '&amp;' }}
data/index.html ADDED
@@ -0,0 +1,4 @@
1
+ ---
2
+ layout: home
3
+ # Index page
4
+ ---
data/robots.txt ADDED
@@ -0,0 +1,10 @@
1
+ ---
2
+ permalink: robots.txt
3
+ # The robots rules
4
+ ---
5
+
6
+ User-agent: *
7
+
8
+ Disallow: /norobots/
9
+
10
+ Sitemap: {{ '/sitemap.xml' | absolute_url }}
data/sw.js ADDED
@@ -0,0 +1,61 @@
1
+ ---
2
+ layout: compress
3
+ # PWA service worker
4
+ ---
5
+
6
+ self.importScripts('{{ "/assets/js/data/cache-list.js" | relative_url }}');
7
+
8
+ var cacheName = 'chirpy-{{ "now" | date: "%Y%m%d.%H%M" }}';
9
+
10
+
11
+ function isExcluded(url) {
12
+ const regex = /(^http(s)?|^\/)/; /* the regex for CORS url or relative url */
13
+ for (const rule of exclude) {
14
+ if (!regex.test(url) ||
15
+ url.indexOf(rule) != -1) {
16
+ return true;
17
+ }
18
+ }
19
+ return false;
20
+ }
21
+
22
+
23
+ self.addEventListener('install', (e) => {
24
+ self.skipWaiting();
25
+ e.waitUntil(
26
+ caches.open(cacheName).then((cache) => {
27
+ return cache.addAll(include);
28
+ })
29
+ );
30
+ });
31
+
32
+
33
+ self.addEventListener('fetch', (e) => {
34
+ e.respondWith(
35
+ caches.match(e.request).then((r) => {
36
+ /* console.log('[Service Worker] Fetching resource: ' + e.request.url); */
37
+ return r || fetch(e.request).then((response) => {
38
+ return caches.open(cacheName).then((cache) => {
39
+ if (!isExcluded(e.request.url)) {
40
+ /* console.log('[Service Worker] Caching new resource: ' + e.request.url); */
41
+ cache.put(e.request, response.clone());
42
+ }
43
+ return response;
44
+ });
45
+ });
46
+ })
47
+ );
48
+ });
49
+
50
+
51
+ self.addEventListener('activate', (e) => {
52
+ e.waitUntil(
53
+ caches.keys().then((keyList) => {
54
+ return Promise.all(keyList.map((key) => {
55
+ if(key !== cacheName) {
56
+ return caches.delete(key);
57
+ }
58
+ }));
59
+ })
60
+ );
61
+ });
metadata ADDED
@@ -0,0 +1,247 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jekyll-theme-chirpy
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Cotes Chung
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-01-26 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.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '4.1'
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-redirect-from
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.16'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.16'
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.7'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.7'
69
+ - !ruby/object:Gem::Dependency
70
+ name: jekyll-archives
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.2'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.2'
83
+ - !ruby/object:Gem::Dependency
84
+ name: jekyll-sitemap
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.4'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.4'
97
+ - !ruby/object:Gem::Dependency
98
+ name: html-proofer
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '3.18'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '3.18'
111
+ description:
112
+ email:
113
+ - cotes.chung@gmail.com
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - 404.html
119
+ - LICENSE
120
+ - README.md
121
+ - _config.yml
122
+ - _data/contact.yml
123
+ - _data/date_format.yml
124
+ - _data/label.yml
125
+ - _data/rights.yml
126
+ - _data/share.yml
127
+ - _includes/css-selector.html
128
+ - _includes/disqus.html
129
+ - _includes/favicons.html
130
+ - _includes/footer.html
131
+ - _includes/google-analytics.html
132
+ - _includes/head.html
133
+ - _includes/js-selector.html
134
+ - _includes/lozad.html
135
+ - _includes/mermaid.html
136
+ - _includes/mode-toggle.html
137
+ - _includes/no-linenos.html
138
+ - _includes/panel.html
139
+ - _includes/post-nav.html
140
+ - _includes/post-paginator.html
141
+ - _includes/post-sharing.html
142
+ - _includes/read-time.html
143
+ - _includes/refactor-content.html
144
+ - _includes/related-posts.html
145
+ - _includes/search-loader.html
146
+ - _includes/search-results.html
147
+ - _includes/sidebar.html
148
+ - _includes/timeago.html
149
+ - _includes/topbar.html
150
+ - _includes/trending-tags.html
151
+ - _includes/update-list.html
152
+ - _layouts/archives.html
153
+ - _layouts/categories.html
154
+ - _layouts/category.html
155
+ - _layouts/compress.html
156
+ - _layouts/default.html
157
+ - _layouts/home.html
158
+ - _layouts/page.html
159
+ - _layouts/post.html
160
+ - _layouts/tag.html
161
+ - _layouts/tags.html
162
+ - _plugins/posts-lastmod-hook.rb
163
+ - _sass/addon/commons.scss
164
+ - _sass/addon/module.scss
165
+ - _sass/addon/syntax.scss
166
+ - _sass/addon/variables.scss
167
+ - _sass/colors/dark-syntax.scss
168
+ - _sass/colors/dark-typography.scss
169
+ - _sass/colors/light-syntax.scss
170
+ - _sass/colors/light-typography.scss
171
+ - _sass/jekyll-theme-chirpy.scss
172
+ - _sass/layout/archives.scss
173
+ - _sass/layout/categories.scss
174
+ - _sass/layout/category-tag.scss
175
+ - _sass/layout/home.scss
176
+ - _sass/layout/post.scss
177
+ - _sass/layout/tags.scss
178
+ - _tabs/about.md
179
+ - _tabs/archives.md
180
+ - _tabs/categories.md
181
+ - _tabs/tags.md
182
+ - app.js
183
+ - assets/css/style.scss
184
+ - assets/img/favicons/android-icon-144x144.png
185
+ - assets/img/favicons/android-icon-192x192.png
186
+ - assets/img/favicons/android-icon-36x36.png
187
+ - assets/img/favicons/android-icon-48x48.png
188
+ - assets/img/favicons/android-icon-72x72.png
189
+ - assets/img/favicons/android-icon-96x96.png
190
+ - assets/img/favicons/apple-icon-114x114.png
191
+ - assets/img/favicons/apple-icon-120x120.png
192
+ - assets/img/favicons/apple-icon-144x144.png
193
+ - assets/img/favicons/apple-icon-152x152.png
194
+ - assets/img/favicons/apple-icon-180x180.png
195
+ - assets/img/favicons/apple-icon-57x57.png
196
+ - assets/img/favicons/apple-icon-60x60.png
197
+ - assets/img/favicons/apple-icon-72x72.png
198
+ - assets/img/favicons/apple-icon-76x76.png
199
+ - assets/img/favicons/apple-icon-precomposed.png
200
+ - assets/img/favicons/apple-icon.png
201
+ - assets/img/favicons/browserconfig.xml
202
+ - assets/img/favicons/favicon-16x16.png
203
+ - assets/img/favicons/favicon-32x32.png
204
+ - assets/img/favicons/favicon-96x96.png
205
+ - assets/img/favicons/favicon.ico
206
+ - assets/img/favicons/manifest.json
207
+ - assets/img/favicons/ms-icon-144x144.png
208
+ - assets/img/favicons/ms-icon-150x150.png
209
+ - assets/img/favicons/ms-icon-310x310.png
210
+ - assets/img/favicons/ms-icon-70x70.png
211
+ - assets/js/data/cache-list.js
212
+ - assets/js/data/search.json
213
+ - assets/js/dist/categories.min.js
214
+ - assets/js/dist/home.min.js
215
+ - assets/js/dist/page.min.js
216
+ - assets/js/dist/post.min.js
217
+ - assets/js/dist/pvreport.min.js
218
+ - assets/js/lib/jquery.disqusloader.min.js
219
+ - feed.xml
220
+ - index.html
221
+ - robots.txt
222
+ - sw.js
223
+ homepage: https://github.com/cotes2020/jekyll-theme-chirpy#readme
224
+ licenses:
225
+ - MIT
226
+ metadata: {}
227
+ post_install_message:
228
+ rdoc_options: []
229
+ require_paths:
230
+ - lib
231
+ required_ruby_version: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - ">="
234
+ - !ruby/object:Gem::Version
235
+ version: '0'
236
+ required_rubygems_version: !ruby/object:Gem::Requirement
237
+ requirements:
238
+ - - ">="
239
+ - !ruby/object:Gem::Version
240
+ version: '0'
241
+ requirements: []
242
+ rubygems_version: 3.1.4
243
+ signing_key:
244
+ specification_version: 4
245
+ summary: Chirpy is a minimal, sidebar, responsive web design Jekyll theme that focuses
246
+ on text presentation.
247
+ test_files: []