diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz index 7507807..3709ff3 100644 Binary files a/.yarn/install-state.gz and b/.yarn/install-state.gz differ diff --git a/.yarnrc.yml b/.yarnrc.yml index 3931d19..ea7d98a 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -1,7 +1,8 @@ nodeLinker: node-modules plugins: - - path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs - spec: "@yarnpkg/plugin-interactive-tools" + - path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs + spec: "@yarnpkg/plugin-interactive-tools" yarnPath: .yarn/releases/yarn-3.2.0.cjs +checksumBehavior: update diff --git a/api/collections/general.yml b/api/collections/general.yml index 8373452..0c984ef 100644 --- a/api/collections/general.yml +++ b/api/collections/general.yml @@ -22,237 +22,51 @@ meta: primaryText: firstname columns: - public - - firstname - - lastname - - companyName # Desktop - type: table mediaQuery: "(min-width:600px)" columns: - public - - firstname - - lastname - - companyName + - meta.metaTitle - tabsSection: + tablist: meta: - expand: media + expand: general tabs: - name: general meta: label: { de: "Allgemein", en: "General" } - fields: - - name: public - type: boolean - meta: - defaultValue: true - label: - de: Veröffentlicht - en: Public - helperText: - de: "Alle allgemeinen Informationen werden auf der Seite angezeigt." - en: "All general information are displayed on the page." + subFields: + - source: public + - source: meta.metaDescription + - name: meta meta: label: { de: "Meta", en: "Meta" } - fields: - - name: meta - type: object - subFields: - - name: metaTitle - type: string - meta: - label: { de: "Titel der Webseite", en: "Page Title" } - - name: metaDescription - type: string - meta: - label: { de: "Beschreibung der Webseite", en: "Page Description" } - - name: metaTagRobots - type: string[] - meta: - widget: chipArray - label: - de: Robots - en: Robots - defaultValue: [] - autocomplete: true - choices: - - { id: "noindex", name: "noindex" } - - { id: "index", name: "index" } - - { id: "follow", name: "follow" } - - { id: "nofollow", name: "nofollow" } - - { id: "noimageindex", name: "noimageindex" } - - { id: "none", name: "none" } - - { id: "noarchive", name: "noarchive" } - - { id: "nocache", name: "nocache" } - - { id: "nosnippet", name: "nosnippet" } - - { id: "nnavailable_after", name: "nnavailable_after" } - helperText: - de: "Noindex: Weist eine Suchmaschine an, eine Seite nicht zu indizieren.
index: Weist eine Suchmaschine an, eine Seite zu indizieren. Beachten Sie, dass Sie dieses Meta-Tag nicht hinzufügen müssen; es ist die Voreinstellung.
follow: Auch wenn die Seite nicht indexiert ist, sollte der Crawler allen Links auf einer Seite folgen und Eigenkapital an die verlinkten Seiten weitergeben.
nofollow: Weist einen Crawler an, keinen Links auf einer Seite zu folgen oder Link-Equity weiterzugeben.
noimageindex: Weist einen Crawler an, keine Bilder auf einer Seite zu indizieren.
none: Entspricht der gleichzeitigen Verwendung der noindex- und nofollow-Tags.
noarchive: Suchmaschinen sollten keinen zwischengespeicherten Link zu dieser Seite auf einem SERP anzeigen.
nocache: Wie noarchive, aber nur von Internet Explorer und Firefox verwendet.
nosnippet: Weist eine Suchmaschine an, kein Snippet dieser Seite (d. h. Meta-Beschreibung) dieser Seite auf einem SERP anzuzeigen.
nnavailable_after: Suchmaschinen sollen diese Seite nach einem bestimmten Datum nicht mehr indexieren.
" - en: "Noindex: Tells a search engine not to index a page.
index: Tells a search engine to index a page. Note that you don’t need to add this meta tag; it’s the default.
follow: Even if the page isn’t indexed, the crawler should follow all the links on a page and pass equity to the linked pages.
nofollow: Tells a crawler not to follow any links on a page or pass along any link equity.
noimageindex: Tells a crawler not to index any images on a page.
none: Equivalent to using both the noindex and nofollow tags simultaneously.
noarchive: Search engines should not show a cached link to this page on a SERP.
nocache: Same as noarchive, but only used by Internet Explorer and Firefox.
nosnippet: Tells a search engine not to show a snippet of this page (i.e. meta description) of this page on a SERP.
nnavailable_after: Search engines should no longer index this page after a particular date.
" - - name: metaKeywords - type: string - meta: - label: { de: "SEO / Schlüsselwörter", en: "SEO / Keywords" } - helperText: - de: "Beispiel: Stichwort1, Stichwort2, Stichwort3" - en: "Example: keyword1, keyword2, keyword3" + source: meta + subFields: + - source: meta + - name: person meta: label: { de: "Person", en: "Person" } - fields: - - name: person - type: object - subFields: - - name: salutation - type: string - meta: - label: { de: "Anrede", en: "Salutation" } - - name: firstname - type: string - meta: - label: { de: "Vorname", en: "Firstname" } - - name: lastname - type: string - meta: - label: { de: "Nachname", en: "Lastname" } - - name: additional - type: string - meta: - label: { de: "Zusatz", en: "Additional" } - - name: street - type: string - meta: - label: { de: "Straße", en: "Street" } - - name: postcode - type: string - meta: - label: { de: "Postleitzahl", en: "Postcode" } - - name: city - type: string - meta: - label: { de: "Ort", en: "City" } - - name: tel - type: string - meta: - label: { de: "Telefonnummer", en: "Phone number" } - - name: fax - type: string - meta: - label: { de: "Faxnummer", en: "Fax number" } - - name: mobile - type: string - meta: - label: { de: "Handynummer", en: "Mobile number" } - - name: email - type: string - meta: - label: { de: "E-Mail", en: "E-Mail" } + subFields: + - source: person - name: company meta: label: { de: "Unternehmen", en: "Company" } - fields: - - name: person - type: object - subFields: - - name: companyName - type: string - meta: - label: { de: "Name des Unternehmens", en: "Company Name" } - - name: companyWebUrl - type: string - meta: - label: { de: "URL zur Webseite", en: "Website URL" } - - name: companyAddresses - type: object[] - meta: - label: - de: Adresse - en: Adresse - css: - subFields: - - name: street - type: string - meta: - label: { de: "Straße", en: "Street" } - - name: houseNr - type: string - meta: - label: { de: "Hausnummer", en: "House number" } - - name: postcode - type: string - meta: - label: { de: "PLZ", en: "ZIP" } - - name: city - type: string - meta: - label: { de: "Ort", en: "City" } - - name: tel - type: string - meta: - label: { de: "Telefon", en: "Phone number" } - - name: fax - type: string - meta: - label: { de: "Fax", en: "Fax" } - - name: email - type: string - meta: - label: { de: "E-Mail", en: "E-Mail" } + subFields: + - source: company - name: media meta: label: { de: "Medien", en: "Media" } - fields: - - name: media - type: object - subFields: - - name: favicon - type: file - meta: - label: { de: "Favicon", en: "Favicon" } - helperText: - de: "Ein Favicon ist ein kleines Icon, Symbol oder Logo, das von Webbrowsern verwendet wird, um eine Website auf wiedererkennbare Weise zu kennzeichnen." - en: "A favicon is a small icon, symbol, or logo used by web browsers to identify a website in a recognizable way." - - name: brand - type: file - meta: - label: { de: "Logo / Brand", en: "Logo / Brand" } - helperText: - de: "Logo der Seite" - en: "Page Logo" - - name: mediaFiles - type: object[] - meta: - label: { de: "Dateien", en: "Files" } - subFields: - - name: title - type: string - meta: - label: { de: "Datei-Titel", en: "File Title" } - - name: alternateText - type: string - meta: - label: { de: "Alternativer Text", en: "Alternate Text" } - - name: id - type: string - meta: - editableWhileCreating: true - label: { de: "Technischer Name / ID", en: "Technical name / ID" } - helperText: - de: "Achtung: Eine technische ID ist meist fest im Code der Seite verknüpft und darf, wenn sie einmal gesetzt wurde, nicht verändert werden!" - en: "Attention: A technical ID is usually permanently linked in the code of the page and, once it has been set, must not be changed!" - - name: file - type: file - meta: - label: { de: "Datei", en: "File" } + subFields: + - source: media - name: copyright meta: label: { de: "Copyright", en: "Copyright" } - fields: - - name: copyrightText - type: string - meta: - label: { de: "Copyright Text", en: "Copyright Text" } + subFields: + - source: copyrightText imageFilter: xs: @@ -307,4 +121,210 @@ permissions: put: false delete: false -fields: [] +fields: + - name: public + type: boolean + meta: + hideInRoot: true + defaultValue: true + label: + de: Veröffentlicht + en: Public + helperText: + de: "Alle allgemeinen Informationen werden auf der Seite angezeigt." + en: "All general information are displayed on the page." + + - name: meta + type: object + meta: + hideInRoot: true + subFields: + - name: metaTitle + type: string + meta: + label: { de: "Titel der Webseite", en: "Page Title" } + - name: metaDescription + type: string + meta: + label: { de: "Beschreibung der Webseite", en: "Page Description" } + - name: metaTagRobots + type: string[] + meta: + widget: chipArray + label: + de: Robots + en: Robots + defaultValue: [] + autocomplete: true + choices: + - { id: "noindex", name: "noindex" } + - { id: "index", name: "index" } + - { id: "follow", name: "follow" } + - { id: "nofollow", name: "nofollow" } + - { id: "noimageindex", name: "noimageindex" } + - { id: "none", name: "none" } + - { id: "noarchive", name: "noarchive" } + - { id: "nocache", name: "nocache" } + - { id: "nosnippet", name: "nosnippet" } + - { id: "nnavailable_after", name: "nnavailable_after" } + helperText: + de: "Noindex: Weist eine Suchmaschine an, eine Seite nicht zu indizieren.
index: Weist eine Suchmaschine an, eine Seite zu indizieren. Beachten Sie, dass Sie dieses Meta-Tag nicht hinzufügen müssen; es ist die Voreinstellung.
follow: Auch wenn die Seite nicht indexiert ist, sollte der Crawler allen Links auf einer Seite folgen und Eigenkapital an die verlinkten Seiten weitergeben.
nofollow: Weist einen Crawler an, keinen Links auf einer Seite zu folgen oder Link-Equity weiterzugeben.
noimageindex: Weist einen Crawler an, keine Bilder auf einer Seite zu indizieren.
none: Entspricht der gleichzeitigen Verwendung der noindex- und nofollow-Tags.
noarchive: Suchmaschinen sollten keinen zwischengespeicherten Link zu dieser Seite auf einem SERP anzeigen.
nocache: Wie noarchive, aber nur von Internet Explorer und Firefox verwendet.
nosnippet: Weist eine Suchmaschine an, kein Snippet dieser Seite (d. h. Meta-Beschreibung) dieser Seite auf einem SERP anzuzeigen.
nnavailable_after: Suchmaschinen sollen diese Seite nach einem bestimmten Datum nicht mehr indexieren.
" + en: "Noindex: Tells a search engine not to index a page.
index: Tells a search engine to index a page. Note that you don’t need to add this meta tag; it’s the default.
follow: Even if the page isn’t indexed, the crawler should follow all the links on a page and pass equity to the linked pages.
nofollow: Tells a crawler not to follow any links on a page or pass along any link equity.
noimageindex: Tells a crawler not to index any images on a page.
none: Equivalent to using both the noindex and nofollow tags simultaneously.
noarchive: Search engines should not show a cached link to this page on a SERP.
nocache: Same as noarchive, but only used by Internet Explorer and Firefox.
nosnippet: Tells a search engine not to show a snippet of this page (i.e. meta description) of this page on a SERP.
nnavailable_after: Search engines should no longer index this page after a particular date.
" + - name: metaKeywords + type: string + meta: + label: { de: "SEO / Schlüsselwörter", en: "SEO / Keywords" } + helperText: + de: "Beispiel: Stichwort1, Stichwort2, Stichwort3" + en: "Example: keyword1, keyword2, keyword3" + + - name: person + type: object + meta: + hideInRoot: true + subFields: + - name: salutation + type: string + meta: + label: { de: "Anrede", en: "Salutation" } + - name: firstname + type: string + meta: + label: { de: "Vorname", en: "Firstname" } + - name: lastname + type: string + meta: + label: { de: "Nachname", en: "Lastname" } + - name: additional + type: string + meta: + label: { de: "Zusatz", en: "Additional" } + - name: street + type: string + meta: + label: { de: "Straße", en: "Street" } + - name: postcode + type: string + meta: + label: { de: "Postleitzahl", en: "Postcode" } + - name: city + type: string + meta: + label: { de: "Ort", en: "City" } + - name: tel + type: string + meta: + label: { de: "Telefonnummer", en: "Phone number" } + - name: fax + type: string + meta: + label: { de: "Faxnummer", en: "Fax number" } + - name: mobile + type: string + meta: + label: { de: "Handynummer", en: "Mobile number" } + - name: email + type: string + meta: + label: { de: "E-Mail", en: "E-Mail" } + + - name: company + type: object + meta: + hideInRoot: true + subFields: + - name: companyName + type: string + meta: + label: { de: "Name des Unternehmens", en: "Company Name" } + - name: companyWebUrl + type: string + meta: + label: { de: "URL zur Webseite", en: "Website URL" } + - name: companyAddresses + type: object[] + meta: + label: + de: Adresse + en: Adresse + css: + subFields: + - name: street + type: string + meta: + label: { de: "Straße", en: "Street" } + - name: houseNr + type: string + meta: + label: { de: "Hausnummer", en: "House number" } + - name: postcode + type: string + meta: + label: { de: "PLZ", en: "ZIP" } + - name: city + type: string + meta: + label: { de: "Ort", en: "City" } + - name: tel + type: string + meta: + label: { de: "Telefon", en: "Phone number" } + - name: fax + type: string + meta: + label: { de: "Fax", en: "Fax" } + - name: email + type: string + meta: + label: { de: "E-Mail", en: "E-Mail" } + + - name: media + type: object + meta: + hideInRoot: true + subFields: + - name: favicon + type: file + meta: + label: { de: "Favicon", en: "Favicon" } + helperText: + de: "Ein Favicon ist ein kleines Icon, Symbol oder Logo, das von Webbrowsern verwendet wird, um eine Website auf wiedererkennbare Weise zu kennzeichnen." + en: "A favicon is a small icon, symbol, or logo used by web browsers to identify a website in a recognizable way." + - name: brand + type: file + meta: + label: { de: "Logo / Brand", en: "Logo / Brand" } + helperText: + de: "Logo der Seite" + en: "Page Logo" + - name: mediaFiles + type: object[] + meta: + label: { de: "Dateien", en: "Files" } + subFields: + - name: title + type: string + meta: + label: { de: "Datei-Titel", en: "File Title" } + - name: alternateText + type: string + meta: + label: { de: "Alternativer Text", en: "Alternate Text" } + - name: id + type: string + meta: + editableWhileCreating: true + label: { de: "Technischer Name / ID", en: "Technical name / ID" } + helperText: + de: "Achtung: Eine technische ID ist meist fest im Code der Seite verknüpft und darf, wenn sie einmal gesetzt wurde, nicht verändert werden!" + en: "Attention: A technical ID is usually permanently linked in the code of the page and, once it has been set, must not be changed!" + - name: file + type: file + meta: + label: { de: "Datei", en: "File" } + + - name: copyrightText + type: string + meta: + hideInRoot: true + label: { de: "Copyright Text", en: "Copyright Text" }