Перейти к содержимому
星罗
Поиск
Сменить язык
Назад

Руководство по настройке

1 мин чтения Редактировать на GitHub

Все настраиваемые параметры Xingluo находятся в корневом файле xingluo.config.ts. Файл предоставляет полные ограничения типов через defineXingluoConfig; изменения вступают в силу немедленно без изменения исходного кода.

site

ts
site: { url: "https://xingluo.example.com/", // URL сайта, используется для абсолютных ссылок, RSS, sitemap title: "Xingluo", // Название сайта description: "Современная CMS для блогов на Astro и shadcn", author: "Xingluo", // Имя автора по умолчанию profile: "https://xingluo.example.com", // Домашняя страница автора (используется для JSON-LD) ogImage: "default-og.jpg", // OG-изображение по умолчанию (в каталоге public) lang: "zh-cn", // Язык по умолчанию timezone: "Asia/Shanghai", // Часовой пояс (отображение даты поста) dir: "ltr", // Направление текста: ltr | rtl googleVerification: "", // Значение верификации Google Search Console (или через env var) }
ПолеПо умолчаниюПримечания
urlобязательноКорневой URL сайта; должен заканчиваться на /
titleобязательноЗаголовок сайта, используется в <title> и OG
descriptionобязательноОписание сайта, используется в meta и RSS
authorобязательноАвтор по умолчанию; frontmatter записи возвращается к этому значению
profile—Домашняя страница автора, вставляется в JSON-LD author.url
ogImagedefault-og.jpgИмя файла OG-изображения по умолчанию, находится в public/
langобязательноКод языка по умолчанию; должен совпадать с i18n.defaultLocale в astro.config.ts
timezoneAsia/ShanghaiЧасовой пояс dayjs, влияет на отображение даты записи
dirltrНаправление текста
googleVerification—Значение верификации Google; также может быть введено через переменную окружения PUBLIC_GOOGLE_SITE_VERIFICATION

posts

ts
posts: { perPage: 8, // Записей на страницу списка perIndex: 5, // Записей на главной странице scheduledPostMargin: 900000, // Допуск запланированной публикации (мс), 15 минут }
  • perPage: размер страницы для /posts/[...page] и /tags/[tag]/[...page]
  • perIndex: количество записей, отображаемых в разделе “Последние” на главной странице
  • scheduledPostMargin: будущие записи в этом окне считаются опубликованными (действует в продакшене; в разработке показаны все)

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 }, }
ПолеПо умолчаниюОписание
lightAndDarkModetrueВключить переключатель светлой/тёмной темы
dynamicOgImagetrueДинамическая генерация OG-изображений (satori + sharp)
showArchivestrueПоказать страницу архива (карта сайта фильтруется соответственно при выключении)
showCategoriestrueПоказать страницу категорий и пункт навигации (карта сайта фильтруется)
showBackButtontrueПоказать кнопку “Назад” на страницах постов
editPost.enabledfalseПоказать ссылку “Редактировать эту страницу”
editPost.url""Префикс ссылки редактирования; добавляется относительный путь исходника поста
search"flexsearch"Поисковое решение: "flexsearch" или false
mdxtrueВключить разбор и рендеринг MDX (см. Создание контента)
comments{provider:false}Конфигурация системы комментариев (см. Система комментариев)
players.aplayerfalseВключить аудиоплеер APlayer (см. Медиаплееры)
players.dplayerfalseВключить видеоплеер DPlayer

editPost

editPost.url — это префикс URL редактирования репозитория; Xingluo добавляет относительный путь исходника поста (src/content/posts/...). Например:

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

Пост src/content/posts/welcome.md создаёт ссылку 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: имя иконки, соответствующее src/assets/icons/socials/{name}.astro. Встроенные: github, x, mail, facebook, telegram, weibo
  • url: URL ссылки; mailto: для email
  • linkTitle: опциональный доступный заголовок; автоматически генерируется из имени при отсутствии

Добавление социальной платформы: создайте компонент иконки .astro с тем же именем в src/assets/icons/socials/. src/lib/socialIcons.ts автоматически собирает их через 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=" }, ];

Эти записи для публикации отображаются внизу страниц постов. url — это префикс URL для публикации; Xingluo добавляет абсолютный URL текущего поста. name аналогично сопоставляется с иконкой в src/assets/icons/socials/.

Переменные окружения

Объявляются через env.schema в astro.config.ts:

ПеременнаяУровень доступаОписание
PUBLIC_GOOGLE_SITE_VERIFICATIONpublic / clientЗначение верификации Google Search Console, опционально

Пример (PowerShell):

powershell
$env:PUBLIC_GOOGLE_SITE_VERIFICATION = "your-verification-code" pnpm build

Значение внедряется в config.site.googleVerification и выводится как <meta name=\"google-site-verification\">.

Full Example

See xingluo.config.ts. The features.comments and features.players sections include commented examples for giscus / twikoo / waline; uncomment and fill in real values to enable.


Похожие статьи

  • Развертывание

    2 мин чтения

    Руководство по развертыванию Xingluo, охватывающее платформы статического хостинга (Netlify/Vercel/GitHub Pages), самостоятельный хостинг Nginx, Docker и переменные окружения.

  • Поиск

    1 мин чтения

    Руководство по поиску Xingluo, охватывающее интеграцию полнотекстового поиска Flexsearch, генерацию индексов, UI, многоязычный поиск и производительность.