reorganized code
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
Sebastian Frank
2019-03-18 13:34:52 +01:00
parent 6b34509d9a
commit b2e0d78a2c
120 changed files with 1034 additions and 1067 deletions

View File

@@ -0,0 +1,16 @@
This:
GoTo: de/navigation/mark2web
Meta:
Title: mark2web
Description: Mark2web generiert Websites aus Markdown-Dateien mit optionalen weiteren Daten, die frei konfigurierbar sind.
Keywords: mark2web, Website, HTML, markdown, Generator, CMS, Content-Management-System
Markdown:
ChromaRenderer: True
ChromaStyle: monokai
Data:
debug: False
matomoSiteId: 89
token: 985cee34099f4d3b08f18fc22f6296 # cockpit api token

View File

@@ -0,0 +1,70 @@
---
Markdown:
ChromaRenderer: False
Data:
background: /img/coffee.jpg
slider:
- img: /img/coffee.jpg
alt:
opacity: 1
---
# mark2web
mark2web ist ein Generator, der aus Markdown- und Konfig-Dateien in einer Ordnerstruktur eine statische Website unter Zuhilfenahme von Templates generiert.
```mermaid
graph TD
C(Konfiguration)
M(Markdown)
A(Assets)
D(Templates)
2(mark2web)
W(Website)
C==>2
M==>2
A==>2
D==>2
2==>W
style 2 fill:#b5c50f,stroke:#000
classDef in fill:#464645,color:#fff,stroke:#000
classDef out stroke-width:5px,stroke:#b5c50f,fill:#ccc
class M,C,D,A in
class W out
click C "../benutzung/konfiguration" "Doku: Benutzung/Konfiguration"
click M "../benutzung/inhalte" "Doku: Benutzung/Inhalte"
click A "../benutzung/inhalte" "Doku: Benutzung/Inhalte"
click D "../benutzung/templates" "Doku: Benutzung/Templates"
```
<script defer>
window.onload = function() {
mermaid.init(undefined,$("code.language-mermaid"));
$("code.language-mermaid").css("visibility", "visible");
};
</script>
---
Der Generator selbst wurde in [Go](https://golang.org/) geschrieben. Es wurden dabei eine Vielzahl existierender Packages verwendet.
Unter Anderem:
- der Markdown-Parser [blackfriday](https://github.com/russross/blackfriday)
- die Template-Sprache "Django Template Language" über das Paket [pongo2](https://github.com/flosch/pongo2)
- das Logging-Paket [go-logging](https://github.com/op/go-logging)
- der YAML-Parser [go-yaml](https://github.com/go-yaml/yaml)
- die Imaging Bibliothek [disintegration/imaging](github.com/disintegration/imaging)
- der Javascript-Interpreter [otto](github.com/robertkrimen/otto) mit der Erweiterung [motto](github.com/ddliu/motto)
Weitere Pakete, die verwendet wurden finden Sie in den Quellen.
Diese Website wurde selbst mit mark2web generiert. Der entsprechende Quellcode, sowie die Quellen zu mark2web finden Sie unter:
**[https://gitbase.de/apairon/mark2web](5c76a0f4643334fe0400039c)**

View File

@@ -0,0 +1,32 @@
---
Data:
background: /img/laptop.jpg
slider:
- img: /img/laptop.jpg
alt:
opacity: 1
---
# Installation
Damit die korrekten Versionsinformationen dynamisch in das finale mark2web-Binary eingefügt wurde, ist eine manuelle Installation aus dem Git-Repository sinnvoll.
Da die benötigten Pakete über die Go "vendor"-Funktionalität eingebunden sind ist ein `git submodule --init --recursive` nötig, wie im folgenden Abschnitt zu sehen ist:
```sh
mkdir -p $GOPATH/src/gitbase.de/apairon
git clone https://gitbase.de/apairon/mark2web.git $GOPATH/src/gitbase.de/apairon/mark2web
cd $GOPATH/src/gitbase.de/apairon/mark2web
git submodule update --init --recursive
./build.sh
```
---
Eine Installation über `go install gitbase.de/apairon/mark2web` wird derzeit noch nicht unterstützt, da dabei die Informationen für `mark2web -version` nicht generiert werden.
## Releases
Vorkompilierte Binaries finden Sie auf der [Releases-Seite auf gitbase.de](https://gitbase.de/apairon/mark2web/releases).

Binary file not shown.

After

Width:  |  Height:  |  Size: 790 KiB

View File

@@ -0,0 +1,82 @@
---
Data:
background: /img/folder.jpg
slider:
- img: /img/folder.jpg
alt:
opacity: 1
---
# Benutzung
## Ordnerstruktur
Das Ausgangsmaterial für die zu generierende Website wird in folgender Ordnerstruktur organisiert:
```plain
DIR content
FIL config.yml (Pfad-Konfiguration)
DIR de (Sprache)
DIR main (Navigationsbaum)
DIR 01_Home (1. Ebene)
FIL config.yml
FIL README.md
DIR 02_Download
FIL README.md
FIL bild.jpg
FIL presse.zip
DIR 03_Kontakt
FIL README.md
DIR 01_Adresse
FIL README.md
DIR 02_Anfahrt
FIL README.md
DIR 04_Impressum
FIL README.md
service
DIR 01_Datenschutz
FIL README.md
DIR 02_AGB
FIL README.md
DIR 03_Impressum
FIL README.md
DIR assets (kann auch abweichend benannt werden)
DIR js
DIR img
DIR css
DIR templates
DIR filters
FILE myfilter.js
FIL base.html
FIL base_sub.html
FIL config.yml (globale Konfiguration, enthält andere Anweisungen als individuelle Pfad-Konfig, siehe Beispiel)
```
In der Minimal-Variante sind nur die Ordner `content` und `templates` nötig.
---
### `content`
- enthält die Markdown-Dateien und Konfigurationen für die Navigationsstruktur und Einzelseiten
- voranestellte Nummer mit Unterstrich wie z.B. `01_` dienen nur der Sortierung und gehen nicht in den eigentlichen Navigationspfad mit ein
- zur Bildung des Navigationspfades werden die Verzeichnisnamen in Kleinschreibung konvertiert
- Navigationsnamen für die Website werden aus dem Pfad gebildet, wobei `_`(Unterstriche) in Leerzeichen umgewandelt werden
- Navigationsnamen können durch die `config.yml` überschrieben werden
#### Medien und Downloads
- Mediendateien werden neben den Inhalten in `content` abgelegt und müssen dementsprechend relativ verlinkt werden
### `assets`
- Bilder/CSS/JS die in Templates oder mehrfach in den Content-Seiten benötigt werden liegen in `assets`
### `templates`
- Template-Dateien für die Generierung der Website liegen hier

View File

@@ -0,0 +1,3 @@
This:
Data:
teaser: Wie werden die Inhalte und Templates organisiert?

View File

@@ -0,0 +1,150 @@
---
Data:
background: /img/wire.jpg
slider:
- img: /img/wire.jpg
alt:
opacity: 1
---
# Konfiguration
Die Konfigurationsdatein sind im YAML-Format gehalten (siehe: [Wikipedia](https://de.wikipedia.org/wiki/YAML)).
## globale Einstellungen
Die obersten Verzeichnis sich befindende Datei `config.yml` kann z.B. folgenden Inhalt haben:
```yaml
Webserver:
Type: "apache"
Assets:
FromPath: "assets"
ToPath: "assets"
Action: "copy"
FixTemplate:
Find: "\\.\\./assets/"
Replace: ""
OtherFiles:
Action: "copy"
```
### Sektion `Webserver:`
#### `Type:`
Derzeit wird hier nur der Wert `apache` unterstützt. Ist dieser Wert gesetzt werden automatische .htaccess-Dateien mit mod_rewrite-Anweisungen generiert, die eine saubere Weiterleitung bei entsprechenden Konfig-Anweisungen im `content`-Verzeichnis ermöglichen.
### Sektion `Assets:`
`Assets:` steuert, wie mit Bild/JS/CSS Dateien umgegangen werden soll.
#### `FromPath:`
Lage des Asset-Verzeichnis unterhalb des `content`-Verzeichnis
#### `ToPath:`
Zielverzeichnis im Ausgabe-Verzeichnis der fertig generierten Website
#### `Action:`
Derzeit nur `copy`, also das Kopieren der Dateien und Unterordner ins Zielverzeichnis
#### `FixTemplate:`
Wenn hier `Find:` (regulärer Ausdruck) und `Replace:` (Ersetzung) angeben sind, werden die gefundenden Pfadangaben in der generierten HTML-Dateien durch den korrekten relativen Pfad zum Asset-Verzeichnis ersetzt.
### Sektion `OtherFiles:`
`OtherFiles:` definiert, wie mit anderen Dateien innerhalb des `content`-Verzeichnis umgegangen werden soll.
#### `Action:`
Derzeit nur `copy`, also das Kopieren der Dateien in das entsprechende Unterverzeichnis im Ausgabe-Verzeichnis
---
## Konfiguration im `content`-Verzeichnis
Im `content`-Verzeichnis, sowie in jedem Unterverzeichnis unterhalb von `content` kann sich eine `config.yml`-Datei befinden, wie aus folgendem Beispiel:
```yaml
This:
GoTo: "/de/service/impressum/"
Navname: "Impressumsverweis"
```
oder
```yaml
This:
Navname: "FAQ's"
Data:
slogan: "Wer nicht fragt, bekommt keine Antwort."
Template: "base.html"
Index:
InputFile: "README.md"
OutputFile: "index.html"
Meta:
Title: "Fragen und Antworten"
Description: "Dies ist die Fragen und Antworten Unterseite."
Keywords: "FAQ, Fragen, Antworten"
Data:
background: "bg.jpg"
slider:
- img: "assets/img/slider1.jpg"
alt: "Alternativtext 1"
- img: "assets/img/slider2.jpg"
alt: "Alternativtext 2"
- img: "assets/img/slider3.jpg"
alt: "Alternativtext 3"
```
### `This:` Sektion
Sämtlich Werte unterhalb dieser Sektion gelten nur für den Inhalt, bzw. Navigationspunkt in dessen Ordner sich die `config.yml` befindet. Die Werte werden nicht an Unterordner wertervererbt.
#### `GoTo:`
Falls der Navigationspunkt selbst keinen Inhalt darstellen soll, sondern nur weiterleiten soll, so wird hier das Weiterleitungsziel eingegeben.
Das Ziel ist der absolute (startend mit `/`) oder relative Pfad zum Zielnavigationspunkt.
Die Schreibweise des Pfades ist so zu verwenden, wie der Pfad nach Umschreibung und Säuberung des Pfades im Zielverzeichnis dargestellt wird.
Aus `de/mainnav/03_Fragen und Antworten` wird also z.B. `de/mainnav/fragen-und-antworten`.
#### `Navname:`
Dieser Wert überschreibt den aus dem Ordnernamen automatisch abgeleiteten Navigationspunkt-Namen. Dies ist zum Beispiel dann nützlich, wenn Sonderzeichen im Verzeichnisnamen nicht vorkommen sollen, aber im Namen des Navigationspunkts gebraucht werden.
#### `Data:`
Unterhalb von `Data:` können beliebige Datenstrukturen erfasst werden. Da diese Struktur unterhalb von `This:` angeordnet ist, werden auch die Daten nicht weiter an Unterordner vererbt.
Hier können z.B. Informationen zum Navigationspunkt abgelegt werden, die im Template Zusatzinformationen darstellen (z.B. ein Slogan zu einem Navigationspunkt).
### `Meta:` Sektion
Unter `Title:`, `Description:` und `Keywords:` werden die typischen Metaangaben abgelegt, die im
```html
<head>
...
</head>
```
übllicherweise Verwendung finden. Die entsprechenden Platzhalter stehen im Template zur Verfügung.
`Meta:` vererbt seine individuellen Informationen an die Unterordner weiter, sofern diese dort nicht selbst in einer `config.yml` oder im Kopf der Markdown-Datei definiert sind.
### `Data:` Sektion
`Data:` an dieser Stelle kann, wie auch `Data:` unterhalb von `This:`, beliebige Daten aufnehmen. Die Daten hier allerdings werden an Unterordner weitervererbt, sofern diese nicht dort oder in der Markdown-Datei selbst festegelegt überschrieben wurden.

View File

@@ -0,0 +1,3 @@
This:
Data:
teaser: Globale Konfiguration und individuelle Content-Einstellungen

View File

@@ -0,0 +1,49 @@
---
Data:
background: /img/write.jpg
slider:
- img: /img/write.jpg
alt:
opacity: 1
---
# Inhalte
Die Inhalte der Website werden im Ordner `content` und dessen Unterordnern gespeichert.
Texte werden dazu im Format **markdown** (siehe: [markdown.de](http://markdown.de/)) eingepflegt.
Bilddateien und anderen Medieninhalte werden einfach direkt neben den Markdown-Dateien im Verzeichnis des jeweiligen Navigationspunktes abgelegt.
---
Jede Seite ist innerhalb der Ordnerstruktur (Navigation) standardmäßig als `README.md` gespeichert. Die Datei ist eine normale Markdown-Datei mit einem optionalen Header:
```markdown
---
Meta:
Title: Seitentitel für die Meta-Angaben
Keywords: Meta-Keywords
Description: Meta-Description
Data: # Vererbung spielt hier keine Rolle, da Markdown-Datei letzte Ebene in der Generierung ist
image: bild.jpg
---
# Seitentitel
Seiteninhalt, lorem ipsum...
## Überschrift 2
Weiterer Absatz, usw...
```
## zusätzliche Konfiguration
Wie bereits unter [Konfiguration](../konfiguration) beschrieben, kann sich in jedem Ordner unterhalb von `content` eine `config.yml`-Datei befinden.
Deren vererbaren Einstellungen können auch im Kopf der Markdown-Datei überschrieben werden.
`This: -> Navname:` im Kopf zu setzen ist allerdings nicht möglich, da die Navigation bereits vor dem Verarbeiten der Markdown-Datei generiert wird.
Die Kopfdaten müssen mit `---` in der ersten Zeile eingeleitet werden und mit `---` auf einer einzelnen Zeile abgeschlossen werden. `---` dürfen auch nicht eingerückt sein.

View File

@@ -0,0 +1,3 @@
This:
Data:
teaser: Website-Texte und Medien

View File

@@ -0,0 +1,375 @@
---
Data:
background: /img/design.jpg
slider:
- img: /img/design.jpg
alt:
opacity: 1
---
# Templates
Templates werden über das pongo2-Paket gerendert. Dieses nutzt die Template-Sprache **Django-Template**.
Sämtliche Template-Dateien sind im Ordner `templates` zu speichern.
Die Endung kann frei gewählt werden. Für diese Dokumentation und auch als Grundlage für Beispiele wurde `.html` gewählt, da somit auch das Syntax-Highlighting gegeben ist.
## grober Überblick
Nachfolgend ist ein Beispiel eines Templates:
```django
<html>
<meta>
<meta charset="UTF-8">
<title>{{ Meta.Title }}</title>
<meta name="description" content="{{ Meta.Description }}" />
<meta name="keywords" content="{{ Meta.Keywords }}" />
<link rel="stylesheet" type="text/css" href="../assets/css/main.css">
</meta>
<body>
{% block header %}
<header>
<div class="langSelect">
{% for nav in NavSlice %}
<a href="{{ nav.GoTo }}" {% if nav.Active %}class="active"{% endif %}>
<img src="../assets/img/{{ nav.Navname }}.png" alt="{{ nav.Navname }}" style="height: 20px;">
</a>
{% endfor %}
</div>
<div id="logoDiv"><img src="../assets/img/logo.png"></div>
<div id="mainNavDiv" class="nav">
<table border="0" style="width: 100%">
<tr>
<td>
<div><b>main Level 1 ...</b></div>
<ul>
{% for nav in NavActive.0.SubMap.main.SubSlice %}
<li {% if nav.Active %}class="active"{% endif %}>
<a href="{{ nav.GoTo }}" title="{{ nav.This.Data.hoverText }}">
{{ nav.Navname }}
</a>
{% if nav.SubSlice %}
<ul>
{% for nav2 in nav.SubSlice %}
<li {% if nav2.Active %}class="active"{% endif %}>
<a href="{{ nav2.GoTo }}" title="{{ nav2.This.Data.hoverText }}">
{{ nav2.Navname }}
</a>
</li>
{% endfor %}
</ul
{% endif %}
</li>
{% endfor %}
</ul>
</td>
<td>
<div><b>main/service Level 2</b></div>
<ul>
{% for nav in NavActive.2.SubSlice %}
<li {% if nav.Active %}class="active"{% endif %}>
<a href="{{ nav.GoTo }}" title="{{ nav.This.Data.hoverText }}">
{{ nav.Navname }}
</a>
</li>
{% endfor %}
</ul>
</td>
</tr>
</table>
</div>
</header>
{% endblock %}
{% block breadcrumb %}
<div id="breadcrumb">
{% for nav in NavActive %}
<a href="{{ nav.GoTo }}" title="{{ nav.This.Data.hoverText }}">
{{ nav.Navname }}
</a>
{% endfor %}
</div>
{% endblock %}
{% block content %}
<div id="content">
{{ Body }}
</div>
{% endblock %}
{% block footer %}
<footer class="nav">
<div><b>service Level 1</b></div>
<ul>
{% for nav in NavActive.0.SubMap.service.SubSlice %}
<li {% if nav.Active %}class="active"{% endif %}>
<a href="{{ nav.GoTo }}" title="{{ nav.This.Data.hoverText }}">
{{ nav.Navname }}</a>
</li>
{% endfor %}
</ul>
</footer>
{% endblock %}
</body>
</html>
```
Wie im Beispiel zu sehen ist, werden einfache **Variables** über:
```django
{{ Variable }}
```
eingebunden. Variablen können außerdem speziell weiterverarbeitet werden. Dies geschieht mit sogenannten Filtern oder Filterfunktionen. Die Syntax dafür ist folgendermaßen:
```django
{{ Variable|Filter }}
```
Blockanweisungen dagegen verwenden zum Beispiel folgende Platzhalter:
```django
{% if Variable %}
...
{% endif %}
```
Eine Liste der in Django möglichen Anweisungen finden Sie unter [Django builtins](https://docs.djangoproject.com/en/2.1/ref/templates/builtins/).
---
## mark2web Variablen
Der mark2web-Generator liefert für die Template-Verarbeitung Variablen für die Navigation und den Inhalt.
### Website-Inhalt
Das rohe HTML, welches aus einer Markdown-Datei generiert wird steht über folgende Variablen zur Verfügung.
```django
{{ Body }} = komplettes HTML aus der Markdown-Datei
{{ BodyParts.0 }} = erster HTML-Block
{{ BodyParts.1 }} = zweiter HTML-Block
usw.
```
Ist die Markdown-Datei durch `---` auf einer Zeile (nach den Kopfdaten) geteilt, stehen die Einzelteile im Slice/Array `{{ BodyParts }}` zur Verfügung.
Aus folgender Markdown-Datei `README.md` in einem `content`-Unterverzeichnis:
```markdown
# Titel 1
Text 1
---
## Titel 2
Text 2
```
wird für `{{ Body }}` folgendes HTML:
```html
<h1>Titel 1</h1>
<p>Text 1</p>
<hr>
<h2>Titel 2</h2>
<p>Text 2</p>
```
`BodyParts` erklärt sich an folgendem Template:
```django
<table>
<tr>
{% for part in BodyParts %}
<td>
{{ part }}
</td>
{% endfor %}
</tr>
</table>
```
Aus dem Template wird nach dem Rendern mit obiger Markdown-Datei also folgendes HTML:
```html
<table>
<tr>
<td>
<h1>Titel 1</h1>
<p>Text 1</p>
</td>
<td>
<h2>Titel 2</h2>
<p>Text 2</p>
</td>
</tr>
</table>
```
Die Einrückungen im HTML wurden für die bessere Lesbarkeit angepasst. Wie zu sehen ist, wird `---` in `{{ Body }}` laut Markdown-Syntax zu `<br>`. In `{{ BodyParts.N }}` ist es jedoch nicht enthalten, da es hier nur zur Trennung des Dokuments dient.
### Navigation
Jedes Navigationselement steht intern in folgender go-Struktur zur Verfügung:
```go
type navElement struct {
Navname string
GoTo string
Active bool
Data interface{}
This ThisPathConfig
SubMap *map[string]*navElement
SubSlice *[]*navElement
}
```
Diese erste Navigationsebene wird mit seinen Unternavigationspunkten zum einen auf die Variable `{{ NavMap }}` in Form einer Map (assoziatives Array) mit dem umgeformten Namen (wie im Zielverzeichnis) abgebildet.
Außerdem steht die erste Navigationsebene als Liste, bzw. Slice (Array) über die Variable `{{ NavSlice }}` zur verfügung.
Wird z.B. folgende Navigation als Zielverzeichnis-Struktur angenommen:
```plain
de
main
home
leistungen
referenzen
service
impressum
en
main
home
...
```
Der Teasertext aus folgender `config.yml` im `content`-Verzeichnis `de/main/02_Leistungen`
```yaml
This:
Data:
teaser: Teasertext
```
welcher zum Navigationspunkt im Zielpfad *de/main/leistungen* gehört, ist über folgende Template-Variablen erreichbar:
```django
{{ NavMap.de.SubMap.main.SubMap.leistungen.This.Data.teaser }}
oder
{{ NavSlice.0.SubSlice.0.SubSlice.1.This.Data.teaser}}
oder auch eine Kombination
{{ NavMap.de.SubMap.main.SubSlice.1.This.Data.teaser }}
```
Natürlich wird diese Variable in der Form so nie verwendet, sondern soll nur den Aufbau der Struktur verdeutlichen. Üblicherweise werden Schleifenblöcke verwendet um die Navigationsbäume auszugeben, wie z.B. eine Liste als Sprachwähler, wenn man annimmt, dass die erste Navigationsebene die Website-Sprache ist:
```django
<ul>
{% for lang in NavMap %}
<li {% if lang.Active %}class="active"{% endif %}>
<a href="{{ lang.GoTo }}">{{ lang.Navname }}</a>
</li>
{% endfor %}
</ul>
```
Wie im Beispiel zu sehen ist, wird das aktive Navigationselement mit `class="active"` über die Variable `Active` aus der Struktur markiert.
#### aktiver Navigationspfad
Der aktive Navigationspfad ist über eine weitere vorbelegte Variable zu erfahren:
```django
{{ NavActive }}
```
Ähnlich wie `{{ NavSlice }}` oder `{{ ...SubSlice }}` ist dies ein Slice/Array welches als Elemnte Navigationselemente aus oben angegebener Struktur enthält.
Im Gegensatz zu `{{ NavSlice }}` besteht die Liste nicht aus Elementen einer Ebene, sonder aus allen aktiven Elemtenten in des aktuellen Pfads.
Geht man also wieder vom obigen Beispiel aus und der aktive Pfad ist *de/main/leistungen*, so würden folgendes zutreffen:
```django
{{ NavActive.0 }} ist das Navigationselement für "de"
{{ NavActive.1 }} ist das Navigationselement für "main"
{{ NavActive.2 }} ist das Navigationselement für "Leistungen"
```
Somit lassen sich leicht Pfade anzeigen, bzw. Breadcrumbs in die Website einbinden, wie im folgenden Beispiel:
```django
aktiver Pfad:
{% for nav in NavActive %}
<a href="{{ nav.GoTo }}" title="{{ nav.This.Data.hoverText }}">{{ nav.Navname }}</a>
{% endfor %}
```
Ebenso lässt sich bei mehrsprachigen Seite immer die richte Hauptnavigation zur aktuelle Sprache laden:
```django
<h3>Hauptnavigation</h3>
<ul>
{% for nav in NavActive.0.SubMap.main.SubSlice %}
<li {% if nav.Active %}class="active"{% endif %}>
<a href="{{ nav.GoTo }}" title="{{ nav.This.Data.hoverText }}">
{{ nav.Navname }}
</a>
{% if nav.SubSlice %}
<ul>
{% for nav2 in nav.SubSlice %}
<li {% if nav2.Active %}class="active"{% endif %}>
<a href="{{ nav2.GoTo }}" title="{{ nav2.This.Data.hoverText }}">
{{ nav2.Navname }}
</a>
</li>
{% endfor %}
</ul
{% endif %}
</li>
{% endfor %}
</ul>
```
### Meta-Angaben
Über die Variablen
```django
{{ Meta.Title }}
{{ Meta.Description }}
{{ Meta.Keywords }}
```
stehen die üblichen Meta-Angaben für die Verwendung im `<head>` Tag zur Verfügung.
### weitere Daten
Die Variablen
```django
{{ This.Navname }}
{{ This.Data }}
{{ Data }}
```
stehen ebenfalls zur Verfügung und spiegeln die Daten aus den Konfig-Dateien `config.yml` und den Kopfdaten der Markdown-Datei wieder.

View File

@@ -0,0 +1,3 @@
This:
Data:
teaser: Aus Markdown wird HTML

View File

@@ -0,0 +1,9 @@
This:
GoTo: ordnerstruktur
Data:
slider:
- img: /img/gears.jpg
alt:
opacity: 1

View File

@@ -0,0 +1,14 @@
---
Template: base_blog.html
Data:
background: /img/blog.jpg
slider:
- img: /img/blog.jpg
alt:
opacity: 1
---
# Blog

View File

@@ -0,0 +1,23 @@
This:
Collections:
- Name: blog1st
URL: 'https://mark2web.basiscms.de/api/collections/get/mark2webBlog?token={{ Data.token }}&filter[published]=true&sort[date]=-1&skip=0&limit=1'
NavTemplate:
EntriesAttribute: entries
GoTo: '{{ date }}-{{ title }}'
Navname: '{{ title }}'
Body: '{{ body|safe }}'
Template: base_blog_details.html
DataKey: details
Hidden: true # hide from nav, but use this feature for rendering detail sites
- Name: blog1skip
URL: 'https://mark2web.basiscms.de/api/collections/get/mark2webBlog?token={{ Data.token }}&filter[published]=true&sort[date]=-1&skip=1&limit=100'
NavTemplate:
EntriesAttribute: entries
GoTo: '{{ date }}-{{ title }}'
Navname: '{{ title }}'
Body: '{{ body|safe }}'
Template: base_blog_details.html
DataKey: details
Hidden: true

View File

@@ -0,0 +1,28 @@
# Impressum
Angaben nach § 5 TMG und § 2 DL-InfoV
**basiskonfiguration**
Frank & Prade GbR
Schwabhäuser Straße 16
99867 Gotha
vertreten durch die geschäftsführenden Gesellschafter Sebastian Frank und Daniel Prade
Telefon: 03621 73 75 00
Fax: 03621 73 75 01
E-Mail: info@basiskonfiguration.de
Internet: www.basiskonfiguration.de
USt-IDNr. DE245235174
---
Haftungshinweise:
Die Inhalte dieser Seiten wurden mit größter Sorgfalt erstellt. Gleichwohl übernimmt der Website- Betreiber für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte keine Haftung.
Die Website beinhaltet Links zu anderen Seiten im Internet, deren Inhalt und Aktualisierung außerhalb des Einflussbereiches des Website-Betreibers liegen und die von ihm auch nicht auf Rechtmäßigkeit und Vollständigkeit überprüft werden kann. Für die Inhalte der verlinkten Seiten ist vielmehr der jeweilige Anbieter oder Betreiber selbst verantwortlich. Eine Haftung hierfür wird dementsprechend vollumfänglich ausgeschlossen.
Datenschutz:
Sofern innerhalb des Internetangebotes die Möglichkeit der Eingabe von persönlichen Daten (beispielsweise Name, Anschrift oder E-Mail-Adresse) bestehen, erfolgt diese freiwillig. Der Website-Betreiber erklärt ausdrücklich, dass er diese Daten nicht an Dritte weitergibt. Näheres hierzu finden sie in der Datenschutzerklärung.

View File

@@ -0,0 +1,180 @@
# Datenschutzerklärung
Wir legen großen Wert auf den Schutz Ihrer persönlichen Daten. Da sowohl der Schutz Ihrer Privatsphäre als auch Ihrer Geschäftsdaten für uns von besonderer Bedeutung ist, werden wir die in Deutschland gültigen datenschutzrechtlichen Bestimmungen beachten.
Nachfolgend möchten wir Sie ausführlich darüber informieren, welche Daten bei Ihrem Besuch unseres Internetauftritts und der Nutzung unserer dortigen Angebote erhoben und wie diese von uns im Folgenden verarbeitet oder genutzt werden, ebenso wie, welche begleitenden Schutzmaßnahmen wir auch in technischer und organisatorischer Hinsicht getroffen haben.
---
## 1. Verantwortliche Stelle / Diensteanbieter
Verantwortliche Stelle im Sinne der DSGVO und zugleich Diensteanbieter im Sinne des TMG ist die Frank & Prade GbR, gesetzlich vertreten durch die geschäftsführenden Gesellschafter Sebastian Frank und Daniel Prade, vgl. dazu unser Impressum.
Fragen oder Anmerkungen zu dieser Datenschutzerklärung oder allgemein zum Datenschutz richten Sie bitten an folgende E-Mail-Adresse info@basiskonfiguration.de.
Für die Wahrnehmung Ihrer Rechte im Zusammenhang mit dieser Datenschutzerklärung wenden Sie sich bitte an:
Frank & Prade GbR
Schwabhäuser Straße 16
99867 Gotha
Alternativ können Sie an uns eine E-Mail senden: info@basiskonfiguration.de.
## 2. Erhebung und Verarbeitung nicht personenbezogener Daten
1. Beim bloßen Besuch der Internetseite erheben wir keine personenbezogenen Daten. Jeder Server speichert jedoch automatisch die Zugriffe auf Webseiten. Die vorübergehende Speicherung der IP-Adresse durch das System ist notwendig, um eine Auslieferung der Website an den Rechner des Nutzers zu ermöglichen. Hierfür muss die IP-Adresse des Nutzers für die Dauer der Sitzung gespeichert bleiben. Unser Web-Server verzeichnet zum Zweck der Systemsicherheit temporär die IP-Adresse des anfragenden Rechners, den von Ihnen verwendeten Browser, das verwendete Betriebssystem, das Zugriffsdatum und die Uhrzeit, die Webseiten, die Sie besuchen, die auf unseren Webseiten angefragten Uniform Resource Locators (URL) sowie die zuvor besuchte Website (referrer URL). Diese Informationen werden anonym gespeichert und nicht mit Ihren personenbezogenen Daten in Verbindung gebracht. Ein Rückschluss auf Ihre Person oder Ihr individuelles Verhalten ist nicht möglich.
Rechtsgrundlage für die vorübergehende Speicherung der Daten und der Logfiles ist Art. 6 Abs. 1 lit. f DSGVO.
2. Rechnerbezogene Daten werden von uns gespeichert, um Trends zu verzeichnen und Statistiken zu erstellen. Diese gespeicherten Daten dienen auch zu Zwecken der Identifikation und Nachverfolgung unzulässiger Zugriffsversuche auf unsere Server. Wir erstellen Profilinformationen über die Nutzung der eigenen Webseiten ausschließlich anonymisiert und nur zur Verbesserung der Nutzerführung und Optimierung des Angebots auf die Nutzerinteressen. Es werden hieraus keine personenbezogenen Surfprofile oder ähnliches erstellt oder verarbeitet.
3. Die Website verwendet an diversen Stellen sog. Cookies. Hierbei handelt es sich um kleinere Textdateien, die auf Ihrem Rechner abgelegt werden und die Ihr Browser speichert. Cookies dienen dazu, unser Angebot nutzerfreundlicher, effektiver und sicherer zu gestalten. In diesen Zwecken liegt auch unser berechtigtes Interesse in der Verarbeitung der personenbezogenen Daten nach Art. 6 Abs. 1 lit. f DSGVO. Bei den meisten von uns auf dieser Website eingesetzten Cookies handelt es sich um sog. Session-Cookies, die nach Beendigung Ihres Besuchs der Website automatisch wieder gelöscht werden.
Auf diese Weise können folgende Daten übermittelt werden: Eingegebene Suchbegriffe, Häufigkeit von Seitenaufrufen, Inanspruchnahme von Website-Funktionen.
Die auf diese Weise erhobenen Daten der Nutzer werden durch technische Vorkehrungen pseudonymisiert. Daher ist eine Zuordnung der Daten zum aufrufenden Nutzer nicht mehr möglich. Die Daten werden nicht gemeinsam mit sonstigen personenbezogenen Daten der Nutzer gespeichert. Beim Aufruf unserer Website werden die Nutzer durch einen Infobanner über die Verwendung von Cookies zu Analysezwecken informiert und auf diese Datenschutzerklärung hingewiesen. Es erfolgt in diesem Zusammenhang auch ein Hinweis darauf, wie die Speicherung von Cookies in den Browsereinstellungen unterbunden werden kann.
Ob Cookies gesetzt und abgerufen werden sollen, können Sie durch die Einstellungen in Ihrem Browser selbst bestimmen. Sie können in Ihrem Browser etwa das Speichern von Cookies gänzlich deaktivieren, es auf bestimmte Webseiten beschränken oder Ihren Browser so konfigurieren, dass er Sie automatisch benachrichtigt, sobald ein Cookie gesetzt werden soll und Sie um Rückmeldung dazu bittet. Für den vollen Funktionsumfang unseres Internetauftritts ist es allerdings aus technischen Gründen erforderlich, die genannten Session Cookies zuzulassen.
Eine Erhebung oder Speicherung personenbezogener Daten in Cookies findet in diesem Zusammenhang durch uns nicht statt. Wir setzen auch keine Techniken ein, die durch Cookies anfallende Informationen mit Nutzerdaten verbinden.
Die Rechtsgrundlage für die Verarbeitung personenbezogener Daten unter Verwendung von Cookies ist Art. 6 Abs. 1 lit. f DSGVO.
4. Die Daten werden gelöscht, sobald sie für die Erreichung des Zweckes ihrer Erhebung nicht mehr erforderlich sind. Im Falle der Erfassung der Daten zur Bereitstellung der Website ist dies der Fall, wenn die jeweilige Sitzung beendet ist. IP-Adressen werden grundsätzlich spätestens sieben Tage nach deren Erhebung gelöscht. Eine darüberhinausgehende Speicherung ist möglich. In diesem Fall werden die IP-Adressen der Nutzer gelöscht oder verfremdet, sodass eine Zuordnung des aufrufenden Clients nicht mehr möglich ist.
5. Die Erfassung der Daten zur Bereitstellung der Website und die Speicherung der Daten in Logfiles ist für den Betrieb der Internetseite zwingend erforderlich. Es besteht folglich seitens des Nutzers keine Widerspruchsmöglichkeit.
## 3. Analysedienst Matomo
Unsere Website verwendet zum Zwecke der Webanalyse Matomo. Dabei handelt es sich um einen sogenannten Webanalysedienst. Matomo verwendet ebenfalls sog. “Cookies”, das sind Textdateien, die auf Ihrem Computer gespeichert werden und die unsererseits eine Analyse der Benutzung der Webseite ermöglichen. Zu diesem Zweck werden die durch den Cookie erzeugten Nutzungsinformationen (einschließlich Ihrer gekürzten IP-Adresse) an unseren Server übertragen und zu Nutzungsanalysezwecken gespeichert, was der Webseitenoptimierung unsererseits dient. Ihre IP-Adresse wird bei diesem Vorgang umgehend anonymisiert, so dass Sie als Nutzer für uns anonym bleiben. Die durch den Cookie erzeugten Informationen über Ihre Benutzung dieser Webseite werden nicht an Dritte weitergegeben. Sie können die Verwendung der Cookies durch eine entsprechende Einstellung Ihrer Browser Software verhindern, es kann jedoch sein, dass Sie in diesem Fall gegebenenfalls nicht sämtliche Funktionen dieser Website voll umfänglich nutzen können.
Wenn Sie mit der Speicherung und Auswertung dieser Daten aus Ihrem Besuch nicht einverstanden sind, dann können Sie der Speicherung und Nutzung nachfolgend per Mausklick jederzeit widersprechen. In diesem Fall wird in Ihrem Browser ein sog. Opt-Out-Cookie abgelegt, was zur Folge hat, dass Matomo keinerlei Sitzungsdaten erhebt.
Achtung : Wenn Sie Ihre Cookies löschen, so hat dies zur Folge, dass auch das Opt-Out-Cookie gelöscht wird und ggf. von Ihnen erneut aktiviert werden muss. Sie können sich hier entscheiden, ob in Ihrem Browser ein eindeutiger Webanalyse-Cookie abgelegt werden darf, um dem Betreiber der Webseite die Erfassung und Analyse verschiedener statistischer Daten zu ermöglichen.
Ihr Besuch dieser Webseite wird aktuell von der Matomo Webanalyse erfasst. Klicken Sie hier, damit Ihr Besuch nicht mehr erfasst wird.
Sie können sich hier entscheiden, ob in Ihrem Browser ein eindeutiger Webanalyse-Cookie abgelegt werden darf, um dem Betreiber der Website die Erfassung und Analyse verschiedener statistischer Daten zu ermöglichen.
Wenn Sie sich dagegen entscheiden möchten, klicken Sie den folgenden Link, um den Matomo-Deaktivierungs-Cookie in Ihrem Browser abzulegen.
<iframe style="border: 0; height: 200px; width: 100%;" src="https://www.basisstats.de/index.php?module=CoreAdminHome&action=optOut&language=de&backgroundColor=ffffff&fontColor=4e4e4e&fontSize=17px&fontFamily='Open%20Sans'%2C%20sans-serif"></iframe>
## 4. Google Maps
Wir verwenden auf unserer Internetseite Google Maps zur Auffindung unseres Firmensitzes. Dieser Dienst wird von der Firma Google Inc., 1600 Amphitheatre Parkway, Mountain View, CA 94043 USA, nachfolgend „Google“ angeboten. Bei jedem Aufruf von Google Maps wird von Google ein Cookie gesetzt, um bei der Anzeige der Seite, auf der Google Maps integriert ist, Nutzereinstellungen und -daten zu verarbeiten. Dieser Cookie von Google wird im Regelfall nicht durch das Schließen des Browsers gelöscht, sondern läuft nach einer bestimmten Zeit ab, soweit er nicht von Ihnen zuvor manuell gelöscht wurde. Wenn Sie mit dieser Verarbeitung Ihrer Daten nicht einverstanden sind, besteht die Möglichkeit, den Service von Google Maps zu deaktivieren und auf diesem Weg die Übertragung von Daten an Google zu verhindern. Hierfür gibt es folgende Möglichkeiten: Sie können geeignete Browsererweiterungen installieren (wie z.B. uMatrix oder Disconnect) und diese anweisen, die Übertragung an Google zu unterbinden. Sie können auch die Java-Script-Funktion in Ihrem Browser deaktivieren. Wir weisen Sie darauf hin, dass in diesem Fall die Nutzung von Google Maps und ggf. anderer Teile unserer Internetseite nicht oder nur noch eingeschränkt möglich ist. Die Nutzung von Google Maps und der hierdurch erlangten Informationen erfolgt gemäß den Google-Nutzungsbedingungen http://www.google.de/intl/de/policies/terms/regional.html sowie der zusätzlichen Geschäftsbedingungen für Google Maps https://www.google.com/intl/de_de/help/terms_maps.html.
## 5. Erhebung und Nutzung personenbezogener Daten
1. Wir erheben, speichern und verarbeiten Ihre aktiv übermittelten personenbezogenen Daten (zum Beispiel: Ihren Namen, Ihre Adressdaten oder E-Mail-Adresse), soweit dies für die Abwicklung von Anfragen oder die Erfüllung unserer vertraglichen Pflichten erforderlich ist. Die Erhebung und Verwendung personenbezogener Daten unserer Nutzer erfolgt regelmäßig nur nach Einwilligung des Nutzers. Eine Ausnahme gilt in solchen Fällen, in denen eine vorherige Einholung einer Einwilligung aus tatsächlichen Gründen nicht möglich ist und die Verarbeitung der Daten durch gesetzliche Vorschriften gestattet ist oder für die Erfüllung unserer Verträge erforderlich ist.
Soweit wir für Verarbeitungsvorgänge personenbezogener Daten eine Einwilligung der betroffenen Person einholen, dient Art. 6 Abs. 1 lit. a EU-Datenschutzgrundverordnung (DSGVO) als Rechtsgrundlage für die Verarbeitung personenbezogener Daten.
Bei der Verarbeitung von personenbezogenen Daten, die zur Erfüllung eines Vertrages, dessen Vertragspartei die betroffene Person ist, erforderlich ist, dient Art. 6 Abs. 1 lit. b DSGVO als Rechtsgrundlage. Dies gilt auch für Verarbeitungsvorgänge, die zur Durchführung vorvertraglicher Maßnahmen erforderlich sind.
Soweit eine Verarbeitung personenbezogener Daten zur Erfüllung einer rechtlichen Verpflichtung erforderlich ist, der unser Unternehmen unterliegt, dient Art. 6 Abs. 1 lit. c DSGVO als Rechtsgrundlage.
Ist die Verarbeitung zur Wahrung eines berechtigten Interesses unseres Unternehmens oder eines Dritten erforderlich und überwiegen die Interessen, Grundrechte und Grundfreiheiten des Betroffenen das erstgenannte Interesse nicht, so dient Art. 6 Abs. 1 lit. f DSGVO als Rechtsgrundlage für die Verarbeitung.
2. Ihre registrierten Daten werden stets verschlüsselt in unsere Systeme übertragen. Dies schützt die Kommunikation zwischen Ihnen und unserem Server und beugt einem Datenmissbrauch vor. Zur Verschlüsselung setzen wir ein anerkanntes und weit verbreitetes System ein, das in der jeweils aktuellen Version als sicher gilt.
3. Mit uns ist eine Kontaktaufnahme über die bereitgestellte E-Mail-Adresse möglich. In diesem Fall werden die mit der E-Mail übermittelten personenbezogenen Daten des Nutzers gespeichert.
Es erfolgt in diesem Zusammenhang keine Weitergabe der Daten an Dritte. Die Daten werden ausschließlich für die Verarbeitung der Konversation verwendet.
Rechtsgrundlage für die Verarbeitung der Daten ist bei Vorliegen einer Einwilligung des Nutzers Art. 6 Abs. 1 lit. a DSGVO.
Rechtsgrundlage für die Verarbeitung der Daten, die im Zuge einer Übersendung einer E-Mail übermittelt werden, ist Art. 6 Abs. 1 lit. f DSGVO. Zielt der E-Mail-Kontakt auf den Abschluss eines Vertrages ab, so ist zusätzliche Rechtsgrundlage für die Verarbeitung Art. 6 Abs. 1 lit. b DSGVO.
Die Verarbeitung der personenbezogenen Daten dient uns allein zur Bearbeitung der Kontaktaufnahme. Hierin liegt auch das erforderliche berechtigte Interesse an der Verarbeitung der Daten.
4. Die personenbezogenen Daten der betroffenen Person werden gelöscht oder gesperrt, sobald der Zweck der Speicherung entfällt. Für die personenbezogenen Daten, die per E-Mail übersandt wurden, ist dies dann der Fall, wenn die jeweilige Konversation mit dem Nutzer beendet ist. Beendet ist die Konversation dann, wenn sich aus den Umständen entnehmen lässt, dass der betroffene Sachverhalt abschließend geklärt ist.
Nimmt der Nutzer per E-Mail Kontakt mit uns auf, so kann er der Speicherung seiner personenbezogenen Daten jederzeit widersprechen. In einem solchen Fall kann die Konversation nicht fortgeführt werden.
Eine Speicherung kann darüber hinaus dann erfolgen, wenn dies durch den europäischen oder nationalen Gesetzgeber in unionsrechtlichen Verordnungen, Gesetzen oder sonstigen Vorschriften, denen wir unterliegen, vorgesehen wurde. Eine Sperrung oder Löschung der Daten erfolgt auch dann, wenn eine durch die genannten Normen vorgeschriebene Speicherfrist abläuft, es sei denn, dass eine Erforderlichkeit zur weiteren Speicherung der Daten für einen Vertragsabschluss oder eine Vertragserfüllung besteht.
5. Sofern wir unerwünschte Nachrichten, insbesondere Initiativbewerbungen, Newsletter, Werbung oder ähnliche Nachrichten, über unser Kontaktformular oder per E-Mail erhalten, werden diese weder gelesen, noch auf unserer Bürohardware gespeichert. Die betreffenden Nachrichten werden vielmehr umgehend gelöscht, ohne dass eine Information an den Absender erfolgt. Wir bitten generell darum, von der Zusendung solcher Nachrichten abzusehen. Andernfalls behalten wir uns rechtliche Schritte vor.
## 6. Auskunftsrecht
Sie können von uns eine Bestätigung darüber verlangen, ob personenbezogene Daten, die Sie betreffen, von uns verarbeitet werden.
Liegt eine solche Verarbeitung vor, können Sie von uns über folgende Informationen Auskunft verlangen:
1. die Zwecke, zu denen die personenbezogenen Daten verarbeitet werden;
2. die Kategorien von personenbezogenen Daten, welche verarbeitet werden;
3. die Empfänger bzw. die Kategorien von Empfängern, gegenüber denen die Sie betreffenden personenbezogenen Daten offengelegt wurden oder noch offengelegt werden;
4. die geplante Dauer der Speicherung der Sie betreffenden personenbezogenen Daten oder, falls konkrete Angaben hierzu nicht möglich sind, Kriterien für die Festlegung der Speicherdauer;
5. das Bestehen eines Rechts auf Berichtigung oder Löschung der Sie betreffenden personenbezogenen Daten, eines Rechts auf Einschränkung der Verarbeitung durch uns oder eines Widerspruchsrechts gegen diese Verarbeitung;
6. das Bestehen eines Beschwerderechts bei einer Aufsichtsbehörde;
7. alle verfügbaren Informationen über die Herkunft der Daten, wenn die personenbezogenen Daten nicht bei der betroffenen Person erhoben werden;
8. das Bestehen einer automatisierten Entscheidungsfindung einschließlich Profiling gemäß Art. 22 Abs. 1 und 4 DSGVO und zumindest in diesen Fällen aussagekräftige Informationen über die involvierte Logik sowie die Tragweite und die angestrebten Auswirkungen einer derartigen Verarbeitung für die betroffene Person.
Ihnen steht das Recht zu, Auskunft darüber zu verlangen, ob die Sie betreffenden personenbezogenen Daten in ein Drittland oder an eine internationale Organisation übermittelt werden. In diesem Zusammenhang können Sie verlangen, über die geeigneten Garantien gem. Art. 46 DSGVO im Zusammenhang mit der Übermittlung unterrichtet zu werden.
## 7. Recht auf Berichtigung
Sie haben uns gegenüber ein Recht auf Berichtigung und/oder Vervollständigung, sofern die verarbeiteten personenbezogenen Daten, die Sie betreffen, unrichtig oder unvollständig sind. Wir werden die Berichtigung unverzüglich vornehmen.
## 8. Recht auf Einschränkung der Bearbeitung
Unter den folgenden Voraussetzungen können Sie die Einschränkung der Verarbeitung der Sie betreffenden personenbezogenen Daten verlangen, wenn:
1. Sie die Richtigkeit der Sie betreffenden personenbezogenen für eine Dauer bestreiten, die es uns ermöglicht, die Richtigkeit der personenbezogenen Daten zu überprüfen;
2. die Verarbeitung unrechtmäßig ist und Sie die Löschung der personenbezogenen Daten ablehnen und stattdessen die Einschränkung der Nutzung der personenbezogenen Daten verlangen;
3. wir die personenbezogenen Daten für die Zwecke der Verarbeitung nicht länger benötigt, Sie diese jedoch zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen benötigen, oder
4. Sie Widerspruch gegen die Verarbeitung gemäß Art. 21 Abs. 1 DSGVO eingelegt haben und noch nicht feststeht, ob unsere berechtigten Gründe gegenüber Ihren Gründen überwiegen.
Wurde die Verarbeitung der Sie betreffenden personenbezogenen Daten eingeschränkt, dürfen diese Daten von ihrer Speicherung abgesehen nur mit Ihrer Einwilligung oder zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen oder zum Schutz der Rechte einer anderen natürlichen oder juristischen Person oder aus Gründen eines wichtigen öffentlichen Interesses der Union oder eines Mitgliedstaats verarbeitet werden.
Wurde die Einschränkung der Verarbeitung nach den o.g. Voraussetzungen eingeschränkt, werden Sie von uns unterrichtet bevor die Einschränkung aufgehoben wird.
## 9. Recht auf Löschung
### a) Löschungspflicht
Sie können von uns verlangen, dass die Sie betreffenden personenbezogenen Daten unverzüglich gelöscht werden, sofern einer der folgenden Gründe zutrifft:
1. Die Sie betreffenden personenbezogenen Daten sind für die Zwecke, für die sie erhoben oder auf sonstige Weise verarbeitet wurden, nicht mehr notwendig.
2. Sie widerrufen Ihre Einwilligung, auf die sich die Verarbeitung gem. Art. 6 Abs. 1 lit. a oder Art. 9 Abs. 2 lit. a DSGVO stützte, und es fehlt an einer anderweitigen Rechtsgrundlage für die Verarbeitung.
3. Sie legen gem. Art. 21 Abs. 1 DSGVO Widerspruch gegen die Verarbeitung ein und es liegen keine vorrangigen berechtigten Gründe für die Verarbeitung vor, oder Sie legen gem. Art. 21 Abs. 2 DSGVO Widerspruch gegen die Verarbeitung ein.
4. Die Sie betreffenden personenbezogenen Daten wurden unrechtmäßig verarbeitet.
5. Die Löschung der Sie betreffenden personenbezogenen Daten ist zur Erfüllung einer rechtlichen Verpflichtung nach dem Unionsrecht oder dem Recht der Mitgliedstaaten erforderlich, dem wir unterliegen.
6. Die Sie betreffenden personenbezogenen Daten wurden in Bezug auf angebotene Dienste der Informationsgesellschaft gemäß Art. 8 Abs. 1 DSGVO erhoben.
### b) Information an Dritte
Haben wir die Sie betreffenden personenbezogenen Daten öffentlich gemacht und sind wir gem. Art. 17 Abs. 1 DSGVO zu deren Löschung verpflichtet, so treffen wir unter Berücksichtigung der verfügbaren Technologie und der Implementierungskosten angemessene Maßnahmen, auch technischer Art, um für die Datenverarbeitung Verantwortliche, die die personenbezogenen Daten verarbeiten, darüber zu informieren, dass Sie als betroffene Person von ihnen die Löschung aller Links zu diesen personenbezogenen Daten oder von Kopien oder Replikationen dieser personenbezogenen Daten verlangt haben.
### c) Ausnahmen
Das Recht auf Löschung besteht nicht, soweit die Verarbeitung erforderlich ist
1. zur Ausübung des Rechts auf freie Meinungsäußerung und Information;
2. zur Erfüllung einer rechtlichen Verpflichtung, die die Verarbeitung nach dem Recht der Union oder der Mitgliedstaaten, dem wir unterliegen, erfordert, oder zur Wahrnehmung einer Aufgabe, die im öffentlichen Interesse liegt oder in Ausübung öffentlicher Gewalt erfolgt, die uns übertragen wurde;
3. aus Gründen des öffentlichen Interesses im Bereich der öffentlichen Gesundheit gemäß Art. 9 Abs. 2 lit. h und i sowie Art. 9 Abs. 3 DSGVO;
4. für im öffentlichen Interesse liegende Archivzwecke, wissenschaftliche oder historische Forschungszwecke oder für statistische Zwecke gem. Art. 89 Abs. 1 DSGVO, soweit das unter Abschnitt a) genannte Recht voraussichtlich die Verwirklichung der Ziele dieser Verarbeitung unmöglich macht oder ernsthaft beeinträchtigt, oder
5. zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen.
## 10. Recht auf Unterrichtung
Haben Sie das Recht auf Berichtigung, Löschung oder Einschränkung der Verarbeitung uns gegenüber geltend gemacht, sind wir verpflichtet, allen Empfängern, denen die Sie betreffenden personenbezogenen Daten offengelegt wurden, diese Berichtigung oder Löschung der Daten oder Einschränkung der Verarbeitung mitzuteilen, es sei denn, dies erweist sich als unmöglich oder ist mit einem unverhältnismäßigen Aufwand verbunden.
Ihnen steht uns gegenüber das Recht zu, über diese Empfänger unterrichtet zu werden.
## 11. Recht auf Datenübertragbarkeit
Sie haben das Recht, die Sie betreffenden personenbezogenen Daten, die Sie uns bereitgestellt haben, in einem strukturierten, gängigen und maschinenlesbaren Format zu erhalten. Außerdem haben Sie das Recht diese Daten einem anderen Verantwortlichen ohne Behinderung durch uns, sofern
1. die Verarbeitung auf einer Einwilligung gem. Art. 6 Abs. 1 lit. a DSGVO oder Art. 9 Abs. 2 lit. a DSGVO oder auf einem Vertrag gem. Art. 6 Abs. 1 lit. b DSGVO beruht und
2. die Verarbeitung mithilfe automatisierter Verfahren erfolgt.
In Ausübung dieses Rechts haben Sie ferner das Recht, zu erwirken, dass die Sie betreffenden personenbezogenen Daten direkt von uns einem anderen Verantwortlichen übermittelt werden, soweit dies technisch machbar ist. Freiheiten und Rechte anderer Personen dürfen hierdurch nicht beeinträchtigt werden.
Das Recht auf Datenübertragbarkeit gilt nicht für eine Verarbeitung personenbezogener Daten, die für die Wahrnehmung einer Aufgabe erforderlich ist, die im öffentlichen Interesse liegt oder in Ausübung öffentlicher Gewalt erfolgt, die uns übertragen wurde.
## 12. Widerrufs- und Widerspruchsrecht
Sie haben das Recht, aus Gründen, die sich aus ihrer besonderen Situation ergeben, jederzeit gegen die Verarbeitung der Sie betreffenden personenbezogenen Daten, die aufgrund von Art. 6 Abs. 1 lit. e oder f DSGVO erfolgt, Widerspruch einzulegen; dies gilt auch für ein auf diese Bestimmungen gestütztes Profiling.
Wir verarbeiten sodann die Sie betreffenden personenbezogenen Daten nicht mehr, es sei denn, wir können zwingende schutzwürdige Gründe für die Verarbeitung nachweisen, die Ihre Interessen, Rechte und Freiheiten überwiegen, oder die Verarbeitung dient der Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen.
Werden die Sie betreffenden personenbezogenen Daten verarbeitet, um Direktwerbung zu betreiben, haben Sie das Recht, jederzeit Widerspruch gegen die Verarbeitung der Sie betreffenden personenbezogenen Daten zum Zwecke derartiger Werbung einzulegen; dies gilt auch für das Profiling, soweit es mit solcher Direktwerbung in Verbindung steht.
Widersprechen Sie der Verarbeitung für Zwecke der Direktwerbung, so werden die Sie betreffenden personenbezogenen Daten nicht mehr für diese Zwecke verarbeitet.
Sie haben die Möglichkeit, im Zusammenhang mit der Nutzung von Diensten der Informationsgesellschaft ungeachtet der Richtlinie 2002/58/EG Ihr Widerspruchsrecht mittels automatisierter Verfahren auszuüben, bei denen technische Spezifikationen verwendet werden.
Recht auf Widerruf der datenschutzrechtlichen Einwilligungserklärung
Sie haben das Recht, Ihre datenschutzrechtliche Einwilligungserklärung jederzeit zu widerrufen. Durch den Widerruf der Einwilligung wird die Rechtmäßigkeit der aufgrund der Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt.
## 13. Recht auf Beschwerde bei einer Aufsichtsbehörde
Unbeschadet eines anderweitigen verwaltungsrechtlichen oder gerichtlichen Rechtsbehelfs steht Ihnen das Recht auf Beschwerde bei einer Aufsichtsbehörde, insbesondere in dem Mitgliedstaat ihres Aufenthaltsorts, ihres Arbeitsplatzes oder des Orts des mutmaßlichen Verstoßes, zu, wenn Sie der Ansicht sind, dass die Verarbeitung der Sie betreffenden personenbezogenen Daten gegen die DSGVO verstößt.
Die Aufsichtsbehörde, bei der die Beschwerde eingereicht wurde, unterrichtet den Beschwerdeführer über den Stand und die Ergebnisse der Beschwerde einschließlich der Möglichkeit eines gerichtlichen Rechtsbehelfs nach Art. 78 DSGVO.
## 14. Geheimhaltung
1. Wir werden über alle vertraulich zu behandelnden Informationen, die uns im Rahmen des Vertragsverhältnisses zur Kenntnis gelangt sind, Stillschweigen bewahren bzw. diese nur im vorher hergestellten Einvernehmen des jeweils anderen Vertragspartners Dritten gegenüber gleich zu welchem Zweck verwenden. Zu den als vertraulich zu behandelnden Informationen zählen die von der informationsgebenden Partei ausdrücklich als vertraulich bezeichneten Informationen und solche Informationen, deren Vertraulichkeit sich aus den Umständen der Überlassung eindeutig ergibt. Durch uns vertraulich zu behandeln sind insbesondere Ihre personenbezogenen Daten sowie die verwendeten Daten, sollten wir von diesen Kenntnis erlangen.
2. Die Verpflichtungen nach Abs. 1 entfallen für solche Informationen oder Teile davon, für die wir nachweisen, dass sie
- uns vor dem Empfangsdatum bekannt oder allgemein zugänglich waren;
- der Öffentlichkeit vor dem Empfangsdatum bekannt oder allgemein zugänglich waren;
- der Öffentlichkeit nach dem Empfangsdatum bekannt oder allgemein zugänglich wurden, ohne dass wir hierfür verantwortlich sind.
3. Öffentliche Erklärungen der Parteien über eine Zusammenarbeit werden nur im vorherigen gegenseitigem Einvernehmen abgegeben.
4. Die Verpflichtungen nach Abs. 1 bestehen auch über das Vertragsende hinaus auf unbestimmte Zeit, und zwar so lange, wie ein Ausnahmetatbestand nach Abs. 2 nicht nachgewiesen ist.
## 15. Geltungsbereich
Diese Datenschutzerklärung gilt für die Dienste der Frank & Prade GbR auf der Internetseite www.basiskonfiguration.de.
## 16. Abrufbarkeit der Datenschutzerklärung
Sie können diese Datenschutzerklärung von jeder Seite der Website www.basiskonfiguration.de unter dem Link „Datenschutzerklärung“ abrufen und ausdrucken.
## 17. Aktualität dieser Datenschutzerklärung
Diese Datenschutzerklärung ist aktuell gültig und datiert vom 24.05.2018.
Sofern sich Umstände ergeben, die eine neue Datenschutzerklärung erfordern, wird die aktualisierte Datenschutzerklärung an dieser Stelle veröffentlicht und gilt ab dem Veröffentlichungsdatum.