changes
1
.gitignore
vendored
@ -5,7 +5,6 @@ Gemfile.lock
|
|||||||
|
|
||||||
# Jekyll cache
|
# Jekyll cache
|
||||||
.jekyll-cache
|
.jekyll-cache
|
||||||
_site
|
|
||||||
|
|
||||||
# RubyGems
|
# RubyGems
|
||||||
*.gem
|
*.gem
|
||||||
|
1704
_site/404.html
Normal file
1701
_site/about/index.html
Normal file
43
_site/app.js
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
const $notification = $('#notification');
|
||||||
|
const $btnRefresh = $('#notification .toast-body>button');
|
||||||
|
|
||||||
|
if ('serviceWorker' in navigator) {
|
||||||
|
/* Registering Service Worker */
|
||||||
|
navigator.serviceWorker.register('/sw.js')
|
||||||
|
.then(registration => {
|
||||||
|
|
||||||
|
/* in case the user ignores the notification */
|
||||||
|
if (registration.waiting) {
|
||||||
|
$notification.toast('show');
|
||||||
|
}
|
||||||
|
|
||||||
|
registration.addEventListener('updatefound', () => {
|
||||||
|
registration.installing.addEventListener('statechange', () => {
|
||||||
|
if (registration.waiting) {
|
||||||
|
if (navigator.serviceWorker.controller) {
|
||||||
|
$notification.toast('show');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$btnRefresh.click(() => {
|
||||||
|
if (registration.waiting) {
|
||||||
|
registration.waiting.postMessage('SKIP_WAITING');
|
||||||
|
}
|
||||||
|
$notification.toast('hide');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
let refreshing = false;
|
||||||
|
|
||||||
|
/* Detect controller change and refresh all the opened tabs */
|
||||||
|
navigator.serviceWorker.addEventListener('controllerchange', () => {
|
||||||
|
if (!refreshing) {
|
||||||
|
window.location.reload();
|
||||||
|
refreshing = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
1799
_site/archives/index.html
Normal file
7
_site/assets/css/style.css
Normal file
1
_site/assets/css/style.css.map
Normal file
BIN
_site/assets/images/20230823-1.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
_site/assets/images/20230823-2.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
_site/assets/images/20230823-3.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
_site/assets/images/20230823-4.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
_site/assets/images/devices-mockup.png
Normal file
After Width: | Height: | Size: 74 KiB |
BIN
_site/assets/images/devtools-dark.png
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
_site/assets/images/devtools-light.png
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
_site/assets/img/favicons/android-chrome-192x192.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
_site/assets/img/favicons/android-chrome-512x512.png
Normal file
After Width: | Height: | Size: 61 KiB |
BIN
_site/assets/img/favicons/apple-touch-icon.png
Normal file
After Width: | Height: | Size: 14 KiB |
10
_site/assets/img/favicons/browserconfig.xml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<browserconfig>
|
||||||
|
<msapplication>
|
||||||
|
<tile>
|
||||||
|
<square150x150logo src="/assets/img/favicons/mstile-150x150.png" />
|
||||||
|
<TileColor>#da532c</TileColor>
|
||||||
|
</tile>
|
||||||
|
</msapplication>
|
||||||
|
</browserconfig>
|
||||||
|
|
BIN
_site/assets/img/favicons/favicon-16x16.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
_site/assets/img/favicons/favicon-32x32.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
_site/assets/img/favicons/favicon.ico
Normal file
After Width: | Height: | Size: 318 B |
BIN
_site/assets/img/favicons/mstile-150x150.png
Normal file
After Width: | Height: | Size: 12 KiB |
23
_site/assets/img/favicons/site.webmanifest
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
"name": "neo's brain",
|
||||||
|
"short_name": "neo's brain",
|
||||||
|
"description": "A minimal, responsive and feature-rich Jekyll theme for technical writing.",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "/assets/img/favicons/android-chrome-192x192.png",
|
||||||
|
"sizes": "192x192",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "/assets/img/favicons/android-chrome-512x512.png",
|
||||||
|
"sizes": "512x512",
|
||||||
|
"type": "image/png"
|
||||||
|
}],
|
||||||
|
"start_url": "/index.html",
|
||||||
|
"theme_color": "#2a1e6b",
|
||||||
|
"background_color": "#ffffff",
|
||||||
|
"display": "fullscreen"
|
||||||
|
}
|
||||||
|
|
11
_site/assets/index.html
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en-US">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Redirecting…</title>
|
||||||
|
<link rel="canonical" href="http://localhost:4000/404.html">
|
||||||
|
<script>location="http://localhost:4000/404.html"</script>
|
||||||
|
<meta http-equiv="refresh" content="0; url=http://localhost:4000/404.html">
|
||||||
|
<meta name="robots" content="noindex">
|
||||||
|
<h1>Redirecting…</h1>
|
||||||
|
<a href="http://localhost:4000/404.html">Click here if you are not redirected.</a>
|
||||||
|
</html>
|
157
_site/assets/js/data/search.json
Normal file
57
_site/assets/js/data/swcache.js
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
const resource = [
|
||||||
|
/* --- CSS --- */
|
||||||
|
'/assets/css/style.css',
|
||||||
|
|
||||||
|
/* --- PWA --- */
|
||||||
|
'/app.js',
|
||||||
|
'/sw.js',
|
||||||
|
|
||||||
|
/* --- HTML --- */
|
||||||
|
'/index.html',
|
||||||
|
'/404.html',
|
||||||
|
|
||||||
|
|
||||||
|
'/categories/',
|
||||||
|
|
||||||
|
'/tags/',
|
||||||
|
|
||||||
|
'/archives/',
|
||||||
|
|
||||||
|
'/about/',
|
||||||
|
|
||||||
|
|
||||||
|
/* --- Favicons & compressed JS --- */
|
||||||
|
|
||||||
|
|
||||||
|
'/assets/img/favicons/favicon.ico',
|
||||||
|
'/assets/img/favicons/android-chrome-192x192.png',
|
||||||
|
'/assets/img/favicons/android-chrome-512x512.png',
|
||||||
|
'/assets/img/favicons/apple-touch-icon.png',
|
||||||
|
'/assets/img/favicons/favicon-16x16.png',
|
||||||
|
'/assets/img/favicons/favicon-32x32.png',
|
||||||
|
'/assets/img/favicons/mstile-150x150.png',
|
||||||
|
'/assets/js/dist/categories.min.js',
|
||||||
|
'/assets/js/dist/commons.min.js',
|
||||||
|
'/assets/js/dist/home.min.js',
|
||||||
|
'/assets/js/dist/misc.min.js',
|
||||||
|
'/assets/js/dist/page.min.js',
|
||||||
|
'/assets/js/dist/post.min.js'
|
||||||
|
];
|
||||||
|
|
||||||
|
/* The request url with below domain will be cached */
|
||||||
|
const allowedDomains = [
|
||||||
|
|
||||||
|
|
||||||
|
'localhost:4000',
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
'fonts.gstatic.com',
|
||||||
|
'fonts.googleapis.com',
|
||||||
|
'cdn.jsdelivr.net',
|
||||||
|
'polyfill.io'
|
||||||
|
];
|
||||||
|
|
||||||
|
/* Requests that include the following path will be banned */
|
||||||
|
const denyUrls = [];
|
||||||
|
|
6
_site/assets/js/dist/categories.min.js
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Chirpy v6.1.0 (https://github.com/cotes2020/jekyll-theme-chirpy/)
|
||||||
|
* © 2019 Cotes Chung
|
||||||
|
* MIT Licensed
|
||||||
|
*/
|
||||||
|
!function(){"use strict";function e(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function t(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,l(o.key),o)}}function r(e,r,o){return r&&t(e.prototype,r),o&&t(e,o),Object.defineProperty(e,"prototype",{writable:!1}),e}function o(e,t,r){return(t=l(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return a(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return a(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=new Array(t);r<t;r++)o[r]=e[r];return o}function l(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!=typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}var i=$(".mode-toggle");var s=$("body"),u="sidebar-display",c=function(){function t(){e(this,t)}return r(t,null,[{key:"toggle",value:function(){!1===t.isExpanded?s.attr(u,""):s.removeAttr(u),t.isExpanded=!t.isExpanded}}]),t}();o(c,"isExpanded",!1);var f=$("#sidebar-trigger"),d=$("#search-trigger"),p=$("#search-cancel"),b=$("#main>.row"),v=$("#topbar-title"),m=$("#search-wrapper"),g=$("#search-result-wrapper"),y=$("#search-results"),h=$("#search-input"),C=$("#search-hints"),w=$("html,body"),k="loaded",A="unloaded",S="input-focus",T="d-flex",j=function(){function t(){e(this,t)}return r(t,null,[{key:"on",value:function(){t.offset=window.scrollY,w.scrollTop(0)}},{key:"off",value:function(){w.scrollTop(t.offset)}}]),t}();o(j,"offset",0),o(j,"resultVisible",!1);var E=function(){function t(){e(this,t)}return r(t,null,[{key:"on",value:function(){f.addClass(A),v.addClass(A),d.addClass(A),m.addClass(T),p.addClass(k)}},{key:"off",value:function(){p.removeClass(k),m.removeClass(T),f.removeClass(A),v.removeClass(A),d.removeClass(A)}}]),t}(),O=function(){function t(){e(this,t)}return r(t,null,[{key:"on",value:function(){j.resultVisible||(j.on(),g.removeClass(A),b.addClass(A),j.resultVisible=!0)}},{key:"off",value:function(){j.resultVisible&&(y.empty(),C.hasClass(A)&&C.removeClass(A),g.addClass(A),b.removeClass(A),j.off(),h.val(""),j.resultVisible=!1)}}]),t}();function x(){return p.hasClass(k)}var P=$(".collapse");var V,I;$(".code-header>button").children().attr("class"),V=$(window),I=$("#back-to-top"),V.on("scroll",(function(){V.scrollTop()>50?I.fadeIn():I.fadeOut()})),I.on("click",(function(){V.scrollTop(0)})),n(document.querySelectorAll('[data-bs-toggle="tooltip"]')).map((function(e){return new bootstrap.Tooltip(e)})),0!==i.length&&i.off().on("click",(function(e){var t=$(e.target),r=t.prop("tagName")==="button".toUpperCase()?t:t.parent();modeToggle.flipMode(),r.trigger("blur")})),$("#sidebar-trigger").on("click",c.toggle),$("#mask").on("click",c.toggle),d.on("click",(function(){E.on(),O.on(),h.trigger("focus")})),p.on("click",(function(){E.off(),O.off()})),h.on("focus",(function(){m.addClass(S)})),h.on("focusout",(function(){m.removeClass(S)})),h.on("input",(function(){""===h.val()?x()?C.removeClass(A):O.off():(O.on(),x()&&C.addClass(A))})),P.on("hide.bs.collapse",(function(){var e="h_"+$(this).attr("id").substring(2);e&&($("#".concat(e," .far.fa-folder-open")).attr("class","far fa-folder fa-fw"),$("#".concat(e," i.fas")).addClass("rotate"),$("#".concat(e)).removeClass("hide-border-bottom"))})),P.on("show.bs.collapse",(function(){var e="h_"+$(this).attr("id").substring(2);e&&($("#".concat(e," .far.fa-folder")).attr("class","far fa-folder-open fa-fw"),$("#".concat(e," i.fas")).removeClass("rotate"),$("#".concat(e)).addClass("hide-border-bottom"))}))}();
|
6
_site/assets/js/dist/commons.min.js
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Chirpy v6.1.0 (https://github.com/cotes2020/jekyll-theme-chirpy/)
|
||||||
|
* © 2019 Cotes Chung
|
||||||
|
* MIT Licensed
|
||||||
|
*/
|
||||||
|
!function(){"use strict";function e(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function t(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,i(n.key),n)}}function r(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function n(e,t,r){return(t=i(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return a(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return a(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function i(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}var l=$(".mode-toggle");var s=$("body"),u="sidebar-display",f=function(){function t(){e(this,t)}return r(t,null,[{key:"toggle",value:function(){!1===t.isExpanded?s.attr(u,""):s.removeAttr(u),t.isExpanded=!t.isExpanded}}]),t}();n(f,"isExpanded",!1);var c=$("#sidebar-trigger"),d=$("#search-trigger"),p=$("#search-cancel"),b=$("#main>.row"),m=$("#topbar-title"),v=$("#search-wrapper"),y=$("#search-result-wrapper"),g=$("#search-results"),h=$("#search-input"),C=$("#search-hints"),w=$("html,body"),k="loaded",A="unloaded",S="input-focus",T="d-flex",j=function(){function t(){e(this,t)}return r(t,null,[{key:"on",value:function(){t.offset=window.scrollY,w.scrollTop(0)}},{key:"off",value:function(){w.scrollTop(t.offset)}}]),t}();n(j,"offset",0),n(j,"resultVisible",!1);var E,O,x=function(){function t(){e(this,t)}return r(t,null,[{key:"on",value:function(){c.addClass(A),m.addClass(A),d.addClass(A),v.addClass(T),p.addClass(k)}},{key:"off",value:function(){p.removeClass(k),v.removeClass(T),c.removeClass(A),m.removeClass(A),d.removeClass(A)}}]),t}(),P=function(){function t(){e(this,t)}return r(t,null,[{key:"on",value:function(){j.resultVisible||(j.on(),y.removeClass(A),b.addClass(A),j.resultVisible=!0)}},{key:"off",value:function(){j.resultVisible&&(g.empty(),C.hasClass(A)&&C.removeClass(A),y.addClass(A),b.removeClass(A),j.off(),h.val(""),j.resultVisible=!1)}}]),t}();function V(){return p.hasClass(k)}E=$(window),O=$("#back-to-top"),E.on("scroll",(function(){E.scrollTop()>50?O.fadeIn():O.fadeOut()})),O.on("click",(function(){E.scrollTop(0)})),o(document.querySelectorAll('[data-bs-toggle="tooltip"]')).map((function(e){return new bootstrap.Tooltip(e)})),0!==l.length&&l.off().on("click",(function(e){var t=$(e.target),r=t.prop("tagName")==="button".toUpperCase()?t:t.parent();modeToggle.flipMode(),r.trigger("blur")})),$("#sidebar-trigger").on("click",f.toggle),$("#mask").on("click",f.toggle),d.on("click",(function(){x.on(),P.on(),h.trigger("focus")})),p.on("click",(function(){x.off(),P.off()})),h.on("focus",(function(){v.addClass(S)})),h.on("focusout",(function(){v.removeClass(S)})),h.on("input",(function(){""===h.val()?V()?C.removeClass(A):P.off():(P.on(),V()&&C.addClass(A))}))}();
|
6
_site/assets/js/dist/home.min.js
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Chirpy v6.1.0 (https://github.com/cotes2020/jekyll-theme-chirpy/)
|
||||||
|
* © 2019 Cotes Chung
|
||||||
|
* MIT Licensed
|
||||||
|
*/
|
||||||
|
!function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,i(n.key),n)}}function r(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function n(t,e,r){return(e=i(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function o(t){return function(t){if(Array.isArray(t))return a(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return a(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return a(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function i(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,e||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}var l=$(".mode-toggle");var s=$("body"),u="sidebar-display",c=function(){function e(){t(this,e)}return r(e,null,[{key:"toggle",value:function(){!1===e.isExpanded?s.attr(u,""):s.removeAttr(u),e.isExpanded=!e.isExpanded}}]),e}();n(c,"isExpanded",!1);var f=$("#sidebar-trigger"),d=$("#search-trigger"),m=$("#search-cancel"),p=$("#main>.row"),g=$("#topbar-title"),v=$("#search-wrapper"),y=$("#search-result-wrapper"),b=$("#search-results"),h=$("#search-input"),C=$("#search-hints"),w=$("html,body"),k="loaded",T="unloaded",j="input-focus",A="d-flex",S=function(){function e(){t(this,e)}return r(e,null,[{key:"on",value:function(){e.offset=window.scrollY,w.scrollTop(0)}},{key:"off",value:function(){w.scrollTop(e.offset)}}]),e}();n(S,"offset",0),n(S,"resultVisible",!1);var x=function(){function e(){t(this,e)}return r(e,null,[{key:"on",value:function(){f.addClass(T),g.addClass(T),d.addClass(T),v.addClass(A),m.addClass(k)}},{key:"off",value:function(){m.removeClass(k),v.removeClass(A),f.removeClass(T),g.removeClass(T),d.removeClass(T)}}]),e}(),E=function(){function e(){t(this,e)}return r(e,null,[{key:"on",value:function(){S.resultVisible||(S.on(),y.removeClass(T),p.addClass(T),S.resultVisible=!0)}},{key:"off",value:function(){S.resultVisible&&(b.empty(),C.hasClass(T)&&C.removeClass(T),y.addClass(T),p.removeClass(T),S.off(),h.val(""),S.resultVisible=!1)}}]),e}();function F(){return m.hasClass(k)}$(".collapse");function O(t){t.parent().removeClass("shimmer")}$(".code-header>button").children().attr("class");var D,P,V,I=function(){function e(){t(this,e)}return r(e,null,[{key:"attrTimestamp",get:function(){return"data-ts"}},{key:"attrDateFormat",get:function(){return"data-df"}},{key:"locale",get:function(){return $("html").attr("lang").substring(0,2)}},{key:"getTimestamp",value:function(t){return Number(t.attr(e.attrTimestamp))}},{key:"getDateFormat",value:function(t){return t.attr(e.attrDateFormat)}}]),e}();D=$(window),P=$("#back-to-top"),D.on("scroll",(function(){D.scrollTop()>50?P.fadeIn():P.fadeOut()})),P.on("click",(function(){D.scrollTop(0)})),o(document.querySelectorAll('[data-bs-toggle="tooltip"]')).map((function(t){return new bootstrap.Tooltip(t)})),0!==l.length&&l.off().on("click",(function(t){var e=$(t.target),r=e.prop("tagName")==="button".toUpperCase()?e:e.parent();modeToggle.flipMode(),r.trigger("blur")})),$("#sidebar-trigger").on("click",c.toggle),$("#mask").on("click",c.toggle),d.on("click",(function(){x.on(),E.on(),h.trigger("focus")})),m.on("click",(function(){x.off(),E.off()})),h.on("focus",(function(){v.addClass(j)})),h.on("focusout",(function(){v.removeClass(j)})),h.on("input",(function(){""===h.val()?F()?C.removeClass(T):E.off():(E.on(),F()&&C.addClass(T))})),dayjs.locale(I.locale),dayjs.extend(window.dayjs_plugin_localizedFormat),$("[".concat(I.attrTimestamp,"]")).each((function(){var t=dayjs.unix(I.getTimestamp($(this))),e=t.format(I.getDateFormat($(this)));$(this).text(e),$(this).removeAttr(I.attrTimestamp),$(this).removeAttr(I.attrDateFormat);var r=$(this).attr("data-bs-toggle");if(void 0!==r&&"tooltip"===r){var n=t.format("llll");$(this).attr("data-bs-title",n),new bootstrap.Tooltip($(this))}})),(V=$("#core-wrapper img[data-src]")).length<=0||(document.addEventListener("lazyloaded",(function(t){O($(t.target))})),V.each((function(){$(this).hasClass("ls-is-cached")&&O($(this))})))}();
|
6
_site/assets/js/dist/misc.min.js
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Chirpy v6.1.0 (https://github.com/cotes2020/jekyll-theme-chirpy/)
|
||||||
|
* © 2019 Cotes Chung
|
||||||
|
* MIT Licensed
|
||||||
|
*/
|
||||||
|
!function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,i(n.key),n)}}function r(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function n(t,e,r){return(e=i(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function o(t){return function(t){if(Array.isArray(t))return a(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return a(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return a(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function i(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,e||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}var l=$(".mode-toggle");var s=$("body"),u="sidebar-display",c=function(){function e(){t(this,e)}return r(e,null,[{key:"toggle",value:function(){!1===e.isExpanded?s.attr(u,""):s.removeAttr(u),e.isExpanded=!e.isExpanded}}]),e}();n(c,"isExpanded",!1);var f=$("#sidebar-trigger"),d=$("#search-trigger"),m=$("#search-cancel"),p=$("#main>.row"),v=$("#topbar-title"),g=$("#search-wrapper"),y=$("#search-result-wrapper"),b=$("#search-results"),h=$("#search-input"),C=$("#search-hints"),k=$("html,body"),w="loaded",T="unloaded",j="input-focus",A="d-flex",S=function(){function e(){t(this,e)}return r(e,null,[{key:"on",value:function(){e.offset=window.scrollY,k.scrollTop(0)}},{key:"off",value:function(){k.scrollTop(e.offset)}}]),e}();n(S,"offset",0),n(S,"resultVisible",!1);var x=function(){function e(){t(this,e)}return r(e,null,[{key:"on",value:function(){f.addClass(T),v.addClass(T),d.addClass(T),g.addClass(A),m.addClass(w)}},{key:"off",value:function(){m.removeClass(w),g.removeClass(A),f.removeClass(T),v.removeClass(T),d.removeClass(T)}}]),e}(),E=function(){function e(){t(this,e)}return r(e,null,[{key:"on",value:function(){S.resultVisible||(S.on(),y.removeClass(T),p.addClass(T),S.resultVisible=!0)}},{key:"off",value:function(){S.resultVisible&&(b.empty(),C.hasClass(T)&&C.removeClass(T),y.addClass(T),p.removeClass(T),S.off(),h.val(""),S.resultVisible=!1)}}]),e}();function F(){return m.hasClass(w)}$(".collapse");$(".code-header>button").children().attr("class");var O,D,P=function(){function e(){t(this,e)}return r(e,null,[{key:"attrTimestamp",get:function(){return"data-ts"}},{key:"attrDateFormat",get:function(){return"data-df"}},{key:"locale",get:function(){return $("html").attr("lang").substring(0,2)}},{key:"getTimestamp",value:function(t){return Number(t.attr(e.attrTimestamp))}},{key:"getDateFormat",value:function(t){return t.attr(e.attrDateFormat)}}]),e}();O=$(window),D=$("#back-to-top"),O.on("scroll",(function(){O.scrollTop()>50?D.fadeIn():D.fadeOut()})),D.on("click",(function(){O.scrollTop(0)})),o(document.querySelectorAll('[data-bs-toggle="tooltip"]')).map((function(t){return new bootstrap.Tooltip(t)})),0!==l.length&&l.off().on("click",(function(t){var e=$(t.target),r=e.prop("tagName")==="button".toUpperCase()?e:e.parent();modeToggle.flipMode(),r.trigger("blur")})),$("#sidebar-trigger").on("click",c.toggle),$("#mask").on("click",c.toggle),d.on("click",(function(){x.on(),E.on(),h.trigger("focus")})),m.on("click",(function(){x.off(),E.off()})),h.on("focus",(function(){g.addClass(j)})),h.on("focusout",(function(){g.removeClass(j)})),h.on("input",(function(){""===h.val()?F()?C.removeClass(T):E.off():(E.on(),F()&&C.addClass(T))})),dayjs.locale(P.locale),dayjs.extend(window.dayjs_plugin_localizedFormat),$("[".concat(P.attrTimestamp,"]")).each((function(){var t=dayjs.unix(P.getTimestamp($(this))),e=t.format(P.getDateFormat($(this)));$(this).text(e),$(this).removeAttr(P.attrTimestamp),$(this).removeAttr(P.attrDateFormat);var r=$(this).attr("data-bs-toggle");if(void 0!==r&&"tooltip"===r){var n=t.format("llll");$(this).attr("data-bs-title",n),new bootstrap.Tooltip($(this))}}))}();
|
6
_site/assets/js/dist/page.min.js
vendored
Normal file
6
_site/assets/js/dist/post.min.js
vendored
Normal file
1673
_site/categories/blogging/index.html
Normal file
1671
_site/categories/demo/index.html
Normal file
1710
_site/categories/index.html
Normal file
227
_site/feed.xml
Normal file
@ -0,0 +1,227 @@
|
|||||||
|
|
||||||
|
|
||||||
|
<feed xmlns="http://www.w3.org/2005/Atom">
|
||||||
|
<id>http://localhost:4000/</id>
|
||||||
|
<title>neo's brain</title>
|
||||||
|
<subtitle>A minimal, responsive and feature-rich Jekyll theme for technical writing.</subtitle>
|
||||||
|
<updated>2023-08-23T16:54:25-05:00</updated>
|
||||||
|
<author>
|
||||||
|
<name>Eric Reymundo</name>
|
||||||
|
<uri>http://localhost:4000/</uri>
|
||||||
|
</author>
|
||||||
|
<link rel="self" type="application/atom+xml" href="http://localhost:4000/feed.xml"/>
|
||||||
|
<link rel="alternate" type="text/html" hreflang="en"
|
||||||
|
href="http://localhost:4000/"/>
|
||||||
|
<generator uri="https://jekyllrb.com/" version="4.3.2">Jekyll</generator>
|
||||||
|
<rights> © 2023 Eric Reymundo </rights>
|
||||||
|
<icon>/assets/img/favicons/favicon.ico</icon>
|
||||||
|
<logo>/assets/img/favicons/favicon-96x96.png</logo>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<entry>
|
||||||
|
<title>Flaws.cloud walkthrough</title>
|
||||||
|
<link href="http://localhost:4000/posts/Flaws.cloud-AWS/" rel="alternate" type="text/html" title="Flaws.cloud walkthrough" />
|
||||||
|
<published>2023-08-23T15:36:23-05:00</published>
|
||||||
|
|
||||||
|
<updated>2023-08-23T16:07:17-05:00</updated>
|
||||||
|
|
||||||
|
<id>http://localhost:4000/posts/Flaws.cloud-AWS/</id>
|
||||||
|
<content src="http://localhost:4000/posts/Flaws.cloud-AWS/" />
|
||||||
|
<author>
|
||||||
|
<name>Eric Reymundo</name>
|
||||||
|
</author>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<summary>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Flaws.cloud walkthrough
|
||||||
|
|
||||||
|
DayCyberWox Walkthrough: https://www.youtube.com/watch?v=fEjAryrzLSQ
|
||||||
|
Write up: https://daycyberwox.com/exploiting-aws-1-a-beginners-guide-flawscloud#heading-level1
|
||||||
|
|
||||||
|
Through a series of levels you'll learn about common mistakes and gotchas when using Amazon Web Services (AWS). There are no SQL injection, XSS, buffer overflows, or many of the other vulnerabilities you mig...
|
||||||
|
</summary>
|
||||||
|
|
||||||
|
|
||||||
|
</entry>
|
||||||
|
|
||||||
|
|
||||||
|
<entry>
|
||||||
|
<title>Building a Custom Malware Analysis Lab Enviornment</title>
|
||||||
|
<link href="http://localhost:4000/posts/Building-a-Custom-Malware-Analysis-Lab-Environment/" rel="alternate" type="text/html" title="Building a Custom Malware Analysis Lab Enviornment" />
|
||||||
|
<published>2023-08-23T15:33:46-05:00</published>
|
||||||
|
|
||||||
|
<updated>2023-08-23T15:37:29-05:00</updated>
|
||||||
|
|
||||||
|
<id>http://localhost:4000/posts/Building-a-Custom-Malware-Analysis-Lab-Environment/</id>
|
||||||
|
<content src="http://localhost:4000/posts/Building-a-Custom-Malware-Analysis-Lab-Environment/" />
|
||||||
|
<author>
|
||||||
|
<name>Eric Reymundo</name>
|
||||||
|
</author>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<summary>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
https://www.sentinelone.com/labs/building-a-custom-malware-analysis-lab-environment/
|
||||||
|
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
|
||||||
|
Building the right malware analysis environment is the first step for every malware researcher. When all system configurations and software installations are complete, you’re able to analyze and investigate malware properly. In this post, I wanted to share my own experiences and scripts to help ...
|
||||||
|
</summary>
|
||||||
|
|
||||||
|
|
||||||
|
</entry>
|
||||||
|
|
||||||
|
|
||||||
|
<entry>
|
||||||
|
<title>Mac M1 Run Diablo 4 - Links</title>
|
||||||
|
<link href="http://localhost:4000/posts/Mac-M1-Run-Diablo-4/" rel="alternate" type="text/html" title="Mac M1 Run Diablo 4 - Links" />
|
||||||
|
<published>2023-08-23T10:36:19-05:00</published>
|
||||||
|
|
||||||
|
<updated>2023-08-23T16:39:47-05:00</updated>
|
||||||
|
|
||||||
|
<id>http://localhost:4000/posts/Mac-M1-Run-Diablo-4/</id>
|
||||||
|
<content src="http://localhost:4000/posts/Mac-M1-Run-Diablo-4/" />
|
||||||
|
<author>
|
||||||
|
<name>Eric Reymundo</name>
|
||||||
|
</author>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<summary>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Resources that can help you get started with the Game Porting Tool Kit to run Diablo 4 on Mac M1 architecture.
|
||||||
|
|
||||||
|
|
||||||
|
Resources:
|
||||||
|
|
||||||
|
https://www.outcoldman.com/en/archive/2023/06/07/playing-diablo-4-on-macos
|
||||||
|
|
||||||
|
https://vineethbharadwaj.medium.com/m1-mac-switching-terminal-between-x86-64-and-arm64-e45f324184d9
|
||||||
|
|
||||||
|
https://stackoverflow.com/questions/17980759/xcode-select-active-developer-directory-error
|
||||||
|
|
||||||
|
...
|
||||||
|
</summary>
|
||||||
|
|
||||||
|
|
||||||
|
</entry>
|
||||||
|
|
||||||
|
|
||||||
|
<entry>
|
||||||
|
<title>M1 Mac - How to Switch the Terminal between x86_64 and arm64</title>
|
||||||
|
<link href="http://localhost:4000/posts/M1-Mac-How-to-switch-the-Terminal-between-x86_64-and-arm64/" rel="alternate" type="text/html" title="M1 Mac - How to Switch the Terminal between x86_64 and arm64" />
|
||||||
|
<published>2023-08-23T10:36:14-05:00</published>
|
||||||
|
|
||||||
|
<updated>2023-08-23T15:57:13-05:00</updated>
|
||||||
|
|
||||||
|
<id>http://localhost:4000/posts/M1-Mac-How-to-switch-the-Terminal-between-x86_64-and-arm64/</id>
|
||||||
|
<content src="http://localhost:4000/posts/M1-Mac-How-to-switch-the-Terminal-between-x86_64-and-arm64/" />
|
||||||
|
<author>
|
||||||
|
<name>Eric Reymundo</name>
|
||||||
|
</author>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<summary>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
How to Switch the Terminal between x86_64 and arm64
|
||||||
|
https://vineethbharadwaj.medium.com/m1-mac-switching-terminal-between-x86-64-and-arm64-e45f324184d9
|
||||||
|
|
||||||
|
Here is a simple writeup on how I switch between x86_64 and arm64 in the Terminal app on my MacBook Pro with Apple Silicon.
|
||||||
|
|
||||||
|
So you have the new Mac with Apple Silicon. However, a lot of your projects are compiled in x86 and/or you are still bu...
|
||||||
|
</summary>
|
||||||
|
|
||||||
|
|
||||||
|
</entry>
|
||||||
|
|
||||||
|
|
||||||
|
<entry>
|
||||||
|
<title>Diablo 4 - Shadow Rouge Build</title>
|
||||||
|
<link href="http://localhost:4000/posts/Diablo-4-Shadow-Rogue-Build/" rel="alternate" type="text/html" title="Diablo 4 - Shadow Rouge Build" />
|
||||||
|
<published>2023-08-23T10:36:08-05:00</published>
|
||||||
|
|
||||||
|
<updated>2023-08-23T15:37:29-05:00</updated>
|
||||||
|
|
||||||
|
<id>http://localhost:4000/posts/Diablo-4-Shadow-Rogue-Build/</id>
|
||||||
|
<content src="http://localhost:4000/posts/Diablo-4-Shadow-Rogue-Build/" />
|
||||||
|
<author>
|
||||||
|
<name>Eric Reymundo</name>
|
||||||
|
</author>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<summary>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
This is a beginner friendly build.
|
||||||
|
|
||||||
|
|
||||||
|
Skill Tree
|
||||||
|
|
||||||
|
https://d4builds.gg/builds/a175bae2-7adf-4155-a347-509d4efbb86c/
|
||||||
|
|
||||||
|
Skill Tree Guide
|
||||||
|
|
||||||
|
https://fextralife.com/diablo-4-shadow-rogue-build-twisting-blades/
|
||||||
|
|
||||||
|
Youtube Video: https://www.youtube.com/watch?v=IRgXnTgvZiE
|
||||||
|
|
||||||
|
Diablo 4 Shadow Rogue Build – Twisting Blades
|
||||||
|
|
||||||
|
May 31, 2023, Ryuga, 0
|
||||||
|
|
||||||
|
Diablo 4 Shadow Rogue Build Guide: In this Diablo 4 Rogue Cla...
|
||||||
|
</summary>
|
||||||
|
|
||||||
|
|
||||||
|
</entry>
|
||||||
|
|
||||||
|
</feed>
|
||||||
|
|
||||||
|
|
2392
_site/index.html
Normal file
11
_site/norobots/index.html
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en-US">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Redirecting…</title>
|
||||||
|
<link rel="canonical" href="http://localhost:4000/404.html">
|
||||||
|
<script>location="http://localhost:4000/404.html"</script>
|
||||||
|
<meta http-equiv="refresh" content="0; url=http://localhost:4000/404.html">
|
||||||
|
<meta name="robots" content="noindex">
|
||||||
|
<h1>Redirecting…</h1>
|
||||||
|
<a href="http://localhost:4000/404.html">Click here if you are not redirected.</a>
|
||||||
|
</html>
|
4493
_site/posts/Admonitions-Documentation/index.html
Normal file
2337
_site/posts/Diablo-4-Helltide-Events/index.html
Normal file
3640
_site/posts/Diablo-4-Shadow-Rogue-Build/index.html
Normal file
2418
_site/posts/Flaws.cloud-AWS/index.html
Normal file
2323
_site/posts/Mac-M1-Run-Diablo-4/index.html
Normal file
2604
_site/posts/SANS-SEC-504-Resources/index.html
Normal file
11
_site/posts/index.html
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en-US">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Redirecting…</title>
|
||||||
|
<link rel="canonical" href="http://localhost:4000/404.html">
|
||||||
|
<script>location="http://localhost:4000/404.html"</script>
|
||||||
|
<meta http-equiv="refresh" content="0; url=http://localhost:4000/404.html">
|
||||||
|
<meta name="robots" content="noindex">
|
||||||
|
<h1>Redirecting…</h1>
|
||||||
|
<a href="http://localhost:4000/404.html">Click here if you are not redirected.</a>
|
||||||
|
</html>
|
3684
_site/posts/text-and-typography/index.html
Normal file
1
_site/redirects.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"/norobots/":"http://localhost:4000/404.html","/assets/":"http://localhost:4000/404.html","/posts/":"http://localhost:4000/404.html"}
|
5
_site/robots.txt
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
User-agent: *
|
||||||
|
|
||||||
|
Disallow: /norobots/
|
||||||
|
|
||||||
|
Sitemap: http://localhost:4000/sitemap.xml
|
109
_site/sitemap.xml
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/posts/text-and-typography/</loc>
|
||||||
|
<lastmod>2023-08-23T16:34:20-05:00</lastmod>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/posts/Admonitions-Documentation/</loc>
|
||||||
|
<lastmod>2023-08-23T15:37:29-05:00</lastmod>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/posts/SANS-SEC-504-Resources/</loc>
|
||||||
|
<lastmod>2023-08-23T15:37:29-05:00</lastmod>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/posts/Diablo-4-Helltide-Events/</loc>
|
||||||
|
<lastmod>2023-08-23T15:37:29-05:00</lastmod>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/posts/Diablo-4-Shadow-Rogue-Build/</loc>
|
||||||
|
<lastmod>2023-08-23T15:37:29-05:00</lastmod>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/posts/M1-Mac-How-to-switch-the-Terminal-between-x86_64-and-arm64/</loc>
|
||||||
|
<lastmod>2023-08-23T15:57:13-05:00</lastmod>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/posts/Mac-M1-Run-Diablo-4/</loc>
|
||||||
|
<lastmod>2023-08-23T16:39:47-05:00</lastmod>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/posts/Building-a-Custom-Malware-Analysis-Lab-Environment/</loc>
|
||||||
|
<lastmod>2023-08-23T15:37:29-05:00</lastmod>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/posts/Flaws.cloud-AWS/</loc>
|
||||||
|
<lastmod>2023-08-23T16:07:17-05:00</lastmod>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/categories/</loc>
|
||||||
|
<lastmod>2023-08-23T16:54:25-05:00</lastmod>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/tags/</loc>
|
||||||
|
<lastmod>2023-08-23T16:54:25-05:00</lastmod>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/archives/</loc>
|
||||||
|
<lastmod>2023-08-23T16:54:25-05:00</lastmod>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/about/</loc>
|
||||||
|
<lastmod>2023-08-23T16:54:25-05:00</lastmod>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/tags/typography/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/tags/docs/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/tags/cheatsheets/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/tags/sans/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/tags/sec504/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/tags/gcih/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/tags/cybersecurity/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/tags/diablo/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/tags/diablo-4/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/tags/terminal/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/tags/macos/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/tags/m1/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/tags/apple-silicon/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/tags/red-teaming/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/tags/cloud/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/categories/blogging/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://localhost:4000/categories/demo/</loc>
|
||||||
|
</url>
|
||||||
|
</urlset>
|
85
_site/sw.js
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
self.importScripts('/assets/js/data/swcache.js');
|
||||||
|
|
||||||
|
const cacheName = 'chirpy-20230823.165426';
|
||||||
|
|
||||||
|
function verifyDomain(url) {
|
||||||
|
for (const domain of allowedDomains) {
|
||||||
|
const regex = RegExp(`^http(s)?:\/\/${domain}\/`);
|
||||||
|
if (regex.test(url)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function isExcluded(url) {
|
||||||
|
for (const item of denyUrls) {
|
||||||
|
if (url === item) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.addEventListener('install', event => {
|
||||||
|
event.waitUntil(
|
||||||
|
caches.open(cacheName).then(cache => {
|
||||||
|
return cache.addAll(resource);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
self.addEventListener('activate', event => {
|
||||||
|
event.waitUntil(
|
||||||
|
caches.keys().then(keyList => {
|
||||||
|
return Promise.all(
|
||||||
|
keyList.map(key => {
|
||||||
|
if (key !== cacheName) {
|
||||||
|
return caches.delete(key);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
self.addEventListener('message', (event) => {
|
||||||
|
if (event.data === 'SKIP_WAITING') {
|
||||||
|
self.skipWaiting();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
self.addEventListener('fetch', event => {
|
||||||
|
event.respondWith(
|
||||||
|
caches.match(event.request).then(response => {
|
||||||
|
if (response) {
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
|
return fetch(event.request).then(response => {
|
||||||
|
const url = event.request.url;
|
||||||
|
|
||||||
|
if (event.request.method !== 'GET' ||
|
||||||
|
!verifyDomain(url) ||
|
||||||
|
isExcluded(url)) {
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
see: <https://developers.google.com/web/fundamentals/primers/service-workers#cache_and_return_requests>
|
||||||
|
*/
|
||||||
|
let responseToCache = response.clone();
|
||||||
|
|
||||||
|
caches.open(cacheName).then(cache => {
|
||||||
|
/* console.log('[sw] Caching new resource: ' + event.request.url); */
|
||||||
|
cache.put(event.request, responseToCache);
|
||||||
|
});
|
||||||
|
|
||||||
|
return response;
|
||||||
|
});
|
||||||
|
})
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
1670
_site/tags/apple-silicon/index.html
Normal file
1670
_site/tags/cheatsheets/index.html
Normal file
1670
_site/tags/cloud/index.html
Normal file
1716
_site/tags/cybersecurity/index.html
Normal file
1716
_site/tags/diablo-4/index.html
Normal file
1693
_site/tags/diablo/index.html
Normal file
1716
_site/tags/docs/index.html
Normal file
1670
_site/tags/gcih/index.html
Normal file
1703
_site/tags/index.html
Normal file
1693
_site/tags/m1/index.html
Normal file
1670
_site/tags/macos/index.html
Normal file
1670
_site/tags/red-teaming/index.html
Normal file
1670
_site/tags/sans/index.html
Normal file
1670
_site/tags/sec504/index.html
Normal file
1716
_site/tags/terminal/index.html
Normal file
1670
_site/tags/typography/index.html
Normal file
8
_site/unregister.js
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
if ('serviceWorker' in navigator) {
|
||||||
|
navigator.serviceWorker.getRegistrations().then((registrations) => {
|
||||||
|
for (let reg of registrations) {
|
||||||
|
reg.unregister();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|