Preise im Blog immer inkl. 19 % MwSt.

This commit is contained in:
2026-09-22 12:36:11 +02:00
parent 4754025e7d
commit b9a906d6e2
5 changed files with 156 additions and 147 deletions

View File

@@ -298,14 +298,12 @@ const brief = {
},
schreibregeln: {
preise: 'Preise niemals ausschreiben. Immer den Shortcode einsetzen: '
+ '[skrift_preis key="SCHLUESSEL" ab="0|1" brutto="0|1"]. '
+ 'key ist der Produktschluessel (z. B. briefe, postkarten, porto_inland). '
+ 'ab=1 liefert den guenstigsten Staffelpreis, ab=0 den Standardpreis. '
+ 'brutto=1 inkl. MwSt., brutto=0 netto. Das Wort "ab" selbst gehoert in den Fliesstext, '
+ 'der Shortcode liefert nur die Zahl. Beispiel: '
+ 'Handschriftliche Briefe ab [skrift_preis key="briefe" ab="1"] pro Stueck. '
+ 'Ein unbekannter key ergibt eine leere Ausgabe, keinen Fehler.',
preise: 'Preise niemals ausschreiben. Immer den Shortcode einsetzen, immer inklusive MwSt.: '
+ '[skrift_preis key="SCHLUESSEL" ab="0|1" brutto="1"]. '
+ 'key ist der Produktschluessel (briefe, postkarten). ab=1 liefert den guenstigsten Staffelpreis, '
+ 'ab=0 den Standardpreis. brutto ist immer 1. Hinter dem Preis steht immer "inkl. 19 % MwSt.", '
+ 'nie "netto", "brutto" oder "zzgl.". Das Wort "ab" gehoert in den Fliesstext. Beispiel: '
+ 'Handschriftliche Briefe ab [skrift_preis key="briefe" ab="1" brutto="1"] pro Stueck inkl. 19 % MwSt.',
faq: 'FAQ nicht in content_html schreiben, sondern als Feld faq mit Frage-Antwort-Paaren. '
+ 'Die Ausgabe im Beitrag uebernimmt der Shortcode [skrift_faq].',
kurzantwort: 'Ein Absatz, der die Hauptfrage direkt beantwortet, als eigenes Feld kurzantwort.',

View File

@@ -84,6 +84,15 @@ function stilpruefung(artikel) {
add('Kein Praxiswissen hinterlegt', 'Feld "praxis" in artikel-index.json fuellen, dann den Artikel darauf aufbauen');
}
// 7b) Preise: immer inkl. MwSt., Formulierung "inkl. 19 % MwSt."
const alleTexte = [String(artikel.kurzantwort || ''), html,
...(Array.isArray(artikel.faq) ? artikel.faq.map(f => String(f.antwort || '')) : [])].join(' ');
(alleTexte.match(/\[skrift_preis[^\]]*\]/g) || []).forEach(s => {
if (!/brutto="1"/.test(s)) add('Preis ohne MwSt.', `${s} braucht brutto="1"`);
});
const nb = ohneTags(alleTexte.replace(/\[skrift_preis[^\]]*\]/g, 'PREIS')).match(/[^.]{0,40}\b(netto|brutto|zzgl\.?|zuzüglich)\b[^.]{0,30}/gi) || [];
nb.forEach(s => add('Preisangabe: "netto"/"brutto" statt "inkl. 19 % MwSt."', s.trim()));
// 8) Interne Links: primaer auf Business-Leistungsseiten
const B = 'https://skrift.de/';
const BUSINESS = ['handgeschriebene-businessbriefe', 'handgeschriebene-postkarten',