- Implementiert shortcodes für columns, icon, section, aligncenter.

- Footer angepasst
- Footer in footer.md ausgelagert
This commit is contained in:
Andreas Hnida 2024-02-20 11:44:20 +00:00
commit 09795d6003
25 changed files with 357 additions and 192 deletions

28
.vscode/verua-snippets.code-snippets vendored Normal file
View file

@ -0,0 +1,28 @@
{
// Place your verua.dev-1.andreashnida.de workspace snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and
// description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope
// is left empty or omitted, the snippet gets applied to all languages. The prefix is what is
// used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders.
// Placeholders with the same ids are connected.
// Example:
// "Print to console": {
// "scope": "javascript,typescript",
// "prefix": "log",
// "body": [
// "console.log('$1');",
// "$2"
// ],
// "description": "Log output to console"
// }
"Insert Shortcode Columns": {
"scope": "html, markdown, md",
"prefix": "columns",
"body": [
"{{% columns %}}",
" $1",
"{{% /columns %}}",
],
"description": "Insert Shortcode Columns"
},
}

BIN
assets/Image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

BIN
assets/images/Image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

View file

@ -18,16 +18,100 @@ a {
h1, h2, h3, h4, h5, h6 {
font-weight:normal;
margin-bottom: 16px;
}
h3 {
font-weight:500;
}
h4 {
color: #a9cd2e;
}
p {
font-size: 18px;
margin-bottom:10px;
margin-top:10px;
}
.navbar-nav .nav-item {
font-size: 18px;
color: grey!important;
}
@media (max-width: 1200px) {
h1 {
font-size: 35px;
line-height: 1.2em;
margin-bottom: 16px;
}
h3 {
font-size:18px;
}
h4 {
font-size:18px;
}
p {
font-size: 14px;
}
.navbar-nav .nav-item {
font-size: 14px;
}
}
footer, footer h1, footer h2, footer h3, footer h4, footer h5, footer h6, footer p, footer a {
color:white;
}
img {
margin-bottom:16px;
}
@media (max-width: 770px) {
.btn{
display:block
}
}
.container {
max-width: 1750px;
}
@media (max-width: 1750px) {
.container {
padding-left:80px;
padding-right:80px;
}
}
@media (max-width: 1200px) {
.container {
max-width: 1200px;
padding-left:80px;
padding-right:80px;
}
}
/**** Utility *****/
.aligncenter * {
text-align: center;
margin-left: auto;
margin-right: auto;
}
/**************** Component Styles ******************/
// Columns Shortcode
// Icons
.verua-icon {
margin: 20px 0;
}
// Verua Slider
@media (max-width: 1200px) {
.verua-slider-wrapper .verua-slider .slides h1 {
margin-top:0px;
}
.hero-slider {
margin-top:-200px;
}
}
.verua-slider-wrapper {
position: relative;
width: 100%;

View file

@ -1,62 +1,149 @@
+++
title = 'Home'
+++
---
title: 'Home'
# Hero Slider
heroslider:
- title: "Willkommen auf unserer Homepage!"
image: "startseite/startseite-slide.jpg"
- title: "Gemeinsam neue Wege gehen."
image: "startseite/startseite-slide-2.jpg"
- title: "Administration optimieren, Zeit gewinnen."
image: "startseite/startseite-slide-3.jpg"
keyfeatures:
- icon: "car"
color: "lime-300"
textcolor: "black"
title: "**Freiberufliche Pflegefachpersonen**"
content: "Die Applikation **VeruA ** Verwaltung & Abrechnung** unterstützt Sie bei Anamnese, Planung, Dokumentation und Abrechnung in der ambulanten Pflege. <br><br>VeruA ist optimiert für den Einsatz in einer Einzelperson-Version oder für Teams, die gemeinsam Klienten betreuen und sich gegenseitig Einsicht in die Pflegedokumentation ermöglichen wollen."
- icon: "users"
color: "slate-800"
textcolor: "white"
title: "**Spitex-Organisationen**"
content: "Vereinfachen Sie die Dokumentation, Administration und Abrechnung in Ihrer Spitex-Organisation mit der Applikation **VeruA ** Verwaltung & Abrechnung.** <br><br>
Unser Angebot richtet sich besonders an Organisationen, die eine schlanke und kostengünstige Applikation suchen und auf guten Support nicht verzichten wollen. <br><br> Bedarfsermittlungen mit **interRAI** erstellen? <br><br> **Kein Problem!** <br><br>Seit dem ersten Quartal 2020 bieten wir Ihnen die **Schnittstelle zum Perigon interRAI Cloud** an."
- icon: "bank"
color: "white"
textcolor: "black"
title: "**Kantonale Abrechnung**"
content: "In der Vielfalt der kantonalen Abrechnungen und Bestimmungen stehen wir Ihnen zur Seite. <br><br>Wir setzen die kantonalen Vorgaben für Sie um und unterstützen Sie mit diversen Export-Funktionen und Auswertungen. <br><br>
[ERFAHREN SIE MEHR ...](/#)"
---
{{% section %}}
{{% columns %}}
{{% columns center="true" %}}
{{% columns %}}
#### Title 1
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.
#### VeruA ** Verwaltung & Abrechnung
# **Das Werkzeug für die ambulante Pflege**
**VeruA ** Verwaltung & Abrechnung** ist ein Werkzeug für Klientenmanagement, Planung, Dokumentation, Abrechnung und Statistik im Bereich ambulante Pflege.
Die für den ambulanten Einsatz optimierten Funktionen gewährleisten einen ökonomischen Einsatz aller unternehmerischen Ressourcen sowohl für Spitex-Organisationen als auch für freiberufliche Pflegefachpersonen.
Die als Webseite angelegte Programmoberfläche macht die Bedienung besonders einfach und intuitiv.
..column..
#### Title 2
{{% columns %}}
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s
{{% icon name="laptop" %}}
### Intuitive Bedienung
Eine bedienungsfreundliche Applikation, die Sie in Ihrer täglichen Arbeit optimal untersützt.
..column..
{{% icon name="mobile" %}}
### Mobiler Einsatz
Verwendung aller Betriebssysteme und Gerätetypen sowie Zugriff von jedem Ort zu jeder Zeit.
{{% /columns %}}
..column..
#### Title 2
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s
..column..
{{% columns %}}
#### Title 1
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.
{{% icon name="gears" %}}
### Moderne Technik
Eine moderne Browserlösung mit SQL-Technologie - für ein Höchstmass an Mobilität und optimalem Ausfallschutz.
..column..
#### Title 2
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s
..column..
#### Title 2
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s
{{% icon name="anchor" %}}
### Rundum-sorglos-Paket
Fragen zur Applikation, Abrechnung oder kantonale Regelungen? Unser Support steht Ihnen hilfreich zur Seite.
{{% /columns %}}
{{% /columns %}}
{{% /section %}}
{{% section background="startseite/bg_papier.png" %}}
{{% columns %}}
#### Ihr Vorteil
# **Arbeiten, wann und wo Sie wollen**
Papier war gestern! Mit VeruA erfassen, organisieren und werten Sie Ihre Daten mobil aus. Unsere Applikation ermöglicht Ihnen einen sicheren Zugriff von unterwegs auf alle für Sie relevanten Informationen.
..column..
![image](startseite/Image.png)
{{% /columns %}}
{{% columns %}}
{{% icon name="lock" %}}
### Verschlüsselte Datenübertragung
Alle Daten werden ausschliesslich über eine gesicherte Verbindung übermittelt. Dank des SSL-Zertifikats sind persönliche Daten auf höchster Stufe gegen Missbrauch durch Dritte geschützt.
..column..
{{% icon name="database" %}}
### Sicherheit der Daten
Tägliche Sicherung aller Daten auf dem Server. Diese Sicherung befindet sich auf externen Servern und wird 30 Tage lang aufbewahrt.
..column..
{{% icon name="check" %}}
### 99.9 % Verfügbarkeit
Die Daten werden in einem ISO 27001 zertifizierten Datencenter mit Serverstandort Schweiz gespeichert und sind jederzeit erreichbar.
..column..
{{% icon name="mobile" %}}
### Flexibilität
Der Zugriff auf die Applikation VeruA ** Verwaltung und Abrechnung ist mit jedem internetfähigen Gerät wie PC, Mac, iPad, Tablet oder Smartphone möglich.
{{% /columns %}}
{{% /section %}}
{{% section background="startseite/achievement.jpg" fixed="true" %}}
{{% aligncenter %}}
#### Unser Service
## **Effiziente Lösung für Ihr Business**
Wir stellen den Webserver zur Verfügung, aktualisieren die Applikation regelmässig und stehen mit Rat und Tat an Ihrer Seite.
{{% /aligncenter %}}
{{% columns %}}
![image](startseite/kosteneffizienz.jpg)
### Preisvorteil
Keine kostenintensiven Systemvoraussetzungen, der Zugriff erfolgt über das Internet. Geringer Schulungsaufwand und Finanzierungsmodelle preiswerter geht es nicht.
..column..
![image](startseite/team.jpg)
### Kompetenter Support
Mit VeruA ** Verwaltung und Abrechnung erhalten Sie die bedienungsfreundliche Lösung, die Sie benötigen und die Rundumbetreuung, die Sie verdienen.
..column..
![image](startseite/programmierung.jpg)
### Kontinuierliche Weiterentwicklung
Wir halten die Applikation jederzeit für Sie auf dem neuesten Stand und versorgen Sie mit den Lösungen, die Sie aktuell benötigen.
{{% /columns %}}
{{% aligncenter %}}
&nbsp;
&nbsp;
{{< button label="Mehr erfahren" link="/" style="solid" >}}
{{% /aligncenter %}}
{{% /section %}}

BIN
content/german/image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5 MiB

View file

@ -0,0 +1,45 @@
---
title: "Footer"
---
{{% aligncenter %}}
![verua logo](images/verua_logo_w.png)
&nbsp;
## **RaBe WebSolutions**
&nbsp;
&nbsp;
B. Rasberger
Steinerstrasse 19
CH-8253 Diessenhofen
079 393 86 83
support@verua.ch
&nbsp;
&nbsp;
{{< columns >}}
[Dienstleistung](https://link-url-here.org)
..column..
[Aktuelles](https://link-url-here.org)
..column..
[Kontakt](https://link-url-here.org)
..column..
[Datenschutzerklärung](https://link-url-here.org)
..column..
[Impressum](https://link-url-here.org)
{{< /columns >}}
{{% /aligncenter %}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 682 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 870 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

View file

@ -1,6 +1,5 @@
{{/* Home Template File */}}
{{ define "main" }}
{{ .Content }}
<!-- Hero Slider -->
<section class="hero-slider h-screen md:h-[750px]">
<div class="verua-slider-wrapper">
@ -50,18 +49,19 @@
</script>
<!-- /Hero Slider -->
<!-- Key Features -->
{{/* <section class="flex flex-wrap items-start justify-center relative"> */}}
<section class="lg:container lg:mx-auto relative flex flex-col justify-between items-center lg:flex-row lg:items-center lg:-mt-[250px]">
<section class="mb lg:container lg:mx-auto relative flex flex-col justify-between lg:flex-row lg:-mt-[247px]">
{{ range $i, $e:= .Params.keyfeatures }}
<div class="w-full flex-1 lg:mt-8 p-8 lg:m-4 lg:shadow-xl lg:rounded-3xl {{ with .color }} bg-{{ . }} {{ end }} {{ with .textcolor }} text-{{ . }} {{ end }}">
<div class="w-full flex-1 lg:mt-8 p-8 lg:m-4 md:shadow-2xl lg:rounded-3xl {{ with .color }} bg-{{ . }} {{ end }} {{ with .textcolor }} text-{{ . }} {{ end }}">
{{/* <div class="flex-shrink-0 relative {{ with .color }} bg-{{ . }} {{ end }} m-6 {{ with .textcolor }} text-{{ . }} {{ end }} -mt-[250px] overflow-hidden rounded-lg max-w-96 shadow-lg p-8"> */}}
{{ with .icon }}
<div class="flex items-center justify-center">
<i class="fas fa-{{ . }} fa-fw text-5xl text-primary py-10"></i>
<i class="fas fa-{{ . }} fa-fw text-primary py-10" style="font-size:70px;"></i>
</div>
{{ end }}
<h3 class="mb-4 {{ with .textcolor }} text-{{ . }} {{ end }}">
@ -74,97 +74,9 @@
{{ end }}
</section>
<!-- /Key Features -->
<!-- Features -->
<div class="lg:container items-center grid grid-cols-8 gap-4">
<!-- Column -->
<div class="col-span-8 md:col-span-4">
{{ with .Params.featureslead }}
<section>
<div class="container">
<div class="row">
{{ partial "components/iconheadersubheadertext" . }}
</div>
</div>
</section>
{{ end }}
</div>
{{ .Content }}
<!-- Column -->
<div class="grid grid-cols-2 col-span-8 gap-4 md:col-span-4">
{{ range $i, $e:= .Params.features }}
<div class="col-span-2 md:col-span-1">
{{ partial "components/iconheadersubheadertext" . }}
</div>
{{ end }}
</div>
</div>
<!-- /Features -->
<!-- Testimonials -->
{{ with site.GetPage "sections/testimonial" }}
{{ if .Params.enable }}
<section class="section">
<div class="container">
<div class="row">
<div class="md:col-10 lg:col-8 xl:col-6 mx-auto mb-12 text-center">
<h2 class="mb-4">
{{ .Title | markdownify }}
</h2>
<p>
{{ .Params.description | markdownify }}
</p>
</div>
<div class="col-12">
<div class="swiper testimonial-slider">
<div class="swiper-wrapper">
{{ range .Params.testimonials }}
<div class="swiper-slide">
<div class="bg-theme-light rounded-lg px-7 py-10">
<div class="text-dark ">
<svg
width="33"
height="20"
viewBox="0 0 33 20"
fill="none"
xmlns="http://www.w3.org/2000/svg">
<path
d="M1.28375 19.41L0.79375 18.64C1.21375 17.0067 1.75042 15.07 2.40375 12.83C3.05708 10.5433 3.75708 8.28 4.50375 6.04C5.29708 3.75333 6.06708 1.77 6.81375 0.0899959H15.3538C14.9338 2.09666 14.4904 4.26667 14.0238 6.6C13.5571 8.88666 13.1371 11.15 12.7638 13.39C12.4371 15.5833 12.1571 17.59 11.9238 19.41H1.28375ZM31.69 0.0899959L32.18 0.859998C31.76 2.54 31.2233 4.5 30.57 6.74C29.9167 8.98 29.2167 11.2433 28.47 13.53C27.7233 15.77 26.9533 17.73 26.16 19.41H17.69C18.0167 17.9167 18.3433 16.33 18.67 14.65C18.9967 12.9233 19.3 11.22 19.58 9.54C19.9067 7.81333 20.1867 6.15667 20.42 4.57C20.7 2.93666 20.91 1.44333 21.05 0.0899959H31.69Z"
fill="currentColor" />
</svg>
</div>
<blockquote class="mt-8">
{{ .content | markdownify }}
</blockquote>
<div class="mt-11 flex items-center">
<div class="text-dark ">
{{ partial "image" (dict "Src" .avatar "Size" "50x50" "Class" "rounded-full" "Alt" .name) }}
</div>
<div class="ml-4">
<h3 class="h5 font-primary font-semibold">
{{ .name }}
</h3>
<p class="text-dark ">
{{ .designation | markdownify }}
</p>
</div>
</div>
</div>
</div>
{{ end }}
</div>
<div
class="testimonial-slider-pagination mt-9 flex items-center justify-center text-center"></div>
</div>
</div>
</div>
</div>
</section>
{{ end }}
{{ end }}
<!-- /Testimonials -->
{{ end }}

View file

@ -1,57 +1,11 @@
<footer class="bg-theme-light ">
<div class="container">
<div class="row items-center py-10">
<div class="lg:col-3 mb-8 text-center lg:mb-0 lg:text-left">
<!-- navbar brand/logo -->
<a
class="navbar-brand inline-block"
href="{{ site.Home.RelPermalink }}">
{{ partial "logo" }}
</a>
</div>
<div class="lg:col-6 mb-8 text-center lg:mb-0">
<ul>
{{ range site.Menus.footer }}
<li class="m-3 inline-block">
<a
{{ if findRE `^http` .URL }}
target="_blank" rel="noopener"
{{ end }}
href="{{ if findRE `^#` .URL }}
{{ if not $.IsHome }}
{{ site.Home.RelPermalink }}
{{ end }}{{ .URL }}
{{ else }}
{{ .URL | relLangURL }}
{{ end }}"
>{{ .Name }}</a
>
</li>
{{ end }}
</ul>
</div>
<div class="lg:col-3 mb-8 text-center lg:mb-0 lg:mt-0 lg:text-right">
<ul class="social-icons">
{{ range site.Data.social.main }}
<li>
<a
target="_blank"
aria-label="{{ .name }}"
rel="nofollow noopener"
href="{{ .link | safeURL }}">
<i class="{{ .icon }}"></i>
</a>
</li>
{{ end }}
</ul>
</div>
</div>
</div>
<div class="border-border border-t py-7">
<div class="text-light container text-center">
<p>
{{ site.Params.copyright | markdownify }}
</p>
</div>
</div>
</footer>
{{ $footer := .Site.GetPage "/sections/footer" }}
<footer class="bg-theme-dark bg-slate-900 ">
<div class="container">
<div class="row items-center py-10">
{{ $footer.Content }}
</div>
</div>
<div class="bg-slate-950 p-20 text-center">
Copyright © 2024 RaBe WebSolutions
</div>
</footer>

View file

@ -0,0 +1,3 @@
<div class="aligncenter text-center content-center">
{{ .Inner }}
</div>

View file

@ -1,6 +1,7 @@
<div class="flex p-4">
{{/* TODO Add To Docs "top" */}}
<div class="md:flex {{ if isset .Params "center" }}items-center{{ end }}">
{{ range split .Inner "..column.." }}
{{ printf "<div class=\" markdown-inner flex-1 px-4 \">"| safeHTML }}
{{ printf "<div class=\" markdown-inner items-center flex-1 px-4 \">"| safeHTML }}
{{ . | safeHTML }}
{{ printf "</div>" | safeHTML }}
{{ end }}

View file

@ -0,0 +1 @@
<i class="verua-icon far fa-{{ .Get "name" }} fa-fw text-5xl text-primary"></i>

View file

@ -1,4 +1,6 @@
<div class="container">
<section class="bg-cover items-center pt-32 pb-32" style="{{ with .Get "fixed" }}background-attachment: fixed;{{ end }}background-image: url('{{ with .Get "background" }}{{ . }}{{ end }}');">
<div class="container items-center" >
{{ .Inner }}
</div>
</section>

View file

@ -0,0 +1,7 @@
<div class="slides h-screen md:h-full {{ if isset .Params "first" }}current{{ end }}" style="background-image:url('{{ .Get "image" }}')">
<h1 class="mb-4 text-4xl font-extrabold leading-none tracking-tight md:text-5xl lg:text-6xl">
{{ if ne (.Get "title") "" }}
{{ .Get "title" }}
{{ end }}
</h1>
</div>

View file

@ -0,0 +1,41 @@
<section class="hero-slider h-screen md:h-[750px]">
<div class="verua-slider-wrapper">
<div class="verua-slider h-screen md:h-[750px]" id="verua-slider">
{{ .Inner }}
</div>
</div>
</section>
<script>
window.onload = function(){
setInterval(nextSlide, 5000);
}
let slideNumber = 0;
const prevSlide = () =>{
const slides = document.getElementsByClassName('slides');
const slider = document.getElementById("verua-slider");
const currentSlide = slider.getElementsByClassName('current');
currentSlide[0].classList.remove("current");
if(slideNumber == 0){
slideNumber = slides.length-1;
}
else{
slideNumber = slideNumber-1;
}
slides[slideNumber].classList.add("current");
}
const nextSlide = () =>{
const slides = document.getElementsByClassName('slides');
const slider = document.getElementById("verua-slider");
const currentSlide = slider.getElementsByClassName('current');
currentSlide[0].classList.remove("current");
if(slideNumber == (slides.length-1)){
slideNumber = 0;
}
else{
slideNumber = slideNumber+1;
}
slides[slideNumber].classList.add("current");
}
</script>
<!-- /Hero Slider -->