From cf52dc77cc52e14929cc70d5e3871de3999abc27 Mon Sep 17 00:00:00 2001 From: Kassius Barker Date: Sun, 31 Mar 2019 15:06:22 -0400 Subject: [PATCH 1/8] Added Gemfile to allow local testing. --- Gemfile | 2 + Gemfile.lock | 248 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 250 insertions(+) create mode 100644 Gemfile create mode 100644 Gemfile.lock diff --git a/Gemfile b/Gemfile new file mode 100644 index 00000000..91ceacd3 --- /dev/null +++ b/Gemfile @@ -0,0 +1,2 @@ +source 'https://rubygems.org' +gem 'github-pages', group: :jekyll_plugins \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 00000000..057c847b --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,248 @@ +GEM + remote: https://rubygems.org/ + specs: + activesupport (4.2.10) + i18n (~> 0.7) + minitest (~> 5.1) + thread_safe (~> 0.3, >= 0.3.4) + tzinfo (~> 1.1) + addressable (2.5.2) + public_suffix (>= 2.0.2, < 4.0) + coffee-script (2.4.1) + coffee-script-source + execjs + coffee-script-source (1.11.1) + colorator (1.1.0) + commonmarker (0.17.13) + ruby-enum (~> 0.5) + concurrent-ruby (1.1.5) + dnsruby (1.61.2) + addressable (~> 2.5) + em-websocket (0.5.1) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0.6.0) + ethon (0.12.0) + ffi (>= 1.3.0) + eventmachine (1.2.7) + execjs (2.7.0) + faraday (0.15.4) + multipart-post (>= 1.2, < 3) + ffi (1.10.0) + forwardable-extended (2.6.0) + gemoji (3.0.0) + github-pages (197) + activesupport (= 4.2.10) + github-pages-health-check (= 1.16.1) + jekyll (= 3.7.4) + jekyll-avatar (= 0.6.0) + jekyll-coffeescript (= 1.1.1) + jekyll-commonmark-ghpages (= 0.1.5) + jekyll-default-layout (= 0.1.4) + jekyll-feed (= 0.11.0) + jekyll-gist (= 1.5.0) + jekyll-github-metadata (= 2.12.1) + jekyll-mentions (= 1.4.1) + jekyll-optional-front-matter (= 0.3.0) + jekyll-paginate (= 1.1.0) + jekyll-readme-index (= 0.2.0) + jekyll-redirect-from (= 0.14.0) + jekyll-relative-links (= 0.6.0) + jekyll-remote-theme (= 0.3.1) + jekyll-sass-converter (= 1.5.2) + jekyll-seo-tag (= 2.5.0) + jekyll-sitemap (= 1.2.0) + jekyll-swiss (= 0.4.0) + jekyll-theme-architect (= 0.1.1) + jekyll-theme-cayman (= 0.1.1) + jekyll-theme-dinky (= 0.1.1) + jekyll-theme-hacker (= 0.1.1) + jekyll-theme-leap-day (= 0.1.1) + jekyll-theme-merlot (= 0.1.1) + jekyll-theme-midnight (= 0.1.1) + jekyll-theme-minimal (= 0.1.1) + jekyll-theme-modernist (= 0.1.1) + jekyll-theme-primer (= 0.5.3) + jekyll-theme-slate (= 0.1.1) + jekyll-theme-tactile (= 0.1.1) + jekyll-theme-time-machine (= 0.1.1) + jekyll-titles-from-headings (= 0.5.1) + jemoji (= 0.10.2) + kramdown (= 1.17.0) + liquid (= 4.0.0) + listen (= 3.1.5) + mercenary (~> 0.3) + minima (= 2.5.0) + nokogiri (>= 1.8.5, < 2.0) + rouge (= 2.2.1) + terminal-table (~> 1.4) + github-pages-health-check (1.16.1) + addressable (~> 2.3) + dnsruby (~> 1.60) + octokit (~> 4.0) + public_suffix (~> 3.0) + typhoeus (~> 1.3) + html-pipeline (2.10.0) + activesupport (>= 2) + nokogiri (>= 1.4) + http_parser.rb (0.6.0) + i18n (0.9.5) + concurrent-ruby (~> 1.0) + jekyll (3.7.4) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 0.7) + jekyll-sass-converter (~> 1.0) + jekyll-watch (~> 2.0) + kramdown (~> 1.14) + liquid (~> 4.0) + mercenary (~> 0.3.3) + pathutil (~> 0.9) + rouge (>= 1.7, < 4) + safe_yaml (~> 1.0) + jekyll-avatar (0.6.0) + jekyll (~> 3.0) + jekyll-coffeescript (1.1.1) + coffee-script (~> 2.2) + coffee-script-source (~> 1.11.1) + jekyll-commonmark (1.3.1) + commonmarker (~> 0.14) + jekyll (>= 3.7, < 5.0) + jekyll-commonmark-ghpages (0.1.5) + commonmarker (~> 0.17.6) + jekyll-commonmark (~> 1) + rouge (~> 2) + jekyll-default-layout (0.1.4) + jekyll (~> 3.0) + jekyll-feed (0.11.0) + jekyll (~> 3.3) + jekyll-gist (1.5.0) + octokit (~> 4.2) + jekyll-github-metadata (2.12.1) + jekyll (~> 3.4) + octokit (~> 4.0, != 4.4.0) + jekyll-mentions (1.4.1) + html-pipeline (~> 2.3) + jekyll (~> 3.0) + jekyll-optional-front-matter (0.3.0) + jekyll (~> 3.0) + jekyll-paginate (1.1.0) + jekyll-readme-index (0.2.0) + jekyll (~> 3.0) + jekyll-redirect-from (0.14.0) + jekyll (~> 3.3) + jekyll-relative-links (0.6.0) + jekyll (~> 3.3) + jekyll-remote-theme (0.3.1) + jekyll (~> 3.5) + rubyzip (>= 1.2.1, < 3.0) + jekyll-sass-converter (1.5.2) + sass (~> 3.4) + jekyll-seo-tag (2.5.0) + jekyll (~> 3.3) + jekyll-sitemap (1.2.0) + jekyll (~> 3.3) + jekyll-swiss (0.4.0) + jekyll-theme-architect (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-cayman (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-dinky (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-hacker (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-leap-day (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-merlot (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-midnight (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-minimal (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-modernist (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-primer (0.5.3) + jekyll (~> 3.5) + jekyll-github-metadata (~> 2.9) + jekyll-seo-tag (~> 2.0) + jekyll-theme-slate (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-tactile (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-time-machine (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-titles-from-headings (0.5.1) + jekyll (~> 3.3) + jekyll-watch (2.2.1) + listen (~> 3.0) + jemoji (0.10.2) + gemoji (~> 3.0) + html-pipeline (~> 2.2) + jekyll (~> 3.0) + kramdown (1.17.0) + liquid (4.0.0) + listen (3.1.5) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + ruby_dep (~> 1.2) + mercenary (0.3.6) + mini_portile2 (2.4.0) + minima (2.5.0) + jekyll (~> 3.5) + jekyll-feed (~> 0.9) + jekyll-seo-tag (~> 2.1) + minitest (5.11.3) + multipart-post (2.0.0) + nokogiri (1.10.2) + mini_portile2 (~> 2.4.0) + octokit (4.14.0) + sawyer (~> 0.8.0, >= 0.5.3) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (3.0.3) + rb-fsevent (0.10.3) + rb-inotify (0.10.0) + ffi (~> 1.0) + rouge (2.2.1) + ruby-enum (0.7.2) + i18n + ruby_dep (1.5.0) + rubyzip (1.2.2) + safe_yaml (1.0.5) + sass (3.7.3) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sawyer (0.8.1) + addressable (>= 2.3.5, < 2.6) + faraday (~> 0.8, < 1.0) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) + thread_safe (0.3.6) + typhoeus (1.3.1) + ethon (>= 0.9.0) + tzinfo (1.2.5) + thread_safe (~> 0.1) + unicode-display_width (1.5.0) + +PLATFORMS + ruby + +DEPENDENCIES + github-pages + +BUNDLED WITH + 2.0.1 From 3dbf6de4eae7138695342e2c9a2c16f515a54970 Mon Sep 17 00:00:00 2001 From: Kassius Barker Date: Sun, 31 Mar 2019 15:17:03 -0400 Subject: [PATCH 2/8] Added jekyll-include-cache to dependencies --- Gemfile | 3 ++- Gemfile.lock | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 91ceacd3..4b11ad02 100644 --- a/Gemfile +++ b/Gemfile @@ -1,2 +1,3 @@ source 'https://rubygems.org' -gem 'github-pages', group: :jekyll_plugins \ No newline at end of file +gem 'github-pages', group: :jekyll_plugins +gem 'jekyll-include-cache', group: :jekyll_plugins \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock index 057c847b..6c2d0dc4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -121,6 +121,8 @@ GEM jekyll-github-metadata (2.12.1) jekyll (~> 3.4) octokit (~> 4.0, != 4.4.0) + jekyll-include-cache (0.2.0) + jekyll (>= 3.7, < 5.0) jekyll-mentions (1.4.1) html-pipeline (~> 2.3) jekyll (~> 3.0) @@ -243,6 +245,7 @@ PLATFORMS DEPENDENCIES github-pages + jekyll-include-cache BUNDLED WITH 2.0.1 From 753ac5ee0b36762daaa967a74c499ea11ed3db15 Mon Sep 17 00:00:00 2001 From: Kassius Barker Date: Sun, 31 Mar 2019 15:20:33 -0400 Subject: [PATCH 3/8] added .gitignore, now ignore local build files --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..72a5c3ba --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +_site/ \ No newline at end of file From 10571f9fbbf9445ae794b127bd47531e1d7c4a1b Mon Sep 17 00:00:00 2001 From: Kassius Barker Date: Sun, 31 Mar 2019 15:31:04 -0400 Subject: [PATCH 4/8] Imported Particle banner from my codepen https://codepen.io/cryptokass/pen/OGLoeb --- particle-banner/particleBanner.html | 6 ++ particle-banner/particles.css | 27 +++++ particle-banner/particles.js | 151 ++++++++++++++++++++++++++++ 3 files changed, 184 insertions(+) create mode 100644 particle-banner/particleBanner.html create mode 100644 particle-banner/particles.css create mode 100644 particle-banner/particles.js diff --git a/particle-banner/particleBanner.html b/particle-banner/particleBanner.html new file mode 100644 index 00000000..f35231d3 --- /dev/null +++ b/particle-banner/particleBanner.html @@ -0,0 +1,6 @@ +
+
+

Decentralized Identity

+
+ +
\ No newline at end of file diff --git a/particle-banner/particles.css b/particle-banner/particles.css new file mode 100644 index 00000000..8b601a53 --- /dev/null +++ b/particle-banner/particles.css @@ -0,0 +1,27 @@ + .did-title { + font-family: sans-serif; + position: relative; + width: 100%; + height: 200px; + text-align: center; + vertical-align: middle; + color: white; + overflow: hidden; + } + + .did-title .content{ + z-index: 100; + position:absolute; + top: 50%; + left: 50%; + transform: translate(-50%,-50%); + text-shadow: 0px 0px 10px #222222, 0px 0px 20px #222222, 0px 0px 30px #222222, 0px 0px 8px #222222; + } + + .did-title canvas{ + position:absolute; + top: 0px; + left: 0px; + width: 100%; + height: 100%; + } \ No newline at end of file diff --git a/particle-banner/particles.js b/particle-banner/particles.js new file mode 100644 index 00000000..26cbca8c --- /dev/null +++ b/particle-banner/particles.js @@ -0,0 +1,151 @@ +// Kass's Customizable Node/Particles Title + +// settings: +const canvasName = "did-canvas" +const maxNodes = 100 // using too many will impact performance. +const nodeMinSize = 2 +const nodeMaxSize = 4 +const nodeMinSpeed = 0.03 +const nodeMaxSpeed = 0.8 +const nodeMaxConnections = 20 +const connectionThickness = 1 +const connectionDist = 100 +const connectionColor = "#ffffff" +const nodeColors = ["#ff9900", "ffcc99"] // you may enter multiple colors +const warpEdges = false // if false nodes will bounce off the edges +const useIcon = false // if false then colored circles will be used +const iconPath = "https://image.flaticon.com/icons/png/128/137/137068.png" +const iconScale = 6 +const useTrail = false +const backgroundColor = "#222222" +// another example can be found here https://codepen.io/cryptokass/pen/mgbajy?editors=0010 + +// canvas reference: +var canvas = document.getElementById(canvasName) +var ctx = canvas.getContext('2d') + +// store canvas size: +let canvasHeight = +getComputedStyle(canvas).getPropertyValue("height").slice(0, -2); +let canvasWidth = +getComputedStyle(canvas).getPropertyValue("width").slice(0, -2); + +canvas.height = canvasHeight +canvas.width = canvasWidth + +// setup image +var img = new Image() +img.src = iconPath + +// animation frame compatibility: +window.requestAnimFrame = function() + { + return ( + window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + window.msRequestAnimationFrame || + function(callback) { window.setTimeout(callback, 1000 / 60) } + ); +}(); + +// node class +function Node(){ + + this.size = nodeMinSize + Math.random() * (nodeMaxSize-nodeMinSize) + this.x = canvasWidth * Math.random() + this.y = canvasHeight * Math.random() + this.color = nodeColors[Math.floor(Math.random()*nodeColors.length)] + this.connections = 0 + + // calculate starting velocity + let speed = nodeMinSpeed + Math.random() * (nodeMaxSpeed-nodeMinSpeed) + let theta = Math.random() * Math.PI * 2 + this.velocity = {x:speed * Math.sin(theta), y:speed * Math.cos(theta)} + + // move this node + this.move = function(){ + if (this.x + this.velocity.x >= canvas.width || this.x + this.velocity.x <= 0){ + if (warpEdges){ + this.x = (this.x + this.velocity.x >= canvas.width ) ? 0 : canvas.width + } else { + this.velocity.x = -this.velocity.x + } + } + if (this.y + this.velocity.y >= canvas.height || this.y + this.velocity.y <= 0) + { + if (warpEdges) { + this.y = (this.y + this.velocity.y >= canvas.height ) ? 0 : canvas.height + } else { + this.velocity.y = -this.velocity.y + } + + } + this.x += this.velocity.x + this.y += this.velocity.y + this.connections = 0 + } + + // draw this nodes connections + this.drawConnections = function(index){ + for (let i=index+1; i < nodes.length; i++){ + let node = nodes[i] + let dist = Math.sqrt(Math.pow(this.x - node.x,2) + Math.pow(this.y - node.y,2)) + + if (dist < connectionDist && node.connections < nodeMaxConnections && this.connections < nodeMaxConnections){ + ctx.globalAlpha = 1-dist/connectionDist + ctx.beginPath() + ctx.moveTo(this.x,this.y) + ctx.lineTo(node.x, node.y) + ctx.lineWidth = connectionThickness + ctx.strokeStyle = connectionColor + ctx.stroke() + ctx.closePath() + node.connections++ + this.connections++ + } + } + } + + this.draw = function(){ + ctx.globalAlpha = 1 + if (useIcon){ + let _size = this.size * iconScale + let dx = this.x - _size/2 + let dy = this.y - _size/2 + ctx.drawImage(img, dx, dy, _size, _size) + }else{ + ctx.beginPath() + ctx.arc(this.x, this.y, this.size, 0, Math.PI * 2) + ctx.fillStyle = this.color + ctx.fill() + ctx.closePath() + } + } +} + +var nodes = [] +for (let i=0; i < maxNodes; i++){ + var node = new Node() + nodes.push(node) +} + +function tick(){ + if (useTrail){ + ctx.globalAlpha = 0.1 + ctx.rect(0,0,canvas.width, canvas.height) + ctx.fillStyle = backgroundColor + ctx.fill() + }else{ + ctx.clearRect(0, 0, canvas.width, canvas.height) + } + for (let i=0; i < maxNodes; i++){ + nodes[i].drawConnections(i) + } + for (let i=0; i < maxNodes; i++){ + nodes[i].draw() + nodes[i].move() + } + requestAnimFrame(tick); +} + +requestAnimFrame(tick); \ No newline at end of file From e48af750780074db4788221b5d8700422ce9e37c Mon Sep 17 00:00:00 2001 From: Kassius Barker Date: Sun, 31 Mar 2019 15:39:36 -0400 Subject: [PATCH 5/8] Moved particle-banner/ into assets, updated references --- .../particle-banner}/particleBanner.html | 0 .../particle-banner}/particles.css | 0 .../particle-banner}/particles.js | 0 index.md | 11 +++++++++-- 4 files changed, 9 insertions(+), 2 deletions(-) rename {particle-banner => assets/particle-banner}/particleBanner.html (100%) rename {particle-banner => assets/particle-banner}/particles.css (100%) rename {particle-banner => assets/particle-banner}/particles.js (100%) diff --git a/particle-banner/particleBanner.html b/assets/particle-banner/particleBanner.html similarity index 100% rename from particle-banner/particleBanner.html rename to assets/particle-banner/particleBanner.html diff --git a/particle-banner/particles.css b/assets/particle-banner/particles.css similarity index 100% rename from particle-banner/particles.css rename to assets/particle-banner/particles.css diff --git a/particle-banner/particles.js b/assets/particle-banner/particles.js similarity index 100% rename from particle-banner/particles.js rename to assets/particle-banner/particles.js diff --git a/index.md b/index.md index ef6b3a55..6f69c2f0 100644 --- a/index.md +++ b/index.md @@ -7,8 +7,15 @@ twitter: image : "https://infominer.id/DIDecentralized/assets/img/didecentral.png" --- -
- + +
+
+

Decentralized Identity

+
+ +
+ + >A good self‐sovereign identity system will allow individuals to directly influence how companies, governments, and others correlate our interactions across different services and locations by default. It won’t fix all identity problems nor preclude alternative identity approaches, but it will put the individual in control of most uses of identity and give organizations a simpler, easier, more ethical way to use identity to improve how they provide services and products. When successful, it will not only enable individuals to exercise greater control over how companies and governments keep track of us, it will also illuminate those situations where self‐sovereign identity is restricted, facilitating a conversation about when and where such limits are appropriate. [Joe Andrieu -A Technology‐Free Definition of Self‐Sovereign Identity](https://github.com/jandrieu/rebooting-the-web-of-trust-fall2016/blob/master/topics-and-advance-readings/a-technology-free-definition-of-self-sovereign-identity.pdf) From f5e8bcc13b3e8353ee6e1fc138719edb0a463849 Mon Sep 17 00:00:00 2001 From: Kassius Barker Date: Sun, 31 Mar 2019 16:49:46 -0400 Subject: [PATCH 6/8] changed colors around to match theme --- assets/particle-banner/particles.css | 7 ++++--- assets/particle-banner/particles.js | 16 ++++++++-------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/assets/particle-banner/particles.css b/assets/particle-banner/particles.css index 8b601a53..18a6a9f7 100644 --- a/assets/particle-banner/particles.css +++ b/assets/particle-banner/particles.css @@ -5,8 +5,9 @@ height: 200px; text-align: center; vertical-align: middle; - color: white; - overflow: hidden; + color:#0f477e; + overflow: visible; + font-size: 2em; } .did-title .content{ @@ -15,7 +16,7 @@ top: 50%; left: 50%; transform: translate(-50%,-50%); - text-shadow: 0px 0px 10px #222222, 0px 0px 20px #222222, 0px 0px 30px #222222, 0px 0px 8px #222222; + text-shadow: 0px 0px 10px #f0fff0, 0px 0px 20px #f0fff0; } .did-title canvas{ diff --git a/assets/particle-banner/particles.js b/assets/particle-banner/particles.js index 26cbca8c..b06818f7 100644 --- a/assets/particle-banner/particles.js +++ b/assets/particle-banner/particles.js @@ -2,16 +2,16 @@ // settings: const canvasName = "did-canvas" -const maxNodes = 100 // using too many will impact performance. -const nodeMinSize = 2 +const maxNodes = 40 // using too many will impact performance. +const nodeMinSize = 3 const nodeMaxSize = 4 -const nodeMinSpeed = 0.03 -const nodeMaxSpeed = 0.8 +const nodeMinSpeed = 0.02 +const nodeMaxSpeed = 0.3 const nodeMaxConnections = 20 -const connectionThickness = 1 -const connectionDist = 100 -const connectionColor = "#ffffff" -const nodeColors = ["#ff9900", "ffcc99"] // you may enter multiple colors +const connectionThickness = 2; +const connectionDist = 102 +const connectionColor = "#0f477e" +const nodeColors = ['#0f477e'] // you may enter multiple colors ["#65c665", "#40a040"] const warpEdges = false // if false nodes will bounce off the edges const useIcon = false // if false then colored circles will be used const iconPath = "https://image.flaticon.com/icons/png/128/137/137068.png" From 525d04dfa93a60b41777d0f44dcac537309b8498 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=A7=89=20infominer?= Date: Sun, 31 Mar 2019 19:32:43 -0400 Subject: [PATCH 7/8] Delete .gitignore got this --- .gitignore | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .gitignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 72a5c3ba..00000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -_site/ \ No newline at end of file From f206edd119f0ec191e91047f1c9681a96973e97b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=A7=89=20infominer?= Date: Sun, 31 Mar 2019 19:34:34 -0400 Subject: [PATCH 8/8] have locally. --- Gemfile | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 Gemfile diff --git a/Gemfile b/Gemfile deleted file mode 100644 index 4b11ad02..00000000 --- a/Gemfile +++ /dev/null @@ -1,3 +0,0 @@ -source 'https://rubygems.org' -gem 'github-pages', group: :jekyll_plugins -gem 'jekyll-include-cache', group: :jekyll_plugins \ No newline at end of file