diff --git a/.drone.yml b/.drone.yml index 155cddd..d50bcbf 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,6 +1,6 @@ kind: pipeline type: docker -name: default +name: build steps: - name: build @@ -9,6 +9,12 @@ steps: - npm install - npm run build +--- +kind: pipeline +type: docker +name: deploy + +steps: - name: deploy image: alpine environment: @@ -22,6 +28,9 @@ steps: - which lftp || ( apk --update add lftp ) - lftp -e "mirror -R ./dist/ sp-codes.de/; bye" -u $FTP_USERNAME,$FTP_PASSWORD $FTP_HOST +depends_on: + - build + trigger: branch: - - master \ No newline at end of file + - master diff --git a/.eleventy.js b/.eleventy.js index c7ce05e..96f2620 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -9,6 +9,7 @@ module.exports = function(eleventyConfig) { "img": "img", "font": "font", "node_modules/@fortawesome/fontawesome-free/webfonts/": "font", + "node_modules/fork-awesome/fonts/": "font", "node_modules/flag-icon-css/flags/4x3/(de|us)*": "flags" }); @@ -24,4 +25,4 @@ module.exports = function(eleventyConfig) { output: "dist" } }; -}; \ No newline at end of file +}; diff --git a/img/matrix.png b/img/matrix.png new file mode 100644 index 0000000..9ca178a Binary files /dev/null and b/img/matrix.png differ diff --git a/package-lock.json b/package-lock.json index a744e5c..eec8cea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3158,6 +3158,11 @@ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", "dev": true }, + "fork-awesome": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/fork-awesome/-/fork-awesome-1.1.7.tgz", + "integrity": "sha512-IHI7XCSXrKfUIWslse8c/PaaVDT1oBaYge+ju40ihL2ooiQeBpTr4wvIXhgTd2NuhntlvX+M5jYHAPTzNlmv0g==" + }, "form-data": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", @@ -6256,42 +6261,130 @@ "dev": true }, "nunjucks": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.0.tgz", - "integrity": "sha512-YS/qEQ6N7qCnUdm6EoYRBfJUdWNT0PpKbbRnogV2XyXbBm2STIP1O6yrdZHgwMVK7fIYUx7i8+yatEixnXSB1w==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.1.tgz", + "integrity": "sha512-LYlVuC1ZNSalQQkLNNPvcgPt2M9FTY9bs39mTCuFXtqh7jWbYzhDlmz2M6onPiXEhdZo+b9anRhc+uBGuJZ2bQ==", "dev": true, "requires": { "a-sync-waterfall": "^1.0.0", "asap": "^2.0.3", - "chokidar": "^2.0.0", - "yargs": "^3.32.0" + "chokidar": "^3.3.0", + "commander": "^3.0.2" }, "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - }, - "window-size": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", - "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=", - "dev": true - }, - "yargs": { - "version": "3.32.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", - "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "dev": true, + "optional": true, "requires": { - "camelcase": "^2.0.1", - "cliui": "^3.0.3", - "decamelize": "^1.1.1", - "os-locale": "^1.4.0", - "string-width": "^1.0.1", - "window-size": "^0.1.4", - "y18n": "^3.2.0" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "dev": true, + "optional": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chokidar": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz", + "integrity": "sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.4.0" + } + }, + "commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true + }, + "readdirp": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", + "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "dev": true, + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" } } } diff --git a/scss/main.scss b/scss/main.scss index e8d88da..af90740 100644 --- a/scss/main.scss +++ b/scss/main.scss @@ -4,7 +4,10 @@ @import "~bootstrap/scss/utilities/spacing"; @import "~bootstrap/scss/utilities/display"; @import "~bootstrap/scss/utilities/text"; +@import "~bootstrap/scss/utilities/float"; + $fa-font-path: "../font"; +@import "~fork-awesome/scss/fork-awesome"; @import "~@fortawesome/fontawesome-free/scss/fontawesome"; @import "~@fortawesome/fontawesome-free/scss/solid"; @import "~@fortawesome/fontawesome-free/scss/brands"; @@ -64,6 +67,10 @@ body { border-bottom: 1px solid #ffffff; } +.border-top { + border-top: 1px solid #ffffff; +} + a { color: #ffffff; @@ -78,10 +85,16 @@ a { text-align: center; } -.row { - margin: 0; +.heading { + font-family: "Minotaur", monospace; + font-size: 3rem; + text-align: center; } +//.row { +// margin: 0; +//} + .flex-grow { flex: 1; } @@ -97,4 +110,43 @@ a { .fa-4x { font-size: 2em; } -} \ No newline at end of file +} + +.service { + background-color: #222; + border: 1px solid #fff; + height: 100%; + + .link { + position: absolute; + left: 0; + top: 0; + bottom: 0; + right: 0; + } + + .inner { + position: relative; + pointer-events: none; + z-index: 1; + padding: 1rem; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + + a { + pointer-events: all; + } + } + + &.flat { + .inner { + flex-direction: row; + + h2 { + margin-left: 0.5rem; + } + } + } +} diff --git a/sites/_data/services.json b/sites/_data/services.json new file mode 100644 index 0000000..5092404 --- /dev/null +++ b/sites/_data/services.json @@ -0,0 +1,60 @@ +[ + { + "id": "searx", + "name": "Searx", + "icon": "fas fa-search", + "url": "https://searx.sp-codes.de", + "summary": { + "de": "Eine privatsphären-respektierende, hackbare Metasuchmaschine.", + "en": "A privacy-respecting, hackable metasearch engine." + } + }, + { + "id": "invidious", + "name": "Invidious", + "icon": "fab fa-youtube", + "url": "https://invidious.sp-codes.de", + "summary": { + "de": "Ein alternatives YouTube-Frontend.", + "en": "An alternative YouTube-Frontend." + } + }, + { + "id": "connectivitycheck", + "name": "Captive Portal Check", + "icon": "fas fa-wifi", + "summary": { + "de": "Eine datenschutzfreundliches Tool, um Anmeldeseiten in WLAN-Netzwerken zu erkennen.", + "en": "A privacy friendly Service to detect captive portals in WIFI networks." + } + }, + { + "id": "matrix", + "name": "Matrix", + "icon": "fas fa-comments", + "url": "https://chat.sp-codes.de", + "summary": { + "de": "Ein offenes Netzwerk für sichere, dezentralisierte Kommunikation.", + "en": "An open network for secure, decentralized communication." + } + }, + { + "id": "git", + "name": "Gitea", + "icon": "fas fa-code", + "url": "https://git.sp-codes.de", + "summary": { + "de": "Eine leichtgewichtige Code-Hosting-Plattform für git.", + "en": "A lightweight code hosting platform for git." + } + }, + { + "id": "firefox-sync", + "name": "Firefox Sync", + "icon": "fab fa-firefox", + "summary": { + "de": "Ein Service um Firefox Einstellungen, Lesezeichen, offene Tabs und vieles mehr über verschiedene Geräte zu synchronisieren.", + "en": "A service to sync Firefox settings, bookmarks, open tabs and much more between multiple devices." + } + } +] diff --git a/sites/_data/site.js b/sites/_data/site.js index a779d9f..dff3c06 100644 --- a/sites/_data/site.js +++ b/sites/_data/site.js @@ -1,7 +1,6 @@ module.exports = { - title: "Webstoemp", - description: - "", + title: "sp-codes", + description: "Samuel Philipp - Software Engineer from Magdeburg", url: "https://sp-codes.de", baseUrl: "/", author: "Samuel Philipp", diff --git a/sites/_includes/layouts/base.njk b/sites/_includes/layouts/base.njk index 9b9e179..accf0ee 100644 --- a/sites/_includes/layouts/base.njk +++ b/sites/_includes/layouts/base.njk @@ -24,7 +24,7 @@ title: sp-codes - + @@ -50,7 +50,7 @@ title: sp-codes {% for language in site.languages %} {% set translatedUrl = "/" + language.code + "/" %} {% for item in collections.all %} - {% if item.data.key == key and item.data.locale == language.code %} + {% if item.data.key == key and item.data.locale == language.code and not item.data.hidden %} {% set translatedUrl = item.url %} {% endif %} {% endfor%} @@ -62,7 +62,9 @@ title: sp-codes {% endfor %}
- {{ content | safe }} +
+ {{ content | safe }} +
- \ No newline at end of file + diff --git a/sites/de/about.html b/sites/de/about.html index dc67b33..d09ea03 100644 --- a/sites/de/about.html +++ b/sites/de/about.html @@ -2,9 +2,10 @@ layout: base.njk key: about title: Über -eleventyNavigation: - key: about - title: Über - order: 1 +#eleventyNavigation: +# key: about +# title: Über +# order: 1 --- -

Über mich

\ No newline at end of file +

Über mich

+Comming soon! diff --git a/sites/de/projects.html b/sites/de/projects.html new file mode 100644 index 0000000..2154ce4 --- /dev/null +++ b/sites/de/projects.html @@ -0,0 +1,11 @@ +--- +layout: base.njk +key: projects +title: Projekte +#eleventyNavigation: +# key: projects +# title: Projekte +# order: 4 +--- +

Projekte

+Comming soon! diff --git a/sites/de/recommendations.html b/sites/de/recommendations.html index d7f1ced..1101887 100644 --- a/sites/de/recommendations.html +++ b/sites/de/recommendations.html @@ -2,9 +2,10 @@ layout: base.njk key: recommendations title: Empfehlungen -eleventyNavigation: - key: recommendations - title: Empfehlungen - order: 2 +#eleventyNavigation: +# key: recommendations +# title: Empfehlungen +# order: 2 ---

Empfehlungen

+Comming soon! diff --git a/sites/de/services.html b/sites/de/services.html index e0f8e18..697f177 100644 --- a/sites/de/services.html +++ b/sites/de/services.html @@ -5,6 +5,28 @@ title: Dienste eleventyNavigation: key: services title: Dienste + icon: server order: 2 --- -

Services

+
+ Status +

Dienste

+

In meiner Freizeit stelle ich verschiedene quelloffene Dienste für die freie Nutzung bereit. Hier finden Sie eine + Übersicht der einzelnen Services und jeweils eine kurze Beschreibung. Alle Services werden in Deutschland + gehostet. Fühlen Sie sich frei davon Gebrauch zu machen.

+
+ {%- for service in services %} +
+
+ +
+ +

{{service.name}}{% if service.url %} {% endif %}

+
{{service.summary[locale]}}
+
+
+
+ {%- endfor %} +
+
diff --git a/sites/de/services/invidous.md b/sites/de/services/invidous.md new file mode 100644 index 0000000..753ddb9 --- /dev/null +++ b/sites/de/services/invidous.md @@ -0,0 +1,8 @@ +--- +layout: base.njk +key: invidious +title: Invidious +--- +# Invidious + +Die Beschreibung zu Invidious folgt in Kürze. diff --git a/sites/de/services/searx.md b/sites/de/services/searx.md new file mode 100644 index 0000000..847c423 --- /dev/null +++ b/sites/de/services/searx.md @@ -0,0 +1,8 @@ +--- +layout: base.njk +key: searx +title: Searx +--- +# Searx + +Die Beschreibung zu Searx folgt in Kürze. diff --git a/sites/en/about.html b/sites/en/about.html deleted file mode 100644 index f624c29..0000000 --- a/sites/en/about.html +++ /dev/null @@ -1,10 +0,0 @@ ---- -layout: base.njk -key: about -title: About -eleventyNavigation: - key: about - title: About - order: 1 ---- -

About me

\ No newline at end of file diff --git a/sites/en/services.html b/sites/en/services.html index 51d1cd7..a0d7181 100644 --- a/sites/en/services.html +++ b/sites/en/services.html @@ -5,6 +5,27 @@ title: Services eleventyNavigation: key: services title: Services + icon: server order: 2 --- -

Services

+
+ Status +

Services

+

In my spare time I provide various open source services for free. Here you can find an overview of the individual + services and a short description for each of them. All services are hosted in Germany. Feel free to use it.

+
+ {%- for service in services %} +
+
+ +
+ +

{{service.name}}{% if service.url %} {% endif %}

+
{{service.summary[locale]}}
+
+
+
+ {%- endfor %} +
+