Zum Inhalt springen
星罗
Suche
Sprache wechseln
Zurück

Konfigurationsleitfaden

2 Min. Lesezeit Auf GitHub bearbeiten

Alle konfigurierbaren Optionen von Xingluo befinden sich in der Root-Datei xingluo.config.ts. Die Datei bietet vollständige Typeinschränkungen über defineXingluoConfig; Änderungen werden sofort wirksam, ohne den Quellcode zu berühren.

site

ts
site: { url: "https://xingluo.example.com/", // Site-URL, für absolute Links, RSS, Sitemap title: "Xingluo", // Site-Titel description: "Ein modernes Blog-CMS erstellt mit Astro und shadcn", author: "Xingluo", // Standard-Autorenname profile: "https://xingluo.example.com", // Autoren-Startseite (verwendet für JSON-LD) ogImage: "default-og.jpg", // Standard-OG-Bild (im public-Verzeichnis) lang: "zh-cn", // Standardsprache timezone: "Asia/Shanghai", // Zeitzone (Beitragsdatum-Anzeige) dir: "ltr", // Textrichtung: ltr | rtl googleVerification: "", // Google Search Console-Verifizierungswert (oder via env var) }
FeldStandardNotizen
urlerforderlichSite-Stamm-URL; muss mit / enden
titleerforderlichSite-Titel, verwendet in <title> und OG
descriptionerforderlichSite-Beschreibung, verwendet in Meta und RSS
authorerforderlichStandard-Autor; Beitrags-Frontmatter fällt darauf zurück
profile—Autoren-Startseite, injiziert in JSON-LD author.url
ogImagedefault-og.jpgStandard-OG-Bilddateiname, befindet sich in public/
langerforderlichStandard-Sprachcode; muss mit i18n.defaultLocale in astro.config.ts übereinstimmen
timezoneAsia/Shanghaidayjs-Zeitzone, beeinflusst die Datumsanzeige von Beiträgen
dirltrTextrichtung
googleVerification—Google-Verifizierungswert; kann auch über die Umgebungsvariable PUBLIC_GOOGLE_SITE_VERIFICATION injiziert werden

posts

ts
posts: { perPage: 8, // Beiträge pro Listenseite perIndex: 5, // Auf der Startseite angezeigte Beiträge scheduledPostMargin: 900000, // Toleranz für zeitgesteuerte Veröffentlichung (ms), 15 Minuten }
  • perPage: Seitengröße für /posts/[...page] und /tags/[tag]/[...page]
  • perIndex: Anzahl der auf der Startseite im Bereich “Neueste” angezeigten Beiträge
  • scheduledPostMargin: Zukünftige Beiträge innerhalb dieses Fensters werden als veröffentlicht behandelt (wirksam in Produktion; dev zeigt alle)

features

ts
features: { lightAndDarkMode: true, dynamicOgImage: true, showArchives: true, showBackButton: true, editPost: { enabled: true, url: "https://github.com/.../edit/main/" }, search: "flexsearch", mdx: true, comments: { provider: false /* giscus | twikoo | waline */ }, players: { aplayer: false, dplayer: false }, }
FeldStandardNotizen
lightAndDarkModetrueHell/Dunkel-Modus-Umschaltung aktivieren
dynamicOgImagetrueOG-Bilder dynamisch generieren (satori + sharp)
showArchivestrueArchivseite anzeigen (Sitemap filtert entsprechend bei Deaktivierung)
showCategoriestrueKategorieseite und Navigationseintrag anzeigen (Sitemap filtert entsprechend)
showBackButtontrueZurück-Button auf Beitragsseiten anzeigen
editPost.enabledfalseLink “Diese Seite bearbeiten” anzeigen
editPost.url""Bearbeitungslink-Präfix; der relative Quellpfad des Beitrags wird angehängt
search"flexsearch"Suchlösung: "flexsearch" oder false
mdxtrueMDX-Parsing und -Rendering aktivieren (siehe Inhaltserstellung)
comments{provider:false}Kommentarsystem-Konfiguration (siehe Kommentarsystem)
players.aplayerfalseAPlayer-Audioplayer aktivieren (siehe Medienplayer)
players.dplayerfalseDPlayer-Videoplayer aktivieren

editPost

editPost.url ist ein Repository-Bearbeitungs-URL-Präfix; Xingluo hängt den relativen Quellpfad des Beitrags an (src/content/posts/...). Beispiel:

ts
editPost: { enabled: true, url: "https://github.com/owner/repo/edit/main/" }

Der Beitrag src/content/posts/welcome.md erzeugt den Link https://github.com/owner/repo/edit/main/src/content/posts/welcome.md.

socials

ts
socials: [ { name: "github", url: "https://github.com/xingluo/blog" }, { name: "x", url: "https://x.com/xingluo" }, { name: "mail", url: "mailto:[email protected]" }, ];
  • name: Symbolname, entsprechend src/assets/icons/socials/{name}.astro. Integriert: github, x, mail, facebook, telegram, weibo
  • url: Link-URL; mailto: für E-Mail
  • linkTitle: optionaler zugänglicher Titel; bei Weglassen automatisch aus dem Namen generiert

Soziale Plattform hinzufügen: Erstellen Sie eine .astro-Symbolkomponente mit demselben Namen unter src/assets/icons/socials/. src/lib/socialIcons.ts sammelt sie automatisch über import.meta.glob.

ts
shareLinks: [ { name: "x", url: "https://x.com/intent/post?url=" }, { name: "facebook", url: "https://www.facebook.com/sharer.php?u=" }, { name: "telegram", url: "https://t.me/share/url?url=" }, { name: "weibo", url: "https://service.weibo.com/share/share.php?url=" }, { name: "mail", url: "mailto:?subject=...&body=" }, ];

Diese Teilen-Einträge erscheinen am unteren Rand von Beitragsseiten. url ist ein Teilen-URL-Präfix; Xingluo hängt die absolute URL des aktuellen Beitrags an. name wird ebenfalls einem Symbol unter src/assets/icons/socials/ zugeordnet.

Umgebungsvariablen

Deklariert über env.schema in astro.config.ts:

VariableZugriffsebeneBeschreibung
PUBLIC_GOOGLE_SITE_VERIFICATIONpublic/clientGoogle Search Console-Verifizierungswert, optional

Beispiel (PowerShell):

powershell
$env:PUBLIC_GOOGLE_SITE_VERIFICATION = "ihr-verifizierungscode" pnpm build

Der Wert wird in config.site.googleVerification injiziert und als <meta name="google-site-verification"> gerendert.

Vollständiges Beispiel

Siehe xingluo.config.ts. Die Abschnitte features.comments und features.players enthalten auskommentierte Beispiele für giscus / twikoo / waline; kommentieren Sie sie aus und füllen Sie echte Werte ein, um sie zu aktivieren.


Verwandte Beiträge

  • Bereitstellung

    2 Min. Lesezeit

    Bereitstellungsleitfaden für Xingluo mit statischen Hosting-Plattformen (Netlify/Vercel/GitHub Pages), Nginx-Self-Hosting, Docker und Umgebungsvariablen.

  • Suche

    1 Min. Lesezeit

    Suchleitfaden für Xingluo mit Flexsearch-Volltextsuche-Integration, Indexgenerierung, UI, mehrsprachiger Suche und Leistung.