Initial public commit
commit
bbc99c6967
@ -0,0 +1,2 @@
|
||||
.DS_Store
|
||||
/node_modules
|
@ -0,0 +1,18 @@
|
||||
[submodule "kirby"]
|
||||
path = kirby
|
||||
url = https://github.com/getkirby/kirby.git
|
||||
[submodule "site/patterns"]
|
||||
path = site/patterns
|
||||
url = https://git.codesignd.com/sites/patterns.git
|
||||
[submodule "site/plugins/cachebuster"]
|
||||
path = site/plugins/cachebuster
|
||||
url = https://github.com/getkirby-plugins/cachebuster-plugin.git
|
||||
[submodule "site/plugins/baromator"]
|
||||
path = site/plugins/baromator
|
||||
url = cdd@git.codesignd.com:corporate-identity/baromator.git
|
||||
[submodule "site/plugins/patterns"]
|
||||
path = site/plugins/patterns
|
||||
url = https://github.com/getkirby-plugins/patterns-plugin.git
|
||||
[submodule "site/plugins/uniform"]
|
||||
path = site/plugins/uniform
|
||||
url = https://github.com/mzur/kirby-uniform.git
|
@ -0,0 +1,95 @@
|
||||
# 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 /
|
||||
|
||||
# enforce HTTPS
|
||||
RewriteCond %{ENV:HTTPS} !=on
|
||||
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
|
||||
|
||||
# rewrite /favicon.ico
|
||||
RewriteRule ^favicon.ico$ assets/img/favicon.ico [L]
|
||||
|
||||
# cache busting
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteRule ^(assets/.+)\.(\d+)\.(\w+)$ $1.$3 [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
|
||||
RewriteRule ^site/(.*) index.php [L]
|
||||
|
||||
# block all files in the kirby folder from being accessed directly
|
||||
RewriteRule ^kirby/(.*) index.php [L]
|
||||
|
||||
# make panel links work
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteRule ^panel/(.*) panel/index.php [L]
|
||||
|
||||
# make site links work
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteRule ^(.*) index.php [L]
|
||||
</IfModule>
|
||||
|
||||
# Mime types
|
||||
<IfModule mod_mime.c>
|
||||
AddType text/css css
|
||||
AddType application/javascript js
|
||||
|
||||
AddType image/svg+xml svg
|
||||
AddType image/jpeg jpg jpeg
|
||||
AddType image/png png
|
||||
AddType image/x-icon ico
|
||||
|
||||
AddType application/vnd.ms-fontobject eot
|
||||
AddType application/font-woff woff
|
||||
AddType font/woff2 woff2
|
||||
|
||||
AddType application/pgp-keys asc
|
||||
</IfModule>
|
||||
|
||||
# Compression
|
||||
<IfModule mod_deflate.c>
|
||||
AddOutputFilterByType DEFLATE application/atom+xml \
|
||||
application/javascript \
|
||||
application/json \
|
||||
application/rss+xml \
|
||||
application/xhtml+xml \
|
||||
application/xml \
|
||||
image/svg+xml \
|
||||
image/x-icon \
|
||||
text/cache-manifest \
|
||||
text/css \
|
||||
text/html \
|
||||
text/plain
|
||||
</IfModule>
|
||||
|
||||
# Caching
|
||||
<IfModule mod_expires.c>
|
||||
ExpiresActive On
|
||||
|
||||
ExpiresByType text/css "modification plus 1 year"
|
||||
ExpiresByType application/javascript "modification plus 1 year"
|
||||
|
||||
ExpiresByType image/svg+xml "modification plus 1 year"
|
||||
ExpiresByType image/jpeg "modification plus 1 year"
|
||||
ExpiresByType image/png "modification plus 1 year"
|
||||
ExpiresByType image/x-icon "modification plus 1 year"
|
||||
|
||||
ExpiresByType application/vnd.ms-fontobject "modification plus 1 year"
|
||||
ExpiresByType application/font-woff "modification plus 1 year"
|
||||
ExpiresByType font/woff2 "modification plus 1 year"
|
||||
</IfModule>
|
@ -0,0 +1,2 @@
|
||||
npm install
|
||||
node_modules/.bin/gulp prod
|
@ -0,0 +1,2 @@
|
||||
*
|
||||
!.gitignore
|
@ -0,0 +1,2 @@
|
||||
*
|
||||
!.gitignore
|
@ -0,0 +1,2 @@
|
||||
*
|
||||
!.gitignore
|
@ -0,0 +1,2 @@
|
||||
*
|
||||
!.gitignore
|
@ -0,0 +1,2 @@
|
||||
*
|
||||
!.gitignore
|
@ -0,0 +1,4 @@
|
||||
# Note about the assets directory
|
||||
|
||||
The `assets` directory only contains empty subdirectories.
|
||||
This is because the site uses [Kirby patterns](https://github.com/getkirby-plugins/patterns-plugin). The files in this directory are generated automatically by gulp.
|
@ -0,0 +1,14 @@
|
||||
Title: Startseite
|
||||
|
||||
----
|
||||
|
||||
Description:
|
||||
|
||||
----
|
||||
|
||||
Text:
|
||||
|
||||
# Willkommen bei codesignd
|
||||
|
||||
Wo sich **Code** und **Design** begegnen.
|
||||
Auch bei deinen Websites und Webprojekten.
|
@ -0,0 +1,14 @@
|
||||
Title: Home
|
||||
|
||||
----
|
||||
|
||||
Description:
|
||||
|
||||
----
|
||||
|
||||
Text:
|
||||
|
||||
# Welcome at codesignd
|
||||
|
||||
Where **code** and **design** meet.
|
||||
Even at your websites and web projects.
|
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 5.1 KiB |
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 5.7 KiB |
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 6.7 KiB |
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 5.0 KiB |
@ -0,0 +1 @@
|
||||
<svg width="700" height="930" viewBox="0 0 700 930" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><g transform="rotate(30 -970.713 878.102)"><path d="M125.5 227.565L91.038 267.22a136.931 136.931 0 0 1-26.351-12.78l9.544-51.543a90.405 90.405 0 0 1-14.304-17.891l-52.412-2.177A136.675 136.675 0 0 1 .94 154.3l46.33-24.697a89.366 89.366 0 0 1 5.09-22.337L21.05 64.532a138.1 138.1 0 0 1 17.922-22.736L87.851 62.85a89.792 89.792 0 0 1 20.666-9.952l14.147-51.86c4.86-.52 9.794-.786 14.79-.786 4.653 0 9.252.231 13.787.682l14.175 51.964a89.792 89.792 0 0 1 20.666 9.952l49.565-21.35a138.117 138.117 0 0 1 17.76 22.318l-31.833 43.447a89.366 89.366 0 0 1 5.089 22.337l47.246 25.186a136.663 136.663 0 0 1-6.5 28l-53.402 2.218a90.405 90.405 0 0 1-14.304 17.891l9.645 52.085a136.896 136.896 0 0 1-26.222 12.503l-34.694-39.92a91.114 91.114 0 0 1-11.465.722c-3.885 0-7.711-.246-11.466-.722zm84.53-89.261c0-40.294-32.711-72.96-73.063-72.96-40.352 0-73.064 32.666-73.064 72.96s32.712 72.959 73.064 72.959c40.352 0 73.063-32.665 73.063-72.96z" fill="#F4B971"/><path stroke="#0BB888" stroke-width="14.613" d="M136.967 99.392l33.746 19.456v38.912l-33.746 19.455-33.747-19.455v-38.912z"/><ellipse stroke="#ED8F1B" stroke-width="30.2" cx="136.967" cy="138.304" rx="80.857" ry="80.741"/></g><g transform="rotate(-22 1292.504 16.483)"><path d="M125.5 227.565L91.038 267.22a136.931 136.931 0 0 1-26.351-12.78l9.544-51.543a90.405 90.405 0 0 1-14.304-17.891l-52.412-2.177A136.675 136.675 0 0 1 .94 154.3l46.33-24.697a89.366 89.366 0 0 1 5.09-22.337L21.05 64.532a138.1 138.1 0 0 1 17.922-22.736L87.851 62.85a89.792 89.792 0 0 1 20.666-9.952l14.147-51.86c4.86-.52 9.794-.786 14.79-.786 4.653 0 9.252.231 13.787.682l14.175 51.964a89.792 89.792 0 0 1 20.666 9.952l49.565-21.35a138.117 138.117 0 0 1 17.76 22.318l-31.833 43.447a89.366 89.366 0 0 1 5.089 22.337l47.246 25.186a136.663 136.663 0 0 1-6.5 28l-53.402 2.218a90.405 90.405 0 0 1-14.304 17.891l9.645 52.085a136.896 136.896 0 0 1-26.222 12.503l-34.694-39.92a91.114 91.114 0 0 1-11.465.722c-3.885 0-7.711-.246-11.466-.722zm84.53-89.261c0-40.294-32.711-72.96-73.063-72.96-40.352 0-73.064 32.666-73.064 72.96s32.712 72.959 73.064 72.959c40.352 0 73.063-32.665 73.063-72.96z" fill="#F4B971"/><path stroke="#0BB888" stroke-width="14.613" d="M136.967 99.392l33.746 19.456v38.912l-33.746 19.455-33.747-19.455v-38.912z"/><ellipse stroke="#ED8F1B" stroke-width="30.2" cx="136.967" cy="138.304" rx="80.857" ry="80.741"/></g><g transform="translate(195.129)"><path d="M237.64 426.779l-33.416 72.936a251.983 251.983 0 0 1-39.44-10.542l7.527-79.863a177.017 177.017 0 0 1-21.414-12.388l-65.364 46.426a255.39 255.39 0 0 1-28.881-28.88l46.426-65.365a177.017 177.017 0 0 1-12.388-21.414l-79.863 7.528A251.983 251.983 0 0 1 .285 295.776l72.936-33.416a179.801 179.801 0 0 1 0-24.72L.285 204.224a251.983 251.983 0 0 1 10.542-39.44l79.863 7.527a177.017 177.017 0 0 1 12.388-21.414L56.652 85.533a255.39 255.39 0 0 1 28.88-28.881l65.365 46.426a177.017 177.017 0 0 1 21.414-12.388l-7.528-79.863A251.983 251.983 0 0 1 204.224.285l33.416 72.936a179.801 179.801 0 0 1 24.72 0L295.776.285a251.983 251.983 0 0 1 39.44 10.542L327.69 90.69a177.017 177.017 0 0 1 21.414 12.388l65.364-46.426a255.39 255.39 0 0 1 28.881 28.88l-46.426 65.365a177.017 177.017 0 0 1 12.388 21.414l79.863-7.528a251.983 251.983 0 0 1 10.542 39.441L426.78 237.64a179.802 179.802 0 0 1 0 24.72l72.936 33.416a251.983 251.983 0 0 1-10.542 39.44l-79.863-7.527a177.017 177.017 0 0 1-12.388 21.414l46.426 65.364a255.39 255.39 0 0 1-28.88 28.881l-65.365-46.426a177.017 177.017 0 0 1-21.414 12.388l7.528 79.863a251.983 251.983 0 0 1-39.441 10.542l-33.416-72.936a179.802 179.802 0 0 1-24.72 0zM393.678 250c0-79.351-64.327-143.678-143.678-143.678S106.322 170.649 106.322 250 170.649 393.678 250 393.678 393.678 329.351 393.678 250z" fill="#F4B971"/><path stroke="#0BB888" stroke-width="28.736" d="M250 173.372l66.362 38.314v76.628L250 326.628l-66.362-38.314v-76.628z"/><circle stroke="#ED8F1B" stroke-width="59.387" cx="250.001" cy="250" r="159.004"/></g><path d="M462.316 221.5h-34.375l-10.312 13.75h55zm-44.687 17.188V249h55v-10.313h-55zm51.562 6.875h-3.437v-3.438h3.437v3.438zm-51.562 6.875v10.312h55v-10.313h-55zm51.562 6.875h-3.437v-3.438h3.437v3.438zm-51.562 6.875V276.5h55v-10.313h-55zm51.562 6.875h-3.437v-3.438h3.437v3.438z" fill="#0BB888"/></g></svg>
|
After Width: | Height: | Size: 4.2 KiB |
@ -0,0 +1,49 @@
|
||||
Title: Leistungen
|
||||
|
||||
----
|
||||
|
||||
URL-Key: leistungen
|
||||
|
||||
----
|
||||
|
||||
Description: codesignd bietet Konzeption, Backend-Entwicklung mit Kirby und Beratung und Hilfe beim Web-Hosting.
|
||||
|
||||
----
|
||||
|
||||
Services:
|
||||
|
||||
-
|
||||
title: 'Konzept & Koordination'
|
||||
illustration: conception.svg
|
||||
text: |
|
||||
Zu jedem erfolgreichen Projekt gehört auch ein gutes Konzept. Direkt mit den ersten Vorstellungen loszulegen bringt oft auf gute Ideen, aber bevor es dann an die Umsetzung des Endprodukts geht, finde ich für die Ideen einen Platz in einem stimmigen Gesamtkonzept. Das hilft nicht nur dabei, später sauberen und konsistenten Code zu schreiben, sondern schafft auch früh Klarheit über die Ziele und Möglichkeiten.
|
||||
|
||||
Aber auch nach der Konzeptionsphase kümmere ich mich gerne um die Koordination des Projekts. Sollten besondere Fähigkeiten benötigt werden, arbeite ich im Netzwerk mit anderen Freiberuflern zusammen.
|
||||
-
|
||||
title: Entwicklung
|
||||
illustration: development.svg
|
||||
text: |
|
||||
Das Konzept steht? Dann geht es an die Umsetzung. Seien es robuster und zuverlässiger Frontend-Code mit HTML und CSS, interaktive Elemente über JavaScript oder komplexe Abläufe mit Datenbankanbindungen oder internen Benutzerbereichen, im Gespräch mit dir finde ich für so manches eine solide Lösung.
|
||||
|
||||
Besonders wichtig ist mir, hochwertigen Code zu schreiben. Das bedeutet: Gute Struktur, Code-Kommentare zum besseren Verständnis durch andere Entwickler und (Unit-)Tests für zentralen Code. Denn schlechter Code rächt sich, z. B. bei einer späteren Erweiterung, durch eine vermeidbare Sicherheitslücke oder wenn neue Entwickler ins Team kommen. Guter Code ist wartbar, verständlich und sicher.
|
||||
-
|
||||
title: Kirby
|
||||
illustration: kirby.svg
|
||||
text: |
|
||||
Der beste Code nutzt jedoch nichts, wenn die Website am Ende nur durch den Entwickler gewartet werden kann. Die Lösung sind Content Management Systeme (CMS). Sie bieten eine benutzerfreundliche Oberfläche, um den Inhalt selbst zu ändern und zu formatieren.
|
||||
|
||||
Seit 4 Jahren arbeite ich ausschließlich mit [Kirby](https://getkirby.com), einem sehr flexiblen und dadurch äußerst anpassbaren CMS. Als Mitglied der Entwicklungs- und Support-Teams von Kirby habe ich viel Erfahrung mit der Funktionsweise und kann das System an deine Bedürfnisse und die Anforderungen des Projekts anpassen und Lösungen finden, die zu deinem Workflow passen.
|
||||
-
|
||||
title: 'Server & Service'
|
||||
illustration: server.svg
|
||||
text: |
|
||||
Auch nach der Umsetzung des Projekts bin ich für dich da, suche gemeinsam mit dir einen passenden Web-Hoster aus und richte die Website dort ein. Je nach Hoster biete ich die Einrichtung von Backup-Strategien, maßgeschneiderten Deployment-Prozessen und Staging-Sites an. Bevor die Website dann online geht, sind natürlich auch Optimierungen wie HTTPS, CDNs, Caching und Komprimierung möglich.
|
||||
|
||||
Und wenn du auch nach dem Projekt eine Frage hast oder etwas nicht funktioniert, helfe ich dir gerne weiter.
|
||||
|
||||
----
|
||||
|
||||
Cta:
|
||||
|
||||
Zusammen ist das meine <span class="color--brand-secondary">KEKS</span>-Strategie.
|
||||
Klingt lecker? Dann erzähl mir von deinem Projekt, ich berate dich gerne!
|
@ -0,0 +1,45 @@
|
||||
Title: Services
|
||||
|
||||
----
|
||||
|
||||
Description: codesignd offers conception, backend development with Kirby as well as consulting and help with web hosting.
|
||||
|
||||
----
|
||||
|
||||
Services:
|
||||
|
||||
-
|
||||
title: 'Conception & Coordination'
|
||||
illustration: conception.svg
|
||||
text: |
|
||||
Every successful project needs a good conception. Starting with the first ideas right away can often inspire, but before it's time to implement the final product, I put it all together in a coherent conception. That not only helps writing good and consistent code, it also provides clarity of the goals and options very early on.
|
||||
|
||||
After the initial conception phase, I can coordinate the project. If special skills are required, I work together with other freelancers from my network.
|
||||
-
|
||||
title: Development
|
||||
illustration: development.svg
|
||||
text: |
|
||||
The conception is ready? Then the next step is the implementation. Be it robust and reliable frontend code with HTML and CSS, interactive elements with JavaScript or complex processes with database integrations or internal user areas, together with you I can find a sound solution for many use cases.
|
||||
|
||||
Especially important to me is to write high quality code. That means: A good code structure, code comments for a better understanding by other developers and (unit) tests for important code. Bad code comes back to roost, e.g. in future expansions, through an avoidable security issue or when new developers join the team. Good code is maintainable, easy to understand and secure.
|
||||
-
|
||||
title: Kirby
|
||||
illustration: kirby.svg
|
||||
text: |
|
||||
The best code doesn't help if the site can only be maintained by the developer. The solution are Content Management Systems (CMS). They provide an easy to use interface to change and format the content.
|
||||
|
||||
In the last 4 years, I have been exclusively working with [Kirby](https://getkirby.com), a very flexible and thus very adaptable CMS. As a member of the development and support teams of Kirby, I am very experienced with the functionality and can adapt the system to your needs and the project requirements as well as find solutions to fit your workflow.
|
||||
-
|
||||
title: 'Servers & Service'
|
||||
illustration: server.svg
|
||||
text: |
|
||||
I'm there for you even after the implementation of the project, will help you to find a fitting web hosting provider and set the website up for you. Depending on the provider I offer setting up backup strategies, custom-fit deployment processes and staging sites. Before the website goes live, optimizations like HTTPS, CDNs, caching and compression are possible too.
|
||||
|
||||
And if you have any questions after the project is done or if anything doesn't work, I'm here to help.
|
||||
|
||||
----
|
||||
|
||||
Cta:
|
||||
|
||||
Sounds great?
|
||||
Then feel free to tell me about your project, I will be happy to help you.
|
@ -0,0 +1,9 @@
|
||||
Title: Kontakt
|
||||
|
||||
----
|
||||
|
||||
URL-Key: kontakt
|
||||
|
||||
----
|
||||
|
||||
Description: Erfahre, wie du Lukas Bestle, den Inhaber von codesignd, erreichen kannst.
|
@ -0,0 +1,5 @@
|
||||
Title: Contact
|
||||
|
||||
----
|
||||
|
||||
Description: Find out how to contact Lukas Bestle, the owner of codesignd.
|
@ -0,0 +1,16 @@
|
||||
Title: Fehler
|
||||
|
||||
----
|
||||
|
||||
Description: Die angeforderte Seite konnte nicht gefunden werden.
|
||||
|
||||
----
|
||||
|
||||
Text:
|
||||
|
||||
# Vier-Null-Vier
|
||||
|
||||
Hm, da ist was schiefgelaufen.
|
||||
Die angeforderte Seite konnte nicht gefunden werden.
|
||||
|
||||
Macht aber nichts, (link: / text: auf der Startseite geht's weiter).
|
@ -0,0 +1,16 @@
|
||||
Title: Error
|
||||
|
||||
----
|
||||
|
||||
Description: The requested page could not be found.
|
||||
|
||||
----
|
||||
|
||||
Text:
|
||||
|
||||
# Four-oh-four
|
||||
|
||||
Hm, something went wrong here.
|
||||
The requested page could not be found.
|
||||
|
||||
Never mind, (link: / text: let's continue on the homepage).
|
@ -0,0 +1,45 @@
|
||||
Title: Impressum
|
||||
|
||||
----
|
||||
|
||||
URL-Key: impressum
|
||||
|
||||
----
|
||||
|
||||
Description:
|
||||
|
||||
----
|
||||
|
||||
Text:
|
||||
|
||||
# Impressum
|
||||
|
||||
**codesignd, Lukas Bestle**
|
||||
Seidenstr. 7
|
||||
72764 Reutlingen
|
||||
Deutschland
|
||||
|
||||
USt-IdNr.: DE 300 983 590
|
||||
|
||||
<h2 id="contact">Kontakt</h2>
|
||||
|
||||
(qdated:)
|
||||
|
||||
Diese E-Mail-Adresse ist eine Woche lang gültig und verfällt anschließend. E-Mails an diese Adresse erreichen mich persönlich und werden schnellstmöglich beantwortet. Mit der Antwort erhältst du meine dauerhaft gültige E-Mail-Adresse.
|
||||
Durch dieses Verfahren wird die E-Mail-Adresse vor automatisiertem Spam geschützt. Vielen Dank für dein Verständnis.
|
||||
|
||||
## Datenschutz
|
||||
|
||||
Beim Besuch dieser Website werden folgende Daten gespeichert:
|
||||
|
||||
- Datum und Uhrzeit der Anfrage
|
||||
- gekürzte IP-Adresse
|
||||
- aufgerufene URL
|
||||
- ggf. Referrer (URL einer hierher verlinkenden Website)
|
||||
- Browser- und Betriebssystemversion
|
||||
|
||||
Die Speicherung erfolgt ausschließlich auf dem Server des Betreibers. Eine Weitergabe der Daten oder Zusammenführung mit weiteren Daten erfolgt nicht. Nach vier Wochen werden die Daten automatisch gelöscht.
|
||||
|
||||
### Kontaktformular
|
||||
|
||||
Bei Nutzung des Kontaktformulars werden deine Angaben per E-Mail an mich übermittelt. Eine Weitergabe der Daten oder Zusammenführung mit weiteren Daten erfolgt nicht.
|
@ -0,0 +1,43 @@
|
||||
Title: Imprint
|
||||
|
||||
----
|
||||
|
||||
Description:
|
||||
|
||||
----
|
||||
|
||||
Text:
|
||||
|
||||
# Legal information / imprint
|
||||
|
||||
The following information is required by German law.
|
||||
|
||||
**codesignd, Lukas Bestle**
|
||||
Seidenstr. 7
|
||||
72764 Reutlingen
|
||||
Germany
|
||||
|
||||
USt-IdNr.: DE 300 983 590
|
||||
|
||||
<h2 id="contact">Contact</h2>
|
||||
|
||||
(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 server of the website owner only. No data is circulated or combined with other data. All data is automatically deleted after four weeks.
|
||||
|
||||
### Contact form
|
||||
|
||||
When using the contact form, your information is sent to me via email. No data is circulated or combined with other data.
|
@ -0,0 +1,9 @@
|
||||
Title: codesignd
|
||||
|
||||
----
|
||||
|
||||
Description: codesignd ist Lukas Bestle, ein Backend-Web-Entwickler und Mitglied des Kirby-Teams.
|
||||
|
||||
----
|
||||
|
||||
Copyright: © 2015-2016 Lukas Bestle
|
@ -0,0 +1,9 @@
|
||||
Title: codesignd
|
||||
|
||||
----
|
||||
|
||||
Description: codesignd is Lukas Bestle, a backend web developer and member of the Kirby team.
|
||||
|
||||
----
|
||||
|
||||
Copyright: © 2015-2016 Lukas Bestle
|
@ -0,0 +1,245 @@
|
||||
'use strict';
|
||||
|
||||
// Directory name inside the patterns repo
|
||||
var site = 'codesignd';
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Node dependencies
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
|
||||
// gulp and gulp plugins
|
||||
var gulp = require('gulp');
|
||||
var autoprefixer = require('gulp-autoprefixer');
|
||||
var cleanCSS = require('gulp-clean-css');
|
||||
var concat = require('gulp-concat');
|
||||
var header = require('gulp-header');
|
||||
var include = require('gulp-include');
|
||||
var preservetime = require('gulp-preservetime');
|
||||
var refresh = require('gulp-refresh');
|
||||
var rename = require('gulp-rename');
|
||||
var gulpSass = require('gulp-sass');
|
||||
var sass = gulpSass.compiler;
|
||||
var uglify = require('gulp-uglify');
|
||||
|
||||
// Other npm modules
|
||||
var del = require('del');
|
||||
|
||||
// Load package.json of the patterns repo
|
||||
var packageData = require('./site/patterns/package.json');
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
var helpers = {};
|
||||
|
||||
/**
|
||||
* Returns a banner for asset files
|
||||
*
|
||||
* @param {string} type File type of the generated file
|
||||
* @return {object}
|
||||
*/
|
||||
helpers.banner = function(type) {
|
||||
var banner = [
|
||||
'/*!',
|
||||
' * <%= pkg.description %>',
|
||||
' * @link <%= pkg.homepage %>',
|
||||
' * @copyright <%= pkg.copyright %>',
|
||||
' * @license <%= pkg.license' + type + ' || pkg.license %>',
|
||||
' */',
|
||||
''
|
||||
].join('\n');
|
||||
|
||||
return header(banner, {pkg: packageData});
|
||||
};
|
||||
|
||||
/**
|
||||
* Builds the CSS of the specified site
|
||||
*
|
||||
* @param {string} site Site name, defaults to "shared" if not given
|
||||
* @param {boolean} minify Whether to minify using clean-css
|
||||
* @return {stream}
|
||||
*/
|
||||
helpers.buildCSS = function(site, minify) {
|
||||
if(!site) site = 'shared';
|
||||
if(!minify) minify = false;
|
||||
|
||||
var sassOptions = {
|
||||
functions: {
|
||||
'-cdd-cachebuster($filepath)': function(filepath, done) {
|
||||
var pathString = filepath.getValue();
|
||||
|
||||
fs.stat(__dirname + pathString, function(err, stats) {
|
||||
if(err) throw err;
|
||||
|
||||
var mtime = Math.round(Date.parse(stats.mtime) / 1000);
|
||||
|
||||
var parsed = path.parse(pathString);
|
||||
var filepath = parsed.dir + '/' + parsed.name + '.' + mtime + parsed.ext;
|
||||
done(sass.types.String(filepath));
|
||||
});
|
||||
}
|
||||
},
|
||||
outputStyle: 'expanded'
|
||||
};
|
||||
|
||||
// Compile the SCSS file
|
||||
var stream = gulp.src('site/patterns/' + site + '/' + site + '.scss')
|
||||
.pipe(gulpSass(sassOptions).on('error', gulpSass.logError))
|
||||
.pipe(autoprefixer({browsers: ['> 1%']}))
|
||||
.pipe(rename('index.css'))
|
||||
.pipe(helpers.banner('CSS'))
|
||||
.pipe(gulp.dest('assets/css'));
|
||||
|
||||
// Minify CSS if required
|
||||
if(minify) {
|
||||
stream = stream.pipe(rename('index.min.css'))
|
||||
.pipe(cleanCSS())
|
||||
.pipe(gulp.dest('assets/css'));
|
||||
}
|
||||
|
||||
// Trigger LiveReload
|
||||
return stream.pipe(refresh());
|
||||
};
|
||||
|
||||
/**
|
||||
* Builds the JS of the specified site
|
||||
*
|
||||
* @param {string} site Site name, defaults to "shared" if not given
|
||||
* @param {boolean} minify Whether to minify using UglifyJS
|
||||
* @return {stream}
|
||||
*/
|
||||
helpers.buildJS = function(site, minify) {
|
||||
if(!site) site = 'shared';
|
||||
if(!minify) minify = false;
|
||||
|
||||
var src = ['site/patterns/shared/**/*.js'];
|
||||
if(site !== 'shared') src.push('site/patterns/' + site + '/**/*.js');
|
||||
|
||||
// Concat the JS files
|
||||
var stream = gulp.src(src)
|
||||
.pipe(concat('index.js'))
|
||||
.pipe(include({includePaths: __dirname + '/node_modules'}))
|
||||
.pipe(helpers.banner('JS'))
|
||||
.pipe(gulp.dest('assets/js'));
|
||||
|
||||
// Minify JS if required
|
||||
if(minify) {
|
||||
stream = stream.pipe(rename('index.min.js'))
|
||||
.pipe(uglify({preserveComments: 'license'}))
|
||||
.pipe(gulp.dest('assets/js'));
|
||||
}
|
||||
|
||||
// Trigger LiveReload
|
||||
return stream.pipe(refresh());
|
||||
};
|
||||
|
||||
/**
|
||||
* Copies all files matching a specified pattern to the assets dir
|
||||
* Removes folder hierarchies so make sure that each file has a unique name!
|
||||
*
|
||||
* @param {string} site Site name, defaults to "shared" if not given
|
||||
* @param {string} pattern Something like "*.{jpg,svg}"
|
||||
* @param {string} dest Either "fonts" or "img"
|
||||
* @return {stream}
|
||||
*/
|
||||
helpers.copyFiles = function(site, pattern, dest) {
|
||||
if(!site) site = 'shared';
|
||||
|
||||
var src = ['site/patterns/shared/**/' + pattern];
|
||||
if(site !== 'shared') src.push('site/patterns/' + site + '/**/' + pattern);
|
||||
|
||||
return gulp.src(src, {since: gulp.lastRun(dest)})
|
||||
.pipe(rename({dirname: ''})) // Flat hierarchy
|
||||
.pipe(gulp.dest('assets/' + dest))
|
||||
.pipe(preservetime())
|
||||
.pipe(refresh());
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* Compiles the CSS file of the current site
|
||||
*/
|
||||
gulp.task('css', function() {
|
||||
return helpers.buildCSS(site);
|
||||
});
|
||||
|
||||
/**
|
||||
* Compiles and minifies the CSS file of the current site
|
||||
*/
|
||||
gulp.task('css.min', function() {
|
||||
return helpers.buildCSS(site, true);
|
||||
});
|
||||
|
||||
/**
|
||||
* Combines the JS files of the current site
|
||||
*/
|
||||
gulp.task('js', function() {
|
||||
return helpers.buildJS(site);
|
||||
});
|
||||
|
||||
/**
|
||||
* Combines and minifies the JS files of the current site
|
||||
*/
|
||||
gulp.task('js.min', function() {
|
||||
return helpers.buildJS(site, true);
|
||||
});
|
||||
|
||||
/**
|
||||
* Copies all webfonts to assets/fonts
|
||||
*/
|
||||
gulp.task('fonts', function() {
|
||||
return helpers.copyFiles(site, '*.{woff,woff2,eot}', 'fonts');
|
||||
});
|
||||
|
||||
/**
|
||||
* Copies all images to assets/img
|
||||
*/
|
||||
gulp.task('img', function() {
|
||||
return helpers.copyFiles(site, '*.{jpg,png,svg,ico}', 'img');
|
||||
});
|
||||
|
||||
/**
|
||||
* Copies prism.js components to assets/js/prism
|
||||
*/
|
||||
gulp.task('prismjs', function() {
|
||||
return gulp.src('node_modules/prismjs/components/*')
|
||||
.pipe(gulp.dest('assets/js/prism'));
|
||||
});
|
||||
|
||||
/**
|
||||
* Builds everything except the minified files for local development
|
||||
*/
|
||||
gulp.task('default', gulp.series(gulp.parallel('fonts', 'img'), gulp.parallel('css', 'js', 'prismjs')));
|
||||
|
||||
/**
|
||||
* Watches for changes
|
||||
*/
|
||||
function watchwait() {
|
||||
refresh.listen();
|
||||
|
||||
gulp.watch('site/patterns/**/*.scss', gulp.series('css'));
|
||||
gulp.watch('site/patterns/**/*.js', gulp.series('js'));
|
||||
gulp.watch('site/patterns/**/*.{woff,woff2,eot}', gulp.series('fonts'));
|
||||
gulp.watch('site/patterns/**/*.{jpg,png,svg,ico}', gulp.series('img'));
|
||||
|
||||
gulp.watch(['content/**/*.txt', 'site/**/*.{php,yml}']).on('change', refresh.changed);
|
||||
}
|
||||
gulp.task('watch', gulp.series('default', watchwait));
|
||||
|
||||
/**
|
||||
* Cleans built files
|
||||
*/
|
||||
gulp.task('clean', function() {
|
||||
return del('assets/*/*');
|
||||
});
|
||||
|
||||
/**
|
||||
* Builds everything for production
|
||||
* WARNING: Deletes some source files, only run this after committing your files
|
||||
*/
|
||||
function prodclean() {
|
||||
return del(['node_modules', 'gulpfile.js', 'site/patterns/*/', '!site/patterns/{shared,' + site + '}']);
|
||||
}
|
||||
gulp.task('prod', gulp.series('clean', gulp.parallel('fonts', 'img'), gulp.parallel('css.min', 'js.min', 'prismjs'), prodclean));
|
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
define('DS', DIRECTORY_SEPARATOR);
|
||||
|
||||
// load kirby
|
||||
require(__DIR__ . DS . 'kirby' . DS . 'bootstrap.php');
|
||||
|
||||
// check for a custom site.php
|
||||
if(file_exists(__DIR__ . DS . 'site.php')) {
|
||||
require(__DIR__ . DS . 'site.php');
|
||||
} else {
|
||||
$kirby = kirby();
|
||||
}
|
||||
|
||||
// render
|
||||
echo $kirby->launch();
|
@ -0,0 +1 @@
|
||||
Subproject commit fae381e5716a50fdc36fc8f5fa9ef9fe30e97384
|
@ -0,0 +1,22 @@
|
||||
# License of the codesignd website
|
||||
|
||||
## Kirby
|
||||
|
||||
This site is based on [Kirby CMS](https://getkirby.com). Kirby is not free. You can find Kirby's license on the [Kirby website](https://getkirby.com/license).
|
||||
|
||||
## Content
|
||||
|
||||
Copyright (c) 2016 Lukas Bestle
|
||||
|
||||
You may not use, copy, modify, merge, publish, distribute, sublicense and/or sell copies of the content from this project without explicit permission by Lukas Bestle.
|
||||
|
||||
## All other code in this repository
|
||||
|
||||
**The MIT License (MIT)**
|
||||
Copyright (c) 2016 Lukas Bestle
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@ -0,0 +1,28 @@
|
||||
{
|
||||
"name": "codesignd-site",
|
||||
"description": "codesignd website",
|
||||
"homepage": "https://git.codesignd.com/sites/codesignd",
|
||||
"license": "SEE LICENSE IN license.md",
|
||||
"private": true,
|
||||
|
||||
"dependencies": {
|
||||
"element-closest": "2.0.1",
|
||||
"flexismooth": "1.0.0",
|
||||
"prismjs": "1.5.1",
|
||||
"whatwg-fetch": "1.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"del": "^2.2.1",
|
||||
"gulp": "gulpjs/gulp.git#4.0",
|
||||
"gulp-autoprefixer": "^3.1.0",
|
||||
"gulp-clean-css": "^2.0.12",
|
||||
"gulp-concat": "^2.6.0",
|
||||
"gulp-header": "^1.8.7",
|
||||
"gulp-include": "^2.3.1",
|
||||
"gulp-preservetime": "^1.0.0",
|
||||
"gulp-refresh": "^1.1.0",
|
||||
"gulp-rename": "^1.2.2",
|
||||
"gulp-sass": "^2.3.2",
|
||||
"gulp-uglify": "^1.5.3"
|
||||
}
|
||||
}
|
@ -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,18 @@
|
||||
# codesignd website
|
||||
|
||||
> codesignd website at codesignd.com/codesignd.de
|
||||
|
||||
This is the main repository of the codesignd website. Most of the actual code is stored in the [patterns repository](https://git.codesignd.com/sites/patterns), which is shared with other codesignd websites.
|
||||
Feel free to take a look at the code and the [pattern library](https://codesignd.com/patterns) and don't hesitate to contact me:
|
||||
|
||||
- [Email and contact form](https://codesignd.com/contact)
|
||||
- [Follow me on Twitter](https://twitter.com/lukasbestle)
|
||||
- Find me in the [Kirby Forum](https://forum.getkirby.com/users/lukasbestle)
|
||||
|
||||
## Copyright
|
||||
|
||||
© 2016 Lukas Bestle
|
||||
|
||||
## License
|
||||
|
||||
See license.md.
|
@ -0,0 +1,2 @@
|
||||
*
|
||||
!.gitignore
|
@ -0,0 +1,11 @@
|
||||
title: Contact
|
||||
pages: false
|
||||
files: false
|
||||
fields:
|
||||
title:
|
||||
label: Title
|
||||
type: text
|
||||
description:
|
||||
label: Desciption
|
||||
type: text
|
||||
icon: file-text
|
@ -0,0 +1,14 @@
|
||||
title: Page
|
||||
pages: true
|
||||
files: true
|
||||
fields:
|
||||
title:
|
||||
label: Title
|
||||
type: text
|
||||
description:
|
||||
label: Desciption
|
||||
type: text
|
||||
icon: file-text
|
||||
text:
|
||||
label: Text
|
||||
type: textarea
|
@ -0,0 +1,14 @@
|
||||
title: Homepage
|
||||
pages: false
|
||||
files: true
|
||||
fields:
|
||||
title:
|
||||
label: Title
|
||||
type: text
|
||||
description:
|
||||
label: Desciption
|
||||
type: text
|
||||
icon: file-text
|
||||
text:
|
||||
label: Text
|
||||
type: textarea
|
@ -0,0 +1,30 @@
|
||||
title: Services
|
||||
pages: false
|
||||
files: true
|
||||
fields:
|
||||
title:
|
||||
label: Title
|
||||
type: text
|
||||
description:
|
||||
label: Desciption
|
||||
type: text
|
||||
icon: file-text
|
||||
services:
|
||||
label: Services
|
||||
type: structure
|
||||
entry: >
|
||||
<strong>{{title}}</strong><br>
|
||||
{{text}}
|
||||
fields:
|
||||
title:
|
||||
label: Title
|
||||
type: text
|
||||
illustration:
|
||||
label: Illustration
|
||||
type: image
|
||||
text:
|
||||
label: Text
|
||||
type: textarea
|
||||
cta:
|
||||
label: Call to action
|
||||
type: textarea
|
@ -0,0 +1,15 @@
|
||||
title: Site
|
||||
pages: true
|
||||
files: false
|
||||
fields:
|
||||
title:
|
||||
label: Title
|
||||
type: text
|
||||
description:
|
||||
label: Desciption
|
||||
type: text
|
||||
icon: file-text
|
||||
copyright:
|
||||
label: Copyright
|
||||
type: text
|
||||
icon: copyright
|
@ -0,0 +1,2 @@
|
||||
*
|
||||
!.gitignore
|
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
// Enable debugging on the dev host but disable caching
|
||||
c::set('debug', true);
|
||||
c::set('cache', false);
|
||||
|
||||
// Disable assets suffix on the dev host
|
||||
c::set('assets.suffix', '');
|
||||
|
||||
// Language setup with dev domains
|
||||
c::set('languages', [
|
||||
[
|
||||
'code' => 'en',
|
||||
'name' => 'English',
|
||||
'default' => true,
|
||||
'locale' => 'en_US',
|
||||
'url' => 'http://codesignd.dev',
|
||||
],
|
||||
[
|
||||
'code' => 'de',
|
||||
'name' => 'Deutsch',
|
||||
'locale' => 'de_DE',
|
||||
'url' => 'http://de.codesignd.dev',
|
||||
]
|
||||
]);
|
@ -0,0 +1,3 @@
|
||||
<?php
|
||||
|
||||
require_once(__DIR__ . DS . 'config.codesignd.dev.php');
|
@ -0,0 +1,80 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
|
||||
---------------------------------------
|
||||
License Setup
|
||||
---------------------------------------
|
||||
|
||||
Please add your license key, which you've received
|
||||
via email after purchasing Kirby on http://getkirby.com/buy
|
||||
|
||||
It is not permitted to run a public website without a
|
||||
valid license key. Please read the End User License Agreement
|
||||
for more information: http://getkirby.com/license
|
||||
|
||||
*/
|
||||
|
||||
// The license was removed for the public repository
|
||||
c::set('license', '*snip*');
|
||||
|
||||
/*
|
||||
|
||||
---------------------------------------
|
||||
Kirby Configuration
|
||||
---------------------------------------
|
||||
|
||||
By default you don't have to configure anything to
|
||||
make Kirby work. For more fine-grained configuration
|
||||
of the system, please check out http://getkirby.com/docs/advanced/options
|
||||
|
||||
*/
|
||||
|
||||
// Use production assets by default
|
||||
c::set('assets.suffix', '.min');
|
||||
|
||||
// Cache setup
|
||||
c::set('cache', true);
|
||||
c::set('cache.ignore', ['contact', 'legal']);
|
||||
|
||||
// Representations
|
||||
c::set('representations.accept', true);
|
||||
|
||||
// Language setup
|
||||
c::set('languages', [
|
||||
[
|
||||
'code' => 'en',
|
||||
'name' => 'English',
|
||||
'default' => true,
|
||||
'locale' => 'en_US',
|
||||
'url' => 'https://codesignd.com'
|
||||
],
|
||||
[
|
||||
'code' => 'de',
|
||||
'name' => 'Deutsch',
|
||||
'locale' => 'de_DE',
|
||||
'url' => 'https://codesignd.de'
|
||||
]
|
||||
]);
|
||||
|
||||
// Bar-o-mator plugin
|
||||
c::set('baromator.routes', true);
|
||||
c::set('baromator.basecolor', '#ED8F1B');
|
||||
|
||||
// Cachebuster plugin
|
||||
c::set('cachebuster', true);
|
||||
|
||||
// Patterns plugin
|
||||
c::set('patterns.title', 'codesignd Patterns');
|
||||
c::set('patterns.preview.css', ['assets/css/index.css', 'site/patterns/theme.css']);
|
||||
c::set('patterns.preview.js', 'assets/js/index.js');
|
||||
|
||||
// Serve the pattern library theme file
|
||||
c::set('routes', [
|
||||
[
|
||||
'pattern' => 'site/patterns/theme\.(:num)\.css',
|
||||
'action' => function() {
|
||||
return new Response(f::read(kirby()->roots()->site() . DS . 'patterns' . DS . 'theme.css'), 'css');
|
||||
}
|
||||
]
|
||||
]);
|
@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
return function($site, $pages, $page) {
|
||||
$form = uniform('contact', [
|
||||
'required' => [
|
||||
'name' => '',
|
||||
'_from' => 'email'
|
||||
],
|
||||
'actions' => [
|
||||
[
|
||||
'_action' => 'email',
|
||||
'to' => qdated(),
|
||||
'sender' => 'codesignd form <no-reply@codesignd.de>',
|
||||
'subject' => 'Message from the contact form (' . $site->title() . ')',
|
||||
'snippet' => 'email-templates/contact'
|
||||
]
|
||||
]
|
||||
]);
|
||||
|
||||
return compact('form');
|
||||
};
|
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
l::set('nav.main.label', 'Primär');
|
||||
l::set('nav.lang.label', 'Sprachauswahl');
|
||||
|
||||
l::set('footer.top', 'Nach oben');
|
||||
l::set('footer.madewith', 'Erstellt mit');
|
||||
l::set('footer.source', 'Quellcode');
|
||||
|
||||
l::set('go.contact', '➪ Kontakt');
|
||||
|
||||
l::set('home-banner.learnmore', 'Mehr erfahren');
|
||||
l::set('home-banner.learnmore.label', 'Mehr über meine Leistungen erfahren');
|
||||
l::set('home-banner.contact', 'Kontakt');
|
||||
|
||||
l::set('contact.name', 'Name');
|
||||
l::set('contact.email', 'E-Mail-Adresse');
|
||||
l::set('contact.message', 'Nachricht');
|
||||
l::set('contact.potty', 'Bitte lasse dieses Feld leer');
|
||||
l::set('contact.submit', 'Absenden');
|
||||
l::set('contact.heading.email', 'E-Mail');
|
||||
|
||||
l::set('qdated.error', 'Bei der Anzeige der E-Mail-Adresse ist ein Fehler aufgetreten. Bitte kontaktiere mich über <a href="https://twitter.com/lukasbestle">Twitter</a> und mache mich darauf aufmerksam. Danke!');
|
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
l::set('nav.main.label', 'Primary');
|
||||
l::set('nav.lang.label', 'Language select');
|
||||
|
||||
l::set('footer.top', 'Top');
|
||||
l::set('footer.madewith', 'Made with');
|
||||
l::set('footer.source', 'Source');
|
||||
|
||||
l::set('go.contact', '➪ Contact');
|
||||
|
||||
l::set('home-banner.learnmore', 'Learn more');
|
||||
l::set('home-banner.learnmore.label', 'Learn more about my services');
|
||||
l::set('home-banner.contact', 'Contact');
|
||||
|
||||
l::set('contact.name', 'Name');
|
||||
l::set('contact.email', 'Email address');
|
||||
l::set('contact.message', 'Message');
|
||||
l::set('contact.potty', 'Please leave this field blank');
|
||||
l::set('contact.submit', 'Submit');
|
||||
l::set('contact.heading.email', 'Email');
|
||||
|
||||
l::set('qdated.error', 'An error occured while displaying the email address. Please contact me via <a href="https://twitter.com/lukasbestle">Twitter</a> and tell me about this. Thank you!');
|
@ -0,0 +1 @@
|
||||
Subproject commit f9c5f3db5a8cbb3d25e1a84c19b7c56d73b71422
|
@ -0,0 +1 @@
|
||||
Subproject commit cfe2ef2c4cb94f7e1e2bb244427e18569f19bed5
|
@ -0,0 +1 @@
|
||||
Subproject commit eb92317c13603859d298b554a88656cdcdc38f17
|
@ -0,0 +1 @@
|
||||
Subproject commit 3e1d562073062a44395d49d2f8d3e2a9b8fae10a
|
@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* 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();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an HTML a mailto tag with the current qdated address
|
||||
* If qdated is not available, returns an HTML error message
|
||||
*
|
||||
* @param mixed $text Optional text for the link
|
||||
* Can also be true to use the email
|
||||
* address but put a line break in it
|
||||
* @return string HTML code
|
||||
*/
|
||||
function qdatedHtml($text = false) {
|
||||
$email = qdated();
|
||||
if(!$email) return '<p><strong>' . l::get('qdated.error') . '</strong></p>';
|
||||
|
||||
if($text === true) $text = str_replace('@', '<br>@', $email);
|
||||
return str::email($email, $text);
|
||||
}
|
||||
|
||||
/**
|
||||
* qdated Kirbytag
|
||||
*
|
||||
* Usage: (qdated: Optional link text)
|
||||
*/
|
||||
kirby()->set('tag', 'qdated', [
|
||||
'html' => function($tag) {
|
||||
return qdatedHtml($tag->attr('qdated'));
|
||||
}
|
||||
]);
|
@ -0,0 +1 @@
|
||||
Subproject commit 26f17b120bd2f1a250c7639a9a6ae9119b33b937
|
@ -0,0 +1,6 @@
|
||||
Name: <?= a::get($form, 'name') . "\n" ?>
|
||||
Email: <?= a::get($form, '_from') . "\n" ?>
|
||||
|
||||
----
|
||||
|
||||
<?= a::get($form, 'message') ?>
|
@ -0,0 +1,4 @@
|
||||
<?php pattern('shared/2-blocks/footer', ['pSite' => 'codesignd']) ?>
|
||||
<?= js('assets/js/index' . c::get('assets.suffix') . '.js') ?>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,31 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="<?= $site->language()->code() ?>">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<title><?= $page->title()->html() ?> ~ <?= $site->title()->html() ?></title>
|
||||
<meta name="description" content="<?= $page->description()->or($site->description()) ?>">
|
||||
|
||||
<link rel="icon" href="<?= url('assets/img/favicon-96.png') ?>" type="image/png">
|
||||
<link rel="apple-touch-icon-precomposed" href="<?= url('assets/img/favicon-152.png') ?>">
|
||||
|
||||
<?php foreach($site->languages()->filterBy('code', '!=', $site->language()->code()) as $lang): ?>
|
||||
<link rel="alternate" href="<?= $page->url($lang->code()) ?>" hreflang="<?= $lang->code() ?>">
|
||||
<?php endforeach ?>
|
||||
<link rel="pgpkey" type="application/pgp-keys" href="<?= url('pgp.asc') ?>">
|
||||
|
||||
<link rel="preload" href="<?= url('assets/fonts/input-sans-narrow-regular.woff2') ?>" as="font" type="font/woff2" crossorigin>
|
||||
|
||||
<?php if($suffix = c::get('assets.suffix')): ?>
|
||||
<style><?= f::read('assets/css/index' . $suffix . '.css') ?></style>
|
||||
<?php else: ?>
|
||||
<?= css('assets/css/index.css') ?>
|
||||
<?php endif ?>
|
||||
</head>
|
||||
<body id="top">
|
||||
<?php pattern('shared/2-blocks/header', [
|
||||
'pSite' => 'codesignd',
|
||||
'navData' => ['languages' => $site->languages(), 'items' => $site->pages()->visible()]
|
||||
]) ?>
|
@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
pattern('shared/2-blocks/nav', [
|
||||
'wrapper' => false,
|
||||
'languages' => $site->languages(),
|
||||
'items' => $site->pages()->visible()
|
||||
]);
|
@ -0,0 +1,52 @@
|
||||
<article class="text">
|
||||
<h1><?= html($page->title()) ?></h1>
|
||||
|
||||
<div class="contact">
|
||||
<div class="contact__main">
|
||||
<form class="contact__form form<?php e($form->successful(), ' form--success') ?>" action="<?= url::current() ?>" method="post">
|
||||
<div class="field field--required field--small">
|
||||
<label class="field__label" for="name"><?= l::get('contact.name', 'Name') ?></label>
|
||||
<input class="input field__input<?php e($form->hasError('name'), ' input--invalid') ?>" type="text" name="name" id="name" value="<?php $form->echoValue('name') ?>" placeholder=" " autocomplete="name" required/>
|
||||
</div>
|
||||
|
||||
<div class="field field--required field--small">
|
||||
<label class="field__label" for="email"><?= l::get('contact.email', 'Email address') ?></label>
|
||||
<input class="input field__input<?php e($form->hasError('_from'), ' input--invalid') ?>" type="email" name="_from" id="email" value="<?php $form->echoValue('_from') ?>" placeholder=" " autocomplete="email" required/>
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<label class="field__label" for="message"><?= l::get('contact.message', 'Message') ?></label>
|
||||
<textarea class="input field__input" rows="7" name="message" id="message"><?php $form->echoValue('message') ?></textarea>
|
||||
</div>
|
||||
|
||||
<label class="vh" for="website"><?= l::get('contact.potty', 'Please leave this field blank') ?></label>
|
||||
<input class="vh" type="text" name="website" id="website" autocomplete="off"/>
|
||||