1
0
Fork 0

Initial commit

master
Lukas Bestle 7 years ago
commit bedb05c13e

17
.gitignore vendored

@ -0,0 +1,17 @@
# System files
# ------------
Icon
.DS_Store
# Temporary files
# ---------------
/public/media/*
!/public/media/index.html
# Dependencies
# ------------
/kirby
/vendor

@ -0,0 +1,2 @@
composer update
killall php-cgi

@ -0,0 +1,12 @@
{
"name": "lukasbestle/lukasbestle.com",
"type": "project",
"homepage": "https://lukasbestle.com",
"require": {
"php": ">=7.1.0",
"getkirby/cms": "^3.0"
},
"config": {
"optimize-autoloader": true
}
}

634
composer.lock generated

@ -0,0 +1,634 @@
{
"_readme": [
"This file locks the dependencies of your project to a known state",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "28dfd8b792fc3f2c44458611fca3148c",
"packages": [
{
"name": "claviska/simpleimage",
"version": "3.3.3",
"source": {
"type": "git",
"url": "https://github.com/claviska/SimpleImage.git",
"reference": "31ba5b8358e1663a2813e2ada7242fa8d97a96dc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/claviska/SimpleImage/zipball/31ba5b8358e1663a2813e2ada7242fa8d97a96dc",
"reference": "31ba5b8358e1663a2813e2ada7242fa8d97a96dc",
"shasum": ""
},
"require": {
"ext-gd": "*",
"league/color-extractor": "0.3.*",
"php": ">=5.6.0"
},
"type": "library",
"autoload": {
"psr-0": {
"claviska": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Cory LaViska",
"role": "Developer",
"homepage": "http://www.abeautifulsite.net/"
}
],
"description": "A PHP class that makes working with images as simple as possible.",
"time": "2017-09-12T09:03:56+00:00"
},
{
"name": "filp/whoops",
"version": "2.3.1",
"source": {
"type": "git",
"url": "https://github.com/filp/whoops.git",
"reference": "bc0fd11bc455cc20ee4b5edabc63ebbf859324c7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/filp/whoops/zipball/bc0fd11bc455cc20ee4b5edabc63ebbf859324c7",
"reference": "bc0fd11bc455cc20ee4b5edabc63ebbf859324c7",
"shasum": ""
},
"require": {
"php": "^5.5.9 || ^7.0",
"psr/log": "^1.0.1"
},
"require-dev": {
"mockery/mockery": "^0.9 || ^1.0",
"phpunit/phpunit": "^4.8.35 || ^5.7",
"symfony/var-dumper": "^2.6 || ^3.0 || ^4.0"
},
"suggest": {
"symfony/var-dumper": "Pretty print complex values better with var-dumper available",
"whoops/soap": "Formats errors as SOAP responses"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.2-dev"
}
},
"autoload": {
"psr-4": {
"Whoops\\": "src/Whoops/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Filipe Dobreira",
"role": "Developer",
"homepage": "https://github.com/filp"
}
],
"description": "php error handling for cool kids",
"homepage": "https://filp.github.io/whoops/",
"keywords": [
"error",
"exception",
"handling",
"library",
"throwable",
"whoops"
],
"time": "2018-10-23T09:00:00+00:00"
},
{
"name": "getkirby/cms",
"version": "3.2.3",
"source": {
"type": "git",
"url": "https://github.com/getkirby/kirby.git",
"reference": "03d6e96aa27f631e5311cb6c2109e1510505cab7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/getkirby/kirby/zipball/03d6e96aa27f631e5311cb6c2109e1510505cab7",
"reference": "03d6e96aa27f631e5311cb6c2109e1510505cab7",
"shasum": ""
},
"require": {
"claviska/simpleimage": "3.3.3",
"ext-ctype": "*",
"ext-mbstring": "*",
"filp/whoops": "2.3.1",
"getkirby/composer-installer": "^1.0",
"michelf/php-smartypants": "1.8.1",
"mustangostang/spyc": "0.6.2",
"php": ">=7.1.0",
"phpmailer/phpmailer": "6.0.7",
"true/punycode": "2.1.1",
"zendframework/zend-escaper": "2.6.0"
},
"type": "kirby-cms",
"autoload": {
"files": [
"config/setup.php"
],
"classmap": [
"dependencies/"
],
"psr-4": {
"Kirby\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"proprietary"
],
"authors": [
{
"name": "Kirby Team",
"email": "support@getkirby.com",
"homepage": "https://getkirby.com"
}
],
"description": "The Kirby 3 core",
"homepage": "https://getkirby.com",
"keywords": [
"cms",
"core",
"kirby"
],
"time": "2019-08-06T08:13:08+00:00"
},
{
"name": "getkirby/composer-installer",
"version": "1.1.4",
"source": {
"type": "git",
"url": "https://github.com/getkirby/composer-installer.git",
"reference": "2d6b8f5601a31caeeea45623e1643fbb437eb94e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/getkirby/composer-installer/zipball/2d6b8f5601a31caeeea45623e1643fbb437eb94e",
"reference": "2d6b8f5601a31caeeea45623e1643fbb437eb94e",
"shasum": ""
},
"require": {
"composer-plugin-api": "^1.0"
},
"require-dev": {
"composer/composer": "^1.8",
"phpunit/phpunit": "^7.0"
},
"type": "composer-plugin",
"extra": {
"class": "Kirby\\ComposerInstaller\\Plugin"
},
"autoload": {
"psr-4": {
"Kirby\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "Kirby's custom Composer installer for the Kirby CMS and for Kirby plugins",
"homepage": "https://getkirby.com",
"time": "2019-02-11T20:27:36+00:00"
},
{
"name": "league/color-extractor",
"version": "0.3.2",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/color-extractor.git",
"reference": "837086ec60f50c84c611c613963e4ad2e2aec806"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/color-extractor/zipball/837086ec60f50c84c611c613963e4ad2e2aec806",
"reference": "837086ec60f50c84c611c613963e4ad2e2aec806",
"shasum": ""
},
"require": {
"ext-gd": "*",
"php": ">=5.4.0"
},
"replace": {
"matthecat/colorextractor": "*"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "~2",
"phpunit/phpunit": "~5"
},
"type": "library",
"autoload": {
"psr-4": {
"": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Mathieu Lechat",
"role": "Developer",
"email": "math.lechat@gmail.com",
"homepage": "http://matthecat.com"
}
],
"description": "Extract colors from an image as a human would do.",
"homepage": "https://github.com/thephpleague/color-extractor",
"keywords": [
"color",
"extract",
"human",
"image",
"palette"
],
"time": "2016-12-15T09:30:02+00:00"
},
{
"name": "michelf/php-smartypants",
"version": "1.8.1",
"source": {
"type": "git",
"url": "https://github.com/michelf/php-smartypants.git",
"reference": "47d17c90a4dfd0ccf1f87e25c65e6c8012415aad"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/michelf/php-smartypants/zipball/47d17c90a4dfd0ccf1f87e25c65e6c8012415aad",
"reference": "47d17c90a4dfd0ccf1f87e25c65e6c8012415aad",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"autoload": {
"psr-0": {
"Michelf": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Michel Fortin",
"role": "Developer",
"email": "michel.fortin@michelf.ca",
"homepage": "https://michelf.ca/"
},
{
"name": "John Gruber",
"homepage": "https://daringfireball.net/"
}
],
"description": "PHP SmartyPants",
"homepage": "https://michelf.ca/projects/php-smartypants/",
"keywords": [
"dashes",
"quotes",
"spaces",
"typographer",
"typography"
],
"time": "2016-12-13T01:01:17+00:00"
},
{
"name": "mustangostang/spyc",
"version": "0.6.2",
"source": {
"type": "git",
"url": "https://github.com/mustangostang/spyc.git",
"reference": "23c35ae854d835f2d7bcc3e3ad743d7e57a8c14d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/mustangostang/spyc/zipball/23c35ae854d835f2d7bcc3e3ad743d7e57a8c14d",
"reference": "23c35ae854d835f2d7bcc3e3ad743d7e57a8c14d",
"shasum": ""
},
"require": {
"php": ">=5.3.1"
},
"require-dev": {
"phpunit/phpunit": "4.3.*@dev"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "0.5.x-dev"
}
},
"autoload": {
"files": [
"Spyc.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "mustangostang",
"email": "vlad.andersen@gmail.com"
}
],
"description": "A simple YAML loader/dumper class for PHP",
"homepage": "https://github.com/mustangostang/spyc/",
"keywords": [
"spyc",
"yaml",
"yml"
],
"time": "2017-02-24T16:06:33+00:00"
},
{
"name": "phpmailer/phpmailer",
"version": "v6.0.7",
"source": {
"type": "git",
"url": "https://github.com/PHPMailer/PHPMailer.git",
"reference": "0c41a36d4508d470e376498c1c0c527aa36a2d59"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/0c41a36d4508d470e376498c1c0c527aa36a2d59",
"reference": "0c41a36d4508d470e376498c1c0c527aa36a2d59",
"shasum": ""
},
"require": {
"ext-ctype": "*",
"ext-filter": "*",
"php": ">=5.5.0"
},
"require-dev": {
"doctrine/annotations": "1.2.*",
"friendsofphp/php-cs-fixer": "^2.2",
"phpdocumentor/phpdocumentor": "2.*",
"phpunit/phpunit": "^4.8 || ^5.7",
"zendframework/zend-eventmanager": "3.0.*",
"zendframework/zend-i18n": "2.7.3",
"zendframework/zend-serializer": "2.7.*"
},
"suggest": {
"ext-mbstring": "Needed to send email in multibyte encoding charset",
"hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
"league/oauth2-google": "Needed for Google XOAUTH2 authentication",
"psr/log": "For optional PSR-3 debug logging",
"stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication",
"symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)"
},
"type": "library",
"autoload": {
"psr-4": {
"PHPMailer\\PHPMailer\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"LGPL-2.1"
],
"authors": [
{
"name": "Jim Jagielski",
"email": "jimjag@gmail.com"
},
{
"name": "Marcus Bointon",
"email": "phpmailer@synchromedia.co.uk"
},
{
"name": "Andy Prevost",
"email": "codeworxtech@users.sourceforge.net"
},
{
"name": "Brent R. Matzelle"
}
],
"description": "PHPMailer is a full-featured email creation and transfer class for PHP",
"time": "2019-02-01T15:04:28+00:00"
},
{
"name": "psr/log",
"version": "1.1.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
"reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
"reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Log\\": "Psr/Log/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for logging libraries",
"homepage": "https://github.com/php-fig/log",
"keywords": [
"log",
"psr",
"psr-3"
],
"time": "2018-11-20T15:27:04+00:00"
},
{
"name": "symfony/polyfill-mbstring",
"version": "v1.12.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b42a2f66e8f1b15ccf25652c3424265923eb4f17",
"reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"suggest": {
"ext-mbstring": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.12-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Mbstring\\": ""
},
"files": [
"bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill for the Mbstring extension",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"mbstring",
"polyfill",
"portable",
"shim"
],
"time": "2019-08-06T08:03:45+00:00"
},
{
"name": "true/punycode",
"version": "v2.1.1",
"source": {
"type": "git",
"url": "https://github.com/true/php-punycode.git",
"reference": "a4d0c11a36dd7f4e7cd7096076cab6d3378a071e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/true/php-punycode/zipball/a4d0c11a36dd7f4e7cd7096076cab6d3378a071e",
"reference": "a4d0c11a36dd7f4e7cd7096076cab6d3378a071e",
"shasum": ""
},
"require": {
"php": ">=5.3.0",
"symfony/polyfill-mbstring": "^1.3"
},
"require-dev": {
"phpunit/phpunit": "~4.7",
"squizlabs/php_codesniffer": "~2.0"
},
"type": "library",
"autoload": {
"psr-4": {
"TrueBV\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Renan Gonçalves",
"email": "renan.saddam@gmail.com"
}
],
"description": "A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)",
"homepage": "https://github.com/true/php-punycode",
"keywords": [
"idna",
"punycode"
],
"time": "2016-11-16T10:37:54+00:00"
},
{
"name": "zendframework/zend-escaper",
"version": "2.6.0",
"source": {
"type": "git",
"url": "https://github.com/zendframework/zend-escaper.git",
"reference": "31d8aafae982f9568287cb4dce987e6aff8fd074"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/zendframework/zend-escaper/zipball/31d8aafae982f9568287cb4dce987e6aff8fd074",
"reference": "31d8aafae982f9568287cb4dce987e6aff8fd074",
"shasum": ""
},
"require": {
"php": "^5.6 || ^7.0"
},
"require-dev": {
"phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2",
"zendframework/zend-coding-standard": "~1.0.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.6.x-dev",
"dev-develop": "2.7.x-dev"
}
},
"autoload": {
"psr-4": {
"Zend\\Escaper\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"description": "Securely and safely escape HTML, HTML attributes, JavaScript, CSS, and URLs",
"keywords": [
"ZendFramework",
"escaper",
"zf"
],
"time": "2018-04-25T15:48:53+00:00"
}
],
"packages-dev": [],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": [],
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
"php": ">=7.1.0"
},
"platform-dev": []
}

@ -0,0 +1,7 @@
Title: oh no! 😕
----
Text: Sorry, something went wrong.
(link: / text: Continue on the homepage?)

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 22 KiB

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 121 42" width="121" height="42"><path d="M18 0l18 10.498v21.004L18 42 0 31.502V10.498L18 0zM2 11.693v18.614l16 9.332 16-9.332V11.693L18 2.36 2 11.693z"/><path d="M26 21l-5 2.59V24h5v4H10v-4h5v-.437L10 21v-5l8 4.297L26 16m36.774 7.603l-1.97 2.162v5.255H56V11.095h4.803v8.785l1.67-2.531 4.297-6.254h5.94l-6.734 8.813L72.71 31.02h-5.693l-4.242-7.417zM78.58 31.02h-4.626V16.213h4.626V31.02zm11.796-10.633l-1.519-.11c-1.45 0-2.381.456-2.792 1.369v9.374h-4.611V16.213h4.324l.15 1.902c.776-1.45 1.857-2.176 3.244-2.176.492 0 .921.055 1.286.164l-.082 4.284zm15.41 3.352c0 2.427-.503 4.293-1.506 5.598-1.004 1.304-2.418 1.956-4.242 1.956-1.506 0-2.72-.597-3.64-1.792l-.192 1.519h-4.133V10h4.612v7.403c.857-.976 1.966-1.464 3.325-1.464 1.843 0 3.266.662 4.27 1.984 1.003 1.323 1.505 3.184 1.505 5.584v.232zm-4.626-.287c0-1.423-.19-2.438-.568-3.045-.379-.606-.96-.91-1.745-.91-1.04 0-1.76.397-2.162 1.19v5.885c.392.785 1.122 1.177 2.19 1.177 1.085 0 1.774-.529 2.066-1.587.146-.52.219-1.424.219-2.71zm12.425 1.109l2.464-8.348h4.94l-6.035 17.284-.26.63c-.858 1.915-2.372 2.873-4.543 2.873a7.201 7.201 0 0 1-1.903-.274v-3.298h.602c.648 0 1.143-.093 1.485-.28.342-.187.596-.523.76-1.006l.37-.985-5.146-14.944h4.926l2.34 8.348zM76.25 15a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z"/></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1,22 @@
Title: what I do
----
Featured: true
----
Links:
-
title: codesignd code & design as a service
desc: freelance work
subtitle:
image: codesignd.svg
link: https://codesignd.com
-
title: Kirby CMS
desc: development & QA
subtitle:
image: kirby.svg
link: https://getkirby.com

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 28 KiB

@ -0,0 +1,16 @@
Title: what I did
----
Featured: false
----
Links:
-
title: Hochschule für öffentliche Verwaltung und Finanzen Ludwigsburg University of Applied Sciences
desc: interactive bachelors thesis
subtitle: 2019
image: hvf.svg
link: https://bachelor.lukasbestle.com

@ -0,0 +1,33 @@
Title: legal information
----
Text:
### Author
**Lukas Bestle**
Seidenstr. 7
72764 Reutlingen
USt-IdNr.: DE 300 983 590
### Contact
(qdated:)
This email address is valid for one week, after which it expires. Emails to this address are received by me personally and are responded to as fast as possible. Together with my reply, you will get my permanently valid email address.
This process protects the email address against automated spam. Thank you for your understanding.
### Privacy
Visiting this website temporarily stores the following information:
- date and time of visit
- truncated IP address
- visited URL
- referrer (URL of the site you came from)
- version information of browser and operating system
The data is stored on the author's server only. No data is circulated or combined with other data. All data is automatically deleted after four weeks.

@ -0,0 +1 @@
Title: Lukas Bestle

@ -0,0 +1,62 @@
# Kirby .htaccess
# rewrite rules
<IfModule mod_rewrite.c>
# enable awesome urls. i.e.:
# http://yourdomain.com/about-us/team
RewriteEngine on
# make sure to set the RewriteBase correctly
# if you are running the site in a subfolder.
# Otherwise links or the entire site will break.
#
# If your homepage is http://yourdomain.com/mysite
# Set the RewriteBase to:
#
# RewriteBase /mysite
# In some environments it's necessary to
# set the RewriteBase to:
#
RewriteBase /
# Rewrite OpenID clients to YADIS file
RewriteCond %{HTTP_ACCEPT} ^application/xrds\+xml [NC]
RewriteRule ^$ /yadis.xml [PT]
# block files and folders beginning with a dot, such as .git
# except for the .well-known folder, which is used for Let's Encrypt and security.txt
RewriteRule (^|/)\.(?!well-known\/) index.php [L]
# block text files in the content folder from being accessed directly
RewriteRule ^content/(.*)\.(txt|md|mdown)$ index.php [L]
# block all files in the site folder from being accessed directly
# except for requests to plugin assets files
RewriteRule ^site/(.*) index.php [L]
# Enable authentication header
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
# block direct access to kirby and the panel sources
RewriteRule ^kirby/(.*) index.php [L]
# make site links work
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php [L]
</IfModule>
# compress text file responses
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/json
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>

Binary file not shown.

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 765 397"><path fill="#043788" d="M0 160v-22.2h36.8V22.2H0V0h65.8v137.8h36.6V160H0zm166.2 2c-9.6 0-17.467-3.367-23.6-10.1-6.133-6.733-9.2-15.9-9.2-27.5V40h29v77.4c0 6.933 1.3 12.167 3.9 15.7 2.6 3.533 6.5 5.3 11.7 5.3 4.667 0 9.267-1.567 13.8-4.7 4.533-3.133 8.867-7.633 13-13.5V40h29v120h-29v-19.6h-5.6c-2.667 6.933-7.133 12.267-13.4 16-6.267 3.733-12.8 5.6-19.6 5.6zm133.6-54.2V160h-29V0h29v87h7.8l31.2-47H370l-38.8 54.8 38.2 65.2H338l-30.4-52.2h-7.8zm136.2 34c5.067 0 9.733-.9 14-2.7 4.267-1.8 8.067-4.633 11.4-8.5v-20h-26.2c-4.533 0-8.067 1.1-10.6 3.3-2.533 2.2-3.8 6.367-3.8 12.5 0 4.933 1.167 8.733 3.5 11.4s6.233 4 11.7 4zm-6.6 20.2c-10.267 0-18.767-3-25.5-9-6.733-6-10.1-14.533-10.1-25.6 0-10.8 3.433-19.167 10.3-25.1 6.867-5.933 15.833-8.9 26.9-8.9h30.4V77c0-5.733-1.6-10.033-4.8-12.9-3.2-2.867-8-4.3-14.4-4.3-6.533 0-11.367 1.3-14.5 3.9-3.133 2.6-5.567 7.7-7.3 15.3l-24-5c2.533-12.667 7.433-21.833 14.7-27.5 7.267-5.667 17.833-8.5 31.7-8.5 14.667 0 26.1 3.067 34.3 9.2 8.2 6.133 12.3 15.6 12.3 28.4v50.2c0 6.133 1.6 9.967 4.8 11.5 3.2 1.533 7.867 1.767 14 .7v21.8c-9.333 2-17.167 1.667-23.5-1-6.333-2.667-10.367-8.4-12.1-17.2H468c-3.733 5.733-9 10.567-15.8 14.5-6.8 3.933-14.4 5.9-22.8 5.9zm151.6-.4c-9.6 0-19-1.367-28.2-4.1-9.2-2.733-17.2-6.567-24-11.5l8.4-19.2c6.533 4.533 13.733 8.033 21.6 10.5 7.867 2.467 15.4 3.7 22.6 3.7 6.267 0 11.333-1.033 15.2-3.1 3.867-2.067 5.8-5.633 5.8-10.7 0-4.933-1.8-8.5-5.4-10.7-3.6-2.2-10.333-4.167-20.2-5.9-14.933-2.533-26.033-6.4-33.3-11.6-7.267-5.2-10.9-13.2-10.9-24 0-11.6 4.267-20.667 12.8-27.2 8.533-6.533 19.533-9.8 33-9.8 8.4 0 16.733 1.333 25 4s15.667 6.267 22.2 10.8l-7.2 18.6c-6.133-3.867-12.533-6.967-19.2-9.3-6.667-2.333-13.2-3.5-19.6-3.5-5.333 0-9.7 1.033-13.1 3.1-3.4 2.067-5.1 5.5-5.1 10.3 0 4.933 2.033 8.433 6.1 10.5s11.633 4.167 22.7 6.3c14.267 2.533 24.7 6.567 31.3 12.1 6.6 5.533 9.9 13.367 9.9 23.5 0 11.867-4.633 21.033-13.9 27.5-9.267 6.467-21.433 9.7-36.5 9.7zm-531.2 235c-8.533 0-17.1-1.2-25.7-3.6-8.6-2.4-16.3-5.8-23.1-10.2V235h29v59.6h5.6c2.8-6.933 7-12.267 12.6-16 5.6-3.733 12.2-5.6 19.8-5.6 10.533 0 18.733 3.767 24.6 11.3 5.867 7.533 8.8 17.7 8.8 30.5v37.8c0 14.133-4.433 25-13.3 32.6-8.867 7.6-21.633 11.4-38.3 11.4zm1.2-21.8c7.2 0 12.567-1.767 16.1-5.3 3.533-3.533 5.3-9.3 5.3-17.3v-33.8c0-7.467-1.433-12.967-4.3-16.5-2.867-3.533-7.033-5.3-12.5-5.3-4.533 0-8.9 1.233-13.1 3.7-4.2 2.467-8.367 6.233-12.5 11.3V369c3.333 1.867 6.633 3.3 9.9 4.3 3.267 1 6.967 1.5 11.1 1.5zm184-7c-3.867 10.667-9.5 18.2-16.9 22.6-7.4 4.4-18.633 6.6-33.7 6.6-15.2 0-27.5-3.767-36.9-11.3-9.4-7.533-14.1-18.567-14.1-33.1v-35c0-14.4 4.567-25.433 13.7-33.1 9.133-7.667 21.367-11.5 36.7-11.5 15.333 0 27.5 3.9 36.5 11.7 9 7.8 13.5 19.167 13.5 34.1v22h-71.4v13c0 7.733 1.8 13.467 5.4 17.2 3.6 3.733 9.333 5.6 17.2 5.6 6.8 0 12.133-1.167 16-3.5 3.867-2.333 6.933-6.433 9.2-12.3l24.8 7zm-72.6-52v7.8h42.4v-6.2c0-8.8-1.633-15.067-4.9-18.8-3.267-3.733-8.7-5.6-16.3-5.6-7.6 0-13.033 1.8-16.3 5.4-3.267 3.6-4.9 9.4-4.9 17.4zm153.8 80.8c-9.6 0-19-1.367-28.2-4.1-9.2-2.733-17.2-6.567-24-11.5l8.4-19.2c6.533 4.533 13.733 8.033 21.6 10.5 7.867 2.467 15.4 3.7 22.6 3.7 6.267 0 11.333-1.033 15.2-3.1 3.867-2.067 5.8-5.633 5.8-10.7 0-4.933-1.8-8.5-5.4-10.7-3.6-2.2-10.333-4.167-20.2-5.9-14.933-2.533-26.033-6.4-33.3-11.6-7.267-5.2-10.9-13.2-10.9-24 0-11.6 4.267-20.667 12.8-27.2 8.533-6.533 19.533-9.8 33-9.8 8.4 0 16.733 1.333 25 4s15.667 6.267 22.2 10.8l-7.2 18.6c-6.133-3.867-12.533-6.967-19.2-9.3-6.667-2.333-13.2-3.5-19.6-3.5-5.333 0-9.7 1.033-13.1 3.1-3.4 2.067-5.1 5.5-5.1 10.3 0 4.933 2.033 8.433 6.1 10.5s11.633 4.167 22.7 6.3c14.267 2.533 24.7 6.567 31.3 12.1 6.6 5.533 9.9 13.367 9.9 23.5 0 11.867-4.633 21.033-13.9 27.5-9.267 6.467-21.433 9.7-36.5 9.7zm152 .4c-14 0-24.867-3.533-32.6-10.6-7.733-7.067-11.6-17.2-11.6-30.4v-58.8h-28V275h28v-40h29v40h43.6v22.2H453v55.6c0 7.2 1.6 12.567 4.8 16.1 3.2 3.533 7.867 5.3 14 5.3 3.867 0 7.733-.333 11.6-1a62.987 62.987 0 0 0 11.2-3l3.6 22c-3.2 1.333-7.467 2.467-12.8 3.4-5.333.933-11.067 1.4-17.2 1.4zm61.4-2v-22.2h36.8V257.2h-36.8V235h65.8v137.8H632V395H529.6zm235-27.2c-3.867 10.667-9.5 18.2-16.9 22.6-7.4 4.4-18.633 6.6-33.7 6.6-15.2 0-27.5-3.767-36.9-11.3-9.4-7.533-14.1-18.567-14.1-33.1v-35c0-14.4 4.567-25.433 13.7-33.1 9.133-7.667 21.367-11.5 36.7-11.5 15.333 0 27.5 3.9 36.5 11.7 9 7.8 13.5 19.167 13.5 34.1v22H692v13c0 7.733 1.8 13.467 5.4 17.2 3.6 3.733 9.333 5.6 17.2 5.6 6.8 0 12.133-1.167 16-3.5 3.867-2.333 6.933-6.433 9.2-12.3l24.8 7zm-72.6-52v7.8h42.4v-6.2c0-8.8-1.633-15.067-4.9-18.8-3.267-3.733-8.7-5.6-16.3-5.6-7.6 0-13.033 1.8-16.3 5.4-3.267 3.6-4.9 9.4-4.9 17.4z"/></svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

@ -0,0 +1,279 @@
/* Reset */
html {
box-sizing: border-box;
}
*, *::before, *::after {
margin: 0;
padding: 0;
box-sizing: inherit;
text-decoration: none;
list-style: none;
border: none;
}
/* General Typography */
:root {
font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
font-size: 18px;
line-height: 1.4;
}
h2 {
font-size: 1.6rem;
font-weight: 500;
text-align: center;
margin-top: 3rem;
margin-bottom: 1.5rem;
}
h2:before, h2:after {
content: "";
height: 2px;
width: 10%;
max-width: 2em;
background: #ddd;
display: inline-block;
vertical-align: middle;
}
h2:before {
margin-right: 0.5rem;
}
h2:after {
margin-left: 0.5rem;
}
a {
color: #043788 !important;
}
article h3 {
font-size: 1.3rem;
margin-bottom: 0.8rem;
}
article p, article ul {
margin-bottom: 1rem;
}
article ul {
margin-left: 1.2rem;
}
article li {
list-style: square;
}
.article--error {
text-align: center;
}
/* Container styling */
html {
height: 100%;
}
body {
max-width: 45rem;
margin: 0 auto;
padding: 4rem 4rem 2rem;
display: flex;
min-height: 100vh;
flex-direction: column;
}
main {
flex: 1 0 0; /* Fill all available vertical space */
}
/* Header */
.header {
display: flex;
justify-content: space-between;
}
.header__logo {
width: 13rem;
max-width: 100%;
margin-right: 1rem;
}
.header__logo img {
display: block;
filter: drop-shadow(0 0 3px #bbb);
}
.header__aside {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: flex-end;
}
.header__aside span {
font-weight: 600;
font-size: 1.5rem;
text-align: right;
margin-bottom: 1rem;
}
.header__links {
display: flex;
}
.header__links a {
display: block;
width: 2rem;
height: 2rem;
}
.header__links a:not(:first-child) {
margin-left: 0.8rem;
}
/* Main content */
.linklist {
display: -ms-grid;
display: grid;
-ms-grid-columns: 1fr 3rem 1fr 3rem 1fr;
grid-template-columns: 1fr 1fr 1fr;
grid-auto-flow: row;
justify-items: center;
grid-gap: 3rem;
}
.linklist--featured {
-ms-grid-columns: 1fr 1fr;
grid-template-columns: 1fr 1fr;
}
.linklist li {
text-align: center;
font-weight: 500;
font-size: 1.1rem;
}
.linklist small {
display: block;
font-weight: normal;
font-size: 0.9rem;
margin-top: 0.2rem;
}
.linklist img {
width: 100%;
height: 4rem;
display: block;
margin: 0 auto;
margin-bottom: 0.8rem;
transition: transform ease 0.1s;
}
.linklist a:hover img, .linklist a:focus img {
transform: scale(1.05);
}
/* Footer */
footer {
margin-top: 3rem;
text-align: center;
font-size: 0.9rem;
}
/* Media queries */
@media (max-width: 600px) {
body {
padding: 2rem 2rem 1rem;
}
}
@media (max-width: 500px) {
.header {
flex-direction: column;
}
.header__aside {
margin-top: 1.5rem;
flex-direction: row;
align-items: flex-start;
}
.header__aside span {
text-align: left;
margin-bottom: 0;
margin-right: 2rem;
}
}
@media (max-width: 420px) {
.linklist {
-ms-grid-columns: 1fr;
grid-template-columns: 1fr;
grid-gap: 2rem;
}
}
@media (max-width: 380px) {
.header__aside {
flex-direction: column;
}
.header__aside span {
margin-right: 0;
margin-bottom: 0.5rem;
}
}
@media (max-width: 350px) {
h2:before, h2:after {
content: initial;
}
}
/* Grid auto-placement polyfill for IE11 */
.linklist li:nth-child(2) {
-ms-grid-row: 1;
-ms-grid-column: 2;
}
.linklist li:nth-child(3) {
-ms-grid-row: 1;
-ms-grid-column: 3;
}
.linklist li:nth-child(4) {
-ms-grid-row: 2;
-ms-grid-column: 1;
}
.linklist li:nth-child(5) {
-ms-grid-row: 2;
-ms-grid-column: 2;
}
.linklist li:nth-child(6) {
-ms-grid-row: 2;
-ms-grid-column: 3;
}
.linklist--featured li:nth-child(2) {
-ms-grid-row: 1;
-ms-grid-column: 2;
}
.linklist--featured li:nth-child(3) {
-ms-grid-row: 2;
-ms-grid-column: 1;
}
.linklist--featured li:nth-child(4) {
-ms-grid-row: 2;
-ms-grid-column: 2;
}
.linklist--featured li:nth-child(5) {
-ms-grid-row: 3;
-ms-grid-column: 1;
}
.linklist--featured li:nth-child(6) {
-ms-grid-row: 3;
-ms-grid-column: 2;
}

@ -0,0 +1,15 @@
<?php
$index = dirname(__DIR__);
require $index . '/kirby/bootstrap.php';
$kirby = new Kirby([
'roots' => [
'index' => $index,
'assets' => __DIR__ . '/assets',
'media' => __DIR__ . '/media'
]
]);
echo $kirby->render();

@ -0,0 +1,298 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
0rkW0xLAQiVeN+M2gyMJgUhr/d8BWK+ls28=
=qAnb
-----END PGP PUBLIC KEY BLOCK-----

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS xmlns="xri://$xrd*($v*2.0)" xmlns:xrds="xri://$xrds" xmlns:simple="http://xrds-simple.net/core/1.0">
<XRD version="2.0">
<Service priority="10">
<Type>http://specs.openid.net/auth/2.0/signon</Type>
<URI>https://id.lukasbestle.com/</URI>
<LocalID>http://lukasbestle.com/</LocalID>
</Service>
<Service priority="20" xmlns:openid="http://openid.net/xmlns/1.0">
<Type>http://openid.net/signon/1.0</Type>
<URI>https://id.lukasbestle.com/</URI>
<openid:Delegate>http://lukasbestle.com/</openid:Delegate>
</Service>
</XRD>
</xrds:XRDS>

@ -0,0 +1,5 @@
<?php
return [
];

@ -0,0 +1,28 @@
<?php
use Kirby\Http\Url;
use Kirby\Toolkit\F;
Kirby::plugin('lukasbestle/qdated', [
'tags' => [
'qdated' => [
'html' => function($tag) {
$qdated = qdated();
return '<a href="mailto:' . $qdated . '">' . $qdated . '</a>';
}
]
]
]);
/**
* Returns the current qdated address
* If qdated is not available, returns null
*
* @return string
*/
function qdated() {
$path = $_SERVER['HOME'] . DS . '.qdated-current';
if(!is_file($path)) return null;
return 'dated-' . trim(F::read($path)) . '@' . Url::host();
}

@ -0,0 +1,7 @@
<?php if(!$page->is('legal')): ?>
<footer>
<a href="<?= url('legal') ?>">legal information</a>
</footer>
<?php endif ?>
</body>
</html>

@ -0,0 +1,36 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="author" content="<?= $site->title() ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title><?= $site->title() ?><?php if(!$page->is('home')): ?> ~ <?= $page->title() ?><?php endif ?></title>
<?php if($page->is('home')): ?>
<link rel="openid.server" href="https://id.lukasbestle.com/">
<link rel="openid2.provider" href="https://id.lukasbestle.com/">
<?php endif ?>
<?= css('assets/styles.css') ?>
</head>
<body>
<header class="header">
<h1 class="header__logo">
<?php if($page->is('home')): ?>
<img src="<?= url('assets/logo.svg') ?>" alt="lukas bestle">
<?php else: ?>
<a href="<?= url() ?>"><img src="<?= url('assets/logo.svg') ?>" alt="lukas bestle"></a>
<?php endif ?>
</h1>
<aside class="header__aside">
<span>code designer</span>
<div class="header__links">
<a href="mailto:<?= qdated() ?>" title="Email" rel="me"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="#043788" d="M256 0C114.615 0 0 114.615 0 256s114.615 256 256 256 256-114.615 256-256S397.385 0 256 0zM128 128h256c4.569 0 9.002.981 13.072 2.831L256 295.415 114.928 130.83A31.548 31.548 0 0 1 128 128zM96 352V160c0-.67.028-1.336.07-2l93.832 109.471-92.799 92.799A31.634 31.634 0 0 1 96 352zm288 32H128c-2.827 0-5.601-.381-8.27-1.104l91.059-91.059L256 344.586l45.212-52.747 91.058 91.06A31.729 31.729 0 0 1 384 384zm32-32c0 2.827-.381 5.6-1.103 8.27l-92.8-92.799L415.93 158c.042.664.07 1.33.07 2v192z"/></svg></a>
<a href="https://github.com/lukasbestle" title="GitHub" rel="me"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="#043788" d="M256.004 6.321C114.635 6.321 0 120.93 0 262.32c0 113.107 73.352 209.066 175.068 242.918 12.793 2.369 17.496-5.555 17.496-12.316 0-6.102-.24-26.271-.348-47.662-71.224 15.488-86.252-30.205-86.252-30.205-11.641-29.588-28.424-37.458-28.424-37.458-23.226-15.889 1.755-15.562 1.755-15.562 25.7 1.805 39.238 26.383 39.238 26.383 22.836 39.135 59.888 27.82 74.502 21.279 2.294-16.543 8.926-27.84 16.253-34.232C152.423 368.994 92.65 347.04 92.65 248.949c0-27.949 10.002-50.787 26.38-68.714-2.658-6.45-11.427-32.486 2.476-67.75 0 0 21.503-6.876 70.42 26.245 20.418-5.674 42.318-8.518 64.077-8.617 21.751.099 43.668 2.943 64.128 8.617 48.867-33.122 70.328-26.245 70.328-26.245 13.936 35.264 5.175 61.3 2.518 67.75 16.41 17.928 26.347 40.766 26.347 68.714 0 98.327-59.889 119.975-116.895 126.312 9.182 7.945 17.362 23.523 17.362 47.406 0 34.254-.298 61.822-.298 70.254 0 6.814 4.611 14.797 17.586 12.283C438.74 471.316 512 375.391 512 262.32 512 120.93 397.383 6.321 256.004 6.321z"/></svg></a>
<a href="https://twitter.com/lukasbestle" title="Twitter" rel="me"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="#043788" d="M512 113.2c-18.8 8.4-39.1 14-60.3 16.5 21.7-13 38.3-33.6 46.2-58.1-20.3 12-42.8 20.8-66.7 25.5C412 76.7 384.7 64 354.5 64c-58 0-105 47-105 105 0 8.2.9 16.2 2.7 23.9-87.3-4.4-164.7-46.2-216.5-109.8-9 15.5-14.2 33.6-14.2 52.8 0 36.4 18.5 68.6 46.7 87.4-17.2-.5-33.4-5.3-47.6-13.1v1.3c0 50.9 36.2 93.4 84.3 103-8.8 2.4-18.1 3.7-27.7 3.7-6.8 0-13.3-.7-19.8-1.9 13.4 41.7 52.2 72.1 98.1 73-36 28.2-81.2 45-130.5 45-8.5 0-16.8-.5-25.1-1.5C46.5 462.7 101.7 480 161 480c193.2 0 298.9-160.1 298.9-298.9 0-4.6-.1-9.1-.3-13.6 20.5-14.7 38.3-33.2 52.4-54.3z"/></svg></a>
</div>
</aside>
</header>

@ -0,0 +1,10 @@
<?php snippet('header') ?>
<main>
<article>
<h2><?= $page->title() ?></h2>
<?= $page->text()->kirbytext() ?>
</article>
</main>
<?php snippet('footer') ?>

@ -0,0 +1,10 @@
<?php snippet('header') ?>
<main>
<article class="article--error">
<h2><?= $page->title() ?></h2>
<?= $page->text()->kirbytext() ?>
</article>
</main>
<?php snippet('footer') ?>

@ -0,0 +1,23 @@
<?php snippet('header') ?>
<main>
<?php foreach($page->children() as $list): ?>
<h2><?= $list->title() ?></h2>
<ul class="linklist<?php if($list->featured()->bool()): ?> linklist--featured<?php endif ?>">
<?php foreach($list->links()->toStructure() as $link): ?>
<li>
<a href="<?= $link->link() ?>">
<img src="<?= $link->image()->toFile()->url() ?>" alt="<?= $link->title()->html() ?>">
</a>
<?= $link->desc()->html() ?>
<?php if($link->subtitle()->isNotEmpty()): ?>
<small><?= $link->subtitle() ?></small>
<?php endif ?>
</li>
<?php endforeach ?>
</ul>
<?php endforeach ?>
</main>
<?php snippet('footer') ?>

@ -0,0 +1,3 @@
<?php
go($page->parent());
Loading…
Cancel
Save