Skip to content

vitepress-theme-alt-docs

Общая тема VitePress для документации ALT Linux. Объединяет все пакеты монорепозитория в готовую конфигурацию.

Установка

bash
npm install @ampernic/vitepress-theme-alt-docs

Тема подтягивает остальные пакеты как зависимости автоматически.

Подключение

Тема (theme/index.ts)

ts
export { Theme as default } from '@ampernic/vitepress-theme-alt-docs'

Конфиг (.vitepress/config/index.mts)

ts
import { createSharedConfig } from '@ampernic/vitepress-theme-alt-docs/config'

const shared = createSharedConfig({
  distroName: 'alt-server',
  allDistros: ['alt-server', 'alt-workstation', 'alt-education'],
  hostname: 'https://docs.altlinux.org',
})

export default defineConfigWithTheme({
  ...shared,
  rewrites: { 'ru/:slug*': ':slug*' },
  locales: {
    root: { label: 'Русский', ...ru },
  },
})

createSharedConfig(options)

ОпцияТипОписание
distroNamestringSlug дистрибутива (e.g. 'alt-server')
allDistrosstring[]Список всех дистрибутивов для переключателя
hostnamestringHostname для sitemap
editLinkRepostringURL Forgejo-репозитория для кнопки «Предложить правку»

Включённые плагины

ПлагинЧто даёт
vitepress-plugin-pagefindПоиск Pagefind с фильтрацией по версии
vitepress-alt-docs-versioningПереключатель версий и редакций
vitepress-plugin-cross-site-routerМежсайтовая навигация
vitepress-plugin-html-imageНормализация <img> в raw HTML
@nolebase/vitepress-plugin-enhanced-readabilitiesПереключатель ширины контента
vitepress-plugin-tabsВкладки в Markdown
markdown-it-kbd<kbd> синтаксис
@alt-gnome/markdown-it-custom-containersКонтейнеры left, center, right

Layout slots

Тема занимает следующие слоты VitePress:

СлотКомпонент
nav-bar-content-beforeПоисковая строка (кнопка + модал)
nav-bar-content-afterМеню Nolebase (настройки читаемости)
nav-screen-content-afterМобильное меню Nolebase
sidebar-nav-beforeПереключатель дистрибутивов

Структура контента

Тема ожидает файлы в docs/ru/{version}/... с rewrite-правилом ru/:slug* → :slug*.

docs/
  ru/
    11.0/
      index.md
    11.1/
      index.md
  public/
    favicon.ico
    branding/

Поиск

Поиск работает только в production-сборке. Для индексации pagefind должен быть установлен как devDependency в проекте документации:

bash
npm install -D pagefind

После vitepress build автоматически запускается pagefind --site .vitepress/dist. Поиск фильтруется по текущей версии страницы.