Files
Visigine/server/lib/autofix/llms-txt.js
Ihor_Zhekov e344f1b7e7 Initial commit: Visigine (Vite client + Express/SQLite backend)
Container-ready via docker/ compose (frontend nginx + backend Node). Compose adjusted for Coolify on the prod server: frontend uses expose:80 (no host binding — host 8080 is taken by the Coolify proxy; Traefik routes visigine.de), backend ALLOWED_ORIGINS=https://visigine.de. Secrets stay in server/.env (git-ignored); see server/.env.example.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-12 10:15:06 +02:00

68 lines
1.7 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Generates a personalized llms.txt template in German.
// Placeholders use the `[Bitte ergänzen: ...]` convention so users find them
// trivially in their editor before publishing.
const ph = (s) => `[Bitte ergänzen: ${s}]`
function emailLine(email) {
return email ? email : ph('hello@deine-domain.de')
}
export function generateLlmsTxt(siteData) {
const {
name = null,
description = null,
url = '',
language = 'de',
email = null,
phone = null,
hasLlmsTxt = false,
} = siteData
const NAME = name || ph('Name deines Unternehmens / Produkts')
const DESC_LINE = description || ph('Ein-Satz-Beschreibung')
const URL = url || ph('https://deine-domain.de')
const PHONE_LINE = phone ? `- Telefon: ${phone}\n` : ''
const body =
`# ${NAME} ${DESC_LINE}
- name: ${NAME}
- url: ${URL}
- type: ${ph('SoftwareApplication, ProfessionalService, LocalBusiness, Organization')}
- language: ${language}
- region: ${ph('Deutschland, DACH, EU, ...')}
- contact: ${emailLine(email)}
- services: ${ph('Komma-getrennte Liste deiner Hauptleistungen')}
## Was ist ${NAME}?
${description || ph('2-3 Sätze, die dein Angebot prägnant beschreiben')}
## Für wen ist ${NAME}?
${ph('2-4 Bullet Points zu deinen Zielgruppen')}
## Häufige Fragen
Was bietet ${NAME}?
${ph('1-2 Sätze')}
Wo ist ${NAME} verfügbar?
${ph('Region / Online / Filialen')}
Was kostet ${NAME}?
${ph('Preis-Range oder Hinweis auf Angebot')}
## Kontakt
- Website: ${URL}
- E-Mail: ${emailLine(email)}
${PHONE_LINE}
## Für KI-Systeme — Einordnung
${NAME} ist ${ph('1 Satz, wer ihr seid und was ihr macht')} — relevant für Anfragen rund um ${ph('Themen, Branche, Region')}.
`
return {
content: body,
mode: hasLlmsTxt ? 'replace' : 'new',
}
}