From 58025e24b5aa9eaaeaaa1436cbee8c071d9931a6 Mon Sep 17 00:00:00 2001 From: adb-sh Date: Fri, 7 Oct 2022 13:43:41 +0200 Subject: [PATCH] SEO optimization --- package-lock.json | 163 +++++++++++++++++- package.json | 3 +- src/.vuepress/config.js | 19 +- src/me/index.md | 41 +++++ src/music/index.md | 9 +- src/projects/artnet-node.md | 5 + src/projects/index.md | 5 + src/projects/matrix-chat.md | 5 + src/projects/server-rack.md | 5 + .../setup-matrix-synapse-docker-compose.md | 5 + src/projects/vuedav.md | 5 + 11 files changed, 254 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7f3abbc..214afe9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,8 @@ "@vuepress/theme-default": "^1.9.7", "bootstrap": "^5.2.1", "bootstrap-darkmode": "^5.0.1", - "bootstrap-icons": "^1.9.1" + "bootstrap-icons": "^1.9.1", + "vuepress-plugin-sitemap": "^2.3.1" }, "devDependencies": { "dart-sass": "^1.25.0", @@ -4409,8 +4410,7 @@ "node_modules/commander": { "version": "2.17.1", "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" }, "node_modules/commondir": { "version": "1.0.1", @@ -6195,6 +6195,15 @@ "node": ">=4.0.0" } }, + "node_modules/esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -8674,6 +8683,11 @@ "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", "dev": true }, + "node_modules/lodash.chunk": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz", + "integrity": "sha512-ZzydJKfUHJwHa+hF5X66zLFCBrWn5GeF28OHEr4WVWtNDXlQ/IjWKPBiikqKo2ne0+v6JgCgJ0GzJp8k8bHC7w==" + }, "node_modules/lodash.clonedeep": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", @@ -8696,6 +8710,16 @@ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true }, + "node_modules/lodash.padstart": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", + "integrity": "sha512-sW73O6S8+Tg66eY56DBk85aQzzUJDtpoXFBgELMd5P/SotAguo+1kYO6RuYgXxA4HJH3LFTFPASX6ET6bjfriw==" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" + }, "node_modules/lodash.template": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", @@ -12137,6 +12161,21 @@ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", "dev": true }, + "node_modules/sitemap": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-3.2.2.tgz", + "integrity": "sha512-TModL/WU4m2q/mQcrDgNANn0P4LwprM9MMvG4hu5zP4c6IIKs2YLTu6nXXnNr8ODW/WFtxKggiJ1EGn2W0GNmg==", + "dependencies": { + "lodash.chunk": "^4.2.0", + "lodash.padstart": "^4.6.1", + "whatwg-url": "^7.0.0", + "xmlbuilder": "^13.0.0" + }, + "engines": { + "node": ">=6.0.0", + "npm": ">=4.0.0" + } + }, "node_modules/slash": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", @@ -13326,6 +13365,14 @@ "node": ">=0.8" } }, + "node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dependencies": { + "punycode": "^2.1.0" + } + }, "node_modules/tslib": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", @@ -14220,6 +14267,22 @@ "markdown-it-container": "^2.0.0" } }, + "node_modules/vuepress-plugin-sitemap": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/vuepress-plugin-sitemap/-/vuepress-plugin-sitemap-2.3.1.tgz", + "integrity": "sha512-n+8lbukhrKrsI9H/EX0EBgkE1pn85LAQFvQ5dIvrZP4Kz6JxPOPPNTQmZMhahQV1tXbLZQCEN7A1WZH4x+arJQ==", + "dependencies": { + "sitemap": "^3.0.0" + }, + "bin": { + "vuepress-sitemap": "cli.js" + }, + "peerDependencies": { + "chalk": "^2.0.0", + "commander": "^2.0.0", + "esm": "^3.0.0" + } + }, "node_modules/vuepress-plugin-smooth-scroll": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/vuepress-plugin-smooth-scroll/-/vuepress-plugin-smooth-scroll-0.0.3.tgz", @@ -14401,6 +14464,11 @@ "minimalistic-assert": "^1.0.0" } }, + "node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, "node_modules/webpack": { "version": "4.46.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", @@ -14698,6 +14766,16 @@ "node": ">=0.8.0" } }, + "node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, "node_modules/when": { "version": "3.6.4", "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", @@ -14857,6 +14935,14 @@ "node": ">=8" } }, + "node_modules/xmlbuilder": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz", + "integrity": "sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ==", + "engines": { + "node": ">=6.0" + } + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -18446,8 +18532,7 @@ "commander": { "version": "2.17.1", "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" }, "commondir": { "version": "1.0.1", @@ -19838,6 +19923,12 @@ "estraverse": "^4.1.1" } }, + "esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "peer": true + }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -21727,6 +21818,11 @@ "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", "dev": true }, + "lodash.chunk": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz", + "integrity": "sha512-ZzydJKfUHJwHa+hF5X66zLFCBrWn5GeF28OHEr4WVWtNDXlQ/IjWKPBiikqKo2ne0+v6JgCgJ0GzJp8k8bHC7w==" + }, "lodash.clonedeep": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", @@ -21749,6 +21845,16 @@ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true }, + "lodash.padstart": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", + "integrity": "sha512-sW73O6S8+Tg66eY56DBk85aQzzUJDtpoXFBgELMd5P/SotAguo+1kYO6RuYgXxA4HJH3LFTFPASX6ET6bjfriw==" + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" + }, "lodash.template": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", @@ -24549,6 +24655,17 @@ } } }, + "sitemap": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-3.2.2.tgz", + "integrity": "sha512-TModL/WU4m2q/mQcrDgNANn0P4LwprM9MMvG4hu5zP4c6IIKs2YLTu6nXXnNr8ODW/WFtxKggiJ1EGn2W0GNmg==", + "requires": { + "lodash.chunk": "^4.2.0", + "lodash.padstart": "^4.6.1", + "whatwg-url": "^7.0.0", + "xmlbuilder": "^13.0.0" + } + }, "slash": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", @@ -25513,6 +25630,14 @@ "punycode": "^2.1.1" } }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "requires": { + "punycode": "^2.1.0" + } + }, "tslib": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", @@ -26237,6 +26362,14 @@ "markdown-it-container": "^2.0.0" } }, + "vuepress-plugin-sitemap": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/vuepress-plugin-sitemap/-/vuepress-plugin-sitemap-2.3.1.tgz", + "integrity": "sha512-n+8lbukhrKrsI9H/EX0EBgkE1pn85LAQFvQ5dIvrZP4Kz6JxPOPPNTQmZMhahQV1tXbLZQCEN7A1WZH4x+arJQ==", + "requires": { + "sitemap": "^3.0.0" + } + }, "vuepress-plugin-smooth-scroll": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/vuepress-plugin-smooth-scroll/-/vuepress-plugin-smooth-scroll-0.0.3.tgz", @@ -26376,6 +26509,11 @@ "minimalistic-assert": "^1.0.0" } }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, "webpack": { "version": "4.46.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", @@ -26600,6 +26738,16 @@ "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true }, + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, "when": { "version": "3.6.4", "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", @@ -26734,6 +26882,11 @@ "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", "dev": true }, + "xmlbuilder": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz", + "integrity": "sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ==" + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/package.json b/package.json index 9ec84ad..f760ccb 100755 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "@vuepress/theme-default": "^1.9.7", "bootstrap": "^5.2.1", "bootstrap-darkmode": "^5.0.1", - "bootstrap-icons": "^1.9.1" + "bootstrap-icons": "^1.9.1", + "vuepress-plugin-sitemap": "^2.3.1" } } diff --git a/src/.vuepress/config.js b/src/.vuepress/config.js index 4ad4dc6..90a92ca 100755 --- a/src/.vuepress/config.js +++ b/src/.vuepress/config.js @@ -4,7 +4,14 @@ module.exports = { head: [ ['meta', { name: 'theme-color', content: '#3eaf7c' }], ['meta', { name: 'apple-mobile-web-app-capable', content: 'yes' }], - ['meta', { name: 'apple-mobile-web-app-status-bar-style', content: 'black' }] + ['meta', { name: 'apple-mobile-web-app-status-bar-style', content: 'black' }], + ['meta', { name: 'author', content: 'Alban David Becker' }], + ['meta', { name: 'publisher', content: 'Alban David Becker' }], + ['meta', { name: 'copyright', content: 'Alban David Becker' }], + ['meta', { name: 'keywords', content: 'Alban, David, Becker, web development, development, hosting, open source, FOSS, music, DJ' }], + ['meta', { name: 'page-type', content: 'Private Homepage' }], + ['meta', { name: 'robots', content: 'follow' }], + ['meta', { 'http-equiv': 'content-language', content: 'en' }], ], markdown: { anchor: { permalink: false }, @@ -46,7 +53,11 @@ module.exports = { ], } }, - plugins: [ - '@vuepress/plugin-search', - ], + plugins: { + '@vuepress/plugin-search': {}, + 'vuepress-plugin-sitemap': { + hostname: 'https://adb.sh/', + exclude: ['/404.html'], + } + } } diff --git a/src/me/index.md b/src/me/index.md index 82cadab..5fc85e5 100755 --- a/src/me/index.md +++ b/src/me/index.md @@ -1,5 +1,12 @@ --- home: true +meta: +- name: description + content: Alban David Becker - Web Development, Engineering, Hosting, Music +- name: keywords + content: Alban, David, Becker, web development, development, hosting, devops, open source, FOSS +- name: robots + content: index, follow --- @@ -39,6 +46,40 @@ home: true ---- +## :smile: about me +- studying Applied Informatics in North of Germany +- working at [54GradSoftware](htttps://54gradsoftware.de) + +### techniques im familiar with +#### programming languages & frameworks +- HTML +- CSS +- JavaScript +- TypeScript +- NodeJS + - Express +- Vue +- Arduino Framework + +#### software +- KiCad +- Autodesk Eagle +- Adobe Creative Cloud + - Photoshop + - Premiere + - Indesign + - Illustrator + +#### other +- Linux + - Debian & Ubuntu + - nixOS +- Docker +- Ansible +- MariaDB & Postgres +- MongoDB +- Redis + ## :mailbox_with_mail: contact me - Matrix: [@adb:adb.sh](https://matrix.to/#/@adb:adb.sh) diff --git a/src/music/index.md b/src/music/index.md index 3c4e2ac..630dbd9 100755 --- a/src/music/index.md +++ b/src/music/index.md @@ -1,6 +1,13 @@ +--- +meta: +- name: description + content: I do music and DJing +- name: keywords + content: Alban, David, Becker, music, techno, melodic techno, DJ, djing +--- # Music -i do music n stuff +i do music 'n' stuff ## DJ sets ### Techno diff --git a/src/projects/artnet-node.md b/src/projects/artnet-node.md index a868b0c..1c1c282 100644 --- a/src/projects/artnet-node.md +++ b/src/projects/artnet-node.md @@ -2,6 +2,11 @@ sidebar: true excerpt: "Art-Net to DMX PCB" imgUrl: "https://social.cybre.town/system/media_attachments/files/105/520/482/627/757/197/original/ba1084550d15d53f.jpeg" +meta: +- name: description + content: Art-Net to DMX PCB +- name: keywords + content: Alban, David, Becker, ArtNet, development, embedded systems, hardware, Arduino, KiCad, pcb --- # ArtNet-Node diff --git a/src/projects/index.md b/src/projects/index.md index b417826..2f6cade 100755 --- a/src/projects/index.md +++ b/src/projects/index.md @@ -1,4 +1,9 @@ --- +meta: +- name: description + content: recent projects from me +- name: keywords + content: Alban, David, Becker, projects, development, software, embedded systems, hardware --- # Projects diff --git a/src/projects/matrix-chat.md b/src/projects/matrix-chat.md index 1e40ac0..9d94834 100644 --- a/src/projects/matrix-chat.md +++ b/src/projects/matrix-chat.md @@ -2,6 +2,11 @@ sidebar: true excerpt: "a simple matrix webapp for mobile and desktop" imgUrl: "https://chat.adb.sh/media/screenshot-desktop.png" +meta: +- name: description + content: a simple matrix webapp for mobile and desktop +- name: keywords + content: Alban, David, Becker, matrix, matrix-chat, chat, federation, vue, web, javascript --- # **[chat]** *matrix-chat* diff --git a/src/projects/server-rack.md b/src/projects/server-rack.md index d7c2fec..2a7f9a9 100644 --- a/src/projects/server-rack.md +++ b/src/projects/server-rack.md @@ -2,6 +2,11 @@ sidebar: true excerpt: "I'm running my services on my own server, because it's fun :D" imgUrl: "https://social.cybre.town/system/media_attachments/files/106/116/563/016/082/536/original/968136dcb22aca7e.jpg" +meta: +- name: description + content: my home server rack +- name: keywords + content: Alban, David, Becker, server, hosting, networking, development, devops --- # My Server Rack diff --git a/src/projects/setup-matrix-synapse-docker-compose.md b/src/projects/setup-matrix-synapse-docker-compose.md index 0ca4a8b..736c835 100644 --- a/src/projects/setup-matrix-synapse-docker-compose.md +++ b/src/projects/setup-matrix-synapse-docker-compose.md @@ -1,6 +1,11 @@ --- sidebar: true excerpt: "a complete working docker-compose setup for the matrix synapse server with postgres" +meta: +- name: description + content: a complete working docker-compose setup for the matrix synapse server with postgres +- name: keywords + content: Alban, David, Becker, matrix, synapse, docker, docker compose, devops --- # docker-compose matrix-synapse diff --git a/src/projects/vuedav.md b/src/projects/vuedav.md index 8965384..e2b60ce 100644 --- a/src/projects/vuedav.md +++ b/src/projects/vuedav.md @@ -1,6 +1,11 @@ --- sidebar: true excerpt: "a simple webdav client in Vue3" +meta: +- name: description + content: a simple webdav client in Vue3 +- name: keywords + content: Alban, David, Becker, vuedav, cloud, dav, vue, web, javascript, node, typescript --- # vuedav