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-breadcrumbsХлебные крошки над контентом
vitepress-plugin-cross-site-routerМежсайтовая навигация
vitepress-plugin-single-pageОдностраничное представление версии
vitepress-plugin-exportЭкспорт версии в PDF / HTML / EPUB
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Переключатель дистрибутивов
doc-beforeХлебные крошки
aside-outline-beforeКнопка экспорта / переключатель форматов
home-hero-beforeГлавная (карточки продуктов) на layout: home

Главная и лендинги

Главная (layout: home)

Главная страница (индекс-сайт) использует layout: home; контент рисуют компоненты темы по данным из frontmatter altHome:

yaml
---
layout: home
altHome:
  hero:
    logo: basealt
    title: Документация «Базальт СПО»
    text: Официальная документация ОС «Альт».
  products:
    alt-server:
      tagline: Комплексное серверное решение для ИТ-инфраструктуры
      accent: '#8e96a3'
      grad: ['#c8d0dd', '#8e96a3']
  footer:
    links:
      - { title: Сайт компании, url: https://www.basealt.ru/ }
    copyright: © 2026 «Базальт СПО»
---

Список дистрибутивов и разделы берутся из __VERSIONS_DATA__ (плагин версионирования); altHome.products[<slug>] задаёт теглайн и акцентный цвет карточки (имя по умолчанию — из общего справочника).

Лендинг дистрибутива

Шаблон лендинга выводит <VersionList distro="<slug>" /> — релизы, сгруппированные по мажорным версиям, карточками со списками и бейджем «Актуальная».

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

Тема ожидает файлы в 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. Поиск фильтруется по текущей версии страницы.