Skip to content
星罗
Search
Switch language
Go back

Xingluo Documentation

3 min read Edit on GitHub

Xingluo is a modern blog CMS built on Astro and the shadcn/ui visual style. It delivers a more modern visual experience through flat, elegant shadcn components and the OKLCH color system, and natively integrates a comment system, optional MDX support, and audio/video players.

Documentation Index

DocumentContent
Getting StartedRequirements, installation, local dev, build and preview
Configuration GuideFull reference for xingluo.config.ts
Content AuthoringPost frontmatter, Markdown/MDX syntax, code blocks, callouts, enhancements
InternationalizationMultilingual routing, UI strings, content-level translation, adding a language
Architecture OverviewDirectory layout, config flow, render flow, build pipeline
Theme & Stylesshadcn theme variables, OKLCH, Tailwind v4, dark mode
Comment SystemChoosing and wiring up giscus / twikoo / waline
Media PlayersUsing APlayer / DPlayer in Markdown and MDX
SEOOG images, RSS, sitemap, hreflang, canonical, structured data
SearchFlexsearch full-text search integration
DeploymentStatic hosting, GitHub Pages, environment variables, Docker

Core Features

  • Top-tier performance: Astro static generation, build-time inlined SVG icons (zero runtime JS), lazy-loaded comments and players, orphan asset cleanup
  • Modern visuals: shadcn/ui new-york components, OKLCH color space, smooth dark mode (FOUC protection)
  • Multilingual: UI and content-level translation, prefixDefaultLocale: false routing, hreflang and x-default SEO declarations
  • Content enhancement: optional MDX, Shiki dual-theme code highlighting, callouts, collapsible TOC, scrollable tables
  • Reading time: smart estimation (CJK by character count, Latin by word count), shown on cards and detail pages
  • Related posts: automatically recommended by shared tags
  • Post categories: assign via frontmatter, with dedicated category pages and a nav entry
  • Sticky TOC sidebar: right-side sticky table of contents on large screens, IntersectionObserver scroll spying
  • Comment system: giscus / twikoo / waline, theme-aware, lazy-loaded
  • Media players: APlayer audio and DPlayer video, with both MD fence and MDX component entry points
  • Search: Flexsearch full-text search, per-language indexes, View Transitions state persistence
  • Full SEO: dynamic OG images (satori + sharp), RSS, sitemap, JSON-LD structured data (BlogPosting + BreadcrumbList), canonical normalization

Tech Stack

CategoryTechnology
FrameworkAstro 6.x
StylingTailwind CSS v4, shadcn/ui style components, @tailwindcss/typography
Iconsastro-icon + Font Awesome
ContentAstro Content Collections, MDX, remark/rehype plugin chain
Code highlightingShiki
SearchFlexsearch
OG imagessatori + sharp
Commentsgiscus / twikoo / waline
PlayersAPlayer / DPlayer
Datedayjs
Package managerpnpm
LanguageTypeScript

License

AGPL-3.0


Related posts

  • Deployment

    2 min read

    Xingluo deployment guide covering static hosting platforms (Netlify/Vercel/GitHub Pages), Nginx self-hosting, Docker, and environment variables.

  • Search

    1 min read

    Xingluo search guide covering Flexsearch full-text search integration, index generation, UI, multilingual search, and performance.