Compare commits

...

5 Commits

Author SHA1 Message Date
snyk-bot
0994228788 fix: package.json & package-lock.json to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-BRACEEXPANSION-9789073
2025-06-16 05:05:35 +00:00
E
dec522c914 Fix Docker and bio
Rename prepare step

Attempt docker fix

Docker fix

Fix bio and add pug prettier config

Fix spacing

Fix grammer
2024-04-29 17:21:32 +01:00
E
b3aae82a2a Merge branch 'fix-docker-image' 2024-04-29 15:30:43 +01:00
E
140fa8fea0 Omit dev dependencies 2024-04-29 15:30:13 +01:00
E
eba987561e Merge branch 'add-obsidian-graph' 2024-04-29 15:26:45 +01:00
5 changed files with 144 additions and 405 deletions

View File

@@ -4,5 +4,5 @@
"tabWidth": 2, "tabWidth": 2,
"singleQuote": true, "singleQuote": true,
"jsxSingleQuote": true, "jsxSingleQuote": true,
"plugins": ["prettier-plugin-tailwindcss"] "plugins": ["prettier-plugin-tailwindcss", "@prettier/plugin-pug"]
} }

View File

@@ -1,4 +1,4 @@
FROM node:16-bullseye-slim FROM node:21-bullseye-slim
ENV IS_DOCKER=true ENV IS_DOCKER=true
ENV NODE_ENV=production ENV NODE_ENV=production

397
package-lock.json generated
View File

@@ -24,11 +24,12 @@
"postcss-cli": "^8.3.1", "postcss-cli": "^8.3.1",
"pug": "^3.0.2", "pug": "^3.0.2",
"tailwind-hamburgers": "^1.1.1", "tailwind-hamburgers": "^1.1.1",
"tailwindcss": "^2.2.15", "tailwindcss": "^3.0.0",
"winston": "^3.3.3" "winston": "^3.3.3"
}, },
"devDependencies": { "devDependencies": {
"@eslint/js": "^9.1.1", "@eslint/js": "^9.1.1",
"@prettier/plugin-pug": "^3.0.0",
"eslint": "^9.1.1", "eslint": "^9.1.1",
"eslint-config-prettier": "^9.1.0", "eslint-config-prettier": "^9.1.0",
"globals": "^15.1.0", "globals": "^15.1.0",
@@ -347,6 +348,32 @@
"node": ">= 8" "node": ">= 8"
} }
}, },
"node_modules/@prettier/plugin-pug": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@prettier/plugin-pug/-/plugin-pug-3.0.0.tgz",
"integrity": "sha512-ERMMvGSJK/7CTc8OT7W/dtlV43sytyNeiCWckN0DIFepqwXotU0+coKMv5Wx6IWSNj7ZSjdNGBAA1nMPi388xw==",
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/Shinigami92"
},
{
"type": "paypal",
"url": "https://www.paypal.com/donate/?hosted_button_id=L7GY729FBKTZY"
}
],
"dependencies": {
"pug-lexer": "^5.0.1"
},
"engines": {
"node": "^16.13.0 || >=18.0.0",
"npm": ">=7.10.0"
},
"peerDependencies": {
"prettier": "^3.0.0"
}
},
"node_modules/@sendgrid/client": { "node_modules/@sendgrid/client": {
"version": "8.1.3", "version": "8.1.3",
"resolved": "https://registry.npmjs.org/@sendgrid/client/-/client-8.1.3.tgz", "resolved": "https://registry.npmjs.org/@sendgrid/client/-/client-8.1.3.tgz",
@@ -1039,14 +1066,6 @@
"node": ">= 0.8" "node": ">= 0.8"
} }
}, },
"node_modules/commander": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
"integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
"engines": {
"node": ">= 6"
}
},
"node_modules/concat-map": { "node_modules/concat-map": {
"version": "0.0.1", "version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -1158,19 +1177,6 @@
"node": ">= 8" "node": ">= 8"
} }
}, },
"node_modules/css-color-names": {
"version": "0.0.4",
"resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
"integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
"engines": {
"node": "*"
}
},
"node_modules/css-unit-converter": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz",
"integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA=="
},
"node_modules/cssesc": { "node_modules/cssesc": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
@@ -2001,19 +2007,6 @@
"node": ">= 0.6" "node": ">= 0.6"
} }
}, },
"node_modules/fs-extra": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
"integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/fs.realpath": { "node_modules/fs.realpath": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -2254,29 +2247,6 @@
"node": ">=10.0.0" "node": ">=10.0.0"
} }
}, },
"node_modules/hex-color-regex": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz",
"integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ=="
},
"node_modules/hsl-regex": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz",
"integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4="
},
"node_modules/hsla-regex": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz",
"integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg="
},
"node_modules/html-tags": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz",
"integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==",
"engines": {
"node": ">=8"
}
},
"node_modules/http-errors": { "node_modules/http-errors": {
"version": "1.8.0", "version": "1.8.0",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz",
@@ -2432,19 +2402,6 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/is-color-stop": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz",
"integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=",
"dependencies": {
"css-color-names": "^0.0.4",
"hex-color-regex": "^1.1.0",
"hsl-regex": "^1.0.0",
"hsla-regex": "^1.0.0",
"rgb-regex": "^1.0.1",
"rgba-regex": "^1.0.0"
}
},
"node_modules/is-core-module": { "node_modules/is-core-module": {
"version": "2.4.0", "version": "2.4.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz",
@@ -2838,11 +2795,6 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"node_modules/lodash.difference": { "node_modules/lodash.difference": {
"version": "4.5.0", "version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz",
@@ -2874,11 +2826,6 @@
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
"integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg="
}, },
"node_modules/lodash.topath": {
"version": "4.5.2",
"resolved": "https://registry.npmjs.org/lodash.topath/-/lodash.topath-4.5.2.tgz",
"integrity": "sha1-NhY1Hzu6YZlKCTGYlmC9AyVP0Ak="
},
"node_modules/log-update": { "node_modules/log-update": {
"version": "6.0.0", "version": "6.0.0",
"resolved": "https://registry.npmjs.org/log-update/-/log-update-6.0.0.tgz", "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.0.0.tgz",
@@ -3128,17 +3075,6 @@
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
}, },
"node_modules/modern-normalize": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/modern-normalize/-/modern-normalize-1.1.0.tgz",
"integrity": "sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA==",
"engines": {
"node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/morgan": { "node_modules/morgan": {
"version": "1.10.0", "version": "1.10.0",
"resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz",
@@ -3211,14 +3147,6 @@
"node": ">= 0.6" "node": ">= 0.6"
} }
}, },
"node_modules/node-emoji": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz",
"integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==",
"dependencies": {
"lodash": "^4.17.21"
}
},
"node_modules/node-releases": { "node_modules/node-releases": {
"version": "1.1.75", "version": "1.1.75",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz",
@@ -3748,9 +3676,10 @@
} }
}, },
"node_modules/postcss-value-parser": { "node_modules/postcss-value-parser": {
"version": "4.1.0", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
"integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
"license": "MIT"
}, },
"node_modules/prelude-ls": { "node_modules/prelude-ls": {
"version": "1.2.1", "version": "1.2.1",
@@ -4014,20 +3943,6 @@
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/purgecss": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/purgecss/-/purgecss-4.0.3.tgz",
"integrity": "sha512-PYOIn5ibRIP34PBU9zohUcCI09c7drPJJtTDAc0Q6QlRz2/CHQ8ywGLdE7ZhxU2VTqB7p5wkvj5Qcm05Rz3Jmw==",
"dependencies": {
"commander": "^6.0.0",
"glob": "^7.0.0",
"postcss": "^8.2.1",
"postcss-selector-parser": "^6.0.2"
},
"bin": {
"purgecss": "bin/purgecss.js"
}
},
"node_modules/qs": { "node_modules/qs": {
"version": "6.11.0", "version": "6.11.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
@@ -4166,20 +4081,6 @@
"node": ">=8.10.0" "node": ">=8.10.0"
} }
}, },
"node_modules/reduce-css-calc": {
"version": "2.1.8",
"resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz",
"integrity": "sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==",
"dependencies": {
"css-unit-converter": "^1.1.1",
"postcss-value-parser": "^3.3.0"
}
},
"node_modules/reduce-css-calc/node_modules/postcss-value-parser": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
"integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
},
"node_modules/require-directory": { "node_modules/require-directory": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -4269,16 +4170,6 @@
"integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==",
"dev": true "dev": true
}, },
"node_modules/rgb-regex": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz",
"integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE="
},
"node_modules/rgba-regex": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz",
"integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM="
},
"node_modules/rimraf": { "node_modules/rimraf": {
"version": "3.0.2", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
@@ -4683,40 +4574,30 @@
"integrity": "sha512-0w7oyswgVn85NsLjo6uECLH7r8D3jvKQGSSH9h0KqKmJgToyiuvQaYkEDMtDlQ46PX4XbtopYiilfwMXSZIsbA==" "integrity": "sha512-0w7oyswgVn85NsLjo6uECLH7r8D3jvKQGSSH9h0KqKmJgToyiuvQaYkEDMtDlQ46PX4XbtopYiilfwMXSZIsbA=="
}, },
"node_modules/tailwindcss": { "node_modules/tailwindcss": {
"version": "2.2.15", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-2.2.15.tgz", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.0.tgz",
"integrity": "sha512-WgV41xTMbnSoTNMNnJvShQZ+8GmY86DmXTrCgnsveNZJdlybfwCItV8kAqjYmU49YiFr+ofzmT1JlAKajBZboQ==", "integrity": "sha512-UPAp2PS5vojAvGClJFIkdh2hfFyaSWo09Ma9j2vZYW+ANhTvpUHFjY85JgtrvvXXREtDvOXy2BxW1yHOz8apCg==",
"license": "MIT",
"dependencies": { "dependencies": {
"arg": "^5.0.1", "arg": "^5.0.1",
"bytes": "^3.0.0",
"chalk": "^4.1.2", "chalk": "^4.1.2",
"chokidar": "^3.5.2", "chokidar": "^3.5.2",
"color": "^4.0.1", "color-name": "^1.1.4",
"cosmiconfig": "^7.0.1", "cosmiconfig": "^7.0.1",
"detective": "^5.2.0", "detective": "^5.2.0",
"didyoumean": "^1.2.2", "didyoumean": "^1.2.2",
"dlv": "^1.1.3", "dlv": "^1.1.3",
"fast-glob": "^3.2.7", "fast-glob": "^3.2.7",
"fs-extra": "^10.0.0", "glob-parent": "^6.0.2",
"glob-parent": "^6.0.1", "is-glob": "^4.0.3",
"html-tags": "^3.1.0",
"is-color-stop": "^1.1.0",
"is-glob": "^4.0.1",
"lodash": "^4.17.21",
"lodash.topath": "^4.5.2",
"modern-normalize": "^1.1.0",
"node-emoji": "^1.11.0",
"normalize-path": "^3.0.0", "normalize-path": "^3.0.0",
"object-hash": "^2.2.0", "object-hash": "^2.2.0",
"postcss-js": "^3.0.3", "postcss-js": "^3.0.3",
"postcss-load-config": "^3.1.0", "postcss-load-config": "^3.1.0",
"postcss-nested": "5.0.6", "postcss-nested": "5.0.6",
"postcss-selector-parser": "^6.0.6", "postcss-selector-parser": "^6.0.6",
"postcss-value-parser": "^4.1.0", "postcss-value-parser": "^4.2.0",
"pretty-hrtime": "^1.0.3",
"purgecss": "^4.0.3",
"quick-lru": "^5.1.1", "quick-lru": "^5.1.1",
"reduce-css-calc": "^2.1.8",
"resolve": "^1.20.0", "resolve": "^1.20.0",
"tmp": "^0.2.1" "tmp": "^0.2.1"
}, },
@@ -4732,30 +4613,11 @@
"postcss": "^8.0.9" "postcss": "^8.0.9"
} }
}, },
"node_modules/tailwindcss/node_modules/color": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/color/-/color-4.0.1.tgz",
"integrity": "sha512-rpZjOKN5O7naJxkH2Rx1sZzzBgaiWECc6BYXjeCE6kF0kcASJYbUq02u7JqIHwCb/j3NhV+QhRL2683aICeGZA==",
"dependencies": {
"color-convert": "^2.0.1",
"color-string": "^1.6.0"
}
},
"node_modules/tailwindcss/node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/tailwindcss/node_modules/color-name": { "node_modules/tailwindcss/node_modules/color-name": {
"version": "1.1.4", "version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"license": "MIT"
}, },
"node_modules/text-hex": { "node_modules/text-hex": {
"version": "1.0.0", "version": "1.0.0",
@@ -5309,6 +5171,15 @@
"fastq": "^1.6.0" "fastq": "^1.6.0"
} }
}, },
"@prettier/plugin-pug": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@prettier/plugin-pug/-/plugin-pug-3.0.0.tgz",
"integrity": "sha512-ERMMvGSJK/7CTc8OT7W/dtlV43sytyNeiCWckN0DIFepqwXotU0+coKMv5Wx6IWSNj7ZSjdNGBAA1nMPi388xw==",
"dev": true,
"requires": {
"pug-lexer": "^5.0.1"
}
},
"@sendgrid/client": { "@sendgrid/client": {
"version": "8.1.3", "version": "8.1.3",
"resolved": "https://registry.npmjs.org/@sendgrid/client/-/client-8.1.3.tgz", "resolved": "https://registry.npmjs.org/@sendgrid/client/-/client-8.1.3.tgz",
@@ -5829,11 +5700,6 @@
"delayed-stream": "~1.0.0" "delayed-stream": "~1.0.0"
} }
}, },
"commander": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
"integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA=="
},
"concat-map": { "concat-map": {
"version": "0.0.1", "version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -5915,16 +5781,6 @@
"which": "^2.0.1" "which": "^2.0.1"
} }
}, },
"css-color-names": {
"version": "0.0.4",
"resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
"integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA="
},
"css-unit-converter": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz",
"integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA=="
},
"cssesc": { "cssesc": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
@@ -6543,16 +6399,6 @@
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
}, },
"fs-extra": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
"integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==",
"requires": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
}
},
"fs.realpath": { "fs.realpath": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -6705,26 +6551,6 @@
"resolved": "https://registry.npmjs.org/helmet/-/helmet-4.6.0.tgz", "resolved": "https://registry.npmjs.org/helmet/-/helmet-4.6.0.tgz",
"integrity": "sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==" "integrity": "sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg=="
}, },
"hex-color-regex": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz",
"integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ=="
},
"hsl-regex": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz",
"integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4="
},
"hsla-regex": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz",
"integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg="
},
"html-tags": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz",
"integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg=="
},
"http-errors": { "http-errors": {
"version": "1.8.0", "version": "1.8.0",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz",
@@ -6837,19 +6663,6 @@
"binary-extensions": "^2.0.0" "binary-extensions": "^2.0.0"
} }
}, },
"is-color-stop": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz",
"integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=",
"requires": {
"css-color-names": "^0.0.4",
"hex-color-regex": "^1.1.0",
"hsl-regex": "^1.0.0",
"hsla-regex": "^1.0.0",
"rgb-regex": "^1.0.1",
"rgba-regex": "^1.0.0"
}
},
"is-core-module": { "is-core-module": {
"version": "2.4.0", "version": "2.4.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz",
@@ -7138,11 +6951,6 @@
"p-locate": "^5.0.0" "p-locate": "^5.0.0"
} }
}, },
"lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"lodash.difference": { "lodash.difference": {
"version": "4.5.0", "version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz",
@@ -7174,11 +6982,6 @@
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
"integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg="
}, },
"lodash.topath": {
"version": "4.5.2",
"resolved": "https://registry.npmjs.org/lodash.topath/-/lodash.topath-4.5.2.tgz",
"integrity": "sha1-NhY1Hzu6YZlKCTGYlmC9AyVP0Ak="
},
"log-update": { "log-update": {
"version": "6.0.0", "version": "6.0.0",
"resolved": "https://registry.npmjs.org/log-update/-/log-update-6.0.0.tgz", "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.0.0.tgz",
@@ -7346,11 +7149,6 @@
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
}, },
"modern-normalize": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/modern-normalize/-/modern-normalize-1.1.0.tgz",
"integrity": "sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA=="
},
"morgan": { "morgan": {
"version": "1.10.0", "version": "1.10.0",
"resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz",
@@ -7404,14 +7202,6 @@
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
"integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
}, },
"node-emoji": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz",
"integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==",
"requires": {
"lodash": "^4.17.21"
}
},
"node-releases": { "node-releases": {
"version": "1.1.75", "version": "1.1.75",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz",
@@ -7752,9 +7542,9 @@
} }
}, },
"postcss-value-parser": { "postcss-value-parser": {
"version": "4.1.0", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
"integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
}, },
"prelude-ls": { "prelude-ls": {
"version": "1.2.1", "version": "1.2.1",
@@ -7930,17 +7720,6 @@
"integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"dev": true "dev": true
}, },
"purgecss": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/purgecss/-/purgecss-4.0.3.tgz",
"integrity": "sha512-PYOIn5ibRIP34PBU9zohUcCI09c7drPJJtTDAc0Q6QlRz2/CHQ8ywGLdE7ZhxU2VTqB7p5wkvj5Qcm05Rz3Jmw==",
"requires": {
"commander": "^6.0.0",
"glob": "^7.0.0",
"postcss": "^8.2.1",
"postcss-selector-parser": "^6.0.2"
}
},
"qs": { "qs": {
"version": "6.11.0", "version": "6.11.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
@@ -8034,22 +7813,6 @@
"picomatch": "^2.2.1" "picomatch": "^2.2.1"
} }
}, },
"reduce-css-calc": {
"version": "2.1.8",
"resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz",
"integrity": "sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==",
"requires": {
"css-unit-converter": "^1.1.1",
"postcss-value-parser": "^3.3.0"
},
"dependencies": {
"postcss-value-parser": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
"integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
}
}
},
"require-directory": { "require-directory": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -8113,16 +7876,6 @@
"integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==",
"dev": true "dev": true
}, },
"rgb-regex": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz",
"integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE="
},
"rgba-regex": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz",
"integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM="
},
"rimraf": { "rimraf": {
"version": "3.0.2", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
@@ -8418,61 +8171,33 @@
"integrity": "sha512-0w7oyswgVn85NsLjo6uECLH7r8D3jvKQGSSH9h0KqKmJgToyiuvQaYkEDMtDlQ46PX4XbtopYiilfwMXSZIsbA==" "integrity": "sha512-0w7oyswgVn85NsLjo6uECLH7r8D3jvKQGSSH9h0KqKmJgToyiuvQaYkEDMtDlQ46PX4XbtopYiilfwMXSZIsbA=="
}, },
"tailwindcss": { "tailwindcss": {
"version": "2.2.15", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-2.2.15.tgz", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.0.tgz",
"integrity": "sha512-WgV41xTMbnSoTNMNnJvShQZ+8GmY86DmXTrCgnsveNZJdlybfwCItV8kAqjYmU49YiFr+ofzmT1JlAKajBZboQ==", "integrity": "sha512-UPAp2PS5vojAvGClJFIkdh2hfFyaSWo09Ma9j2vZYW+ANhTvpUHFjY85JgtrvvXXREtDvOXy2BxW1yHOz8apCg==",
"requires": { "requires": {
"arg": "^5.0.1", "arg": "^5.0.1",
"bytes": "^3.0.0",
"chalk": "^4.1.2", "chalk": "^4.1.2",
"chokidar": "^3.5.2", "chokidar": "^3.5.2",
"color": "^4.0.1", "color-name": "^1.1.4",
"cosmiconfig": "^7.0.1", "cosmiconfig": "^7.0.1",
"detective": "^5.2.0", "detective": "^5.2.0",
"didyoumean": "^1.2.2", "didyoumean": "^1.2.2",
"dlv": "^1.1.3", "dlv": "^1.1.3",
"fast-glob": "^3.2.7", "fast-glob": "^3.2.7",
"fs-extra": "^10.0.0", "glob-parent": "^6.0.2",
"glob-parent": "^6.0.1", "is-glob": "^4.0.3",
"html-tags": "^3.1.0",
"is-color-stop": "^1.1.0",
"is-glob": "^4.0.1",
"lodash": "^4.17.21",
"lodash.topath": "^4.5.2",
"modern-normalize": "^1.1.0",
"node-emoji": "^1.11.0",
"normalize-path": "^3.0.0", "normalize-path": "^3.0.0",
"object-hash": "^2.2.0", "object-hash": "^2.2.0",
"postcss-js": "^3.0.3", "postcss-js": "^3.0.3",
"postcss-load-config": "^3.1.0", "postcss-load-config": "^3.1.0",
"postcss-nested": "5.0.6", "postcss-nested": "5.0.6",
"postcss-selector-parser": "^6.0.6", "postcss-selector-parser": "^6.0.6",
"postcss-value-parser": "^4.1.0", "postcss-value-parser": "^4.2.0",
"pretty-hrtime": "^1.0.3",
"purgecss": "^4.0.3",
"quick-lru": "^5.1.1", "quick-lru": "^5.1.1",
"reduce-css-calc": "^2.1.8",
"resolve": "^1.20.0", "resolve": "^1.20.0",
"tmp": "^0.2.1" "tmp": "^0.2.1"
}, },
"dependencies": { "dependencies": {
"color": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/color/-/color-4.0.1.tgz",
"integrity": "sha512-rpZjOKN5O7naJxkH2Rx1sZzzBgaiWECc6BYXjeCE6kF0kcASJYbUq02u7JqIHwCb/j3NhV+QhRL2683aICeGZA==",
"requires": {
"color-convert": "^2.0.1",
"color-string": "^1.6.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": { "color-name": {
"version": "1.1.4", "version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",

View File

@@ -13,12 +13,12 @@
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1", "test": "echo \"Error: no test specified\" && exit 1",
"dev": "npx nodemon ./bin/www -e js,pug,sass", "dev": "npx nodemon ./bin/www -e js,pug,sass",
"start": "npx ./bin/www -e js,pug,sass", "start": "npx nodemon ./bin/www -e js,pug,sass",
"watch-tailwind": "npx npm-watch", "watch-tailwind": "npx npm-watch",
"build-tailwind": "npx postcss src/tailwind.css -o public/stylesheets/style.css", "build-tailwind": "npx postcss src/tailwind.css -o public/stylesheets/style.css",
"lint": "prettier --check . && eslint .", "lint": "prettier --check . && eslint .",
"format": "prettier --write --ignore-path .gitignore .", "format": "prettier --write --ignore-path .gitignore .",
"prepare": "husky install" "husky-install": "husky install"
}, },
"dependencies": { "dependencies": {
"@sendgrid/mail": "^8.1.3", "@sendgrid/mail": "^8.1.3",
@@ -37,11 +37,12 @@
"postcss-cli": "^8.3.1", "postcss-cli": "^8.3.1",
"pug": "^3.0.2", "pug": "^3.0.2",
"tailwind-hamburgers": "^1.1.1", "tailwind-hamburgers": "^1.1.1",
"tailwindcss": "^2.2.15", "tailwindcss": "^3.0.0",
"winston": "^3.3.3" "winston": "^3.3.3"
}, },
"devDependencies": { "devDependencies": {
"@eslint/js": "^9.1.1", "@eslint/js": "^9.1.1",
"@prettier/plugin-pug": "^3.0.0",
"eslint": "^9.1.1", "eslint": "^9.1.1",
"eslint-config-prettier": "^9.1.0", "eslint-config-prettier": "^9.1.0",
"globals": "^15.1.0", "globals": "^15.1.0",

View File

@@ -1,70 +1,83 @@
extends layout extends layout
block nav-links block nav-links
a(href='/') a(href='/')
li(class="py-3 bg-pink text-black hover:bg-black hover:text-pink transition duration-500 ease-in-out") li.py-3.bg-pink.text-black.transition.duration-500.ease-in-out(
span Home class='hover:bg-black hover:text-pink'
a(href='#') )
li(class="py-3 bg-black text-green hover:bg-pink hover:text-black transition duration-500 ease-in-out") span Home
span About a(href='#')
a(href='/obsidian/projects.html') li.py-3.bg-black.text-green.transition.duration-500.ease-in-out(
li(class="py-3 bg-pink text-black hover:bg-black hover:text-pink transition duration-500 ease-in-out") class='hover:bg-pink hover:text-black'
span Obsidian )
a(href='https://github.com/aurora-dot') span About
li(class="py-3 bg-pink text-black hover:bg-black hover:text-pink transition duration-500 ease-in-out") a(href='/obsidian/projects.html')
span Projects li.py-3.bg-pink.text-black.transition.duration-500.ease-in-out(
a(href='https://blog.pastel.codes') class='hover:bg-black hover:text-pink'
li(class="py-3 bg-pink text-black hover:bg-black hover:text-pink transition duration-500 ease-in-out") )
span Blog span Obsidian
a(href='/contact') a(href='https://github.com/aurora-dot')
li(class="py-3 bg-pink text-black hover:bg-black hover:text-pink transition duration-500 ease-in-out") li.py-3.bg-pink.text-black.transition.duration-500.ease-in-out(
span Contact class='hover:bg-black hover:text-pink'
)
span Projects
a(href='https://blog.pastel.codes')
li.py-3.bg-pink.text-black.transition.duration-500.ease-in-out(
class='hover:bg-black hover:text-pink'
)
span Blog
a(href='/contact')
li.py-3.bg-pink.text-black.transition.duration-500.ease-in-out(
class='hover:bg-black hover:text-pink'
)
span Contact
block content block content
div.mt-5 .mt-5
div.text-lg .text-lg
h1.font-sans.text-6xl.wavy.mb-10 Hello. h1.font-sans.text-6xl.wavy.mb-10 Hello.
p.mb-5 Im E, a 23-year-old full-stack developer with three years professional experience. I live in the UK. p.mb-5 Im E, a 22-year-old full-stack developer with three years professional experience. I live in the UK.
p.mb-5 Im currently working at Bounce Technologies, where I contribute to or lead various projects using a bunch of different languages and technologies. p.mb-5 Im currently working at Bounce Technologies, where I contribute to or lead various projects using a bunch of different languages and technologies.
p.mb-5 I also do UI/UX design and DevOps! Im currently learning Go and adjusting to TypeScript. p.mb-5 I also do UI/UX design and DevOps! Im currently learning Go and adjusting to TypeScript.
p.mb-5 In my spare time I create digital art and make electronic music. I also like to discover and play experimental and artistic video games. p.mb-5 In my spare time I create digital art and make electronic music. I also like to discover and play experimental and artistic video games.
p.mb-5 Here are all of p.mb-5 Here are all of!{ ' ' }
a(class=" text-green" href="/obsidian/projects.html") my projects |
span and my a.text-green(href='/obsidian/projects.html') my projects
a(class=" text-green" href="https://github.com/aurora-dot/") GitHub span !{ ' ' } and my !{ ' ' }
if project |
div a.text-green(href='https://github.com/aurora-dot/') GitHub
h1.font-sans.text-6xl.wavy.my-10 Projects. | .
if project
div div
each val in project h1.font-sans.text-6xl.wavy.my-10 Projects.
div(class="mb-10 text-center sm:text-left")
div.contents
a(href=val.url).contents
if val.feature_image
img(class="sm:w-2/3 mx-auto sm:mx-0" src=val.feature_image)
else
img(src="/images/logo.png")
div.mt-2
a(href=val.url)
span(class="font-sans text-2xl sm:text-3xl mt-3 mb-3") #{val.title}
p.text-lg #{val.excerpt}
if blog div
div each val in project
h1.font-sans.text-6xl.wavy.my-10 Blog. .mb-10.text-center(class='sm:text-left')
div .contents
each val in blog a.contents(href=val.url)
div(class="mb-10 text-center sm:text-left") if val.feature_image
div.contents img.mx-auto(class='sm:w-2/3 sm:mx-0', src=val.feature_image)
a(href=val.url).contents else
if val.feature_image img(src='/images/logo.png')
img(class="sm:w-2/3 mx-auto sm:mx-0" src=val.feature_image) .mt-2
else a(href=val.url)
img(src="/images/logo.png") span.font-sans.text-2xl.mt-3.mb-3(class='sm:text-3xl') #{ val.title }
div.mt-2 p.text-lg #{ val.excerpt }
a(href=val.url)
span(class="font-sans text-2xl sm:text-3xl mt-3 mb-3") #{val.title} if blog
p.text-lg #{val.excerpt} div
h1.font-sans.text-6xl.wavy.my-10 Blog.
div
each val in blog
.mb-10.text-center(class='sm:text-left')
.contents
a.contents(href=val.url)
if val.feature_image
img.mx-auto(class='sm:w-2/3 sm:mx-0', src=val.feature_image)
else
img(src='/images/logo.png')
.mt-2
a(href=val.url)
span.font-sans.text-2xl.mt-3.mb-3(class='sm:text-3xl') #{ val.title }
p.text-lg #{ val.excerpt }