diff --git a/package-lock.json b/package-lock.json
index 74f6fcf..3e29232 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -48,30 +48,30 @@
"integrity": "sha512-5R+DsT9LJ9tXiSQ4y+KLFppCkQyXhzAm1AIuBWE/sbU0hSXY5pkhoqQYEcPJQFg/nglL+wD55iv2j+7O96UAvg=="
},
"node_modules/@11ty/eleventy": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-1.0.1.tgz",
- "integrity": "sha512-2fJDHVBkRr1SB7CqBexwoLdiOGUE0f22O+Ie1TT/FI65XQZWshgHVZzvmZfmtKvQW4qtaC/FuJG3wMxkXfel7w==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-1.0.2.tgz",
+ "integrity": "sha512-03ER4zukR6BgwppI5DHRE11lc+8B0fWsBrqacVWo3o49QkdEFXnEWjhyI9qd9LrPlgQHK2/MYyxuOvNwecyCLQ==",
"dependencies": {
"@11ty/dependency-tree": "^2.0.1",
"@11ty/eleventy-utils": "^1.0.1",
"@iarna/toml": "^2.2.5",
"@sindresorhus/slugify": "^1.1.2",
- "browser-sync": "^2.27.9",
+ "browser-sync": "^2.27.10",
"chokidar": "^3.5.3",
"cross-spawn": "^7.0.3",
"debug": "^4.3.4",
"dependency-graph": "^0.11.0",
- "ejs": "^3.1.6",
+ "ejs": "^3.1.8",
"fast-glob": "^3.2.11",
"graceful-fs": "^4.2.10",
"gray-matter": "^4.0.3",
"hamljs": "^0.6.2",
"handlebars": "^4.7.7",
"is-glob": "^4.0.3",
- "kleur": "^4.1.4 ",
- "liquidjs": "^9.36.1",
+ "kleur": "^4.1.5",
+ "liquidjs": "^9.40.0",
"lodash": "^4.17.21",
- "luxon": "^2.3.2",
+ "luxon": "^2.5.0",
"markdown-it": "^12.3.2",
"minimist": "^1.2.6",
"moo": "^0.5.1",
@@ -79,7 +79,7 @@
"mustache": "^4.2.0",
"normalize-path": "^3.0.0",
"nunjucks": "^3.2.3",
- "path-to-regexp": "^6.2.0",
+ "path-to-regexp": "^6.2.1",
"please-upgrade-node": "^3.2.0",
"pretty": "^2.0.0",
"pug": "^3.0.2",
@@ -157,9 +157,9 @@
}
},
"node_modules/@11ty/eleventy/node_modules/luxon": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.3.2.tgz",
- "integrity": "sha512-MlAQQVMFhGk4WUA6gpfsy0QycnKP0+NlCBJRVRNPxxSIbjrCbQ65nrpJD3FVyJNZLuJ0uoqL57ye6BmDYgHaSw==",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.5.0.tgz",
+ "integrity": "sha512-IDkEPB80Rb6gCAU+FEib0t4FeJ4uVOuX1CQ9GsvU3O+JAGIgu0J7sf1OarXKaKDygTZIoJyU6YdZzTFRu+YR0A==",
"engines": {
"node": ">=12"
}
@@ -790,9 +790,9 @@
}
},
"node_modules/async": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz",
- "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g=="
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
},
"node_modules/async-each-series": {
"version": "0.1.1",
@@ -957,12 +957,12 @@
"integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw=="
},
"node_modules/browser-sync": {
- "version": "2.27.10",
- "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.27.10.tgz",
- "integrity": "sha512-xKm+6KJmJu6RuMWWbFkKwOCSqQOxYe3nOrFkKI5Tr/ZzjPxyU3pFShKK3tWnazBo/3lYQzN7fzjixG8fwJh1Xw==",
+ "version": "2.27.11",
+ "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.27.11.tgz",
+ "integrity": "sha512-U5f9u97OYJH66T0MGWWzG9rOQTW6ZmDMj97vsmtqwNS03JAwdLVES8eel2lD3rvAqQCNAFqaJ74NMacBI57vJg==",
"dependencies": {
- "browser-sync-client": "^2.27.10",
- "browser-sync-ui": "^2.27.10",
+ "browser-sync-client": "^2.27.11",
+ "browser-sync-ui": "^2.27.11",
"bs-recipes": "1.3.4",
"bs-snippet-injector": "^2.0.1",
"chokidar": "^3.5.1",
@@ -980,7 +980,7 @@
"micromatch": "^4.0.2",
"opn": "5.3.0",
"portscanner": "2.2.0",
- "qs": "6.2.3",
+ "qs": "^6.11.0",
"raw-body": "^2.3.2",
"resp-modifier": "6.0.2",
"rx": "4.1.0",
@@ -1000,9 +1000,9 @@
}
},
"node_modules/browser-sync-client": {
- "version": "2.27.10",
- "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.27.10.tgz",
- "integrity": "sha512-KCFKA1YDj6cNul0VsA28apohtBsdk5Wv8T82ClOZPZMZWxPj4Ny5AUbrj9UlAb/k6pdxE5HABrWDhP9+cjt4HQ==",
+ "version": "2.27.11",
+ "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.27.11.tgz",
+ "integrity": "sha512-okMNfD2NasL/XD1/BclP3onXjhahisk3e/kTQ5HPDT/lLqdBqNDd6QFcjI5I1ak7na2hxKQSLjryql+7fp5gKQ==",
"dependencies": {
"etag": "1.8.1",
"fresh": "0.5.2",
@@ -1015,9 +1015,9 @@
}
},
"node_modules/browser-sync-ui": {
- "version": "2.27.10",
- "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.27.10.tgz",
- "integrity": "sha512-elbJILq4Uo6OQv6gsvS3Y9vRAJlWu+h8j0JDkF0X/ua+3S6SVbbiWnZc8sNOFlG7yvVGIwBED3eaYQ0iBo1Dtw==",
+ "version": "2.27.11",
+ "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.27.11.tgz",
+ "integrity": "sha512-1T/Y8Pp1R68aUL7zVSFq0nxtr258xWd/nTasCAHX2M6EsGaswVOFtXsw3bKqsr35z+J+LfVfOdz1HFLYKxdgrA==",
"dependencies": {
"async-each-series": "0.1.1",
"connect-history-api-fallback": "^1",
@@ -2242,9 +2242,9 @@
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"node_modules/ejs": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.7.tgz",
- "integrity": "sha512-BIar7R6abbUxDA3bfXrO4DSgwo8I+fB5/1zgujl3HLLjwd6+9iOnrT+t3grn2qbk9vOgBubXOFwX2m9axoFaGw==",
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz",
+ "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==",
"dependencies": {
"jake": "^10.8.5"
},
@@ -2304,9 +2304,9 @@
}
},
"node_modules/engine.io-client": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.2.tgz",
- "integrity": "sha512-8ZQmx0LQGRTYkHuogVZuGSpDqYZtCM/nv8zQ68VZ+JkOpazJ7ICdsSpaO6iXwvaU30oFg5QJOJWj8zWqhbKjkQ==",
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.3.tgz",
+ "integrity": "sha512-aXPtgF1JS3RuuKcpSrBtimSjYvrbhKW9froICH4s0F3XQWLxsKNxqzG39nnvQZQnva4CMvUK63T7shevxRyYHw==",
"dependencies": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.1",
@@ -2610,11 +2610,30 @@
}
},
"node_modules/filelist": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz",
- "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
+ "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
"dependencies": {
- "minimatch": "^3.0.4"
+ "minimatch": "^5.0.1"
+ }
+ },
+ "node_modules/filelist/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/filelist/node_modules/minimatch": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz",
+ "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
}
},
"node_modules/fill-range": {
@@ -3320,7 +3339,7 @@
"node_modules/immutable": {
"version": "3.8.2",
"resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz",
- "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=",
+ "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==",
"engines": {
"node": ">=0.10.0"
}
@@ -3799,9 +3818,9 @@
}
},
"node_modules/kleur": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz",
- "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==",
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
+ "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
"engines": {
"node": ">=6"
}
@@ -4054,9 +4073,9 @@
}
},
"node_modules/liquidjs": {
- "version": "9.37.0",
- "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-9.37.0.tgz",
- "integrity": "sha512-qDj9iiNdB+QNZTR4iKjiQzoHQma7V8Itx5oZG/ZCP7xjebh1LI+s5IG2ZYUbs1ALO6hBzmW36Ptd8RR4eohuDA==",
+ "version": "9.43.0",
+ "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-9.43.0.tgz",
+ "integrity": "sha512-qZZuL5Emja2UgCqiLewiw9bvwZQwm19TTGFxDkonVzB4YSTOZ8tuTVo/7Uu/AeW1cL2Qb/at3DSoV8wwyFXQCw==",
"bin": {
"liquid": "bin/liquid.js",
"liquidjs": "bin/liquid.js"
@@ -4966,6 +4985,14 @@
"node": ">=0.10.0"
}
},
+ "node_modules/object-inspect": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/object-keys": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.2.0.tgz",
@@ -5210,9 +5237,9 @@
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
},
"node_modules/path-to-regexp": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.0.tgz",
- "integrity": "sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg=="
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz",
+ "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw=="
},
"node_modules/path-type": {
"version": "4.0.0",
@@ -5699,11 +5726,17 @@
}
},
"node_modules/qs": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz",
- "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=",
+ "version": "6.11.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
+ "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
+ "dependencies": {
+ "side-channel": "^1.0.4"
+ },
"engines": {
"node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/queue": {
@@ -5983,9 +6016,9 @@
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
},
"node_modules/request/node_modules/qs": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
- "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
+ "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
"engines": {
"node": ">=0.6"
}
@@ -6412,7 +6445,7 @@
"node_modules/server-destroy": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz",
- "integrity": "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0="
+ "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ=="
},
"node_modules/set-blocking": {
"version": "2.0.0",
@@ -6458,6 +6491,19 @@
"node": ">=0.10.0"
}
},
+ "node_modules/side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/sigmund": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
@@ -6523,14 +6569,14 @@
"integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg=="
},
"node_modules/socket.io-client": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.0.tgz",
- "integrity": "sha512-HW61c1G7OrYGxaI79WRn17+b03iBCdvhBj4iqyXHBoL5M8w2MSO/vChsjA93knG4GYEai1/vbXWJna9dzxXtSg==",
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.4.tgz",
+ "integrity": "sha512-ZpKteoA06RzkD32IbqILZ+Cnst4xewU7ZYK12aS1mzHftFFjpoMz69IuhP/nL25pJfao/amoPI527KnuhFm01g==",
"dependencies": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.2",
- "engine.io-client": "~6.2.1",
- "socket.io-parser": "~4.2.0"
+ "engine.io-client": "~6.2.3",
+ "socket.io-parser": "~4.2.1"
},
"engines": {
"node": ">=10.0.0"
@@ -6718,7 +6764,7 @@
"node_modules/stream-throttle": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz",
- "integrity": "sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM=",
+ "integrity": "sha512-889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ==",
"dependencies": {
"commander": "^2.2.0",
"limiter": "^1.0.5"
@@ -7147,7 +7193,7 @@
"node_modules/symbol-observable": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz",
- "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=",
+ "integrity": "sha512-Kb3PrPYz4HanVF1LVGuAdW6LoVgIwjUYJGzFe7NDrBLCN4lsV/5J0MFurV+ygS4bRVwrCEt2c7MQ1R2a72oJDw==",
"engines": {
"node": ">=0.10.0"
}
@@ -7456,9 +7502,9 @@
}
},
"node_modules/typescript": {
- "version": "4.6.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz",
- "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==",
+ "version": "4.9.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
+ "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -7963,30 +8009,30 @@
"integrity": "sha512-5R+DsT9LJ9tXiSQ4y+KLFppCkQyXhzAm1AIuBWE/sbU0hSXY5pkhoqQYEcPJQFg/nglL+wD55iv2j+7O96UAvg=="
},
"@11ty/eleventy": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-1.0.1.tgz",
- "integrity": "sha512-2fJDHVBkRr1SB7CqBexwoLdiOGUE0f22O+Ie1TT/FI65XQZWshgHVZzvmZfmtKvQW4qtaC/FuJG3wMxkXfel7w==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-1.0.2.tgz",
+ "integrity": "sha512-03ER4zukR6BgwppI5DHRE11lc+8B0fWsBrqacVWo3o49QkdEFXnEWjhyI9qd9LrPlgQHK2/MYyxuOvNwecyCLQ==",
"requires": {
"@11ty/dependency-tree": "^2.0.1",
"@11ty/eleventy-utils": "^1.0.1",
"@iarna/toml": "^2.2.5",
"@sindresorhus/slugify": "^1.1.2",
- "browser-sync": "^2.27.9",
+ "browser-sync": "^2.27.10",
"chokidar": "^3.5.3",
"cross-spawn": "^7.0.3",
"debug": "^4.3.4",
"dependency-graph": "^0.11.0",
- "ejs": "^3.1.6",
+ "ejs": "^3.1.8",
"fast-glob": "^3.2.11",
"graceful-fs": "^4.2.10",
"gray-matter": "^4.0.3",
"hamljs": "^0.6.2",
"handlebars": "^4.7.7",
"is-glob": "^4.0.3",
- "kleur": "^4.1.4 ",
- "liquidjs": "^9.36.1",
+ "kleur": "^4.1.5",
+ "liquidjs": "^9.40.0",
"lodash": "^4.17.21",
- "luxon": "^2.3.2",
+ "luxon": "^2.5.0",
"markdown-it": "^12.3.2",
"minimist": "^1.2.6",
"moo": "^0.5.1",
@@ -7994,7 +8040,7 @@
"mustache": "^4.2.0",
"normalize-path": "^3.0.0",
"nunjucks": "^3.2.3",
- "path-to-regexp": "^6.2.0",
+ "path-to-regexp": "^6.2.1",
"please-upgrade-node": "^3.2.0",
"pretty": "^2.0.0",
"pug": "^3.0.2",
@@ -8022,9 +8068,9 @@
}
},
"luxon": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.3.2.tgz",
- "integrity": "sha512-MlAQQVMFhGk4WUA6gpfsy0QycnKP0+NlCBJRVRNPxxSIbjrCbQ65nrpJD3FVyJNZLuJ0uoqL57ye6BmDYgHaSw=="
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.5.0.tgz",
+ "integrity": "sha512-IDkEPB80Rb6gCAU+FEib0t4FeJ4uVOuX1CQ9GsvU3O+JAGIgu0J7sf1OarXKaKDygTZIoJyU6YdZzTFRu+YR0A=="
},
"path-key": {
"version": "3.1.1",
@@ -8550,9 +8596,9 @@
"dev": true
},
"async": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz",
- "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g=="
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
},
"async-each-series": {
"version": "0.1.1",
@@ -8692,12 +8738,12 @@
"integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw=="
},
"browser-sync": {
- "version": "2.27.10",
- "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.27.10.tgz",
- "integrity": "sha512-xKm+6KJmJu6RuMWWbFkKwOCSqQOxYe3nOrFkKI5Tr/ZzjPxyU3pFShKK3tWnazBo/3lYQzN7fzjixG8fwJh1Xw==",
+ "version": "2.27.11",
+ "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.27.11.tgz",
+ "integrity": "sha512-U5f9u97OYJH66T0MGWWzG9rOQTW6ZmDMj97vsmtqwNS03JAwdLVES8eel2lD3rvAqQCNAFqaJ74NMacBI57vJg==",
"requires": {
- "browser-sync-client": "^2.27.10",
- "browser-sync-ui": "^2.27.10",
+ "browser-sync-client": "^2.27.11",
+ "browser-sync-ui": "^2.27.11",
"bs-recipes": "1.3.4",
"bs-snippet-injector": "^2.0.1",
"chokidar": "^3.5.1",
@@ -8715,7 +8761,7 @@
"micromatch": "^4.0.2",
"opn": "5.3.0",
"portscanner": "2.2.0",
- "qs": "6.2.3",
+ "qs": "^6.11.0",
"raw-body": "^2.3.2",
"resp-modifier": "6.0.2",
"rx": "4.1.0",
@@ -8775,9 +8821,9 @@
}
},
"browser-sync-client": {
- "version": "2.27.10",
- "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.27.10.tgz",
- "integrity": "sha512-KCFKA1YDj6cNul0VsA28apohtBsdk5Wv8T82ClOZPZMZWxPj4Ny5AUbrj9UlAb/k6pdxE5HABrWDhP9+cjt4HQ==",
+ "version": "2.27.11",
+ "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.27.11.tgz",
+ "integrity": "sha512-okMNfD2NasL/XD1/BclP3onXjhahisk3e/kTQ5HPDT/lLqdBqNDd6QFcjI5I1ak7na2hxKQSLjryql+7fp5gKQ==",
"requires": {
"etag": "1.8.1",
"fresh": "0.5.2",
@@ -8787,9 +8833,9 @@
}
},
"browser-sync-ui": {
- "version": "2.27.10",
- "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.27.10.tgz",
- "integrity": "sha512-elbJILq4Uo6OQv6gsvS3Y9vRAJlWu+h8j0JDkF0X/ua+3S6SVbbiWnZc8sNOFlG7yvVGIwBED3eaYQ0iBo1Dtw==",
+ "version": "2.27.11",
+ "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.27.11.tgz",
+ "integrity": "sha512-1T/Y8Pp1R68aUL7zVSFq0nxtr258xWd/nTasCAHX2M6EsGaswVOFtXsw3bKqsr35z+J+LfVfOdz1HFLYKxdgrA==",
"requires": {
"async-each-series": "0.1.1",
"connect-history-api-fallback": "^1",
@@ -9745,9 +9791,9 @@
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"ejs": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.7.tgz",
- "integrity": "sha512-BIar7R6abbUxDA3bfXrO4DSgwo8I+fB5/1zgujl3HLLjwd6+9iOnrT+t3grn2qbk9vOgBubXOFwX2m9axoFaGw==",
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz",
+ "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==",
"requires": {
"jake": "^10.8.5"
}
@@ -9803,9 +9849,9 @@
}
},
"engine.io-client": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.2.tgz",
- "integrity": "sha512-8ZQmx0LQGRTYkHuogVZuGSpDqYZtCM/nv8zQ68VZ+JkOpazJ7ICdsSpaO6iXwvaU30oFg5QJOJWj8zWqhbKjkQ==",
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.3.tgz",
+ "integrity": "sha512-aXPtgF1JS3RuuKcpSrBtimSjYvrbhKW9froICH4s0F3XQWLxsKNxqzG39nnvQZQnva4CMvUK63T7shevxRyYHw==",
"requires": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.1",
@@ -10017,11 +10063,29 @@
}
},
"filelist": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz",
- "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
+ "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
"requires": {
- "minimatch": "^3.0.4"
+ "minimatch": "^5.0.1"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "minimatch": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz",
+ "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==",
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ }
}
},
"fill-range": {
@@ -10575,7 +10639,7 @@
"immutable": {
"version": "3.8.2",
"resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz",
- "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM="
+ "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg=="
},
"import-fresh": {
"version": "3.3.0",
@@ -10953,9 +11017,9 @@
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
},
"kleur": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz",
- "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA=="
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
+ "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="
},
"known-css-properties": {
"version": "0.24.0",
@@ -11186,9 +11250,9 @@
}
},
"liquidjs": {
- "version": "9.37.0",
- "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-9.37.0.tgz",
- "integrity": "sha512-qDj9iiNdB+QNZTR4iKjiQzoHQma7V8Itx5oZG/ZCP7xjebh1LI+s5IG2ZYUbs1ALO6hBzmW36Ptd8RR4eohuDA=="
+ "version": "9.43.0",
+ "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-9.43.0.tgz",
+ "integrity": "sha512-qZZuL5Emja2UgCqiLewiw9bvwZQwm19TTGFxDkonVzB4YSTOZ8tuTVo/7Uu/AeW1cL2Qb/at3DSoV8wwyFXQCw=="
},
"list-to-array": {
"version": "1.1.0",
@@ -11879,6 +11943,11 @@
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
+ "object-inspect": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="
+ },
"object-keys": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.2.0.tgz",
@@ -12074,9 +12143,9 @@
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
},
"path-to-regexp": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.0.tgz",
- "integrity": "sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg=="
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz",
+ "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw=="
},
"path-type": {
"version": "4.0.0",
@@ -12484,9 +12553,12 @@
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
},
"qs": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz",
- "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4="
+ "version": "6.11.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
+ "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
+ "requires": {
+ "side-channel": "^1.0.4"
+ }
},
"queue": {
"version": "6.0.1",
@@ -12698,9 +12770,9 @@
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
},
"qs": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
- "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
+ "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA=="
},
"tough-cookie": {
"version": "2.4.3",
@@ -13073,7 +13145,7 @@
"server-destroy": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz",
- "integrity": "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0="
+ "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ=="
},
"set-blocking": {
"version": "2.0.0",
@@ -13110,6 +13182,16 @@
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
"dev": true
},
+ "side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "requires": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ }
+ },
"sigmund": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
@@ -13160,14 +13242,14 @@
"integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg=="
},
"socket.io-client": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.0.tgz",
- "integrity": "sha512-HW61c1G7OrYGxaI79WRn17+b03iBCdvhBj4iqyXHBoL5M8w2MSO/vChsjA93knG4GYEai1/vbXWJna9dzxXtSg==",
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.4.tgz",
+ "integrity": "sha512-ZpKteoA06RzkD32IbqILZ+Cnst4xewU7ZYK12aS1mzHftFFjpoMz69IuhP/nL25pJfao/amoPI527KnuhFm01g==",
"requires": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.2",
- "engine.io-client": "~6.2.1",
- "socket.io-parser": "~4.2.0"
+ "engine.io-client": "~6.2.3",
+ "socket.io-parser": "~4.2.1"
}
},
"socket.io-parser": {
@@ -13322,7 +13404,7 @@
"stream-throttle": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz",
- "integrity": "sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM=",
+ "integrity": "sha512-889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ==",
"requires": {
"commander": "^2.2.0",
"limiter": "^1.0.5"
@@ -13644,7 +13726,7 @@
"symbol-observable": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz",
- "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ="
+ "integrity": "sha512-Kb3PrPYz4HanVF1LVGuAdW6LoVgIwjUYJGzFe7NDrBLCN4lsV/5J0MFurV+ygS4bRVwrCEt2c7MQ1R2a72oJDw=="
},
"symbol-tree": {
"version": "3.2.4",
@@ -13885,9 +13967,9 @@
}
},
"typescript": {
- "version": "4.6.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz",
- "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg=="
+ "version": "4.9.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
+ "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg=="
},
"ua-parser-js": {
"version": "1.0.2",
diff --git a/src/form/contact-form-handler.php b/src/form/contact-form-handler.php
index 4c1cb29..04d0506 100644
--- a/src/form/contact-form-handler.php
+++ b/src/form/contact-form-handler.php
@@ -1,6 +1,12 @@
", $emailBody);
- // send the email
- mail($to, $emailSubject, $emailBodyHTML, implode("\r\n", $headers));
+ $mail->isSMTP();
+ $mail->Host = getenv('ASTRO_SMTP_HOSTNAME');
+ $mail->SMTPAuth = true;
+ $mail->Username = getenv('ASTRO_SMTP_USERNAME');
+ $mail->Password = getenv('ASTRO_SMTP_PASSWORD');
+ $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
+ $mail->Port = 587;
+
+ //Options
+ $mail->CharSet = 'UTF-8';
+ $mail->WordWrap = 70;
+
+ //Recipients
+ $mail->setFrom($myEmail);
+ $mail->addAddress($myEmail);
+ $mail->addReplyTo($emailAddress, $name);
+
+ // Content
+ $mail->isHTML(true);
+ $mail->Subject = $emailSubject;
+ $mail->Body = $emailBodyHTML;
+ $mail->AltBody = $emailBody;
+
+ $mail->send();
// if subscribe add to mailing list
if(!empty($subscribe)) {
diff --git a/src/images/posts/image-de-mon-article.png b/src/images/posts/image-de-mon-article.png
deleted file mode 100644
index 9d331c1..0000000
Binary files a/src/images/posts/image-de-mon-article.png and /dev/null differ
diff --git a/src/images/profiles/ag-profile.jpg b/src/images/profiles/ag-profile.jpg
deleted file mode 100644
index d633f54..0000000
Binary files a/src/images/profiles/ag-profile.jpg and /dev/null differ
diff --git a/src/images/profiles/qd-profile.jpg b/src/images/profiles/qd-profile.jpg
new file mode 100644
index 0000000..f7df882
Binary files /dev/null and b/src/images/profiles/qd-profile.jpg differ
diff --git a/src/members/allan-grouas.md b/src/members/allan-grouas.md
deleted file mode 100644
index 2317f0d..0000000
--- a/src/members/allan-grouas.md
+++ /dev/null
@@ -1,22 +0,0 @@
----
-name: 'Allan Grouas'
-position: 'Designer graphique'
-positionInternal: 'Membre'
-date: '2020-12-21'
-profile: '/images/profiles/ag-profile.jpg'
-personalSite: 'https://www.behance.net/allan_grouas'
-socialLinkedin: 'https://www.linkedin.com/in/allan-grouas/'
-url: '/members/allan-grouas'
-tags: [ design, web, webdesign]
-location: [48.84297, 2.418638]
----
-
-
-Je suis designer graphique 360, j’accompagne mes clients pour leurs apporter les meilleurs solutions de communication adaptés.
-
-J’interviens en tant que designer web sous la marque l’établi, spécialisé dans la création de site web et l’accompagnement, que nous avons créé avec Fabien, Léna et Laura en automne 2020.
-
-
-Créer des choses utiles et belles, tel est mon crédo. Partir d’une idée, un croquis ou même une sensation pour aboutir à une création graphique concrète.
-Je propose mes services comme graphiste allant de projet web au print en passant par l’identité visuelle.
-À côté du travail, je fais de la sérigraphie et de la peinture.
diff --git a/src/members/quentin-dufour.md b/src/members/quentin-dufour.md
new file mode 100644
index 0000000..657090a
--- /dev/null
+++ b/src/members/quentin-dufour.md
@@ -0,0 +1,22 @@
+---
+name: 'Quentin Dufour'
+position: 'Développeur Rust, Site Reliability Engineer'
+positionInternal: 'Membre'
+date: '2023-01-04'
+profile: '/images/profiles/qd-profile.jpg'
+personalSite: 'https://quentin.dufour.io'
+url: '/members/quentin-dufour'
+tags: [ Rust, SRE, Kubernetes, Golang, Linux, Docker, Réseau, Object Storage, S3, Cloud ]
+location: [45.7570,4.8319]
+---
+
+Mon parcours, composé d'un diplôme d'ingénieur informatique à l'INSA Rennes et d'une thèse en système distribuée réalisée à l'INRIA, me donne une double approche ingénierie et recherche en informatique. Ces dernières années, j'ai mobilisé ces qualifications pour me spécialiser sur deux aspects spécifiques de l'informatique : le développement système et réseau en Rust et une démarche de Site Reliability Engineering.
+
+Concernant le développement, je suis contributeur et co-créateur d'un ensemble de logiciels principalement écrits en Rust : Garage, Aerogramme, Bottin, etc. dont plusieurs ont obtenu des financements européens Horizon 2020 pour soutenir leur développement. Je suis particulièrement intéressé par le développement de logiciels distribués pour résoudre des problèmes de passage à l'échelle et de disponibilité. Plus largement, j'ai aussi des contributions mineures à des projets importants comme LXC, Jenkins ou Plume. En somme, que vous ayez besoin d'un support sur mesure pour des logiciels libres existants, d'aide pour développer votre logiciel en Rust, de conseils sur des systèmes distribués (S3, Cassandra, etc.), je me ferai un plaisir de vous accompagner dans vos projets.
+
+L'autre aspect de mon activité, la démarche de Site Reliability Engineering vise la partie opérationnelle de l'informatique. Une fois le code écrit, il faut encore le faire fonctionner sur des machines physiques faillibles, reliées à un réseau public, Internet, pour qu'il soit utile. Afin d'assurer un maximum de fiabilité, il est important de concevoir le système en amont, d'être capable de mettre en place, voire développer, des outils d'automatisation, et être capable d'observer et débugguer ces systèmes efficacement. À ces fins, je connais et maîtrise Linux, Kubernetes, les outils d'observability, Docker, etc. J'ai pu mettre en place des systèmes fonctionnels pour plusieurs milliers de personnes, que ce soit dans le cadre d'évènements (InsaLan, Stunfest), de jeu mobile (Rapsodie) ou d'hébergement web (Deuxfleurs.fr), que ce soit dans des environnements on-premise, cloud privé ou cloud public.
+
+En somme, si vous avez des problématiques de conception cloud, de développement backend, de disponibilité, fiabilité, de scalability logiciel, de maintenance de logiciel libre, je peux vous accompagner. Et si votre problème ne rentre pas tout à fait dans les cases, mais qu'il est susceptible d'exciter ma curiosité, n'hésitez pas à m'en parler non plus, je suis curieux et pourrai peut-être vous aider !
+
+
+
diff --git a/src/posts/monsuperarticle.md b/src/posts/monsuperarticle.md
deleted file mode 100644
index df0b4e3..0000000
--- a/src/posts/monsuperarticle.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: Titre de mon super article
-date: '2022-12-25'
-type: 'news'
-illustration: '/images/posts/image-de-mon-article.png'
----
-
-## Mon super article
-
-Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
-
diff --git a/src/posts/reu-info-13-12-22.md b/src/posts/reu-info-13-12-22.md
index 783c081..665eac2 100644
--- a/src/posts/reu-info-13-12-22.md
+++ b/src/posts/reu-info-13-12-22.md
@@ -24,13 +24,13 @@ Venez nous rencontrer lors de cette réunion d'information de fin d'année et ai
- Lieu : En visio libre et décentralisée (lien envoyé par email quelques jours avant la réunion)
-
+
+-->
____
En attendant, vous pouvez bien sur vous documenter sur le sujet :
diff --git a/src/posts/reu-info-24-01-23.md b/src/posts/reu-info-24-01-23.md
new file mode 100644
index 0000000..1e8c4e5
--- /dev/null
+++ b/src/posts/reu-info-24-01-23.md
@@ -0,0 +1,47 @@
+---
+title: Réunion d'information Astrolabe Janvier 2023 en visio
+date: '2023-01-08'
+eventDate: '2023-01-24'
+eventTime: '18:30'
+author: 'Florent Le Saout'
+type: 'event'
+illustration: '/images/posts/reunion-24-06-2020.jpeg'
+---
+
+
+
+Vous êtes en quête de sens dans votre métier ? Vous travaillez dans le numérique ?
+
+Vous voulez vous lancer en indépendant·e mais sans les tracasseries administratives ? Vous souhaitez travailler en Freelance mais pas seul·e ?
+
+Vous vous demandez ce qu'est une #SCOP #CAE ? Le statut d'entrepreneur salarié #CESA est-il fait pour vous ?
+
+
+
+Venez nous rencontrer lors de cette réunion d'information de nouvelle année et ainsi nous essaierons de répondre à ces questions (et bien d'autres) :
+
+- Date : Mardi 24 Janvier 2023 à 18h30
+- Lieu : En visio libre et décentralisée (lien envoyé par email quelques jours avant la réunion)
+
+
+
+**_Pensez à vous inscrire via le formulaire suivant (si cela ne s'affiche pas correctement [suivez ce lien](https://framaforms.org/reunion-dinformation-scop-astrolabe-cae-du-mardi-24-janvier-a-18h30-1591805443))_**
+
+
+
+
+
+____
+
+En attendant, vous pouvez bien sur vous documenter sur le sujet :
+
+- [Site de la fédération des CAE](https://www.les-cae.coop/)
+- [Qu'est ce qu'une CAE sur le site de COPEA](https://www.copea.fr/index.php/rejoindre-une-cae/qu-est-ce-qu-une-cae)
+- [Contrat CAPE sur le site service-public.fr](https://www.service-public.fr/particuliers/vosdroits/F11299)
+- [Information ESS sur economie.gouv.fr](https://www.economie.gouv.fr/cedef/economie-sociale-et-solidaire)
+- [Site de promotion de l'ESS dans la région Rennaise](http://www.resosolidaire.fr/)
+
+____
+
+**Carte des membres de la fédération des CAE en France metropolitaine :**
+[](https://www.les-cae.coop/trouver-une-cae-0)