diff --git a/.eleventy.js b/.eleventy.js index a84efa9..463516a 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -1,16 +1,31 @@ +const UpgradeHelper = require("@11ty/eleventy-upgrade-help"); +const markdownIt = require("markdown-it"); + module.exports = function(eleventyConfig) { + eleventyConfig.addPlugin(UpgradeHelper); + // Copying static assets eleventyConfig.addPassthroughCopy("src/style.css"); eleventyConfig.addPassthroughCopy("src/photo.png"); eleventyConfig.addPassthroughCopy("src/advent_pro_500.woff2"); eleventyConfig.addPassthroughCopy("src/advent_pro_600.woff2"); eleventyConfig.addPassthroughCopy("src/updock_400.woff2"); + eleventyConfig.addPassthroughCopy("src/LMRoman10-Bold.woff2"); + eleventyConfig.addPassthroughCopy("src/LMRoman10-Regular.woff2"); // Configuring permalinks to be ~.html instead of ~/ eleventyConfig.addGlobalData("permalink", () => { return (data) => `${data.page.filePathStem}.${data.page.outputFileExtension}`; }); + eleventyConfig.addFilter("formatDate", (dateString) => { + if (!dateString) return "Present"; + const date = new Date(dateString); + return date.toLocaleDateString('en-US', { year: 'numeric', month: 'short' }); + }); + + eleventyConfig.addFilter("markdown", (str) => markdownIt().render(str)); + // Options return { dir: { diff --git a/package.json b/package.json index 4ce6158..dffd214 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,9 @@ "author": "Louis Guidez", "license": "", "devDependencies": { - "@11ty/eleventy": "^2.0.1" + "@11ty/eleventy": "^3.1.2" + }, + "dependencies": { + "@11ty/eleventy-upgrade-help": "^3.0.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..3fd73e4 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,1165 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@11ty/eleventy-upgrade-help': + specifier: ^3.0.1 + version: 3.0.1(posthtml@0.16.6) + devDependencies: + '@11ty/eleventy': + specifier: ^3.1.2 + version: 3.1.2 + +packages: + + '@11ty/dependency-tree-esm@2.0.0': + resolution: {integrity: sha512-+4ySOON4aEAiyAGuH6XQJtxpGSpo6nibfG01krgix00sqjhman2+UaDUopq6Ksv8/jBB3hqkhsHe3fDE4z8rbA==} + + '@11ty/dependency-tree@4.0.0': + resolution: {integrity: sha512-PTOnwM8Xt+GdJmwRKg4pZ8EKAgGoK7pedZBfNSOChXu8MYk2FdEsxdJYecX4t62owpGw3xK60q9TQv/5JI59jw==} + + '@11ty/eleventy-dev-server@2.0.8': + resolution: {integrity: sha512-15oC5M1DQlCaOMUq4limKRYmWiGecDaGwryr7fTE/oM9Ix8siqMvWi+I8VjsfrGr+iViDvWcH/TVI6D12d93mA==} + engines: {node: '>=18'} + hasBin: true + + '@11ty/eleventy-plugin-bundle@3.0.7': + resolution: {integrity: sha512-QK1tRFBhQdZASnYU8GMzpTdsMMFLVAkuU0gVVILqNyp09xJJZb81kAS3AFrNrwBCsgLxTdWHJ8N64+OTTsoKkA==} + engines: {node: '>=18'} + + '@11ty/eleventy-upgrade-help@3.0.1': + resolution: {integrity: sha512-69CttBBfplByurn5vW7eRiLPywZZZHCH6B68Ib3t3348PaHHG9RysVPRqPQzMrGIEEbXg+0+ICm+R8sAkgjfPQ==} + engines: {node: '>=18'} + + '@11ty/eleventy-utils@2.0.7': + resolution: {integrity: sha512-6QE+duqSQ0GY9rENXYb4iPR4AYGdrFpqnmi59tFp9VrleOl0QSh8VlBr2yd6dlhkdtj7904poZW5PvGr9cMiJQ==} + engines: {node: '>=18'} + + '@11ty/eleventy@3.1.2': + resolution: {integrity: sha512-IcsDlbXnBf8cHzbM1YBv3JcTyLB35EK88QexmVyFdVJVgUU6bh9g687rpxryJirHzo06PuwnYaEEdVZQfIgRGg==} + engines: {node: '>=18'} + hasBin: true + + '@11ty/lodash-custom@4.17.21': + resolution: {integrity: sha512-Mqt6im1xpb1Ykn3nbcCovWXK3ggywRJa+IXIdoz4wIIK+cvozADH63lexcuPpGS/gJ6/m2JxyyXDyupkMr5DHw==} + engines: {node: '>=14'} + + '@11ty/posthtml-urls@1.0.1': + resolution: {integrity: sha512-6EFN/yYSxC/OzYXpq4gXDyDMlX/W+2MgCvvoxf11X1z76bqkqFJ8eep5RiBWfGT5j0323a1pwpelcJJdR46MCw==} + engines: {node: '>= 6'} + + '@11ty/recursive-copy@4.0.2': + resolution: {integrity: sha512-174nFXxL/6KcYbLYpra+q3nDbfKxLxRTNVY1atq2M1pYYiPfHse++3IFNl8mjPFsd7y2qQjxLORzIjHMjL3NDQ==} + engines: {node: '>=18'} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@sindresorhus/slugify@2.2.1': + resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==} + engines: {node: '>=12'} + + '@sindresorhus/transliterate@1.6.0': + resolution: {integrity: sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ==} + engines: {node: '>=12'} + + a-sync-waterfall@1.0.1: + resolution: {integrity: sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==} + + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + array-differ@1.0.0: + resolution: {integrity: sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==} + engines: {node: '>=0.10.0'} + + array-union@1.0.2: + resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} + engines: {node: '>=0.10.0'} + + array-uniq@1.0.3: + resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} + engines: {node: '>=0.10.0'} + + arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + + asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + bcp-47-match@2.0.3: + resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==} + + bcp-47-normalize@2.3.0: + resolution: {integrity: sha512-8I/wfzqQvttUFz7HVJgIZ7+dj3vUaIyIxYXaTRP1YWoSDfzt6TUmxaKZeuXR62qBmYr+nvuWINFRl6pZ5DlN4Q==} + + bcp-47@2.1.0: + resolution: {integrity: sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + + commander@5.1.0: + resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + engines: {node: '>= 6'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + dependency-graph@1.0.0: + resolution: {integrity: sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==} + engines: {node: '>=4'} + + dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + + domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + + entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + + entities@3.0.1: + resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==} + engines: {node: '>=0.12'} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + engines: {node: '>=0.12'} + + errno@1.0.0: + resolution: {integrity: sha512-3zV5mFS1E8/1bPxt/B0xxzI1snsg3uSCIh6Zo1qKg6iMw93hzPANk9oBFzSFBFrwuVoQuE3rLoouAUfwOAj1wQ==} + hasBin: true + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + esm-import-transformer@3.0.5: + resolution: {integrity: sha512-1GKLvfuMnnpI75l8c6sHoz0L3Z872xL5akGuBudgqTDPv4Vy6f2Ec7jEMKTxlqWl/3kSvNbHELeimJtnqgYniw==} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + evaluate-value@2.0.0: + resolution: {integrity: sha512-VonfiuDJc0z4sOO7W0Pd130VLsXN6vmBWZlrog1mCb/o7o/Nl5Lr25+Kj/nkCCAhG+zqeeGjxhkK9oHpkgTHhQ==} + engines: {node: '>= 8'} + + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + filesize@10.1.6: + resolution: {integrity: sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==} + engines: {node: '>= 10.4.0'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + finalhandler@1.3.1: + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} + engines: {node: '>= 0.8'} + + fresh@2.0.0: + resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} + engines: {node: '>= 0.8'} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + + htmlparser2@7.2.0: + resolution: {integrity: sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==} + + http-equiv-refresh@2.0.1: + resolution: {integrity: sha512-XJpDL/MLkV3dKwLzHwr2dY05dYNfBNlyPu4STQ8WvKCFdc6vC5tPXuq28of663+gHVg03C+16pHHs/+FmmDjcw==} + engines: {node: '>= 6'} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + + is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-json@2.0.1: + resolution: {integrity: sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + iso-639-1@3.1.5: + resolution: {integrity: sha512-gXkz5+KN7HrG0Q5UGqSMO2qB9AsbEeyLP54kF1YrMsIxmu+g4BdB7rflReZTSTZGpfj8wywu6pfPBCylPIzGQA==} + engines: {node: '>=6.0'} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + junk@3.1.0: + resolution: {integrity: sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==} + engines: {node: '>=8'} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + + linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + + liquidjs@10.21.1: + resolution: {integrity: sha512-NZXmCwv3RG5nire3fmIn9HsOyJX3vo+ptp0yaXUHAMzSNBhx74Hm+dAGJvscUA6lNqbLuYfXgNavRQ9UbUJhQQ==} + engines: {node: '>=14'} + hasBin: true + + list-to-array@1.1.0: + resolution: {integrity: sha512-+dAZZ2mM+/m+vY9ezfoueVvrgnHIGi5FvgSymbIgJOFwiznWyA59mav95L+Mc6xPtL3s9gm5eNTlNtxJLbNM1g==} + + luxon@3.7.2: + resolution: {integrity: sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==} + engines: {node: '>=12'} + + markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + hasBin: true + + maximatch@0.1.0: + resolution: {integrity: sha512-9ORVtDUFk4u/NFfo0vG/ND/z7UQCVZBL539YW0+U1I7H1BkZwizcPx5foFv7LCPcBnm2U6RjFnQOsIvN4/Vm2A==} + engines: {node: '>=0.10.0'} + + mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + + mime-types@3.0.1: + resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==} + engines: {node: '>= 0.6'} + + mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + moo@0.5.2: + resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} + + morphdom@2.7.7: + resolution: {integrity: sha512-04GmsiBcalrSCNmzfo+UjU8tt3PhZJKzcOy+r1FlGA7/zri8wre3I1WkYN9PT3sIeIKfW9bpyElA+VzOg2E24g==} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + node-retrieve-globals@6.0.1: + resolution: {integrity: sha512-j0DeFuZ/Wg3VlklfbxUgZF/mdHMTEiEipBb3q0SpMMbHaV3AVfoUQF8UGxh1s/yjqO0TgRZd4Pi/x2yRqoQ4Eg==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + nunjucks@3.2.4: + resolution: {integrity: sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==} + engines: {node: '>= 6.9.0'} + hasBin: true + peerDependencies: + chokidar: ^3.3.0 + peerDependenciesMeta: + chokidar: + optional: true + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + parse-srcset@1.0.2: + resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + + please-upgrade-node@3.2.0: + resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==} + + posthtml-match-helper@2.0.3: + resolution: {integrity: sha512-p9oJgTdMF2dyd7WE54QI1LvpBIkNkbSiiECKezNnDVYhGhD1AaOnAkw0Uh0y5TW+OHO8iBdSqnd8Wkpb6iUqmw==} + engines: {node: '>=18'} + peerDependencies: + posthtml: ^0.16.6 + + posthtml-parser@0.11.0: + resolution: {integrity: sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==} + engines: {node: '>=12'} + + posthtml-render@3.0.0: + resolution: {integrity: sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==} + engines: {node: '>=12'} + + posthtml@0.16.6: + resolution: {integrity: sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==} + engines: {node: '>=12.0.0'} + + prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + + semver-compare@1.0.0: + resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + + semver@7.7.2: + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + engines: {node: '>=10'} + hasBin: true + + send@1.2.0: + resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} + engines: {node: '>= 18'} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slugify@1.6.6: + resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==} + engines: {node: '>=8.0.0'} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + ssri@11.0.0: + resolution: {integrity: sha512-aZpUoMN/Jj2MqA4vMCeiKGnc/8SuSyHbGSBdgFbZxP8OJGF/lFkIuElzPxsN0q8TQQ+prw3P4EDfB3TBHHgfXw==} + engines: {node: ^16.14.0 || >=18.0.0} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + engines: {node: '>= 0.8'} + + strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + urlpattern-polyfill@10.1.0: + resolution: {integrity: sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==} + + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + +snapshots: + + '@11ty/dependency-tree-esm@2.0.0': + dependencies: + '@11ty/eleventy-utils': 2.0.7 + acorn: 8.15.0 + dependency-graph: 1.0.0 + normalize-path: 3.0.0 + + '@11ty/dependency-tree@4.0.0': + dependencies: + '@11ty/eleventy-utils': 2.0.7 + + '@11ty/eleventy-dev-server@2.0.8': + dependencies: + '@11ty/eleventy-utils': 2.0.7 + chokidar: 3.6.0 + debug: 4.4.3 + finalhandler: 1.3.1 + mime: 3.0.0 + minimist: 1.2.8 + morphdom: 2.7.7 + please-upgrade-node: 3.2.0 + send: 1.2.0 + ssri: 11.0.0 + urlpattern-polyfill: 10.1.0 + ws: 8.18.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@11ty/eleventy-plugin-bundle@3.0.7(posthtml@0.16.6)': + dependencies: + '@11ty/eleventy-utils': 2.0.7 + debug: 4.4.3 + posthtml-match-helper: 2.0.3(posthtml@0.16.6) + transitivePeerDependencies: + - posthtml + - supports-color + + '@11ty/eleventy-upgrade-help@3.0.1(posthtml@0.16.6)': + dependencies: + fast-glob: 3.3.3 + kleur: 4.1.5 + minimist: 1.2.8 + posthtml-match-helper: 2.0.3(posthtml@0.16.6) + semver: 7.7.2 + transitivePeerDependencies: + - posthtml + + '@11ty/eleventy-utils@2.0.7': {} + + '@11ty/eleventy@3.1.2': + dependencies: + '@11ty/dependency-tree': 4.0.0 + '@11ty/dependency-tree-esm': 2.0.0 + '@11ty/eleventy-dev-server': 2.0.8 + '@11ty/eleventy-plugin-bundle': 3.0.7(posthtml@0.16.6) + '@11ty/eleventy-utils': 2.0.7 + '@11ty/lodash-custom': 4.17.21 + '@11ty/posthtml-urls': 1.0.1 + '@11ty/recursive-copy': 4.0.2 + '@sindresorhus/slugify': 2.2.1 + bcp-47-normalize: 2.3.0 + chokidar: 3.6.0 + debug: 4.4.3 + dependency-graph: 1.0.0 + entities: 6.0.1 + filesize: 10.1.6 + gray-matter: 4.0.3 + iso-639-1: 3.1.5 + js-yaml: 4.1.0 + kleur: 4.1.5 + liquidjs: 10.21.1 + luxon: 3.7.2 + markdown-it: 14.1.0 + minimist: 1.2.8 + moo: 0.5.2 + node-retrieve-globals: 6.0.1 + nunjucks: 3.2.4(chokidar@3.6.0) + picomatch: 4.0.3 + please-upgrade-node: 3.2.0 + posthtml: 0.16.6 + posthtml-match-helper: 2.0.3(posthtml@0.16.6) + semver: 7.7.2 + slugify: 1.6.6 + tinyglobby: 0.2.15 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@11ty/lodash-custom@4.17.21': {} + + '@11ty/posthtml-urls@1.0.1': + dependencies: + evaluate-value: 2.0.0 + http-equiv-refresh: 2.0.1 + list-to-array: 1.1.0 + parse-srcset: 1.0.2 + + '@11ty/recursive-copy@4.0.2': + dependencies: + errno: 1.0.0 + junk: 3.1.0 + maximatch: 0.1.0 + slash: 3.0.0 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.19.1 + + '@sindresorhus/slugify@2.2.1': + dependencies: + '@sindresorhus/transliterate': 1.6.0 + escape-string-regexp: 5.0.0 + + '@sindresorhus/transliterate@1.6.0': + dependencies: + escape-string-regexp: 5.0.0 + + a-sync-waterfall@1.0.1: {} + + acorn-walk@8.3.4: + dependencies: + acorn: 8.15.0 + + acorn@8.15.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + array-differ@1.0.0: {} + + array-union@1.0.2: + dependencies: + array-uniq: 1.0.3 + + array-uniq@1.0.3: {} + + arrify@1.0.1: {} + + asap@2.0.6: {} + + balanced-match@1.0.2: {} + + bcp-47-match@2.0.3: {} + + bcp-47-normalize@2.3.0: + dependencies: + bcp-47: 2.1.0 + bcp-47-match: 2.0.3 + + bcp-47@2.1.0: + dependencies: + is-alphabetical: 2.0.1 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + + binary-extensions@2.3.0: {} + + brace-expansion@1.1.12: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + commander@10.0.1: {} + + commander@5.1.0: {} + + concat-map@0.0.1: {} + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + depd@2.0.0: {} + + dependency-graph@1.0.0: {} + + dom-serializer@1.4.1: + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 + + domelementtype@2.3.0: {} + + domhandler@4.3.1: + dependencies: + domelementtype: 2.3.0 + + domutils@2.8.0: + dependencies: + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + + ee-first@1.1.1: {} + + encodeurl@2.0.0: {} + + entities@2.2.0: {} + + entities@3.0.1: {} + + entities@4.5.0: {} + + entities@6.0.1: {} + + errno@1.0.0: + dependencies: + prr: 1.0.1 + + escape-html@1.0.3: {} + + escape-string-regexp@5.0.0: {} + + esm-import-transformer@3.0.5: + dependencies: + acorn: 8.15.0 + + esprima@4.0.1: {} + + etag@1.8.1: {} + + evaluate-value@2.0.0: {} + + extend-shallow@2.0.1: + dependencies: + is-extendable: 0.1.1 + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fastq@1.19.1: + dependencies: + reusify: 1.1.0 + + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + + filesize@10.1.6: {} + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + finalhandler@1.3.1: + dependencies: + debug: 2.6.9 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + fresh@2.0.0: {} + + fsevents@2.3.3: + optional: true + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + gray-matter@4.0.3: + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + + htmlparser2@7.2.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + domutils: 2.8.0 + entities: 3.0.1 + + http-equiv-refresh@2.0.1: {} + + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + inherits@2.0.4: {} + + is-alphabetical@2.0.1: {} + + is-alphanumerical@2.0.1: + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-decimal@2.0.1: {} + + is-extendable@0.1.1: {} + + is-extglob@2.1.1: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-json@2.0.1: {} + + is-number@7.0.0: {} + + iso-639-1@3.1.5: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + junk@3.1.0: {} + + kind-of@6.0.3: {} + + kleur@4.1.5: {} + + linkify-it@5.0.0: + dependencies: + uc.micro: 2.1.0 + + liquidjs@10.21.1: + dependencies: + commander: 10.0.1 + + list-to-array@1.1.0: {} + + luxon@3.7.2: {} + + markdown-it@14.1.0: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + + maximatch@0.1.0: + dependencies: + array-differ: 1.0.0 + array-union: 1.0.2 + arrify: 1.0.1 + minimatch: 3.1.2 + + mdurl@2.0.0: {} + + merge2@1.4.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.54.0: {} + + mime-types@3.0.1: + dependencies: + mime-db: 1.54.0 + + mime@3.0.0: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.12 + + minimist@1.2.8: {} + + minipass@7.1.2: {} + + moo@0.5.2: {} + + morphdom@2.7.7: {} + + ms@2.0.0: {} + + ms@2.1.3: {} + + node-retrieve-globals@6.0.1: + dependencies: + acorn: 8.15.0 + acorn-walk: 8.3.4 + esm-import-transformer: 3.0.5 + + normalize-path@3.0.0: {} + + nunjucks@3.2.4(chokidar@3.6.0): + dependencies: + a-sync-waterfall: 1.0.1 + asap: 2.0.6 + commander: 5.1.0 + optionalDependencies: + chokidar: 3.6.0 + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + parse-srcset@1.0.2: {} + + parseurl@1.3.3: {} + + picomatch@2.3.1: {} + + picomatch@4.0.3: {} + + please-upgrade-node@3.2.0: + dependencies: + semver-compare: 1.0.0 + + posthtml-match-helper@2.0.3(posthtml@0.16.6): + dependencies: + posthtml: 0.16.6 + + posthtml-parser@0.11.0: + dependencies: + htmlparser2: 7.2.0 + + posthtml-render@3.0.0: + dependencies: + is-json: 2.0.1 + + posthtml@0.16.6: + dependencies: + posthtml-parser: 0.11.0 + posthtml-render: 3.0.0 + + prr@1.0.1: {} + + punycode.js@2.3.1: {} + + queue-microtask@1.2.3: {} + + range-parser@1.2.1: {} + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + reusify@1.1.0: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + section-matter@1.0.0: + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + + semver-compare@1.0.0: {} + + semver@7.7.2: {} + + send@1.2.0: + dependencies: + debug: 4.4.3 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 2.0.0 + http-errors: 2.0.0 + mime-types: 3.0.1 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + + setprototypeof@1.2.0: {} + + slash@3.0.0: {} + + slugify@1.6.6: {} + + sprintf-js@1.0.3: {} + + ssri@11.0.0: + dependencies: + minipass: 7.1.2 + + statuses@2.0.1: {} + + statuses@2.0.2: {} + + strip-bom-string@1.0.0: {} + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toidentifier@1.0.1: {} + + uc.micro@2.1.0: {} + + unpipe@1.0.0: {} + + urlpattern-polyfill@10.1.0: {} + + ws@8.18.3: {} diff --git a/src/LMRoman10-Bold.woff2 b/src/LMRoman10-Bold.woff2 new file mode 100644 index 0000000..280bc83 Binary files /dev/null and b/src/LMRoman10-Bold.woff2 differ diff --git a/src/LMRoman10-Regular.woff2 b/src/LMRoman10-Regular.woff2 new file mode 100644 index 0000000..419c54d Binary files /dev/null and b/src/LMRoman10-Regular.woff2 differ diff --git a/src/_data/resume.js b/src/_data/resume.js new file mode 100644 index 0000000..d738502 --- /dev/null +++ b/src/_data/resume.js @@ -0,0 +1,4 @@ +module.exports = function() { + const resume = require("./resumes/engineering.resume.json"); + return resume; +}; \ No newline at end of file diff --git a/src/_data/resumes/engineering.resume.json b/src/_data/resumes/engineering.resume.json new file mode 100644 index 0000000..d09d8b1 --- /dev/null +++ b/src/_data/resumes/engineering.resume.json @@ -0,0 +1,221 @@ +{ + "basics": { + "name": "Louis Guidez", + "label": "Mechanical Engineer", + "image": "", + "email": "louis.guidez@volvo.com", + "phone": "+46 73 902 67 81", + "url": "https://louis.hostux.fr", + "summary": "with a thorough approach to product development and strong understanding of underlying physics.\n\nThrough concept design, verification and cross-functional collaboration, I aim to create robust solutions that meet requirements effectively.", + "location": { + "address": "Virvelvindsgatan 28", + "postalCode": "417 14", + "city": "Göteborg", + "countryCode": "SE", + "region": "" + }, + "profiles": [ + { + "url": "https://www.linkedin.com/in/louis-guidez-42a4a0170/", + "network": "Linkedin", + "username": "Louis Guidez" + }] + }, + "work": [{ + "name": "🇸🇪 Volvo Trucks (Pack Enclosures, Electromobility)", + "position": "Component Owner", + "url": "", + "startDate": "2024-09-01", + "endDate": "", + "summary": "* Mechanical design of a battery enclosure (consisting of e.g. stamped steel and aluminium HPDC parts), including GD&T and simple simulations.\n* Lead discussions with cross-functional teams (mechanical, electrical, simulation, thermal...) and suppliers.", + "highlights": [ + "Cross-functional leader", "Creo Parametric", "KOLA" + ] + }, + { + "name": "🇸🇪 Volvo Trucks (Pack Enclosures, Electromobility)", + "position": "Design Engineer", + "url": "", + "startDate": "2022-05-01", + "endDate": "2024-08-31", + "summary": "* Design battery packs to fulfill energy and packaging requirements as well as durability and safety.", + "highlights": [ + "Creo Parametric", "Creo Simulate", "KOLA" + ] + }, + { + "name": "🇫🇷 CMD Gears", + "position": "R&D Mechanical Engineer", + "url": "", + "startDate": "2021-08-30", + "endDate": "2022-02-11", + "summary": "* Main project: design of a new cost-effective self-aligning gearbox. Gear and shaft calculations; cast iron housing design; dynamic analysis.\n* Side projects: development of an IoT sensor (embedded C++ on Arduino, implementation of network protocol, data acquisition and visualisation); development of a macro to automatise processing of FEM simulation.", + "highlights": [ + "SolidEdge", "FEMAP/Nastran", "Modelica", "Arduino" + ] + }, + { + "name": "🇫🇷 Vitibot", + "position": "Mechanical Design Engineer, Assistant", + "url": "", + "startDate": "2019-08-31", + "endDate": "2020-02-13", + "summary": "* Design and sizing of parts for a vineyard robot to meet requirements.\n* Manufacturing: drawings and exploded views, communication with subcontractors, participation in the production.", + "highlights": [ + "SolidWorks", "3D Printing" + ] + }, + { + "name": "🇫🇷 Stellantis", + "position": "Production Line Worker", + "url": "", + "startDate": "2017-01-15", + "endDate": "2017-02-15", + "summary": "", + "highlights": [] + }], + "volunteer": [{ + "organization": "Aeroklubben i Göteborg", + "position": "Board Member", + "url": "https://www.aeroklubben.se/", + "startDate": "2023-11-01", + "endDate": "", + "summary": "", + "highlights": [] + }], + "education": [{ + "institution": "🇫🇷 Université de Technologie de Compiègne", + "url": "https://www.utc.fr/", + "area": "Mechanical Engineering", + "studyType": "Master's Degree", + "startDate": "2016-09-01", + "endDate": "2022-02-11", + "score": "GPA 5/5.", + "courses": [] + }, + { + "institution": "🇸🇪 Linköpings Universitet", + "url": "https://liu.se/", + "area": "Mechanical & Aeronautical Engineering", + "studyType": "Erasmus (Master's Level)", + "startDate": "2020-08-24", + "endDate": "2021-07-30", + "score": "", + "courses": [] + }, + { + "institution": "🇪🇸 Universidad de Valladolid", + "url": "https://www.uva.es/", + "area": "Mechanical Engineering, Computer Science", + "studyType": "Erasmus (Bachelor's Level)", + "startDate": "2018-01-31", + "endDate": "2018-06-29", + "score": "Valedictorian.", + "courses": [] + }], + "awards": [], + "certificates": [{ + "name": "Certificate", + "date": "2021-11-07", + "issuer": "Company", + "url": "https://certificate.com" + }], + "publications": [], + "skills": [{ + "name": "CAD Design", + "level": "Master", + "keywords": [ + "Creo Parametric", + "CATIA (V5 / 3DExperience)", + "SolidEdge", + "SolidWorks" + ] + }, + { + "name": "Simulation and modelling", + "level": "Basic", + "keywords": [ + "FEA", + "MATLAB/Simulink", + "Modelica", + "KISSsoft/KISSsys" + ] + }, + { + "name": "IT/Computer Science", + "level": "Advanced", + "keywords": [ + "Full-stack web", + "Rust", + "C++", + "VBA", + "Python", + "Networks", + "Containers", + "Linux" + ] + }], + "languages": [{ + "language": "🇬🇧 English", + "fluency": "C2 (Advanced)" + }, + { + "language": "🇸🇪 Swedish", + "fluency": "B2 (Proficient)" + }, + { + "language": "🇫🇷 French", + "fluency": "Native" + }, + { + "language": "🇪🇸 Spanish", + "fluency": "C1 (Advanced)" + }, + { + "language": "🇩🇪 German", + "fluency": "B1 (Intermediate)" + }], + "interests": [{ + "name": "Private Pilot", + "keywords": [ + "Fire watch (brandflyg)", + "Swedish civil defense" + ] + },{ + "name": "Music", + "keywords": [ + "Piano", + "Orchestra" + ] + }, + { + "name": "Sports", + "keywords": [ + "Rope climbing", + "Hiking", + "Cycling" + ] + }, + { + "name": "Theatre", + "keywords": [ + "Volunteer at festival" + ] + }, + { + "name": "IT", + "keywords": [ + "Programming", + "Self-hosting (email, cloud, web...)" + ] + }], + "references": [{ + "name": "Shreyas Nanjunda Swamy", + "reference": "Former Global Component Responsible, Volvo Trucks (Pack Enclosures, Electromobility)" + }, + { + "name": "Michel Alfaro", + "reference": "Former Design Engineer, Volvo Trucks (Pack Enclosures, Electromobility)" + }], + "projects": [] +} \ No newline at end of file diff --git a/src/index.njk b/src/index.njk index 7711b9a..23ab5ce 100644 --- a/src/index.njk +++ b/src/index.njk @@ -4,34 +4,211 @@ + Louis Guidez -
-
-

Louis Guidez

-

- - Mechanical Engineer. - Private Pilot. - Geek. - Pianist. - Hiker. - Board-"gamer". - -

+
+ +
+ +
+
+

{{ resume.basics.label }}

+ {{ resume.basics.summary | markdown | safe }} +
+ + {# Work Experience #} + {% if resume.work and resume.work.length > 0 %} +

Work Experience

+ {% for job in resume.work %} +
+
+ {% if not job.endDate %}{% endif %} +

{{ job.position }}

+ {{ job.startDate | formatDate }} - {{ job.endDate | formatDate }} +
+
+ {{ job.name }} +
+ {% if job.highlights and job.highlights.length > 0 %} +
+ {% for highlight in job.highlights %} + {{ highlight }} + {% endfor %} +
+ {% endif %} + + + {% if job.summary %} +
+ {{ job.summary | markdown | safe }} +
+ {% endif %} +
+ {% endfor %} + {% endif %} + + {# Education #} + {% if resume.education and resume.education.length > 0 %} +

Education

+ {% for edu in resume.education %} +
+
+ {% if not edu.endDate %}{% endif %} +

{{ edu.studyType }} in {{ edu.area }}

+ {{ edu.startDate | formatDate }} - {{ edu.endDate | formatDate }} +
+
+ {{ edu.institution }} + {% if edu.score %} + {{ edu.score }} + {% endif %} +
+
+ {% endfor %} + {% endif %} + + {# Projects #} + {% if resume.projects and resume.projects.length > 0 %} +

Projects

+ {% for project in resume.projects %} +
+

{{ project.name }}

+ + {{ project.description }} + + {% if project.highlights and project.highlights.length > 0 %} + {% for highlight in project.highlights %} + {{ highlight }} + {% endfor %} + {% endif %} +
+ {% endfor %} + {% endif %} + + {# References #} + {% if resume.references and resume.references.length > 0 %} +

References

+ + {% if false %} + {% for reference in resume.references %} +
+

{{ reference.name }}

+ + {{ reference.reference }} +
+ {% endfor %} + {% else %} +

+ Contact me. +

+ {% endif %} + {% endif %} +
- Photo of Louis Guidez -
diff --git a/src/style.css b/src/style.css index 39662f8..92e6d84 100644 --- a/src/style.css +++ b/src/style.css @@ -34,6 +34,23 @@ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } +/* latin */ +@font-face { + font-family: 'Latin Modern Roman'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url("LMRoman10-Regular.woff2") format('woff2'); +} +@font-face { + font-family: 'Latin Modern Roman'; + font-style: normal; + font-weight: 600; + font-stretch: 100%; + font-display: swap; + src: url("LMRoman10-Bold.woff2") format('woff2'); +} + /** * Styles */ @@ -48,6 +65,9 @@ html, body { body::-webkit-scrollbar { display: none; } +html { + overflow-y: hidden; /* Needed for scroll snap */ +} body { font-family: "Advent Pro", sans-serif; @@ -55,16 +75,17 @@ body { font-weight: 500; font-style: normal; font-variation-settings: "wdth" 100; -} -.page:first-of-type { - height: 100vh; - border: none; - background: rgb(133,141,143); - background: linear-gradient(178deg, #F2F2F2 0%, #D5E7F2 85%, #4D6F8C 100%); + max-height: 100vh; + overflow-y: scroll; /* Needed for scroll snap */ + scroll-snap-type: y mandatory; } .page { + height: 100vh; + border: none; + background: rgb(133,141,143); + background: linear-gradient(178deg, #F2F2F2 0%, #D5E7F2 85%, #4D6F8C 100%); position: relative; margin: 0; padding: 1em; @@ -73,27 +94,42 @@ body { flex-direction: column; justify-content: space-between; align-items: center; - border: 1em solid #4D6F8C; background: #D5E7F2; + + scroll-snap-align: start; } .page:has(+ .page) { margin-bottom: .2em; } +#resume { + overflow-y: auto; + align-items: start; +} h1 { font-family: "Updock", cursive; + font-size: 2rem; font-weight: 400; font-style: normal; margin: 0; - font-size: 7rem; color: #252C40; - margin-bottom: -0.4em; - - position: relative; } h2 { font-weight: 600; + font-size: 1.2rem; +} +h3 { + font-weight: 600; + font-size: 1rem; +} + +#splashscreen h1 { + position: relative; + font-size: 7rem; + margin-bottom: -0.4em; +} +#splashscreen h2 { font-size: 2rem; } @@ -173,6 +209,117 @@ ul#contact { align-self: flex-end; } +#resume { + display: flex; + flex-direction: row; + gap: 1em; + align-items: start; + + + font-family: 'Latin Modern Roman'; +} + +#resume aside { + min-width: 15rem; + max-width: 20rem; +} + +#resume h2 { + border-bottom: .1em solid black; +} + +section.work h3, section.education h3, section.skill h3, section.interest h3, section.language h3, section.volunteer h3 { + display: inline-block; + margin: 0; + padding: 0; +} + +span.date { + color: #777; + font-size: .9em; +} + +#resume aside h1 { + text-align: center; + font-family: 'Latin Modern Roman'; + font-weight: bold; + font-size: 2rem; +} +#resume aside h1 i svg { + height: 1em; + vertical-align: -10%; +} + +#resume aside a { + text-decoration: none; + color: inherit; +} + +#resume main h1 { + display: inline; +} + +#resume .language h3 { + width: 6em; +} + +span.tag { + display: inline-block; + color: white; + padding: .1em .3em; + border-radius: .2em; + margin: .1em; + font-size: .9em; +} + + +#resume main header { + margin-top: .8rem; + text-align: justify; +} +#resume main header h1 { + line-height: 1rem; +} + +#resume main header p:first-of-type { + display: inline; +} +#resume main header p { + margin: 0; +} + +#resume main ul { + margin-top: 0; + padding-left: 1rem; + text-align: justify; +} + + +/*span.tag:nth-child(1) { background: #4D6F8C; } /* Blue */ +/*span.tag:nth-child(2) { background: #8C4D6F; } /* Magenta */ +/*span.tag:nth-child(3) { background: #6F8C4D; } /* Green */ +/*span.tag:nth-child(4) { background: #8C6F4D; } /* Brown */ +/*span.tag:nth-child(5) { background: #4D8C6F; } /* Teal */ +/*span.tag:nth-child(6) { background: #6F4D8C; } /* Purple */ +/*span.tag:nth-child(7) { background: #8C4D4D; } /* Red */ +/*span.tag:nth-child(8) { background: #4D8C8C; } /* Cyan */ +/*span.tag:nth-child(9) { background: #8C8C4D; } /* Yellow-green */ +/*span.tag:nth-child(10) { background: #4D4D8C; } /* Indigo */ + +span.tag { + background: #4D6F8C; +} + +span.current { + color: #24b500; +} + +span.date { + float: right; +} + + + @media (max-width: 480px) { h1 { @@ -182,7 +329,7 @@ ul#contact { max-height: 50vh; max-width: none; } - ul#contact { + ul#contact, #resume { flex-direction: column; } } @@ -192,4 +339,44 @@ ul#contact { height: 3em; padding: .5em 0; } +} + + +@page { + margin: 0.5cm 0.3cm; +} + +@media print +{ + #splashscreen { + display: none; + } + + html, body, #resume { + background-color: transparent; + padding: 0; + margin: 0; + -webkit-print-color-adjust: exact; + print-color-adjust: exact; + height: auto; + max-height: none; + } + + #resume { + overflow: visible; + } + + + #resume aside h1 { + text-align: center; + font-family: 'Latin Modern Roman'; + font-weight: bold; + font-size: 1.5rem; + } + + + span.tag { + background: #eff8ff; + color: #2d4253; + } } \ No newline at end of file