summaryrefslogtreecommitdiff
path: root/Resources
diff options
context:
space:
mode:
authorNavan Chauhan <navanchauhan@gmail.com>2021-05-26 23:58:29 +0530
committerNavan Chauhan <navanchauhan@gmail.com>2021-05-26 23:58:29 +0530
commitbfd3a825c2d73bd842769cdfaf11ad0319a3bd6e (patch)
tree7b2c052bdf539f433ed3ab6bd133b6d46c7ff7e5 /Resources
parent2cb28c0dd749611e6edd4688955769bda3381453 (diff)
added code and content
Diffstat (limited to 'Resources')
-rw-r--r--Resources/CNAME1
-rw-r--r--Resources/Themes/styles.css401
-rw-r--r--Resources/assets/disqus.js5
-rw-r--r--Resources/assets/gciTales/01-teachableMachines/.01-collect.png.icloudbin0 -> 164 bytes
-rw-r--r--Resources/assets/gciTales/01-teachableMachines/02-train.pngbin0 -> 1673773 bytes
-rw-r--r--Resources/assets/gciTales/01-teachableMachines/03-label.pngbin0 -> 134577 bytes
-rw-r--r--Resources/assets/gciTales/01-teachableMachines/04-alert.pngbin0 -> 45710 bytes
-rw-r--r--Resources/assets/gciTales/01-teachableMachines/05-html.pngbin0 -> 15084 bytes
-rw-r--r--Resources/assets/gciTales/01-teachableMachines/06-js.pngbin0 -> 117349 bytes
-rw-r--r--Resources/assets/gciTales/01-teachableMachines/07-eg.pngbin0 -> 787109 bytes
-rw-r--r--Resources/assets/gciTales/01-teachableMachines/08-eg.pngbin0 -> 832865 bytes
-rw-r--r--Resources/assets/gciTales/03-regression/1.pngbin0 -> 39478 bytes
-rw-r--r--Resources/assets/gciTales/03-regression/2.pngbin0 -> 67134 bytes
-rw-r--r--Resources/assets/gciTales/03-regression/3.pngbin0 -> 59514 bytes
-rw-r--r--Resources/assets/gciTales/03-regression/4.pngbin0 -> 58153 bytes
-rw-r--r--Resources/assets/gciTales/03-regression/5.pngbin0 -> 58824 bytes
-rw-r--r--Resources/assets/gciTales/03-regression/6.pngbin0 -> 59554 bytes
-rw-r--r--Resources/assets/main.css369
-rw-r--r--Resources/assets/manup.min.js1
-rw-r--r--Resources/assets/posts/arjs/.03-knot.png.icloudbin0 -> 161 bytes
-rw-r--r--Resources/assets/posts/arjs/01-ngrok.pngbin0 -> 950543 bytes
-rw-r--r--Resources/assets/posts/arjs/02-box-demo.gifbin0 -> 1689985 bytes
-rw-r--r--Resources/assets/posts/arjs/04-nyan.gifbin0 -> 702741 bytes
-rw-r--r--Resources/assets/posts/arjs/05-GitHub.jpgbin0 -> 615523 bytes
-rw-r--r--Resources/assets/posts/autodock-vina/s1.pngbin0 -> 914699 bytes
-rw-r--r--Resources/assets/posts/kaggle-colab/ss1.pngbin0 -> 151575 bytes
-rw-r--r--Resources/assets/posts/kaggle-colab/ss2.pngbin0 -> 43899 bytes
-rw-r--r--Resources/assets/posts/kaggle-colab/ss3.pngbin0 -> 54283 bytes
-rw-r--r--Resources/assets/posts/kaggle-colab/ss4.pngbin0 -> 14510 bytes
-rw-r--r--Resources/assets/posts/obs/.01-pewdiepie.png.icloudbin0 -> 168 bytes
-rw-r--r--Resources/assets/posts/obs/.11.png.icloudbin0 -> 156 bytes
-rw-r--r--Resources/assets/posts/obs/.3-usb.png.icloudbin0 -> 159 bytes
-rw-r--r--Resources/assets/posts/obs/.5S.png.icloudbin0 -> 156 bytes
-rw-r--r--Resources/assets/posts/obs/.mirrorless.png.icloudbin0 -> 164 bytes
-rw-r--r--Resources/assets/posts/obs/.normal.png.icloudbin0 -> 160 bytes
-rw-r--r--Resources/assets/posts/obs/.usb.png.icloudbin0 -> 157 bytes
-rw-r--r--Resources/assets/posts/obs/01-media-source.pngbin0 -> 144620 bytes
-rw-r--r--Resources/assets/posts/obs/01-panel.pngbin0 -> 120308 bytes
-rw-r--r--Resources/assets/posts/obs/02-remote.pngbin0 -> 930081 bytes
-rw-r--r--Resources/assets/posts/obs/021-rotate.pngbin0 -> 725295 bytes
-rw-r--r--Resources/assets/posts/obs/021-source.pngbin0 -> 91620 bytes
-rw-r--r--Resources/assets/posts/obs/dics.css229
-rw-r--r--Resources/assets/posts/obs/dics.js638
-rw-r--r--Resources/assets/posts/open-babel/s1.pngbin0 -> 604137 bytes
-rw-r--r--Resources/assets/posts/open-babel/s2.jpgbin0 -> 132781 bytes
-rw-r--r--Resources/assets/posts/open-babel/s3.jpgbin0 -> 314900 bytes
-rw-r--r--Resources/assets/posts/open-peeps/ex-1.svg1
-rw-r--r--Resources/assets/résumé.pdfbin0 -> 84216 bytes
-rw-r--r--Resources/assets/sakura.css186
-rw-r--r--Resources/googlecb0897d479c87d97.html1
-rw-r--r--Resources/images/04d0580b-d347-476a-232d-9568839851cd.webPlatform.pngbin0 -> 1711 bytes
-rw-r--r--Resources/images/14a6e126-4866-93de-8df5-e0e6a3c65da1.webPlatform.pngbin0 -> 748 bytes
-rw-r--r--Resources/images/15294abc-6c7c-ffb8-df8d-d2fad23f50b0.webPlatform.pngbin0 -> 471 bytes
-rw-r--r--Resources/images/6b5f7f70-557f-0e4b-3d76-127534525db9.webPlatform.pngbin0 -> 600 bytes
-rw-r--r--Resources/images/82e24f17-2e71-90d8-67a7-587163282ebf.webPlatform.pngbin0 -> 3127 bytes
-rw-r--r--Resources/images/8c0ffe9e-b615-96cd-3e18-ab4307c859a0.webPlatform.pngbin0 -> 1674 bytes
-rw-r--r--Resources/images/9384518b-2a6c-0abc-136c-8c8faf49c71b.webPlatform.pngbin0 -> 1061 bytes
-rw-r--r--Resources/images/9bf4aee8-92e3-932f-5388-7731928b5692.webPlatform.pngbin0 -> 879 bytes
-rw-r--r--Resources/images/9dc22996-fd1b-b2d3-3627-cef4fa224e25.webPlatform.pngbin0 -> 789 bytes
-rw-r--r--Resources/images/afd91c53-cfd0-b52e-ca49-1db0cc292b7d.webPlatform.pngbin0 -> 577 bytes
-rw-r--r--Resources/images/b0cac729-56cb-2a63-7e8b-ac62a038a023.webPlatform.pngbin0 -> 1033 bytes
-rw-r--r--Resources/images/bb0aca46-4612-c284-055f-58850c0730bd.webPlatform.pngbin0 -> 984 bytes
-rw-r--r--Resources/images/c5840a63-85f5-62b0-c68f-2faa4aaea42b.webPlatform.pngbin0 -> 11426 bytes
-rw-r--r--Resources/images/cbac5b1d-0299-9db6-3747-c7aeaaaa37d0.webPlatform.pngbin0 -> 1517 bytes
-rw-r--r--Resources/images/e429a798-7e86-1f02-565e-39dfab41fe36.webPlatform.pngbin0 -> 24811 bytes
-rw-r--r--Resources/images/f1579c61-f17f-ff49-3f97-e942f202bebf.webPlatform.pngbin0 -> 1293 bytes
-rw-r--r--Resources/images/f178697f-630b-bafd-7c7d-e1287b98a969.webPlatform.pngbin0 -> 814 bytes
-rw-r--r--Resources/images/f400aaaa-861c-78c0-0919-07a886e57304.webPlatform.pngbin0 -> 3966 bytes
-rw-r--r--Resources/images/f7842765-fff5-aa39-9f7f-fdd3024d4056.webPlatform.pngbin0 -> 1363 bytes
-rw-r--r--Resources/images/favicon.pngbin0 -> 411 bytes
-rw-r--r--Resources/images/logo.pngbin0 -> 498 bytes
-rw-r--r--Resources/images/me.jpegbin0 -> 105079 bytes
-rw-r--r--Resources/manifest.json119
-rw-r--r--Resources/pwabuilder-sw-register.js19
-rw-r--r--Resources/pwabuilder-sw.js83
75 files changed, 2053 insertions, 0 deletions
diff --git a/Resources/CNAME b/Resources/CNAME
new file mode 100644
index 0000000..ce3a35d
--- /dev/null
+++ b/Resources/CNAME
@@ -0,0 +1 @@
+web.navan.dev
diff --git a/Resources/Themes/styles.css b/Resources/Themes/styles.css
new file mode 100644
index 0000000..4e658d7
--- /dev/null
+++ b/Resources/Themes/styles.css
@@ -0,0 +1,401 @@
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ font-size: 16px;
+ -webkit-text-size-adjust: 100%;
+}
+
+body {
+ background: #eee;
+ color: #000;
+ font-family: -apple-system, BlinkMacSystemFont, Helvetica, Arial;
+ text-align: center;
+}
+
+.wrapper {
+ max-width: 900px;
+ margin-left: auto;
+ margin-right: auto;
+ padding: 40px;
+ text-align: left;
+}
+
+header {
+
+ background: #fff;
+ position: relative;
+ color: #ededed;
+ line-height: 1.5em;
+ padding: 0 20px;
+}
+
+/*
+
+header {
+ background: #ededed;
+ margin-bottom: 0em;
+ padding-bottom: 2em;
+ left: 0px;
+ top: 0px;
+ height: 8em;
+ width: 100%;
+}
+.header-background {
+ background-image: url(images/logo.png);
+ background-size: 100% 100%;
+ background-repeat: no-repeat;
+ background-size: cover;
+ background-position: center;
+ height: 200px;
+}
+*/
+
+header .wrapper {
+ padding-top: 20px;
+ padding-bottom: 20px;
+ text-align: left;
+}
+
+header a {
+ text-decoration: none;
+}
+
+header .site-name {
+ color: #000;
+ margin: 0;
+ cursor: pointer;
+ font-weight: 50;
+ font-size: 3.5em; /*#2.3em;*/
+ line-height: 1em;
+ letter-spacing: 1px;
+}
+
+nav {
+ /*margin-top: 0.5em;*/
+ text-align: left; /* right */
+}
+
+nav li {
+ margin-top: 0.5em;
+ display: inline-block;
+ background-color: #000;
+ color: #ddd;
+ padding: 4px 6px;
+ border-radius: 5px;
+ margin-right: 5px;
+
+}
+
+nav li:hover {
+ color: #000;
+ background-color: #ddd;
+}
+h1 {
+ margin-bottom: 20px;
+ font-size: 2em;
+}
+
+h2 {
+ margin: 20px 0;
+ font-size: 1.5em;
+}
+
+p {
+ margin-bottom: 10px;
+ margin-top: 5px;
+}
+
+a {
+ color: inherit;
+
+}
+
+.description {
+ margin-bottom: 20px;
+}
+
+.item-list > li {
+ display: block;
+ padding: 20px;
+ border-radius: 20px;
+ background-color: #d3d3d3;
+ margin-bottom: 20px
+}
+
+.item-list > li:last-child {
+ margin-bottom: 0;
+}
+
+.item-list h1 {
+ margin-bottom: 0px; /*15px*/
+ font-size: 1.3em;
+}
+.item-list a {
+ text-decoration: none;
+}
+
+.item-list p {
+ margin-bottom: 0;
+}
+
+.reading-time {
+ display: inline-block;
+ border-radius: 5px;
+ background-color: #ddd;
+ color: #000;
+ padding: 4px 4px;
+ margin-bottom: 5px;
+ margin-right: 5px;
+
+}
+
+.tag-list {
+ margin-bottom: 5px; /* 15px */
+}
+
+.tag-list li,
+.tag {
+ display: inline-block;
+ background-color: #000;
+ color: #ddd;
+ padding: 4px 6px;
+ border-radius: 5px;
+ margin-right: 5px;
+ margin-top: 0.5em;
+}
+
+.tag-list a,
+.tag a {
+ text-decoration: none;
+}
+
+.item-page .tag-list {
+ display: inline-block;
+}
+
+.content {
+ margin-bottom: 40px;
+}
+
+.browse-all {
+ display: block;
+ margin-bottom: 30px;
+}
+
+.all-tags li {
+ font-size: 1.4em;
+ margin-right: 10px;
+ padding: 6px 10px;
+ margin-top: 1em;
+}
+
+img {
+ max-width: 100%;
+ margin-bottom: 1em;
+ margin-top: 1em;
+ width: auto\9;
+ height: auto;
+ vertical-align: middle;
+ border: 0;
+ -ms-interpolation-mode: bicubic;
+}
+
+footer {
+ color: #000;
+}
+
+
+
+pre {
+ overflow-x: auto;
+ font-family: Monaco,Consolas,"Lucida Console",monospace;
+ display: block;
+ background-color: #fdf6e3;
+ color: #586e75;
+ margin-bottom: 1em;
+ margin-top: 1em;
+ border-radius: 4px;
+}
+
+.highlight { background-color: #fdf6e3; color: #586e75; }
+.highlight .c { color: #627272; }
+.highlight .err { color: #586e75; }
+.highlight .g { color: #586e75; }
+.highlight .k { color: #677600; }
+.highlight .l { color: #586e75; }
+.highlight .n { color: #586e75; }
+.highlight .o { color: #677600; }
+.highlight .x { color: #c14715; }
+.highlight .p { color: #586e75; }
+.highlight .cm { color: #627272; }
+.highlight .cp { color: #677600; }
+.highlight .c1 { color: #627272; }
+.highlight .cs { color: #677600; }
+.highlight .gd { color: #217d74; }
+.highlight .ge { color: #586e75; font-style: italic; }
+.highlight .gr { color: #d72825; }
+.highlight .gh { color: #c14715; }
+.highlight .gi { color: #677600; }
+.highlight .go { color: #586e75; }
+.highlight .gp { color: #586e75; }
+.highlight .gs { color: #586e75; font-weight: bold; }
+.highlight .gu { color: #c14715; }
+.highlight .gt { color: #586e75; }
+.highlight .kc { color: #c14715; }
+.highlight .kd { color: #1f76b6; }
+.highlight .kn { color: #677600; }
+.highlight .kp { color: #677600; }
+.highlight .kr { color: #1f76b6; }
+.highlight .kt { color: #d72825; }
+.highlight .ld { color: #586e75; }
+.highlight .m { color: #217d74; }
+.highlight .s { color: #217d74; }
+.highlight .na { color: #586e75; }
+.highlight .nb { color: #8d6900; }
+.highlight .nc { color: #1f76b6; }
+.highlight .no { color: #c14715; }
+.highlight .nd { color: #1f76b6; }
+.highlight .ni { color: #c14715; }
+.highlight .ne { color: #c14715; }
+.highlight .nf { color: #1f76b6; }
+.highlight .nl { color: #586e75; }
+.highlight .nn { color: #586e75; }
+.highlight .nx { color: #586e75; }
+.highlight .py { color: #586e75; }
+.highlight .nt { color: #1f76b6; }
+.highlight .nv { color: #1f76b6; }
+.highlight .ow { color: #677600; }
+.highlight .w { color: #586e75; }
+.highlight .mf { color: #217d74; }
+.highlight .mh { color: #217d74; }
+.highlight .mi { color: #217d74; }
+.highlight .mo { color: #217d74; }
+.highlight .sb { color: #627272; }
+.highlight .sc { color: #217d74; }
+.highlight .sd { color: #586e75; }
+.highlight .s2 { color: #217d74; }
+.highlight .se { color: #c14715; }
+.highlight .sh { color: #586e75; }
+.highlight .si { color: #217d74; }
+.highlight .sx { color: #217d74; }
+.highlight .sr { color: #d72825; }
+.highlight .s1 { color: #217d74; }
+.highlight .ss { color: #217d74; }
+.highlight .bp { color: #1f76b6; }
+.highlight .vc { color: #1f76b6; }
+.highlight .vg { color: #1f76b6; }
+.highlight .vi { color: #1f76b6; }
+.highlight .il { color: #217d74; }
+
+
+@media (prefers-color-scheme: dark) {
+ .reading-time {
+ background-color: #000;
+ color: #ddd;
+ }
+ body {
+ background-color: #222;
+ }
+
+ body,
+ header .site-name {
+ color: #ddd;
+ }
+ nav li {
+ background-color: #ddd;
+ color: #000;
+
+ }
+ nav li:hover {
+ color: #ddd;
+ background-color: #000;
+ }
+
+ .item-list > li {
+ background-color: #333;
+ }
+
+ header {
+ background-color: #000;
+ }
+ footer {
+ color: #ddd;
+ }
+
+ pre {
+ background-color: #002b36;
+ color: #93a1a1;
+ }
+
+ .highlight { background-color: #002b36; color: #93a1a1; }
+ .highlight .c { color: #759299; }
+ .highlight .err { color: #93a1a1; }
+ .highlight .g { color: #93a1a1; }
+ .highlight .k { color: #859900; }
+ .highlight .l { color: #93a1a1; }
+ .highlight .n { color: #93a1a1; }
+ .highlight .o { color: #859900; }
+ .highlight .x { color: #e9662f; }
+ .highlight .p { color: #93a1a1; }
+ .highlight .cm { color: #759299; }
+ .highlight .cp { color: #859900; }
+ .highlight .c1 { color: #759299; }
+ .highlight .cs { color: #859900; }
+ .highlight .gd { color: #2aa198; }
+ .highlight .ge { color: #93a1a1; font-style: italic; }
+ .highlight .gr { color: #e8625f; }
+ .highlight .gh { color: #e9662f; }
+ .highlight .gi { color: #859900; }
+ .highlight .go { color: #93a1a1; }
+ .highlight .gp { color: #93a1a1; }
+ .highlight .gs { color: #93a1a1; font-weight: bold; }
+ .highlight .gu { color: #e9662f; }
+ .highlight .gt { color: #93a1a1; }
+ .highlight .kc { color: #e9662f; }
+ .highlight .kd { color: #3294da; }
+ .highlight .kn { color: #859900; }
+ .highlight .kp { color: #859900; }
+ .highlight .kr { color: #3294da; }
+ .highlight .kt { color: #e8625f; }
+ .highlight .ld { color: #93a1a1; }
+ .highlight .m { color: #2aa198; }
+ .highlight .s { color: #2aa198; }
+ .highlight .na { color: #93a1a1; }
+ .highlight .nb { color: #B58900; }
+ .highlight .nc { color: #3294da; }
+ .highlight .no { color: #e9662f; }
+ .highlight .nd { color: #3294da; }
+ .highlight .ni { color: #e9662f; }
+ .highlight .ne { color: #e9662f; }
+ .highlight .nf { color: #3294da; }
+ .highlight .nl { color: #93a1a1; }
+ .highlight .nn { color: #93a1a1; }
+ .highlight .nx { color: #93a1a1; }
+ .highlight .py { color: #93a1a1; }
+ .highlight .nt { color: #3294da; }
+ .highlight .nv { color: #3294da; }
+ .highlight .ow { color: #859900; }
+ .highlight .w { color: #93a1a1; }
+ .highlight .mf { color: #2aa198; }
+ .highlight .mh { color: #2aa198; }
+ .highlight .mi { color: #2aa198; }
+ .highlight .mo { color: #2aa198; }
+ .highlight .sb { color: #759299; }
+ .highlight .sc { color: #2aa198; }
+ .highlight .sd { color: #93a1a1; }
+ .highlight .s2 { color: #2aa198; }
+ .highlight .se { color: #e9662f; }
+ .highlight .sh { color: #93a1a1; }
+ .highlight .si { color: #2aa198; }
+ .highlight .sx { color: #2aa198; }
+ .highlight .sr { color: #e8625f; }
+ .highlight .s1 { color: #2aa198; }
+ .highlight .ss { color: #2aa198; }
+ .highlight .bp { color: #3294da; }
+ .highlight .vc { color: #3294da; }
+ .highlight .vg { color: #3294da; }
+ .highlight .vi { color: #3294da; }
+ .highlight .il { color: #2aa198; }
+}
+
diff --git a/Resources/assets/disqus.js b/Resources/assets/disqus.js
new file mode 100644
index 0000000..0c52381
--- /dev/null
+++ b/Resources/assets/disqus.js
@@ -0,0 +1,5 @@
+(function() {
+ var t = document,
+ e = t.createElement("script");
+ e.src = "https://navan-chauhan.disqus.com/embed.js", e.setAttribute("data-timestamp", +new Date), (t.head || t.body).appendChild(e)
+})();
diff --git a/Resources/assets/gciTales/01-teachableMachines/.01-collect.png.icloud b/Resources/assets/gciTales/01-teachableMachines/.01-collect.png.icloud
new file mode 100644
index 0000000..b291112
--- /dev/null
+++ b/Resources/assets/gciTales/01-teachableMachines/.01-collect.png.icloud
Binary files differ
diff --git a/Resources/assets/gciTales/01-teachableMachines/02-train.png b/Resources/assets/gciTales/01-teachableMachines/02-train.png
new file mode 100644
index 0000000..a69fd63
--- /dev/null
+++ b/Resources/assets/gciTales/01-teachableMachines/02-train.png
Binary files differ
diff --git a/Resources/assets/gciTales/01-teachableMachines/03-label.png b/Resources/assets/gciTales/01-teachableMachines/03-label.png
new file mode 100644
index 0000000..efe450d
--- /dev/null
+++ b/Resources/assets/gciTales/01-teachableMachines/03-label.png
Binary files differ
diff --git a/Resources/assets/gciTales/01-teachableMachines/04-alert.png b/Resources/assets/gciTales/01-teachableMachines/04-alert.png
new file mode 100644
index 0000000..f648bad
--- /dev/null
+++ b/Resources/assets/gciTales/01-teachableMachines/04-alert.png
Binary files differ
diff --git a/Resources/assets/gciTales/01-teachableMachines/05-html.png b/Resources/assets/gciTales/01-teachableMachines/05-html.png
new file mode 100644
index 0000000..f917c07
--- /dev/null
+++ b/Resources/assets/gciTales/01-teachableMachines/05-html.png
Binary files differ
diff --git a/Resources/assets/gciTales/01-teachableMachines/06-js.png b/Resources/assets/gciTales/01-teachableMachines/06-js.png
new file mode 100644
index 0000000..173a8aa
--- /dev/null
+++ b/Resources/assets/gciTales/01-teachableMachines/06-js.png
Binary files differ
diff --git a/Resources/assets/gciTales/01-teachableMachines/07-eg.png b/Resources/assets/gciTales/01-teachableMachines/07-eg.png
new file mode 100644
index 0000000..cc8198e
--- /dev/null
+++ b/Resources/assets/gciTales/01-teachableMachines/07-eg.png
Binary files differ
diff --git a/Resources/assets/gciTales/01-teachableMachines/08-eg.png b/Resources/assets/gciTales/01-teachableMachines/08-eg.png
new file mode 100644
index 0000000..b1261fa
--- /dev/null
+++ b/Resources/assets/gciTales/01-teachableMachines/08-eg.png
Binary files differ
diff --git a/Resources/assets/gciTales/03-regression/1.png b/Resources/assets/gciTales/03-regression/1.png
new file mode 100644
index 0000000..b07d172
--- /dev/null
+++ b/Resources/assets/gciTales/03-regression/1.png
Binary files differ
diff --git a/Resources/assets/gciTales/03-regression/2.png b/Resources/assets/gciTales/03-regression/2.png
new file mode 100644
index 0000000..53531ad
--- /dev/null
+++ b/Resources/assets/gciTales/03-regression/2.png
Binary files differ
diff --git a/Resources/assets/gciTales/03-regression/3.png b/Resources/assets/gciTales/03-regression/3.png
new file mode 100644
index 0000000..542d76e
--- /dev/null
+++ b/Resources/assets/gciTales/03-regression/3.png
Binary files differ
diff --git a/Resources/assets/gciTales/03-regression/4.png b/Resources/assets/gciTales/03-regression/4.png
new file mode 100644
index 0000000..16101cd
--- /dev/null
+++ b/Resources/assets/gciTales/03-regression/4.png
Binary files differ
diff --git a/Resources/assets/gciTales/03-regression/5.png b/Resources/assets/gciTales/03-regression/5.png
new file mode 100644
index 0000000..36b9c26
--- /dev/null
+++ b/Resources/assets/gciTales/03-regression/5.png
Binary files differ
diff --git a/Resources/assets/gciTales/03-regression/6.png b/Resources/assets/gciTales/03-regression/6.png
new file mode 100644
index 0000000..479d0e5
--- /dev/null
+++ b/Resources/assets/gciTales/03-regression/6.png
Binary files differ
diff --git a/Resources/assets/main.css b/Resources/assets/main.css
new file mode 100644
index 0000000..99962e2
--- /dev/null
+++ b/Resources/assets/main.css
@@ -0,0 +1,369 @@
+/* Generated by Pygments CSS Theme Builder - https://jwarby.github.io/jekyll-pygments-themes/builder.html */
+/* Base Style */
+.codehilite pre {
+ overflow-x:auto;
+ color: #fefefe;
+ text-shadow: 0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975;
+ background-image: linear-gradient(to bottom, #2a2139 75%, #34294f);
+ background-color: #2a2139;
+ margin-bottom: 1rem;
+ margin-top: 1rem;
+}
+/* Punctuation */
+.codehilite .p {
+ color: #ff7edb;
+ text-shadow: 0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3;
+ background-color: #2a2139;
+}
+/* Error */
+.codehilite .err {
+ color: #ff7edb;
+ text-shadow: 0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3;
+ background-color: #2a2139;
+}
+/* Base Style */
+.codehilite .n {
+ color: #ff7edb;
+ text-shadow: 0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3;
+ text-shadow: 0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3;
+ background-color: transparent;
+}
+/* Name Attribute */
+.codehilite .na {
+ color: #fede5d;
+ background-color: transparent;
+}
+/* Name Builtin */
+.codehilite .nb {
+ color: #fe4450;
+ background-color: transparent;
+}
+/* Name Class */
+.codehilite .nc {
+ color: #fe4450;
+ background-color: transparent;
+}
+/* Name Constant */
+.codehilite .no {
+ color: transparent;
+ background-color: transparent;
+}
+/* Name Decorator */
+.codehilite .nd {
+ color: transparent;
+ background-color: transparent;
+}
+/* Name Entity */
+.codehilite .ni {
+ color: transparent;
+ background-color: transparent;
+}
+/* Name Exception */
+.codehilite .ne {
+ color: #fe4450;
+ background-color: transparent;
+}
+/* Name Function */
+.codehilite .nf {
+ color: #36f9f6;
+ background-color: transparent;
+}
+/* Name Label */
+.codehilite .nl {
+ color: transparent;
+ background-color: transparent;
+}
+/* Name Namespace */
+.codehilite .nn {
+ color: #f97e72;
+ background-color: transparent;
+}
+/* Name Other */
+.codehilite .nx {
+ color: #36f9f6;
+ background-color: transparent;
+}
+/* Name Property */
+.codehilite .py {
+ color: transparent;
+ background-color: transparent;
+}
+/* Name Tag */
+.codehilite .nt {
+ color: #72f1b8;
+ text-shadow: 0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475;
+ background-color: transparent;
+}
+/* Name Variable */
+.codehilite .nv {
+ color: #bbbbbb;
+ background-color: transparent;
+}
+/* Name Variable Class */
+.codehilite .vc {
+ color: transparent;
+ background-color: transparent;
+}
+/* Name Variable Global */
+.codehilite .vg {
+ color: transparent;
+ background-color: transparent;
+}
+/* Name Variable Instance */
+.codehilite .vi {
+ color: transparent;
+ background-color: transparent;
+}
+/* Name Builtin Pseudo */
+.codehilite .bp {
+ color: #36f9f6;
+ background-color: transparent;
+}
+/* Base Style */
+.codehilite .g {
+ color: transparent;
+ background-color: transparent;
+}
+/* */
+.codehilite .gd {
+ color: transparent;
+ background-color: transparent;
+}
+/* Base Style */
+.codehilite .o {
+ color: #fefefe;
+ text-shadow: 0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975;
+ background-color: transparent;
+}
+/* Operator Word */
+.codehilite .ow {
+ color: #fede5d;
+ background-color: transparent;
+}
+/* Base Style */
+.codehilite .c {
+ color: #848bbd;
+ background-color: transparent;
+}
+/* Comment Multiline */
+.codehilite .cm {
+ color: #848bbd;
+ background-color: transparent;
+}
+/* Comment Preproc */
+.codehilite .cp {
+ color: #848bbd;
+ background-color: transparent;
+}
+/* Comment Single */
+.codehilite .c1 {
+ color: #848bbd;
+ background-color: transparent;
+}
+/* Comment Special */
+.codehilite .cs {
+ color: #848bbd;
+ background-color: transparent;
+}
+/* Base Style */
+.codehilite .k {
+ color: #fede5d;
+ background-color: transparent;
+}
+/* Keyword Constant */
+.codehilite .kc {
+ color: #f97e72;
+ background-color: transparent;
+}
+/* Keyword Declaration */
+.codehilite .kd {
+ color: #fede5d;
+ background-color: transparent;
+}
+/* Keyword Namespace */
+.codehilite .kn {
+ color: #fede5d;
+ background-color: transparent;
+}
+/* Keyword Pseudo */
+.codehilite .kp {
+ color: #fede5d;
+ background-color: transparent;
+}
+/* Keyword Reserved */
+.codehilite .kr {
+ color: #fede5d;
+ background-color: transparent;
+}
+/* Keyword Type */
+.codehilite .kt {
+ color: #fede5d;
+ background-color: transparent;
+}
+/* Base Style */
+.codehilite .l {
+ color: #36f9f6;
+ background-color: transparent;
+}
+/* Literal Date */
+.codehilite .ld {
+ color: #36f9f6;
+ background-color: transparent;
+}
+/* Literal Number */
+.codehilite .m {
+ color: #36f9f6;
+ background-color: transparent;
+}
+/* Literal Number Float */
+.codehilite .mf {
+ color: #36f9f6;
+ background-color: transparent;
+}
+/* Literal Number Hex */
+.codehilite .mh {
+ color: #36f9f6;
+ background-color: transparent;
+}
+/* Literal Number Integer */
+.codehilite .mi {
+ color: #f97e72;
+ background-color: transparent;
+}
+/* Literal Number Oct */
+.codehilite .mo {
+ color: #36f9f6;
+ background-color: transparent;
+}
+/* Literal Number Integer Long */
+.codehilite .il {
+ color: #36f9f6;
+ background-color: transparent;
+}
+/* Literal String */
+.codehilite .s {
+ color: #ff8b39;
+ text-shadow: 0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575;
+ background-color: transparent;
+}
+/* Literal String Backtick */
+.codehilite .sb {
+ color: #36f9f6;
+ background-color: transparent;
+}
+/* Literal String Char */
+.codehilite .sc {
+ color: #36f9f6;
+ background-color: transparent;
+}
+/* Literal String Doc */
+.codehilite .sd {
+ color: #848bbd;
+ background-color: transparent;
+}
+/* Literal String Double */
+.codehilite .s2 {
+ color: #36f9f6;
+ background-color: transparent;
+}
+/* Literal String Escape */
+.codehilite .se {
+ color: #36f9f6;
+ background-color: transparent;
+}
+/* Literal String Heredoc */
+.codehilite .sh {
+ color: #36f9f6;
+ background-color: transparent;
+}
+/* Literal String Interpol */
+.codehilite .si {
+ color: #36f9f6;
+ background-color: transparent;
+}
+/* Literal String Other */
+.codehilite .sx {
+ color: #36f9f6;
+ background-color: transparent;
+}
+/* Literal String Regex */
+.codehilite .sr {
+ color: transparent;
+ background-color: transparent;
+}
+/* Literal String Single */
+.codehilite .s1 {
+ color: #ff8b39;
+ text-shadow: 0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575;
+ background-color: transparent;
+}
+/* Literal String Symbol */
+.codehilite .ss {
+ color: #36f9f6;
+ background-color: transparent;
+}
+/* Base Style */
+.codehilite .g {
+ color: transparent;
+ background-color: transparent;
+}
+/* Generic Deleted */
+.codehilite .gd {
+ color: transparent;
+ background-color: transparent;
+}
+/* Generic Emph */
+.codehilite .ge {
+ color: transparent;
+ background-color: transparent;
+}
+/* Generic Error */
+.codehilite .gr {
+ color: transparent;
+ background-color: transparent;
+}
+/* Generic Heading */
+.codehilite .gh {
+ color: transparent;
+ background-color: transparent;
+}
+/* Generic Inserted */
+.codehilite .gi {
+ color: transparent;
+ background-color: transparent;
+}
+/* Generic Output */
+.codehilite .go {
+ color: transparent;
+ background-color: transparent;
+}
+/* Generic Prompt */
+.codehilite .gp {
+ color: transparent;
+ background-color: transparent;
+}
+/* Generic Strong */
+.codehilite .gs {
+ color: transparent;
+ background-color: transparent;
+}
+/* Generic Subheading */
+.codehilite .gu {
+ color: transparent;
+ background-color: transparent;
+}
+/* Generic Traceback */
+.codehilite .gt {
+ color: transparent;
+ background-color: transparent;
+}
+/* Other */
+.codehilite .x {
+ color: transparent;
+ background-color: transparent;
+}
+/* Text Whitespace */
+.codehilite .w {
+ color: transparent;
+ background-color: transparent;
+}
diff --git a/Resources/assets/manup.min.js b/Resources/assets/manup.min.js
new file mode 100644
index 0000000..20bc3a1
--- /dev/null
+++ b/Resources/assets/manup.min.js
@@ -0,0 +1 @@
+var manUpObject,tagArray=[],linkArray=[],validMetaValues=[{name:"mobile-web-app-capable",manifestName:"display"},{name:"apple-mobile-web-app-capable",manifestName:"display"},{name:"apple-mobile-web-app-title",manifestName:"short_name"},{name:"application-name",manifestName:"short_name"},{name:"msapplication-TileColor",manifestName:"ms_TileColor"},{name:"msapplication-square70x70logo",manifestName:"icons",imageSize:"70x70"},{name:"msapplication-square150x150logo",manifestName:"icons",imageSize:"150x150"},{name:"msapplication-wide310x150logo",manifestName:"icons",imageSize:"310x150"},{name:"msapplication-square310x310logo",manifestName:"icons",imageSize:"310x310"}],validLinkValues=[{name:"apple-touch-icon",manifestName:"icons",imageSize:"152x152"},{name:"apple-touch-icon",manifestName:"icons",imageSize:"120x120"},{name:"apple-touch-icon",manifestName:"icons",imageSize:"76x76"},{name:"apple-touch-icon",manifestName:"icons",imageSize:"60x60"},{name:"apple-touch-icon",manifestName:"icons",imageSize:"57x57"},{name:"apple-touch-icon",manifestName:"icons",imageSize:"72x72"},{name:"apple-touch-icon",manifestName:"icons",imageSize:"114x114"},{name:"icon",manifestName:"icons",imageSize:"128x128"},{name:"icon",manifestName:"icons",imageSize:"192x192"}],generateFullMetaData=function(){for(var e=0;e<validMetaValues.length;e++)if(manUpObject[validMetaValues[e].manifestName])if("icons"==validMetaValues[e].manifestName)for(var a=manUpObject.icons,n=0;n<a.length;n++)a[n].sizes==validMetaValues[e].imageSize&&(validMetaValues[e].content=a[n].src);else validMetaValues[e].content=manUpObject[validMetaValues[e].manifestName],"display"==validMetaValues[e].manifestName&&"standalone"==manUpObject.display&&(validMetaValues[e].content="yes");return validMetaValues},generateFullLinkData=function(){for(var e=0;e<validLinkValues.length;e++)if(manUpObject[validLinkValues[e].manifestName])if("icons"==validLinkValues[e].manifestName)for(var a=manUpObject.icons,n=0;n<a.length;n++)a[n].sizes==validLinkValues[e].imageSize&&(validLinkValues[e].content=a[n].src);else validLinkValues[e].content=manUpObject[validLinkValues[e].manifestName];return validLinkValues},generateMetaArray=function(){for(var e=generateFullMetaData(),a=document.getElementsByTagName("head")[0],n=0;n<e.length;n++){var i=document.createElement("meta");i.name=e[n].name,i.content=e[n].content,a.appendChild(i)}},generateLinkArray=function(){for(var e=generateFullLinkData(),a=document.getElementsByTagName("head")[0],n=0;n<e.length;n++){var i=document.createElement("link");i.setAttribute("rel",e[n].name),i.setAttribute("sizes",e[n].imageSize),i.setAttribute("href",e[n].content),a.appendChild(i)}},generateObj=function(e){manUpObject=JSON.parse(e),generateLinkArray(),generateMetaArray()},makeAjax=function(e){if(window.XMLHttpRequest){var a,n=/^https?:\/\//i;n.test(e)?fulURL=e:a=window.location.hostname+e;var i=new XMLHttpRequest;i.onreadystatechange=function(){4==i.readyState&&200==i.status&&generateObj(i.responseText)},i.open("GET",e,!0),i.send()}},collectManifestObj=function(){for(var e=document.getElementsByTagName("link"),a=0;a<e.length;a++)e[a].rel&&"manifest"==e[a].rel&&makeAjax(e[a].href)},testForManifest=function(){collectManifestObj()}();
diff --git a/Resources/assets/posts/arjs/.03-knot.png.icloud b/Resources/assets/posts/arjs/.03-knot.png.icloud
new file mode 100644
index 0000000..f947318
--- /dev/null
+++ b/Resources/assets/posts/arjs/.03-knot.png.icloud
Binary files differ
diff --git a/Resources/assets/posts/arjs/01-ngrok.png b/Resources/assets/posts/arjs/01-ngrok.png
new file mode 100644
index 0000000..2759c5b
--- /dev/null
+++ b/Resources/assets/posts/arjs/01-ngrok.png
Binary files differ
diff --git a/Resources/assets/posts/arjs/02-box-demo.gif b/Resources/assets/posts/arjs/02-box-demo.gif
new file mode 100644
index 0000000..b5ab73a
--- /dev/null
+++ b/Resources/assets/posts/arjs/02-box-demo.gif
Binary files differ
diff --git a/Resources/assets/posts/arjs/04-nyan.gif b/Resources/assets/posts/arjs/04-nyan.gif
new file mode 100644
index 0000000..2fe12ad
--- /dev/null
+++ b/Resources/assets/posts/arjs/04-nyan.gif
Binary files differ
diff --git a/Resources/assets/posts/arjs/05-GitHub.jpg b/Resources/assets/posts/arjs/05-GitHub.jpg
new file mode 100644
index 0000000..051169e
--- /dev/null
+++ b/Resources/assets/posts/arjs/05-GitHub.jpg
Binary files differ
diff --git a/Resources/assets/posts/autodock-vina/s1.png b/Resources/assets/posts/autodock-vina/s1.png
new file mode 100644
index 0000000..332f726
--- /dev/null
+++ b/Resources/assets/posts/autodock-vina/s1.png
Binary files differ
diff --git a/Resources/assets/posts/kaggle-colab/ss1.png b/Resources/assets/posts/kaggle-colab/ss1.png
new file mode 100644
index 0000000..b618236
--- /dev/null
+++ b/Resources/assets/posts/kaggle-colab/ss1.png
Binary files differ
diff --git a/Resources/assets/posts/kaggle-colab/ss2.png b/Resources/assets/posts/kaggle-colab/ss2.png
new file mode 100644
index 0000000..0777cdd
--- /dev/null
+++ b/Resources/assets/posts/kaggle-colab/ss2.png
Binary files differ
diff --git a/Resources/assets/posts/kaggle-colab/ss3.png b/Resources/assets/posts/kaggle-colab/ss3.png
new file mode 100644
index 0000000..186db99
--- /dev/null
+++ b/Resources/assets/posts/kaggle-colab/ss3.png
Binary files differ
diff --git a/Resources/assets/posts/kaggle-colab/ss4.png b/Resources/assets/posts/kaggle-colab/ss4.png
new file mode 100644
index 0000000..4d60648
--- /dev/null
+++ b/Resources/assets/posts/kaggle-colab/ss4.png
Binary files differ
diff --git a/Resources/assets/posts/obs/.01-pewdiepie.png.icloud b/Resources/assets/posts/obs/.01-pewdiepie.png.icloud
new file mode 100644
index 0000000..29446fa
--- /dev/null
+++ b/Resources/assets/posts/obs/.01-pewdiepie.png.icloud
Binary files differ
diff --git a/Resources/assets/posts/obs/.11.png.icloud b/Resources/assets/posts/obs/.11.png.icloud
new file mode 100644
index 0000000..f6a4366
--- /dev/null
+++ b/Resources/assets/posts/obs/.11.png.icloud
Binary files differ
diff --git a/Resources/assets/posts/obs/.3-usb.png.icloud b/Resources/assets/posts/obs/.3-usb.png.icloud
new file mode 100644
index 0000000..6719b05
--- /dev/null
+++ b/Resources/assets/posts/obs/.3-usb.png.icloud
Binary files differ
diff --git a/Resources/assets/posts/obs/.5S.png.icloud b/Resources/assets/posts/obs/.5S.png.icloud
new file mode 100644
index 0000000..e300a38
--- /dev/null
+++ b/Resources/assets/posts/obs/.5S.png.icloud
Binary files differ
diff --git a/Resources/assets/posts/obs/.mirrorless.png.icloud b/Resources/assets/posts/obs/.mirrorless.png.icloud
new file mode 100644
index 0000000..f51618a
--- /dev/null
+++ b/Resources/assets/posts/obs/.mirrorless.png.icloud
Binary files differ
diff --git a/Resources/assets/posts/obs/.normal.png.icloud b/Resources/assets/posts/obs/.normal.png.icloud
new file mode 100644
index 0000000..807add7
--- /dev/null
+++ b/Resources/assets/posts/obs/.normal.png.icloud
Binary files differ
diff --git a/Resources/assets/posts/obs/.usb.png.icloud b/Resources/assets/posts/obs/.usb.png.icloud
new file mode 100644
index 0000000..e473c13
--- /dev/null
+++ b/Resources/assets/posts/obs/.usb.png.icloud
Binary files differ
diff --git a/Resources/assets/posts/obs/01-media-source.png b/Resources/assets/posts/obs/01-media-source.png
new file mode 100644
index 0000000..cb9c90b
--- /dev/null
+++ b/Resources/assets/posts/obs/01-media-source.png
Binary files differ
diff --git a/Resources/assets/posts/obs/01-panel.png b/Resources/assets/posts/obs/01-panel.png
new file mode 100644
index 0000000..ab5e9f3
--- /dev/null
+++ b/Resources/assets/posts/obs/01-panel.png
Binary files differ
diff --git a/Resources/assets/posts/obs/02-remote.png b/Resources/assets/posts/obs/02-remote.png
new file mode 100644
index 0000000..0ccf7c7
--- /dev/null
+++ b/Resources/assets/posts/obs/02-remote.png
Binary files differ
diff --git a/Resources/assets/posts/obs/021-rotate.png b/Resources/assets/posts/obs/021-rotate.png
new file mode 100644
index 0000000..2d7366d
--- /dev/null
+++ b/Resources/assets/posts/obs/021-rotate.png
Binary files differ
diff --git a/Resources/assets/posts/obs/021-source.png b/Resources/assets/posts/obs/021-source.png
new file mode 100644
index 0000000..b848ac0
--- /dev/null
+++ b/Resources/assets/posts/obs/021-source.png
Binary files differ
diff --git a/Resources/assets/posts/obs/dics.css b/Resources/assets/posts/obs/dics.css
new file mode 100644
index 0000000..81ab949
--- /dev/null
+++ b/Resources/assets/posts/obs/dics.css
@@ -0,0 +1,229 @@
+.b-dics {
+ width : 100%;
+ max-width : 100%;
+ position : relative;
+ overflow : hidden;
+ display : -webkit-box;
+ display : -ms-flexbox;
+ display : flex;
+ opacity : 0;
+}
+
+.b-dics__section {
+ height : 100%;
+}
+
+.b-dics__slider:hover :before {
+ color : #FFFFFF;
+ border-color : #FFFFFF;
+}
+
+.b-dics__text {
+ position : absolute;
+ top : 0;
+ left : 50%;
+ padding : 5px 25px;
+ -webkit-transform : translateX(-50%);
+ -ms-transform : translateX(-50%);
+ transform : translateX(-50%);
+ background : #FFFFFF;
+ z-index : 11;
+ font-family : Arial, serif;
+ color : #3d3d3d;
+ -webkit-user-select : none;
+ -moz-user-select : none;
+ -ms-user-select : none;
+ user-select : none;
+ font-size : 13px;
+ text-align : center;
+ margin : 16px 0;
+ white-space : nowrap;
+ opacity : .7;
+ pointer-events : none;
+}
+
+.b-dics__image-container {
+ width : 100%;
+ height : 100%;
+ display : block;
+ overflow : hidden;
+ position : relative;
+}
+
+.b-dics__image {
+ height : 100%;
+ position : absolute;
+ left : 0;
+ top : 50%;
+ -webkit-transform : translateY(-50%);
+ -ms-transform : translateY(-50%);
+ transform : translateY(-50%);
+ -webkit-user-select : none;
+ -moz-user-select : none;
+ -ms-user-select : none;
+ user-select : none;
+ max-width : none;
+}
+
+.b-dics__slider {
+ color : #FFFFFF;
+ position : absolute;
+ left : 100%;
+ top : 0;
+ cursor : pointer;
+ -webkit-transform : translateX(-50%);
+ -ms-transform : translateX(-50%);
+ transform : translateX(-50%);
+ height : 100%;
+ width : 3px;
+ padding : 0 30px;
+ z-index : 1;
+ -ms-touch-action : none;
+ touch-action : none;
+ line-height : normal;
+ opacity : .7;
+}
+
+.b-dics__slider:before {
+ content : '';
+ -webkit-mask : url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTEyIDUxMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+LnN0MHtmaWxsOiNGRkZGRkY7ZW5hYmxlLWJhY2tncm91bmQ6bmV3ICAgIDt9PC9zdHlsZT48cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTgwLjIsMTA4LjFsNjEuNy02Mi4yYzMuOC0zLjgsOC44LTUuOSwxNC4xLTUuOWM1LjMsMCwxMC40LDIuMSwxNC4xLDUuOWw2MS43LDYyLjJjMy45LDMuOSw5LjEsNS45LDE0LjIsNS45czEwLjItMS45LDE0LjEtNS44YzcuOC03LjgsNy45LTIwLjQsMC4xLTI4LjNsLTYxLjctNjIuMkMyODcuMiw2LjMsMjcyLjEsMCwyNTYsMHMtMzEuMiw2LjMtNDIuNSwxNy44TDE1MS44LDgwYy03LjgsNy44LTcuNywyMC41LDAuMSwyOC4zQzE1OS44LDExNiwxNzIuNCwxMTUuOSwxODAuMiwxMDguMXoiLz48cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzMxLjgsNDAzLjlsLTYxLjcsNjIuMmMtMy44LDMuOC04LjgsNS45LTE0LjEsNS45Yy01LjMsMC0xMC40LTIuMS0xNC4xLTUuOWwtNjEuNy02Mi4yYy03LjgtNy44LTIwLjQtNy45LTI4LjMtMC4xYy03LjgsNy44LTcuOSwyMC40LTAuMSwyOC4zbDYxLjcsNjIuMmMxMS40LDExLjQsMjYuNSwxNy44LDQyLjUsMTcuOHMzMS4yLTYuMyw0Mi41LTE3LjhsNjEuNy02Mi4yYzcuOC03LjgsNy43LTIwLjUtMC4xLTI4LjNDMzUyLjIsMzk2LDMzOS42LDM5Ni4xLDMzMS44LDQwMy45eiIvPjwvc3ZnPg==) no-repeat 100% 100%;
+ mask : url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTEyIDUxMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+LnN0MHtmaWxsOiNGRkZGRkY7ZW5hYmxlLWJhY2tncm91bmQ6bmV3ICAgIDt9PC9zdHlsZT48cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTgwLjIsMTA4LjFsNjEuNy02Mi4yYzMuOC0zLjgsOC44LTUuOSwxNC4xLTUuOWM1LjMsMCwxMC40LDIuMSwxNC4xLDUuOWw2MS43LDYyLjJjMy45LDMuOSw5LjEsNS45LDE0LjIsNS45czEwLjItMS45LDE0LjEtNS44YzcuOC03LjgsNy45LTIwLjQsMC4xLTI4LjNsLTYxLjctNjIuMkMyODcuMiw2LjMsMjcyLjEsMCwyNTYsMHMtMzEuMiw2LjMtNDIuNSwxNy44TDE1MS44LDgwYy03LjgsNy44LTcuNywyMC41LDAuMSwyOC4zQzE1OS44LDExNiwxNzIuNCwxMTUuOSwxODAuMiwxMDguMXoiLz48cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzMxLjgsNDAzLjlsLTYxLjcsNjIuMmMtMy44LDMuOC04LjgsNS45LTE0LjEsNS45Yy01LjMsMC0xMC40LTIuMS0xNC4xLTUuOWwtNjEuNy02Mi4yYy03LjgtNy44LTIwLjQtNy45LTI4LjMtMC4xYy03LjgsNy44LTcuOSwyMC40LTAuMSwyOC4zbDYxLjcsNjIuMmMxMS40LDExLjQsMjYuNSwxNy44LDQyLjUsMTcuOHMzMS4yLTYuMyw0Mi41LTE3LjhsNjEuNy02Mi4yYzcuOC03LjgsNy43LTIwLjUtMC4xLTI4LjNDMzUyLjIsMzk2LDMzOS42LDM5Ni4xLDMzMS44LDQwMy45eiIvPjwvc3ZnPg==) no-repeat 100% 100%;
+ mask-size : cover;
+ -webkit-mask-size : cover;
+ width : 26px;
+ height : 26px;
+ padding : 0;
+ background-color : currentColor;
+ position : absolute;
+ top : 50%;
+ left : 50%;
+ -webkit-transform : translate(-50%, -50%) rotate(90deg);
+ -ms-transform : translate(-50%, -50%) rotate(90deg);
+ transform : translate(-50%, -50%) rotate(90deg);
+ z-index : 2;
+ font-size : 0;
+}
+
+.b-dics__slider:after {
+ content : '';
+ position : absolute;
+ left : 50%;
+ top : 0;
+ -webkit-transform : translateX(-50%);
+ -ms-transform : translateX(-50%);
+ transform : translateX(-50%);
+ height : 100%;
+ width : 3px;
+ background-color : currentColor;
+ z-index : 1;
+}
+
+.b-dics__image-container:hover .b-dics__text {
+ opacity : 1;
+}
+
+.b-dics__slider:hover {
+ opacity : 1;
+}
+
+/* Text Position
+ ****************************************************************************/
+
+.b-dics--tp-center .b-dics__text {
+ top : 50%;
+ -webkit-transform : translate(-50%, -50%);
+ -ms-transform : translate(-50%, -50%);
+ transform : translate(-50%, -50%);
+ margin : 0;
+}
+
+.b-dics--tp-bottom .b-dics__text {
+ top : initial;
+ bottom : 0;
+ -webkit-transform : translate(-50%, -50%);
+ -ms-transform : translate(-50%, -50%);
+ transform : translate(-50%, -50%);
+}
+
+.b-dics--tp-left .b-dics__text {
+ left : 0;
+ top : 50%;
+ -webkit-transform : translateY(-50%);
+ -ms-transform : translateY(-50%);
+ transform : translateY(-50%);
+ margin : 0 16px;
+}
+
+.b-dics--tp-right .b-dics__text {
+ left : initial;
+ right : 0;
+ top : 50%;
+ -webkit-transform : translateY(-50%);
+ -ms-transform : translateY(-50%);
+ transform : translateY(-50%);
+ margin : 0 16px;
+}
+
+/* Hide texts
+ ****************************************************************************/
+
+.b-dics--hide-texts .b-dics__text {
+ background : #ffffff;
+ opacity : 0;
+}
+
+.b-dics--hide-texts .b-dics__image-container:hover .b-dics__text {
+ opacity : 1;
+}
+
+/* Vertical Sliders
+ ****************************************************************************/
+
+.b-dics--vertical {
+ -webkit-box-orient : vertical;
+ -webkit-box-direction : normal;
+ -ms-flex-direction : column;
+ flex-direction : column;
+}
+
+.b-dics--vertical .b-dics__section {
+ height : auto;
+ width : 100%;
+}
+
+.b-dics--vertical .b-dics__image {
+ left : 50%;
+ -webkit-transform : translateX(-50%);
+ -ms-transform : translateX(-50%);
+ transform : translateX(-50%);
+ top : 0;
+ width : 100%;
+ height : auto;
+}
+
+.b-dics--vertical .b-dics__slider {
+ top : 100%;
+ -webkit-transform : translateY(-50%);
+ -ms-transform : translateY(-50%);
+ transform : translateY(-50%);
+ width : 100%;
+ height : 3px;
+ padding : 30px 0;
+ left : 0;
+}
+
+.b-dics--vertical .b-dics__slider:after {
+ top : 50%;
+ left : 0;
+ -webkit-transform : translateY(-50%);
+ -ms-transform : translateY(-50%);
+ transform : translateY(-50%);
+ width : 100%;
+ height : 3px;
+}
+
+.b-dics--vertical .b-dics__slider:before {
+ -webkit-transform : translate(-50%, -50%);
+ -ms-transform : translate(-50%, -50%);
+ transform : translate(-50%, -50%);
+} \ No newline at end of file
diff --git a/Resources/assets/posts/obs/dics.js b/Resources/assets/posts/obs/dics.js
new file mode 100644
index 0000000..b739e36
--- /dev/null
+++ b/Resources/assets/posts/obs/dics.js
@@ -0,0 +1,638 @@
+"use strict";
+
+/*
+ * Dics: Definitive image comparison slider. A multiple image vanilla comparison slider.
+ *
+ * By Abel Cabeza Román, a Codictados developer
+ * Src: https://github.com/abelcabezaroman/definitive-image-comparison-slider
+ * Example: http://codictados.com/portfolio/definitive-image-comparison-slider-demo/
+ */
+
+/**
+ *
+ */
+
+/**
+ *
+ * @type {{container: null, filters: null, hideTexts: null, textPosition: string, linesOrientation: string, rotate: number, arrayBackgroundColorText: null, arrayColorText: null, linesColor: null}}
+ */
+var defaultOptions = {
+ container: null,
+ // **REQUIRED**: HTML container | `document.querySelector('.b-dics')` |
+ filters: null,
+ // Array of CSS string filters |`['blur(3px)', 'grayscale(1)', 'sepia(1)', 'saturate(3)']` |
+ hideTexts: null,
+ // Show text only when you hover the image container |`true`,`false`|
+ textPosition: 'top',
+ // Set the prefer text position |`'center'`,`'top'`, `'right'`, `'bottom'`, `'left'` |
+ linesOrientation: 'horizontal',
+ // Change the orientation of lines |`'horizontal'`,`'vertical'` |
+ rotate: 0,
+ // Rotate the image container (not too useful but it's a beatiful effect. String of rotate CSS rule) |`'45deg'`|
+ arrayBackgroundColorText: null,
+ // Change the bacground-color of sections texts with an array |`['#000000', '#FFFFFF']`|
+ arrayColorText: null,
+ // Change the color of texts with an array |`['#FFFFFF', '#000000']`|
+ linesColor: null // Change the lines and arrows color |`'rgb(0,0,0)'`|
+
+};
+/**
+ *
+ * @param options
+ * @constructor
+ */
+
+var Dics = function Dics(options) {
+ this.options = utils.extend({}, [defaultOptions, options], {
+ clearEmpty: true
+ });
+ this.container = this.options.container;
+
+ if (this.container == null) {
+ console.error('Container element not found!');
+ } else {
+ this._setOrientation(this.options.linesOrientation, this.container);
+
+ this.images = this._getImages();
+ this.sliders = [];
+ this._activeSlider = null;
+
+ this._load(this.images[0]);
+ }
+};
+/**
+ *
+ * @private
+ */
+
+
+Dics.prototype._load = function (firstImage) {
+ var _this = this;
+
+ var maxCounter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100000;
+
+ if (firstImage.naturalWidth) {
+ this._buidAfterFirstImageLoad(firstImage);
+ } else {
+ if (maxCounter > 0) {
+ maxCounter--;
+ setTimeout(function () {
+ _this._load(firstImage, maxCounter);
+ }, 100);
+ } else {
+ console.error('error loading images');
+ }
+ }
+};
+/**
+ *
+ * @private
+ */
+
+
+Dics.prototype._buidAfterFirstImageLoad = function (firstImage) {
+ this._setContainerWidth(firstImage);
+
+ this._build();
+
+ this._setEvents();
+};
+/**
+ *
+ * @private
+ */
+
+
+Dics.prototype._setContainerWidth = function (firstImage) {
+ this.options.container.style.height = "".concat(this._calcContainerHeight(firstImage), "px");
+};
+/**
+ *
+ * @private
+ */
+
+
+Dics.prototype._setOpacityContainerForLoading = function (opacity) {
+ this.options.container.style.opacity = opacity;
+};
+/**
+ * Build HTML
+ * @private
+ */
+
+
+Dics.prototype._build = function () {
+ var dics = this;
+
+ dics._applyGlobalClass(dics.options);
+
+ var imagesLength = dics.images.length;
+ var initialImagesContainerWidth = dics.container.getBoundingClientRect()[dics.config.sizeField] / imagesLength;
+
+ for (var i = 0; i < imagesLength; i++) {
+ var image = dics.images[i];
+
+ var section = dics._createElement('div', 'b-dics__section');
+
+ var imageContainer = dics._createElement('div', 'b-dics__image-container');
+
+ var slider = dics._createSlider(i, initialImagesContainerWidth);
+
+ dics._createAltText(image, i, imageContainer);
+
+ dics._applyFilter(image, i, dics.options.filters);
+
+ dics._rotate(image, imageContainer);
+
+ section.setAttribute('data-function', 'b-dics__section');
+ section.style.flex = "0 0 ".concat(initialImagesContainerWidth, "px");
+ image.classList.add('b-dics__image');
+ section.appendChild(imageContainer);
+ imageContainer.appendChild(image);
+
+ if (i < imagesLength - 1) {
+ section.appendChild(slider);
+ }
+
+ dics.container.appendChild(section);
+ image.style[this.config.positionField] = "".concat(i * -initialImagesContainerWidth, "px");
+ }
+
+ this.sections = this._getSections();
+
+ this._setOpacityContainerForLoading(1);
+};
+/**
+ *
+ * @returns {NodeListOf<SVGElementTagNameMap[string]> | NodeListOf<HTMLElementTagNameMap[string]> | NodeListOf<Element>}
+ * @private
+ */
+
+
+Dics.prototype._getImages = function () {
+ return this.container.querySelectorAll('img');
+};
+/**
+ *
+ * @returns {NodeListOf<SVGElementTagNameMap[string]> | NodeListOf<HTMLElementTagNameMap[string]> | NodeListOf<Element>}
+ * @private
+ */
+
+
+Dics.prototype._getSections = function () {
+ return this.container.querySelectorAll('[data-function="b-dics__section"]');
+};
+/**
+ *
+ * @param elementClass
+ * @param className
+ * @returns {HTMLElement | HTMLSelectElement | HTMLLegendElement | HTMLTableCaptionElement | HTMLTextAreaElement | HTMLModElement | HTMLHRElement | HTMLOutputElement | HTMLPreElement | HTMLEmbedElement | HTMLCanvasElement | HTMLFrameSetElement | HTMLMarqueeElement | HTMLScriptElement | HTMLInputElement | HTMLUnknownElement | HTMLMetaElement | HTMLStyleElement | HTMLObjectElement | HTMLTemplateElement | HTMLBRElement | HTMLAudioElement | HTMLIFrameElement | HTMLMapElement | HTMLTableElement | HTMLAnchorElement | HTMLMenuElement | HTMLPictureElement | HTMLParagraphElement | HTMLTableDataCellElement | HTMLTableSectionElement | HTMLQuoteElement | HTMLTableHeaderCellElement | HTMLProgressElement | HTMLLIElement | HTMLTableRowElement | HTMLFontElement | HTMLSpanElement | HTMLTableColElement | HTMLOptGroupElement | HTMLDataElement | HTMLDListElement | HTMLFieldSetElement | HTMLSourceElement | HTMLBodyElement | HTMLDirectoryElement | HTMLDivElement | HTMLUListElement | HTMLHtmlElement | HTMLAreaElement | HTMLMeterElement | HTMLAppletElement | HTMLFrameElement | HTMLOptionElement | HTMLImageElement | HTMLLinkElement | HTMLHeadingElement | HTMLSlotElement | HTMLVideoElement | HTMLBaseFontElement | HTMLTitleElement | HTMLButtonElement | HTMLHeadElement | HTMLParamElement | HTMLTrackElement | HTMLOListElement | HTMLDataListElement | HTMLLabelElement | HTMLFormElement | HTMLTimeElement | HTMLBaseElement}
+ * @private
+ */
+
+
+Dics.prototype._createElement = function (elementClass, className) {
+ var newElement = document.createElement(elementClass);
+ newElement.classList.add(className);
+ return newElement;
+};
+/**
+ * Set need DOM events
+ * @private
+ */
+
+
+Dics.prototype._setEvents = function () {
+ var dics = this;
+
+ dics._disableImageDrag();
+
+ dics._isGoingRight = null;
+ var oldx = 0;
+
+ var listener = function listener(event) {
+ var xPageCoord = event.pageX ? event.pageX : event.touches[0].pageX;
+
+ if (xPageCoord < oldx) {
+ dics._isGoingRight = false;
+ } else if (xPageCoord > oldx) {
+ dics._isGoingRight = true;
+ }
+
+ oldx = xPageCoord;
+
+ var position = dics._calcPosition(event);
+
+ var beforeSectionsWidth = dics._beforeSectionsWidth(dics.sections, dics.images, dics._activeSlider);
+
+ var calcMovePixels = position - beforeSectionsWidth;
+ dics.sliders[dics._activeSlider].style[dics.config.positionField] = "".concat(position, "px");
+
+ dics._pushSections(calcMovePixels, position);
+ };
+
+ dics.container.addEventListener('click', listener);
+
+ var _loop = function _loop(i) {
+ var slider = dics.sliders[i];
+ utils.setMultiEvents(slider, ['mousedown', 'touchstart'], function (event) {
+ dics._activeSlider = i;
+ dics._clickPosition = dics._calcPosition(event);
+ slider.classList.add('b-dics__slider--active');
+ utils.setMultiEvents(dics.container, ['mousemove', 'touchmove'], listener);
+ });
+ };
+
+ for (var i = 0; i < dics.sliders.length; i++) {
+ _loop(i);
+ }
+
+ var listener2 = function listener2() {
+ var activeElements = dics.container.querySelectorAll('.b-dics__slider--active');
+ var _iteratorNormalCompletion = true;
+ var _didIteratorError = false;
+ var _iteratorError = undefined;
+
+ try {
+ for (var _iterator = activeElements[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
+ var activeElement = _step.value;
+ activeElement.classList.remove('b-dics__slider--active');
+ utils.removeMultiEvents(dics.container, ['mousemove', 'touchmove'], listener);
+ }
+ } catch (err) {
+ _didIteratorError = true;
+ _iteratorError = err;
+ } finally {
+ try {
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
+ _iterator.return();
+ }
+ } finally {
+ if (_didIteratorError) {
+ throw _iteratorError;
+ }
+ }
+ }
+ };
+
+ utils.setMultiEvents(document.body, ['mouseup', 'touchend'], listener2);
+};
+/**
+ *
+ * @param sections
+ * @param images
+ * @param activeSlider
+ * @returns {number}
+ * @private
+ */
+
+
+Dics.prototype._beforeSectionsWidth = function (sections, images, activeSlider) {
+ var width = 0;
+
+ for (var i = 0; i < sections.length; i++) {
+ var section = sections[i];
+
+ if (i !== activeSlider) {
+ width += section.getBoundingClientRect()[this.config.sizeField];
+ } else {
+ return width;
+ }
+ }
+};
+/**
+ *
+ * @returns {number}
+ * @private
+ */
+
+
+Dics.prototype._calcContainerHeight = function (firstImage) {
+ var imgHeight = firstImage.naturalHeight;
+ var imgWidth = firstImage.naturalWidth;
+ var containerWidth = this.options.container.getBoundingClientRect().width;
+ return containerWidth / imgWidth * imgHeight;
+};
+/**
+ *
+ * @param sections
+ * @param images
+ * @private
+ */
+
+
+Dics.prototype._setLeftToImages = function (sections, images) {
+ var size = 0;
+
+ for (var i = 0; i < images.length; i++) {
+ var image = images[i];
+ image.style[this.config.positionField] = "-".concat(size, "px");
+ size += sections[i].getBoundingClientRect()[this.config.sizeField];
+ this.sliders[i].style[this.config.positionField] = "".concat(size, "px");
+ }
+};
+/**
+ *
+ * @private
+ */
+
+
+Dics.prototype._disableImageDrag = function () {
+ for (var i = 0; i < this.images.length; i++) {
+ this.sliders[i].addEventListener('dragstart', function (e) {
+ e.preventDefault();
+ });
+ this.images[i].addEventListener('dragstart', function (e) {
+ e.preventDefault();
+ });
+ }
+};
+/**
+ *
+ * @param image
+ * @param index
+ * @param filters
+ * @private
+ */
+
+
+Dics.prototype._applyFilter = function (image, index, filters) {
+ if (filters) {
+ image.style.filter = filters[index];
+ }
+};
+/**
+ *
+ * @param options
+ * @private
+ */
+
+
+Dics.prototype._applyGlobalClass = function (options) {
+ var container = options.container;
+
+ if (options.hideTexts) {
+ container.classList.add('b-dics--hide-texts');
+ }
+
+ if (options.linesOrientation === 'vertical') {
+ container.classList.add('b-dics--vertical');
+ }
+
+ if (options.textPosition === 'center') {
+ container.classList.add('b-dics--tp-center');
+ } else if (options.textPosition === 'bottom') {
+ container.classList.add('b-dics--tp-bottom');
+ } else if (options.textPosition === 'left') {
+ container.classList.add('b-dics--tp-left');
+ } else if (options.textPosition === 'right') {
+ container.classList.add('b-dics--tp-right');
+ }
+};
+
+Dics.prototype._createSlider = function (i, initialImagesContainerWidth) {
+ var slider = this._createElement('div', 'b-dics__slider');
+
+ if (this.options.linesColor) {
+ slider.style.color = this.options.linesColor;
+ }
+
+ slider.style[this.config.positionField] = "".concat(initialImagesContainerWidth * (i + 1), "px");
+ this.sliders.push(slider);
+ return slider;
+};
+/**
+ *
+ * @param image
+ * @param i
+ * @param imageContainer
+ * @private
+ */
+
+
+Dics.prototype._createAltText = function (image, i, imageContainer) {
+ var textContent = image.getAttribute('alt');
+
+ if (textContent) {
+ var text = this._createElement('p', 'b-dics__text');
+
+ if (this.options.arrayBackgroundColorText) {
+ text.style.backgroundColor = this.options.arrayBackgroundColorText[i];
+ }
+
+ if (this.options.arrayColorText) {
+ text.style.color = this.options.arrayColorText[i];
+ }
+
+ text.appendChild(document.createTextNode(textContent));
+ imageContainer.appendChild(text);
+ }
+};
+/**
+ *
+ * @param image
+ * @param imageContainer
+ * @private
+ */
+
+
+Dics.prototype._rotate = function (image, imageContainer) {
+ image.style.rotate = "-".concat(this.options.rotate);
+ imageContainer.style.rotate = this.options.rotate;
+};
+/**
+ *
+ * @private
+ */
+
+
+Dics.prototype._removeActiveElements = function () {
+ var activeElements = Dics.container.querySelectorAll('.b-dics__slider--active');
+ var _iteratorNormalCompletion2 = true;
+ var _didIteratorError2 = false;
+ var _iteratorError2 = undefined;
+
+ try {
+ for (var _iterator2 = activeElements[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
+ var activeElement = _step2.value;
+ activeElement.classList.remove('b-dics__slider--active');
+ utils.removeMultiEvents(Dics.container, ['mousemove', 'touchmove'], Dics.prototype._removeActiveElements);
+ }
+ } catch (err) {
+ _didIteratorError2 = true;
+ _iteratorError2 = err;
+ } finally {
+ try {
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
+ _iterator2.return();
+ }
+ } finally {
+ if (_didIteratorError2) {
+ throw _iteratorError2;
+ }
+ }
+ }
+};
+/**
+ *
+ * @param linesOrientation
+ * @private
+ */
+
+
+Dics.prototype._setOrientation = function (linesOrientation) {
+ this.config = {};
+
+ if (linesOrientation === 'vertical') {
+ this.config.offsetSizeField = 'offsetHeight';
+ this.config.offsetPositionField = 'offsetTop';
+ this.config.sizeField = 'height';
+ this.config.positionField = 'top';
+ this.config.clientField = 'clientY';
+ this.config.pageField = 'pageY';
+ } else {
+ this.config.offsetSizeField = 'offsetWidth';
+ this.config.offsetPositionField = 'offsetLeft';
+ this.config.sizeField = 'width';
+ this.config.positionField = 'left';
+ this.config.clientField = 'clientX';
+ this.config.pageField = 'pageX';
+ }
+};
+/**
+ *
+ * @param event
+ * @returns {number}
+ * @private
+ */
+
+
+Dics.prototype._calcPosition = function (event) {
+ var containerCoords = this.container.getBoundingClientRect();
+ var pixel = !isNaN(event[this.config.clientField]) ? event[this.config.clientField] : event.touches[0][this.config.clientField];
+ return containerCoords[this.config.positionField] < pixel ? pixel - containerCoords[this.config.positionField] : 0;
+};
+/**
+ *
+ * @private
+ */
+
+
+Dics.prototype._pushSections = function (calcMovePixels, position) {
+ // if (this._rePosUnderActualSections(position)) {
+ this._setFlex(position, this._isGoingRight);
+
+ var section = this.sections[this._activeSlider];
+ var postActualSection = this.sections[this._activeSlider + 1];
+
+ var sectionWidth = postActualSection.getBoundingClientRect()[this.config.sizeField] - (calcMovePixels - this.sections[this._activeSlider].getBoundingClientRect()[this.config.sizeField]);
+
+ section.style.flex = this._isGoingRight === true ? "2 0 ".concat(calcMovePixels, "px") : "1 1 ".concat(calcMovePixels, "px");
+ postActualSection.style.flex = this._isGoingRight === true ? " ".concat(sectionWidth, "px") : "2 0 ".concat(sectionWidth, "px");
+
+ this._setLeftToImages(this.sections, this.images); // }
+
+};
+/**
+ *
+ * @private
+ */
+
+
+Dics.prototype._setFlex = function (position, isGoingRight) {
+ var beforeSumSectionsSize = 0;
+
+ for (var i = 0; i < this.sections.length; i++) {
+ var section = this.sections[i];
+ var sectionSize = section.getBoundingClientRect()[this.config.sizeField];
+ beforeSumSectionsSize += sectionSize;
+
+ if (isGoingRight && position > beforeSumSectionsSize - sectionSize && i > this._activeSlider || !isGoingRight && position < beforeSumSectionsSize && i < this._activeSlider) {
+ section.style.flex = "1 100 ".concat(sectionSize, "px");
+ } else {
+ section.style.flex = "0 0 ".concat(sectionSize, "px");
+ }
+ }
+};
+/**
+ *
+ * @type {{extend: (function(*=, *, *): *), setMultiEvents: setMultiEvents, removeMultiEvents: removeMultiEvents, getConstructor: (function(*=): string)}}
+ */
+
+
+var utils = {
+ /**
+ * Native extend object
+ * @param target
+ * @param objects
+ * @param options
+ * @returns {*}
+ */
+ extend: function extend(target, objects, options) {
+ for (var object in objects) {
+ if (objects.hasOwnProperty(object)) {
+ recursiveMerge(target, objects[object]);
+ }
+ }
+
+ function recursiveMerge(target, object) {
+ for (var property in object) {
+ if (object.hasOwnProperty(property)) {
+ var current = object[property];
+
+ if (utils.getConstructor(current) === 'Object') {
+ if (!target[property]) {
+ target[property] = {};
+ }
+
+ recursiveMerge(target[property], current);
+ } else {
+ // clearEmpty
+ if (options.clearEmpty) {
+ if (current == null) {
+ continue;
+ }
+ }
+
+ target[property] = current;
+ }
+ }
+ }
+ }
+
+ return target;
+ },
+
+ /**
+ * Set Multi addEventListener
+ * @param element
+ * @param events
+ * @param func
+ */
+ setMultiEvents: function setMultiEvents(element, events, func) {
+ for (var i = 0; i < events.length; i++) {
+ element.addEventListener(events[i], func);
+ }
+ },
+
+ /**
+ *
+ * @param element
+ * @param events
+ * @param func
+ */
+ removeMultiEvents: function removeMultiEvents(element, events, func) {
+ for (var i = 0; i < events.length; i++) {
+ element.removeEventListener(events[i], func, false);
+ }
+ },
+
+ /**
+ * Get object constructor
+ * @param object
+ * @returns {string}
+ */
+ getConstructor: function getConstructor(object) {
+ return Object.prototype.toString.call(object).slice(8, -1);
+ }
+}; \ No newline at end of file
diff --git a/Resources/assets/posts/open-babel/s1.png b/Resources/assets/posts/open-babel/s1.png
new file mode 100644
index 0000000..ec988a4
--- /dev/null
+++ b/Resources/assets/posts/open-babel/s1.png
Binary files differ
diff --git a/Resources/assets/posts/open-babel/s2.jpg b/Resources/assets/posts/open-babel/s2.jpg
new file mode 100644
index 0000000..7ece652
--- /dev/null
+++ b/Resources/assets/posts/open-babel/s2.jpg
Binary files differ
diff --git a/Resources/assets/posts/open-babel/s3.jpg b/Resources/assets/posts/open-babel/s3.jpg
new file mode 100644
index 0000000..5803e97
--- /dev/null
+++ b/Resources/assets/posts/open-babel/s3.jpg
Binary files differ
diff --git a/Resources/assets/posts/open-peeps/ex-1.svg b/Resources/assets/posts/open-peeps/ex-1.svg
new file mode 100644
index 0000000..7831d9b
--- /dev/null
+++ b/Resources/assets/posts/open-peeps/ex-1.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 299.18 804.02"><defs><style>.cls-1{fill:#fff;}.cls-1,.cls-2{fill-rule:evenodd;}</style></defs><title>Asset 1</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path class="cls-1" d="M295.4,792.78c.65-2.62-.41-6-1-9.43-.94-5.3-3.18-13-7.44-15.38-.76-2-21.71-18-32.64-26C248.68,737.8,244.08,730,243,730.09c-2.17-5.32-2.45-10.58-3.78-16.74,4.94-.65,13.38.52,17.27-2.29.7,0,.69-7.58.79-8.65-2.93-7.95-10.14-202.32-2.93-294.9.76-10.31,2.75-21.84.78-32.47,3.22-.71,5.15-4,5.16-4.17,7.69-15.1-4.11-66.45-11.5-80.67,5.87-.15,13.6-.95,17.24-5.85a6,6,0,0,0,3.64-3.14,50.63,50.63,0,0,0,2.66-4.72c3.91-8.13,6.33-17.16,5-26.11.25-.08,1.53-.09,1.6-.45a16.86,16.86,0,0,0-.94-6.22c-6.72-23.42-14.81-46.48-25.5-68.54-5.36-11.8-16.45-16.11-27.93-20.54-5.53-2.17-11.05-4.67-16.82-6.09-.07-.41.27-1.64-.48-1.54-.94.2-.75,1.7-1.1,2.54C192.8,138.63,201.25,133,193.21,127c-8.32-4.32-13.25-4.49-22.42-3.56-3.38.1-6.09,1.63-6.89,5-2.91,7-9.73,12.24-17.16,13.83-.62-1.09-2.3-4.23-3.25-3.24-10.74.37-31.49,8.85-41.54,11.8-10.09,2.58-10,5.32-12.61,16.29-4.79,19.54-3.89,92.92,8.61,108.38q6.8,4.54,10.21,5.66c-.07,7.23,1.14,18,0,25.07-2.55,12.82-5.66,25.7-8.51,38.59,0,1.43-11.39,22.72-6.05,18.78,1.1.54,3,2.82,4.22,3.32-5.67,12.92-4.63,28.77-4.22,44.73.1,9.5-2.12,19.92-4.26,29.65C73.57,523.8,62.88,617.42,57,700c-.24,3.39-.39,6-.51,8.37-.11.83,1,.81,1.41.39l.57-.55,2.3.63a50.33,50.33,0,0,1-.52,8c-.3,2.35-4.13,12.65-3.25,14.95-2.92-.16-8.4,4.63-11,9.82-1.34,1.2-5.63,3.17-6.61,5q-2,1.92-15.82,9.94c-5.09,4.07-21.47,20.25-20.14,23.53l-.2,1.37c-2.81,16.36,1.87,15.67,17,18.08,22.12,3.9,43.05-7.94,61.75-18,6.21-4.19,12.26-3.08,11.59-8.14-1.23-6.25-1.45-28.62-8.54-28.11,1.16-1.28.87-13,0-15.22-.56-5.65,4.56-10.92,4.28-16.74,3,.22,9,1.61,10.31-1.7-.05-.33-1.46-.33-1.7-.41l0-.18-.16,0c12.37-43.6,42.5-243.81,75.21-259.18.2,1.64,3.8-.31,6,0,10.12,78.95,21.71,153.37,27.89,237.82.62,2.5,2,20,2.65,22.87a9.54,9.54,0,0,0,3,1.88c.34,8.91-.8,27.5-.84,27.52l-.6,1.44c-3.44,7.78-6,18.18-1.57,25.79-3.29-.24-4.73,2.57-4.88,5.49-1.94,12.79,49.39,24.15,61.31,24.88C269.9,800.21,297.82,795.23,295.4,792.78Z"/><path class="cls-2" d="M290.71,793.83c-6.48,1.49-12.79,3.94-19.18,5.39-20.81-1.53-41.24-8.54-59.49-17.18-5.29-2.31-8.39-6.42-6-11.7,7.74,9.57,36.41,16.23,49.53,20.36,8.16,1.79,17.42,5.83,25.66,2.06,5.23-.9,11.17-3.4,13.18-8.1a38.73,38.73,0,0,1-.24,6c.2,2.45-1,2.79-3.43,3.18Zm-77.28-80.65a.51.51,0,0,0-.92,0c-.4,0-.82-.08-1.24-.09a15.45,15.45,0,0,0,.46-7c-.45-6.49-1-13-1.51-19.46-5.65-62.11-12.16-124.4-23.26-185.83a.44.44,0,0,0,.19-.43c-.55-4.35-1.73-8.59-2.55-12.9s-1.53-8.72-2.29-13.07c-.23-1.3-.46-2.61-.7-3.91.17-3.16-.59-6.48-1-9.54a53.21,53.21,0,0,0-1.26-6.5,2,2,0,0,0-.46-2.12l0,0a3.93,3.93,0,0,1,.14-.41c.4-1,1.27-1.43,1.89-2.13a16.09,16.09,0,0,1,5.45-.13c.27.05.47-.32.19-.47-7.27-4.25-16.33-.15-21.7,5.4-16.49,23.44-22.45,53.2-31.57,80.1C116.78,593.1,105.2,652.94,92,712.17c-10.48-.49-20.94-2-31.45-1.76a4.46,4.46,0,0,0-1.88-2.22A2399.1,2399.1,0,0,1,93.06,439c1.86-23.31-1-47.07,5.87-69.86C148,388.41,202.84,391.29,254.3,380.9c-9.62,109.13-14.71,219.4-1.49,328.51a52.68,52.68,0,0,1-13.25,2.91,169,169,0,0,1-26.13.86ZM82.9,738.9a2.41,2.41,0,0,0,1.68,3.51c-4.87,1.29-5.78,6.47-9.62,8.83-.36-.68-1.37-.79-2-1-2.06-7.63-4.42-16.6-14-19.41a3.76,3.76,0,0,0,.49-2.63c.72-3.63,3.29-11.73,1.7-15.9,8.83,2,17.89,2.84,26.84,4.14-1.82,6.63-3.36,16.63-5,22.45ZM89,771.17l.87-.25c1.4,6.18-8.14,8.2-12.85,10.39q-10.65,4.41-21.26,8.87c-14.32,7.18-27.76,9.2-43.68,4.08-10.13-1.94-8.2-3.87-9.69-11.69,10.16,13.66,31,7.8,43.88,1.89C58.05,780,69.87,775.65,82,771.87c2.43.61,4.74,0,7-.7ZM192.16,271.81c-6.12,1.66-12.32,2.51-18.54,3.74.54-4,1.34-8,1.35-12a102.6,102.6,0,0,0,17.19,8.28Zm-57.71-40.37a66.75,66.75,0,0,1,39.26,3.44c4.24,1.41,10,5.09,14.37,3.39-3.27,10.36.85,21,5.1,30.47-9.76-3.25-18.36-9-27.25-14,3.33-4.38-26.94-9.69-30.23-9.58-.93-4.53-2-9-3-13.55a3.6,3.6,0,0,0,1.77-.17Zm67.54,4.9a.34.34,0,0,1,.14.21c12.79,1.77,25.64,7.59,38.77,5.9,8.88-1.14,4.79,3.93-1.12,3.74-13.33,1.34-25.7-6.55-38.1-9.23Zm7-85.67-.09.42a1.33,1.33,0,0,1-.4-.05l-.25-.25a2.66,2.66,0,0,1,.74-.12Zm90.16,640.55a12.48,12.48,0,0,0-4.13-8.28c1.55-6.35-1.56-14.45-8.19-17.18-1.8-3-5.72-4.26-8.55-6.36,2.38-.15,4.55-1.84,2.73-3.66a107.51,107.51,0,0,0-11.25,4.33c-1,.21-3.35,2.17-3.53.42.69-1.39,6.07-2.8,7.83-3.77l-3.9-2.48c2.3,0,5.26-1.78,3-3.74-6.08,1.35-12.4,2.54-17.76,5.62-4.42-1.1,8.45-5,9.64-5.22a70.4,70.4,0,0,1-5.81-4.36c2,0,6.21-2.06,3.52-3.87-3.38-.87-8.07,1.92-11.42,2.81h0c-2.53.93-5,1.95-7.52,3-1,.42-1.42-1-.43-1.38,3.85-1.62,7.75-3.16,11.74-4.48C254,741.43,253,740.19,252,739c.27-1.94-1.73-3.65-2.47-5.4.16-.9-.29-2.31-1.36-2.49a3.75,3.75,0,0,0-3.3-.69,46.33,46.33,0,0,1-4.09-13.67c5-.66,10.72-.69,15-3.42a2.66,2.66,0,0,0,2.58-2.55,147.12,147.12,0,0,0-.91-16.52q-.75-8.28-1.39-16.55c-7.32-88.5-6-177.46,1-265.94.74-10.37,1.11-21-.61-31.28,2.14-.66,10.13-2,9.52-4.93,6.93-17.67-3.33-62.91-10.87-80.69,5.61-.32,12.35-1.53,16-6.16,3.55-1.25,4.79-5.41,6.56-8.41,3.81-8,6.28-17,5.31-25.89,3.93-1-.94-11.84-1.37-14.74-6.52-21.51-14-42.89-23.77-63.14A33.83,33.83,0,0,0,240.69,160c-9-3.93-18.06-8-27.48-10.87a1.85,1.85,0,0,0-2.76-1.65l-.23-.07a4.51,4.51,0,0,0-3.84,1.14c-3-4.47-3.84-10.13-5-15.39-4.54,4.76-.35,20.66,6.73,22-4.61,33.23-43.24,25.35-55,1.13-2.55-4.68-4.27-9.28-6.81-14a15.47,15.47,0,0,0,17.51-9.59,5.51,5.51,0,0,1,2-2.49c1.24-.88.92-3.11-.82-3.06-6.9,1.55-2.37,12.53-19.14,14.45a7.25,7.25,0,0,0-2.08-2.28,1.68,1.68,0,0,0-1.87,0c-12.61.76-24.92,3.95-37,7.38-10.4,2.56-21.3,8.11-23.87,19.42C76.14,184,84,273.41,97.57,284.47a21.64,21.64,0,0,0,7.82,4.7c-2.78,19.87-7.12,39.63-10.81,59.38-.27,3.41-6.19,22.31,1.32,19.2l.62.29c-.45.9-.87,1.82-1.27,2.74a35.73,35.73,0,0,0-2.8,9.2,100.45,100.45,0,0,0-.74,10.1c0,1.26-.1,2.49-.11,3.72-1.45,11.84-1.42,23.94-1.54,35.84-6.56,45-16,89.65-21.33,134.88C62.22,612.84,57.06,661.36,54.06,710c-.1,2.23,2.48,2.68,3.74,1.44l.54.15a47.76,47.76,0,0,1-.39,5.85c-.43,2.82-3.66,9.93-2.85,12.5-2.94-.41-7.69.19-8.54,2.6-3.38,4.3-3.16,10.15-7.16,14,3.85.85,7.68,2,11.42,3.16.77.42.3,1.55-.68,1.26-2.07-.62-4.15-1.26-6.24-1.84h0c-2-.57-4.06-1.07-6.12-1.45-.07,0,0,.18,0,.23A42.29,42.29,0,0,1,33,751.06c1.08.23,15.45,4.08,11.15,5.28a67.3,67.3,0,0,0-13-4.23c-1.95,1.1-3.86,2.25-5.79,3.39.93.19,16.42,3.55,11,4.53a98.17,98.17,0,0,0-12.82-3.48c-5.33,3.17-10.67,6.32-15.93,9.58-2.2,1.36-4.6,2.66-6,4.7A9.46,9.46,0,0,0,1,780c-3.76,16.21,2.88,16.83,18.37,20.24,22,5.62,41-7.86,60.08-15.18,4-1.87,8.39-3.27,12-5.73C94.82,777,97,771.9,94,768.44c2.14-4-.71-13.77-1.39-18.45-.57-3-1-7.71-5.33-7.86,1.17-.76,1.14-2.19.75-3.34-.52-5.66,1.24-15.72,1.67-22.12,3.35.24,8.32,1.22,10.06-2.49a1.6,1.6,0,0,0-1.3-2.37h0c.24,0,.17,0,0,0,17.76-73.31,29.21-148.42,54.85-219.6,5.86-13.75,8.48-31.49,21.59-40.36a6.54,6.54,0,0,0,1.06,3.18l.12.43c.46,1.79,1,3.56,1.43,5.35,10.25,78.93,22.1,157.7,27.79,237.16.86,3.68-.54,16.78,4.61,16.19a8.8,8.8,0,0,0,2.16.7c-1.06,4.73-.76,11.86-.73,16.16s-.79,8.76-.31,13c.55,2.8,5.79,1.12,4.94-1.7a203.41,203.41,0,0,0-2-27,103.6,103.6,0,0,0,24.43,1.57c-.43,4.73,1,10.65,2.6,14.53a38.65,38.65,0,0,0-13.42,7.19c-3.58,3.26-6.87,10.72-13.19,8.25-1.75-.78-3.67-2.13-4.27-3.87-.59-.43-.28.62-.17.87l-.24.08c-1.45-.93-4.12,8.68-4.34,9.88-1.12,5.15-2.41,11,.23,15.82-5.67,2.35-5.06,10-.85,13.23,16.7,10.82,44.56,19.65,65.3,21.13,3.67.25,7.53-.82,11-2,4.1-1.09,8.22-2.27,12.27-3.55,3.58-.82,6.26-3.89,5.82-7.23Z"/><path class="cls-1" d="M189.54,6.08c17,0,34.67,13.21,40.92,21.64,5.25,7.09,8.08,39.14,8.08,60.8,0,4.53,2.5,13.07,1.77,17.4-2.67,15.88-14.32,29.2-37.37,29.2s-39.58-9.14-56.72-33.67c-8.31,0-12.34-6.38-12.4-16.44q-.06-10.07,8-13.72-2.88-39.71,4.37-50C153.48,10.91,172.5,6.08,189.54,6.08Z"/><path class="cls-2" d="M182.37.47c10.76-1.09,21.3-.18,31.91,1.72a1.74,1.74,0,0,1,1.44,1.31c5,.23,10,.6,15,.87a2.36,2.36,0,0,1,2,3.51c-.16.32-.33.63-.51.94l.22-.07a5.89,5.89,0,0,1,4.59,0,4.6,4.6,0,0,1,2.18,5.1,8.35,8.35,0,0,1-.49,1.46,6.32,6.32,0,0,1,1.23,0,4.39,4.39,0,0,1,3.9,4.18c.17,3.34-2,6.74-4.53,9.14a4.27,4.27,0,0,1,.36,2.56,4.94,4.94,0,0,1-3.16,3.57,16.34,16.34,0,0,1,.76,6.31,1.73,1.73,0,0,1-1.36,1.46A99.23,99.23,0,0,1,240.56,64a131.45,131.45,0,0,1,1,15.36q0,3.48-.12,7l0,.87a58.79,58.79,0,0,1-.57,7.61,21.44,21.44,0,0,1,2.41,8.79,27,27,0,0,1-1.33,10.82c-4.32,13-17.34,21.26-30.43,23.39-12.11,2-26.13-.68-33.2-11.68-.11-.18.12-.32.26-.21,5.06,4.12,10.94,6,17.32,6.85,11,1.55,23.44-1.07,32.29-8a25.18,25.18,0,0,0,8.67-13.4,23.84,23.84,0,0,0,.65-8.2c-.28-2.79-1.51-5.16-2.29-7.8a2.37,2.37,0,0,1,.56-2.3c.15-2.14.51-4.29.65-6.42.16-2.42.25-4.85.28-7.27.06-5-.15-10.07-.57-15.08-.77-9.18-2.83-18.13-4-27.22a1.48,1.48,0,0,1-1.75.21l-.07,0-.37-.2h-.07a19.27,19.27,0,0,1-7.5-.85,22,22,0,0,1-6.93-3.58,31.78,31.78,0,0,0-.57,6.08,1.64,1.64,0,0,1-2.43,1.4,102.05,102.05,0,0,1-13.63-8.34c-.51,2.58-1,5.16-1.52,7.75a1.56,1.56,0,0,1-2.28.93,29,29,0,0,1-8.3-7.28c-.46.87-.91,1.74-1.37,2.6l-.69,1.3c-.68,1.28-1.59,2.69-3.09,3.1a2.87,2.87,0,0,1-3.42-2c-.17-.45-.32-.9-.45-1.36A80.75,80.75,0,0,1,173,45.66a117.85,117.85,0,0,1-8.75,12.05c-.94,1.19-2.54.06-2.67-1.1-.08-.68-.14-1.37-.2-2-1.79,3.63-3.67,7.22-5.71,10.7l.29,1.15h0c.85,3.38,1.55,6.79,2.31,10.2.24,1.09-.34,2.66-1.62,2.85-1.54.23-3,1-4.56.47s-2-2.07-2.85-3.47a6.39,6.39,0,0,0-.55-.78l-.06.07h0c-.12.16-.42,0-.35-.21l.09-.22h0a29.39,29.39,0,0,0-2.29-2,8.19,8.19,0,0,0-5.11.77c-2.85,1.68-4.15,5.14-4.18,8.33a21.9,21.9,0,0,0,3.07,11.1,7.73,7.73,0,0,0,3.59,3.29c1.55.62,3.22.43,4.79,1a1.79,1.79,0,0,1,1.05,2.59,2.43,2.43,0,0,1-.14.2l.47.62c.32.43.66.89,1,1.37.8.92,1.64,1.81,2.45,2.71,1.5,1.66,3,3.38,4.44,5.07s2.88,3.09,4.4,4.56,3.23,2.57,4.55,4.06,1.63,4-.48,4.83c-2.34.93-4.41-1.25-6-2.71l-.07-.06a43.91,43.91,0,0,1-7.56-9,6.46,6.46,0,0,1-7,.13,6.14,6.14,0,0,1-2.3-3.31,4.38,4.38,0,0,1-1.12.13c-.19.11-.38.22-.58.32a2.81,2.81,0,0,1-4.08-1.25c-.64-1.53,0-3.26.59-4.74l.11-.3c.33-.84.69-1.76,1.13-2.62a14.17,14.17,0,0,1-3.19-3.4,25.24,25.24,0,0,1-3.84-16.18,14,14,0,0,1,4.35-8.64l-.09-.24h0a35.24,35.24,0,0,1-1.72-5.33,56.13,56.13,0,0,1-.91-6.59,63,63,0,0,1,.26-14,55.26,55.26,0,0,1,8.93-24.45c-1.42-1.7-2.54-3.69-2-6a4.48,4.48,0,0,1,1.8-2.65,15.74,15.74,0,0,1,1.62-.66l.15-.09c.22-.13.05-.12-.08-.72C143.87,9,144.31,6.7,147,5.9c2.5-.75,4.86.85,6.34,2.76,3.87-2.75,9-4.19,13.46-5.41A97.13,97.13,0,0,1,182.37.47Zm-41.83,81a3,3,0,0,1,3.68-2.85,7.53,7.53,0,0,1,3.23,1.7l.47.38a11.48,11.48,0,0,1,3.22,3.22c1,1.93-1.14,4.52-3.17,3.17a12.53,12.53,0,0,1-3.19-3.81l-.1-.14a7.84,7.84,0,0,0-1.34-1.78l-.12-.11a1.62,1.62,0,0,0-.63-.37,1.35,1.35,0,0,0-1.53.6l0,.06A.26.26,0,0,1,140.54,81.42Z"/><path class="cls-2" d="M192,87.77c5-.61,9.84.92,14.72,1.69a67.61,67.61,0,0,0,7.76.82c.53,0,1.05,0,1.58,0a1.39,1.39,0,0,1,.87-1.14,6.7,6.7,0,0,1,3.32-.7,23.33,23.33,0,0,1,3.45.37,10.79,10.79,0,0,1,5.65,2.73c3.5,3.45,3,9,.26,12.76-5.57,7.77-15.76,8.13-24.48,8h-.8c-7.94-.11-19.3,1.07-22.91-8A12.7,12.7,0,0,1,181.88,94C183.81,90.24,187.89,88.26,192,87.77Zm24.81,12.94h-.08q-5.49.21-11,.3c.11.94.22,1.89.35,2.82.1.74.21,1.48.32,2.22a4.2,4.2,0,0,1,.17,1.1l0,.12h0a1.18,1.18,0,0,1,.49.43,1.28,1.28,0,0,1,.11.2,48.52,48.52,0,0,0,8.8-.55v-.06h0a1.16,1.16,0,0,1,.41-.79c.2-1.18.18-2.44.26-3.61C216.67,102.16,216.72,101.43,216.78,100.71Zm-13.86.35c-2.64,0-5.27.08-7.91,0l-1.2,0h0c.25,1.36.53,2.71.76,4.08a2,2,0,0,1-2.1,2.29l.36.06a72.84,72.84,0,0,0,10.35.34,22.29,22.29,0,0,1-.14-3.19v-.14C203,103.37,202.94,102.22,202.92,101.06ZM185,100.81a7.77,7.77,0,0,0,.54,2c1.12,2.72,3.71,4,6.44,4.52a1.42,1.42,0,0,1-.95-1.23,39.16,39.16,0,0,1-.33-5.08C188.8,101,186.88,101,185,100.81Zm41.7-.58a23.53,23.53,0,0,1-4.26.24c-1.24.06-2.49.1-3.74.15l.18,2.56a29.15,29.15,0,0,0,.3,3.35,13.28,13.28,0,0,0,6.44-4.42A8.23,8.23,0,0,0,226.7,100.23Zm-35.3-8A8.28,8.28,0,0,0,185.86,96a7.86,7.86,0,0,0-.92,4.11c1.91-.22,3.85-.31,5.78-.38,0-.34,0-.69,0-1l0-.88A21,21,0,0,1,191.4,92.22Zm11.68.21-1-.11a47,47,0,0,0-8.28-.46c-.4,0-.8.08-1.21.13a36.74,36.74,0,0,1,.65,5.57c.08.68.18,1.35.29,2l.48,0h0c3-.16,5.92-.26,8.89-.38,0-.55,0-1.11,0-1.67v-.56A38.25,38.25,0,0,1,203.08,92.43Zm13.86-.22a55.91,55.91,0,0,1-8.72.56c-1.13,0-2.27-.06-3.4-.16.08.6.11,1.21.17,1.8.11,1.21.24,2.41.38,3.6l.12,1h0c3.64-.16,7.29-.34,10.93-.53l.51,0h0l.14-2c.1-1.34.21-2.69.36-4l-.11,0h0A1.76,1.76,0,0,1,216.94,92.21Zm1.25.5c.16,1.9.25,3.8.37,5.71l2.4-.13,1.2-.07c1.55-.09,3.55-.56,5.09-.12a4,4,0,0,0-1.55-3.7C223.49,92.75,220.67,93.34,218.19,92.71Zm-8.2-17c3.57-2,12.54-4.14,13.11,2.29.26,3-1.94,5.41-4.51,6.51l-.09,0c-2.42,1-6.69,2.11-8.77,0-1.74-1.79.56-5,2.72-3.53,1.11.75,3.44.2,4.68-.16l.08,0c1.33-.4,3.11-1.65,2.56-3.3-.49-1.45-2.57-1.72-3.87-1.76a50.74,50.74,0,0,0-5.76.53A.3.3,0,0,1,210,75.72ZM224.8,65.37c4.85-.23,7.87,5.07,6.75,9.41a1.9,1.9,0,0,1-1.84,1.4l-.2,0a1.54,1.54,0,0,1-.31,0,1.94,1.94,0,0,1-1.4-1.84l0-.24c.11-2-.11-4.41-2.55-4.91-2.06-.42-3.22,1.57-3.24,3.4a.44.44,0,0,1-.66.38,3.44,3.44,0,0,1-1.18-4.27A5,5,0,0,1,224.8,65.37Zm-36,1.14a7.75,7.75,0,0,1,9,3.82A1.35,1.35,0,0,1,199,71.68a3.74,3.74,0,0,1-1,2.43,2.2,2.2,0,0,1-3.63-.9l0-.06a3.61,3.61,0,0,0-4.56-2.52c-2.25.78-2.19,3.16-3.77,4.55a.54.54,0,0,1-.63.08c-1.68-.81-1.38-3.25-.78-4.65A7.35,7.35,0,0,1,188.8,66.51ZM184,55.79c2.86-2.92,10.32-5.75,12.28-.36a2.16,2.16,0,0,1-1.49,2.63c-1.75.35-3.31-.41-5.05-.28a7.56,7.56,0,0,0-4,1.46c-3.12,2.41-3.8,6.5-6,9.57a.18.18,0,0,1-.33-.09A17,17,0,0,1,184,55.79Zm37.31-2.88a9.53,9.53,0,0,1,5.95,0,11.42,11.42,0,0,1,5.05,3.22A13.1,13.1,0,0,1,234,58.33c.24.42.49,1.29.77,1.81a2.68,2.68,0,0,1,.8,4.23l-.06.06-.18.18a2.91,2.91,0,0,1-2.79.74c-2.2-.64-2.47-2.37-3.23-4.21a7.56,7.56,0,0,0-2.4-3.08,11.6,11.6,0,0,0-9.49-1.58c-.16.05-.34-.15-.23-.3a8.78,8.78,0,0,1,1.64-1.91A8.91,8.91,0,0,1,221.3,52.91Z"/></g></g></svg> \ No newline at end of file
diff --git a/Resources/assets/résumé.pdf b/Resources/assets/résumé.pdf
new file mode 100644
index 0000000..8931b18
--- /dev/null
+++ b/Resources/assets/résumé.pdf
Binary files differ
diff --git a/Resources/assets/sakura.css b/Resources/assets/sakura.css
new file mode 100644
index 0000000..61c929e
--- /dev/null
+++ b/Resources/assets/sakura.css
@@ -0,0 +1,186 @@
+/* Sakura.css v1.3.0
+ * ================
+ * Minimal css theme.
+ * Project: https://github.com/oxalorg/sakura/
+ */
+/* Body */
+html {
+ font-size: 62.5%;
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif; }
+
+body {
+ font-size: 1.8rem;
+ line-height: 1.618;
+ max-width: 38em;
+ margin: auto;
+ color: #4a4a4a;
+ background-color: #f9f9f9;
+ padding: 13px; }
+
+@media (max-width: 684px) {
+ body {
+ font-size: 1.53rem; } }
+
+@media (max-width: 382px) {
+ body {
+ font-size: 1.35rem; } }
+
+h1, h2, h3, h4, h5, h6 {
+ line-height: 1.1;
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
+ font-weight: 700;
+ margin-top: 3rem;
+ margin-bottom: 1.5rem;
+ overflow-wrap: break-word;
+ word-wrap: break-word;
+ -ms-word-break: break-all;
+ word-break: break-word;
+ -ms-hyphens: auto;
+ -moz-hyphens: auto;
+ -webkit-hyphens: auto;
+ hyphens: auto; }
+
+h1 {
+ font-size: 2.35em; }
+
+h2 {
+ font-size: 2.00em; }
+
+h3 {
+ font-size: 1.75em; }
+
+h4 {
+ font-size: 1.5em; }
+
+h5 {
+ font-size: 1.25em; }
+
+h6 {
+ font-size: 1em; }
+
+p {
+ margin-top: 0px;
+ margin-bottom: 2.5rem; }
+
+small, sub, sup {
+ font-size: 75%; }
+
+hr {
+ border-color: #2c8898; }
+
+a {
+ text-decoration: none;
+ color: #2c8898; }
+ a:hover {
+ color: #982c61;
+ border-bottom: 2px solid #4a4a4a; }
+
+ul {
+ padding-left: 1.4em;
+ margin-top: 0px;
+ margin-bottom: 2.5rem; }
+
+li {
+ margin-bottom: 0.4em; }
+
+blockquote {
+ margin-left: 0px;
+ margin-right: 0px;
+ padding-left: 1em;
+ padding-top: 0.8em;
+ padding-bottom: 0.8em;
+ padding-right: 0.8em;
+ border-left: 5px solid #2c8898;
+ margin-bottom: 2.5rem;
+ background-color: #f1f1f1; }
+
+blockquote p {
+ margin-bottom: 0; }
+
+img {
+ height: auto;
+ max-width: 100%;
+ margin-top: 0px;
+ margin-bottom: 2.5rem; }
+
+/* Pre and Code */
+pre {
+ background-color: #f1f1f1;
+ display: block;
+ padding: 1em;
+ overflow-x: auto;
+ margin-top: 0px;
+ margin-bottom: 2.5rem; }
+
+code {
+ font-size: 0.9em;
+ padding: 0 0.5em;
+ background-color: #f1f1f1;
+ white-space: pre-wrap; }
+
+pre > code {
+ padding: 0;
+ background-color: transparent;
+ white-space: pre; }
+
+/* Tables */
+table {
+ text-align: justify;
+ width: 100%;
+ border-collapse: collapse; }
+
+td, th {
+ padding: 0.5em;
+ border-bottom: 1px solid #f1f1f1; }
+
+/* Buttons, forms and input */
+input, textarea {
+ border: 1px solid #4a4a4a; }
+ input:focus, textarea:focus {
+ border: 1px solid #2c8898; }
+
+textarea {
+ width: 100%; }
+
+.button, button, input[type="submit"], input[type="reset"], input[type="button"] {
+ display: inline-block;
+ padding: 5px 10px;
+ text-align: center;
+ text-decoration: none;
+ white-space: nowrap;
+ background-color: #2c8898;
+ color: #f9f9f9;
+ border-radius: 1px;
+ border: 1px solid #2c8898;
+ cursor: pointer;
+ box-sizing: border-box; }
+ .button[disabled], button[disabled], input[type="submit"][disabled], input[type="reset"][disabled], input[type="button"][disabled] {
+ cursor: default;
+ opacity: .5; }
+ .button:focus:enabled, .button:hover:enabled, button:focus:enabled, button:hover:enabled, input[type="submit"]:focus:enabled, input[type="submit"]:hover:enabled, input[type="reset"]:focus:enabled, input[type="reset"]:hover:enabled, input[type="button"]:focus:enabled, input[type="button"]:hover:enabled {
+ background-color: #982c61;
+ border-color: #982c61;
+ color: #f9f9f9;
+ outline: 0; }
+
+textarea, select, input[type] {
+ color: #4a4a4a;
+ padding: 6px 10px;
+ /* The 6px vertically centers text on FF, ignored by Webkit */
+ margin-bottom: 10px;
+ background-color: #f1f1f1;
+ border: 1px solid #f1f1f1;
+ border-radius: 4px;
+ box-shadow: none;
+ box-sizing: border-box; }
+ textarea:focus, select:focus, input[type]:focus {
+ border: 1px solid #2c8898;
+ outline: 0; }
+
+input[type="checkbox"]:focus {
+ outline: 1px dotted #2c8898; }
+
+label, legend, fieldset {
+ display: block;
+ margin-bottom: .5rem;
+ font-weight: 600; }
diff --git a/Resources/googlecb0897d479c87d97.html b/Resources/googlecb0897d479c87d97.html
new file mode 100644
index 0000000..5907da5
--- /dev/null
+++ b/Resources/googlecb0897d479c87d97.html
@@ -0,0 +1 @@
+google-site-verification: googlecb0897d479c87d97.html \ No newline at end of file
diff --git a/Resources/images/04d0580b-d347-476a-232d-9568839851cd.webPlatform.png b/Resources/images/04d0580b-d347-476a-232d-9568839851cd.webPlatform.png
new file mode 100644
index 0000000..c277bbc
--- /dev/null
+++ b/Resources/images/04d0580b-d347-476a-232d-9568839851cd.webPlatform.png
Binary files differ
diff --git a/Resources/images/14a6e126-4866-93de-8df5-e0e6a3c65da1.webPlatform.png b/Resources/images/14a6e126-4866-93de-8df5-e0e6a3c65da1.webPlatform.png
new file mode 100644
index 0000000..643a2bd
--- /dev/null
+++ b/Resources/images/14a6e126-4866-93de-8df5-e0e6a3c65da1.webPlatform.png
Binary files differ
diff --git a/Resources/images/15294abc-6c7c-ffb8-df8d-d2fad23f50b0.webPlatform.png b/Resources/images/15294abc-6c7c-ffb8-df8d-d2fad23f50b0.webPlatform.png
new file mode 100644
index 0000000..1dcb03d
--- /dev/null
+++ b/Resources/images/15294abc-6c7c-ffb8-df8d-d2fad23f50b0.webPlatform.png
Binary files differ
diff --git a/Resources/images/6b5f7f70-557f-0e4b-3d76-127534525db9.webPlatform.png b/Resources/images/6b5f7f70-557f-0e4b-3d76-127534525db9.webPlatform.png
new file mode 100644
index 0000000..02e58c4
--- /dev/null
+++ b/Resources/images/6b5f7f70-557f-0e4b-3d76-127534525db9.webPlatform.png
Binary files differ
diff --git a/Resources/images/82e24f17-2e71-90d8-67a7-587163282ebf.webPlatform.png b/Resources/images/82e24f17-2e71-90d8-67a7-587163282ebf.webPlatform.png
new file mode 100644
index 0000000..cc36571
--- /dev/null
+++ b/Resources/images/82e24f17-2e71-90d8-67a7-587163282ebf.webPlatform.png
Binary files differ
diff --git a/Resources/images/8c0ffe9e-b615-96cd-3e18-ab4307c859a0.webPlatform.png b/Resources/images/8c0ffe9e-b615-96cd-3e18-ab4307c859a0.webPlatform.png
new file mode 100644
index 0000000..76e34bc
--- /dev/null
+++ b/Resources/images/8c0ffe9e-b615-96cd-3e18-ab4307c859a0.webPlatform.png
Binary files differ
diff --git a/Resources/images/9384518b-2a6c-0abc-136c-8c8faf49c71b.webPlatform.png b/Resources/images/9384518b-2a6c-0abc-136c-8c8faf49c71b.webPlatform.png
new file mode 100644
index 0000000..f659b0b
--- /dev/null
+++ b/Resources/images/9384518b-2a6c-0abc-136c-8c8faf49c71b.webPlatform.png
Binary files differ
diff --git a/Resources/images/9bf4aee8-92e3-932f-5388-7731928b5692.webPlatform.png b/Resources/images/9bf4aee8-92e3-932f-5388-7731928b5692.webPlatform.png
new file mode 100644
index 0000000..31c4507
--- /dev/null
+++ b/Resources/images/9bf4aee8-92e3-932f-5388-7731928b5692.webPlatform.png
Binary files differ
diff --git a/Resources/images/9dc22996-fd1b-b2d3-3627-cef4fa224e25.webPlatform.png b/Resources/images/9dc22996-fd1b-b2d3-3627-cef4fa224e25.webPlatform.png
new file mode 100644
index 0000000..baf1814
--- /dev/null
+++ b/Resources/images/9dc22996-fd1b-b2d3-3627-cef4fa224e25.webPlatform.png
Binary files differ
diff --git a/Resources/images/afd91c53-cfd0-b52e-ca49-1db0cc292b7d.webPlatform.png b/Resources/images/afd91c53-cfd0-b52e-ca49-1db0cc292b7d.webPlatform.png
new file mode 100644
index 0000000..adbf1a3
--- /dev/null
+++ b/Resources/images/afd91c53-cfd0-b52e-ca49-1db0cc292b7d.webPlatform.png
Binary files differ
diff --git a/Resources/images/b0cac729-56cb-2a63-7e8b-ac62a038a023.webPlatform.png b/Resources/images/b0cac729-56cb-2a63-7e8b-ac62a038a023.webPlatform.png
new file mode 100644
index 0000000..7cfe2a7
--- /dev/null
+++ b/Resources/images/b0cac729-56cb-2a63-7e8b-ac62a038a023.webPlatform.png
Binary files differ
diff --git a/Resources/images/bb0aca46-4612-c284-055f-58850c0730bd.webPlatform.png b/Resources/images/bb0aca46-4612-c284-055f-58850c0730bd.webPlatform.png
new file mode 100644
index 0000000..a5be51a
--- /dev/null
+++ b/Resources/images/bb0aca46-4612-c284-055f-58850c0730bd.webPlatform.png
Binary files differ
diff --git a/Resources/images/c5840a63-85f5-62b0-c68f-2faa4aaea42b.webPlatform.png b/Resources/images/c5840a63-85f5-62b0-c68f-2faa4aaea42b.webPlatform.png
new file mode 100644
index 0000000..bbc54fc
--- /dev/null
+++ b/Resources/images/c5840a63-85f5-62b0-c68f-2faa4aaea42b.webPlatform.png
Binary files differ
diff --git a/Resources/images/cbac5b1d-0299-9db6-3747-c7aeaaaa37d0.webPlatform.png b/Resources/images/cbac5b1d-0299-9db6-3747-c7aeaaaa37d0.webPlatform.png
new file mode 100644
index 0000000..80c3c4f
--- /dev/null
+++ b/Resources/images/cbac5b1d-0299-9db6-3747-c7aeaaaa37d0.webPlatform.png
Binary files differ
diff --git a/Resources/images/e429a798-7e86-1f02-565e-39dfab41fe36.webPlatform.png b/Resources/images/e429a798-7e86-1f02-565e-39dfab41fe36.webPlatform.png
new file mode 100644
index 0000000..f1bc144
--- /dev/null
+++ b/Resources/images/e429a798-7e86-1f02-565e-39dfab41fe36.webPlatform.png
Binary files differ
diff --git a/Resources/images/f1579c61-f17f-ff49-3f97-e942f202bebf.webPlatform.png b/Resources/images/f1579c61-f17f-ff49-3f97-e942f202bebf.webPlatform.png
new file mode 100644
index 0000000..aad0184
--- /dev/null
+++ b/Resources/images/f1579c61-f17f-ff49-3f97-e942f202bebf.webPlatform.png
Binary files differ
diff --git a/Resources/images/f178697f-630b-bafd-7c7d-e1287b98a969.webPlatform.png b/Resources/images/f178697f-630b-bafd-7c7d-e1287b98a969.webPlatform.png
new file mode 100644
index 0000000..d4c320d
--- /dev/null
+++ b/Resources/images/f178697f-630b-bafd-7c7d-e1287b98a969.webPlatform.png
Binary files differ
diff --git a/Resources/images/f400aaaa-861c-78c0-0919-07a886e57304.webPlatform.png b/Resources/images/f400aaaa-861c-78c0-0919-07a886e57304.webPlatform.png
new file mode 100644
index 0000000..bb5762e
--- /dev/null
+++ b/Resources/images/f400aaaa-861c-78c0-0919-07a886e57304.webPlatform.png
Binary files differ
diff --git a/Resources/images/f7842765-fff5-aa39-9f7f-fdd3024d4056.webPlatform.png b/Resources/images/f7842765-fff5-aa39-9f7f-fdd3024d4056.webPlatform.png
new file mode 100644
index 0000000..ea79c57
--- /dev/null
+++ b/Resources/images/f7842765-fff5-aa39-9f7f-fdd3024d4056.webPlatform.png
Binary files differ
diff --git a/Resources/images/favicon.png b/Resources/images/favicon.png
new file mode 100644
index 0000000..ce3a263
--- /dev/null
+++ b/Resources/images/favicon.png
Binary files differ
diff --git a/Resources/images/logo.png b/Resources/images/logo.png
new file mode 100644
index 0000000..caaf43c
--- /dev/null
+++ b/Resources/images/logo.png
Binary files differ
diff --git a/Resources/images/me.jpeg b/Resources/images/me.jpeg
new file mode 100644
index 0000000..cf70e23
--- /dev/null
+++ b/Resources/images/me.jpeg
Binary files differ
diff --git a/Resources/manifest.json b/Resources/manifest.json
new file mode 100644
index 0000000..bb4ec5d
--- /dev/null
+++ b/Resources/manifest.json
@@ -0,0 +1,119 @@
+{
+ "dir": "ltr",
+ "lang": "en",
+ "name": "Hi! | Navan Chauhan",
+ "scope": "/",
+ "display": "fullscreen",
+ "start_url": "https://navanchauhan.github.io/",
+ "short_name": "Navan Chauhan",
+ "theme_color": "black",
+ "description": "Welcome to my personal fragment of the internet.",
+ "orientation": "any",
+ "background_color": "transparent",
+ "related_applications": [],
+ "prefer_related_applications": false,
+ "icons": [
+ {
+ "src": "/images/favicon.png",
+ "type": "image/png",
+ "sizes": "32x32"
+ },
+ {
+ "src": "/images/14a6e126-4866-93de-8df5-e0e6a3c65da1.webPlatform.png",
+ "sizes": "44x44",
+ "type": "image/png"
+ },
+ {
+ "src": "/images/6b5f7f70-557f-0e4b-3d76-127534525db9.webPlatform.png",
+ "sizes": "48x48",
+ "type": "image/png"
+ },
+ {
+ "src": "/images/c5840a63-85f5-62b0-c68f-2faa4aaea42b.webPlatform.png",
+ "sizes": "1240x600",
+ "type": "image/png"
+ },
+ {
+ "src": "/images/82e24f17-2e71-90d8-67a7-587163282ebf.webPlatform.png",
+ "sizes": "300x300",
+ "type": "image/png"
+ },
+ {
+ "src": "/images/f7842765-fff5-aa39-9f7f-fdd3024d4056.webPlatform.png",
+ "sizes": "150x150",
+ "type": "image/png"
+ },
+ {
+ "src": "/images/9384518b-2a6c-0abc-136c-8c8faf49c71b.webPlatform.png",
+ "sizes": "88x88",
+ "type": "image/png"
+ },
+ {
+ "src": "/images/15294abc-6c7c-ffb8-df8d-d2fad23f50b0.webPlatform.png",
+ "sizes": "24x24",
+ "type": "image/png"
+ },
+ {
+ "src": "/images/f178697f-630b-bafd-7c7d-e1287b98a969.webPlatform.png",
+ "sizes": "50x50",
+ "type": "image/png"
+ },
+ {
+ "src": "/images/f400aaaa-861c-78c0-0919-07a886e57304.webPlatform.png",
+ "sizes": "620x300",
+ "type": "image/png"
+ },
+ {
+ "src": "/images/8c0ffe9e-b615-96cd-3e18-ab4307c859a0.webPlatform.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "/images/f1579c61-f17f-ff49-3f97-e942f202bebf.webPlatform.png",
+ "sizes": "144x144",
+ "type": "image/png"
+ },
+ {
+ "src": "/images/9bf4aee8-92e3-932f-5388-7731928b5692.webPlatform.png",
+ "sizes": "96x96",
+ "type": "image/png"
+ },
+ {
+ "src": "/images/9dc22996-fd1b-b2d3-3627-cef4fa224e25.webPlatform.png",
+ "sizes": "72x72",
+ "type": "image/png"
+ },
+ {
+ "src": "/images/afd91c53-cfd0-b52e-ca49-1db0cc292b7d.webPlatform.png",
+ "sizes": "36x36",
+ "type": "image/png"
+ },
+ {
+ "src": "/images/e429a798-7e86-1f02-565e-39dfab41fe36.webPlatform.png",
+ "sizes": "1024x1024",
+ "type": "image/png"
+ },
+ {
+ "src": "/images/04d0580b-d347-476a-232d-9568839851cd.webPlatform.png",
+ "sizes": "180x180",
+ "type": "image/png"
+ },
+ {
+ "src": "/images/cbac5b1d-0299-9db6-3747-c7aeaaaa37d0.webPlatform.png",
+ "sizes": "152x152",
+ "type": "image/png"
+ },
+ {
+ "src": "/images/b0cac729-56cb-2a63-7e8b-ac62a038a023.webPlatform.png",
+ "sizes": "120x120",
+ "type": "image/png"
+ },
+ {
+ "src": "/images/bb0aca46-4612-c284-055f-58850c0730bd.webPlatform.png",
+ "sizes": "76x76",
+ "type": "image/png"
+ }
+ ],
+ "url": "https://navanchauhan.github.io",
+ "screenshots": []
+}
diff --git a/Resources/pwabuilder-sw-register.js b/Resources/pwabuilder-sw-register.js
new file mode 100644
index 0000000..8850330
--- /dev/null
+++ b/Resources/pwabuilder-sw-register.js
@@ -0,0 +1,19 @@
+// This is the service worker with the Cache-first network
+
+// Add this below content to your HTML page, or add the js file to your page at the very top to register service worker
+
+// Check compatibility for the browser we're running this in
+if ("serviceWorker" in navigator) {
+ if (navigator.serviceWorker.controller) {
+ console.log("[PWA Builder] active service worker found, no need to register");
+ } else {
+ // Register the service worker
+ navigator.serviceWorker
+ .register("/pwabuilder-sw.js", {
+ scope: "./"
+ })
+ .then(function (reg) {
+ console.log("[PWA Builder] Service worker has been registered for scope: " + reg.scope);
+ });
+ }
+}
diff --git a/Resources/pwabuilder-sw.js b/Resources/pwabuilder-sw.js
new file mode 100644
index 0000000..0684da5
--- /dev/null
+++ b/Resources/pwabuilder-sw.js
@@ -0,0 +1,83 @@
+// This is the service worker with the Cache-first network
+
+const CACHE = "pwabuilder-precache";
+const precacheFiles = [
+ /* Add an array of files to precache for your app */
+];
+
+self.addEventListener("install", function (event) {
+ console.log("[PWA Builder] Install Event processing");
+
+ console.log("[PWA Builder] Skip waiting on install");
+ self.skipWaiting();
+
+ event.waitUntil(
+ caches.open(CACHE).then(function (cache) {
+ console.log("[PWA Builder] Caching pages during install");
+ return cache.addAll(precacheFiles);
+ })
+ );
+});
+
+// Allow sw to control of current page
+self.addEventListener("activate", function (event) {
+ console.log("[PWA Builder] Claiming clients for current page");
+ event.waitUntil(self.clients.claim());
+});
+
+// If any fetch fails, it will look for the request in the cache and serve it from there first
+self.addEventListener("fetch", function (event) {
+ if (event.request.method !== "GET") return;
+
+ event.respondWith(
+ fromCache(event.request).then(
+ function (response) {
+ // The response was found in the cache so we responde with it and update the entry
+
+ // This is where we call the server to get the newest version of the
+ // file to use the next time we show view
+ event.waitUntil(
+ fetch(event.request).then(function (response) {
+ return updateCache(event.request, response);
+ })
+ );
+
+ return response;
+ },
+ function () {
+ // The response was not found in the cache so we look for it on the server
+ return fetch(event.request)
+ .then(function (response) {
+ // If request was success, add or update it in the cache
+ event.waitUntil(updateCache(event.request, response.clone()));
+
+ return response;
+ })
+ .catch(function (error) {
+ console.log("[PWA Builder] Network request failed and no cache." + error);
+ });
+ }
+ )
+ );
+});
+
+function fromCache(request) {
+ // Check to see if you have it in the cache
+ // Return response
+ // If not in the cache, then return
+ return caches.open(CACHE).then(function (cache) {
+ return cache.match(request).then(function (matching) {
+ if (!matching || matching.status === 404) {
+ return Promise.reject("no-match");
+ }
+
+ return matching;
+ });
+ });
+}
+
+function updateCache(request, response) {
+ return caches.open(CACHE).then(function (cache) {
+ return cache.put(request, response);
+ });
+}