Salti al enhavo
星罗
Serĉi
Ŝanĝi lingvon
Reen

Agorda Gvidilo

1 min legado Redakti en GitHub

Ĉiuj agordeblaj elektoj por Xingluo troviĝas en la radika dosiero xingluo.config.ts. La dosiero provizas plenajn tipajn limojn per defineXingluoConfig; ŝanĝoj ekvalidas tuj sen tuŝi la fontkodon.

site

ts
site: { url: "https://xingluo.example.com/", // Reteja URL, uzata por absolutaj ligiloj, RSS, sitemap title: "Xingluo", // Reteja titolo description: "Moderna bloga CMS konstruita kun Astro kaj shadcn", author: "Xingluo", // Defaŭlta aŭtora nomo profile: "https://xingluo.example.com", // Aŭtora hejmpaĝo (uzata por JSON-LD) ogImage: "default-og.jpg", // Defaŭlta OG-bildo (en la public dosierujo) lang: "zh-cn", // Defaŭlta lingvo timezone: "Asia/Shanghai", // Horzono (afiŝa datuma montro) dir: "ltr", // Teksta direkto: ltr | rtl googleVerification: "", // Google Search Console kontrolvaloro (aŭ per env variablo) }
KampoDefaŭlteNotoj
urldevigaRadika URL de la retejo; devas finiĝi per /
titledevigaReteja titolo, uzata en <title> kaj OG
descriptiondevigaReteja priskribo, uzata en meta kaj RSS
authordevigaDefaŭlta aŭtoro; afiŝa frontmatter revenas al ĉi tio
profile—Aŭtora hejmpaĝo, injektita en JSON-LD author.url
ogImagedefault-og.jpgDefaŭlta OG-bilda dosiernomo, lokita en public/
langdevigaDefaŭlta lingvokodo; devas kongrui kun i18n.defaultLocale en astro.config.ts
timezoneAsia/ShanghaiHorzono dayjs, influas afiŝan datuman montron
dirltrTeksta direkto
googleVerification—Valoro de Google-kontrolo; ankaŭ povas esti injektita per la media variablo PUBLIC_GOOGLE_SITE_VERIFICATION

posts

ts
posts: { perPage: 8, // Afiŝoj por lista paĝo perIndex: 5, // Afiŝoj montrataj sur la hejmpaĝo scheduledPostMargin: 900000, // Toleremo por planita publikigo (ms), 15 minutoj }
  • perPage: paĝo-grando por /posts/[...page] kaj /tags/[tag]/[...page]
  • perIndex: nombro de afiŝoj montrataj en la sekcio “Lastaj” de la hejmpaĝo
  • scheduledPostMargin: estontaj afiŝoj ene de ĉi tiu fenestro estas traktataj kiel publikigitaj (efika en produktado; dev montras ĉiujn)

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 }, }
KampoDefaŭlteNotoj
lightAndDarkModetrueEbligi hela/malhela reĝima ŝaltado
dynamicOgImagetrueDinamike generi OG-bildojn (satori + sharp)
showArchivestrueMontri la arĥivan paĝon (retmapo filtras laŭe kiam malŝaltita)
showCategoriestrueMontri la kategorio-paĝon kaj navigadan eniron (retmapo filtras laŭe)
showBackButtontrueMontri reirbutonon sur afiŝaj paĝoj
editPost.enabledfalseMontri ligilon “Redakti ĉi tiun paĝon”
editPost.url""Redakta ligila prefikso; la relativa fonta vojo de la afiŝo estas aldonita
search"flexsearch"Serĉa solvo: "flexsearch" aŭ false
mdxtrueEbligi MDX-analizon kaj bildigon (vidu Enhava kreado)
comments{provider:false}Komenta sistemo-agordo (vidu Komenta sistemo)
players.aplayerfalseEbligi APlayer-aŭdiludilon (vidu Aŭdvidaĵaj ludiloj)
players.dplayerfalseEbligi DPlayer-videoludilon

editPost

editPost.url estas deponeja redakta URL-prefikso; Xingluo aldonas la relativan fontan vojon de la afiŝo (src/content/posts/...). Ekzemple:

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

La afiŝo src/content/posts/welcome.md produktas la ligilon 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: ikona nomo, korespondanta al src/assets/icons/socials/{name}.astro. Enkonstruitaj: github, x, mail, facebook, telegram, weibo
  • url: ligila URL; mailto: por retpoŝto
  • linkTitle: laŭvola alirebla titolo; aŭtomate generita el la nomo kiam preterlasita

Aldoni socian platformon: kreu .astro-ikonan komponanton kun la sama nomo sub src/assets/icons/socials/. src/lib/socialIcons.ts kolektas ilin aŭtomate per 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=" }, ];

Ĉi tiuj kundividaj enskriboj aperas malsupre de afiŝaj paĝoj. url estas kundivida URL-prefikso; Xingluo aldonas la absolutan URL de la nuna afiŝo. name simile mapas al ikono sub src/assets/icons/socials/.

Mediaj Variabloj

Deklaritaj per env.schema en astro.config.ts:

VariabloAlira niveloPriskribo
PUBLIC_GOOGLE_SITE_VERIFICATIONpublika/klientoKontrolvaloro de Google Search Console, laŭvola

Ekzemplo (PowerShell):

powershell
$env:PUBLIC_GOOGLE_SITE_VERIFICATION = "via-kontrolkodo" pnpm build

La valoro estas injektita en config.site.googleVerification kaj bildigita kiel <meta name="google-site-verification">.

Plena Ekzemplo

Vidu xingluo.config.ts. La sekcioj features.comments kaj features.players inkluzivas komentitajn ekzemplojn por giscus / twikoo / waline; mal Komentu kaj plenigu per realaj valoroj por ebligi.


Rilataj artikoloj

  • Deplojo

    2 min legado

    Gvidilo pri deplojo de Xingluo kovranta statikajn gastigajn platformojn (Netlify/Vercel/GitHub Pages), Nginx-memgastigadon, Docker kaj mediajn variablojn.

  • Serĉo

    1 min legado

    Gvidilo pri serĉo de Xingluo kovranta Flexsearch-plentekstan serĉintegriĝon, indeksgeneradon, UI, plurlingvan serĉon kaj rendimenton.