Руководство 1: Настройка блога
Установка, данные сайта, языки и публикация.
На этой странице
Установка и локальный запуск
Нужен Node.js 22.12.0 или новее. В мастере выберите папку, например my-blog, и укажите её в cd. Пропустите npm install, если зависимости уже установлены.
npm create astro@latest -- --template anglefeint/astro-theme-anglefeint#starter
cd my-blog
npm install
npm run dev
Откройте адрес из терминала. Для pnpm используйте ту же команду создания, пропустите установку в мастере, затем выполните pnpm install и pnpm dev.
Данные сайта и главная страница
Редактируйте объект в src/site.config.ts, сохраняя импорты и экспорты. Замените домен, имя, автора и тексты. Объедините пример с текущими настройками.
export const THEME_CONFIG = defineThemeConfig({
site: { title: 'My Blog', author: 'Your Name', url: 'https://your-domain.example' },
i18n: {
defaultLocale: 'ru',
routing: { defaultLocalePrefix: 'never' },
locales: {
ru: {
site: { hero: 'My Blog' },
messages: { siteDescription: 'My Blog' },
},
},
},
});
site.url задаёт домен canonical, RSS, sitemap и изображений для ссылок. PUBLIC_SITE_URL в .env или окружении сборки имеет приоритет. После изменений перезапустите разработку или пересоберите сайт. Видимый текст главной берётся из site.hero языка, описание — из messages.siteDescription. Одного изменения site.description недостаточно.
defaultLocalePrefix: ‘never’ показывает главную основного языка сразу на /. Стандартное ‘always’ перенаправляет на /<язык>/, иногда с кратким “Redirecting to home…”. Статьи остаются на /ru/blog/ и при ‘never’.
social.links содержит href, label и имя icon: github, twitter, mastodon, youtube, bluesky, linkedin, discord, telegram, instagram, facebook, whatsapp, line. Свой локальный SVG/PNG/WebP поместите в public/icons/ и задайте iconSrc: "/icons/community.svg": это поле имеет приоритет над icon, цвета сохраняются. Без обоих полей отображается текст. Правила путей и примеры — в README. Пустой список оставляет декоративные значки без ссылок. site.tagline добавляет текст в подвал.
В подвале отдельно отображаются копирайт, сведения о теме/Astro и необязательный текст site.tagline, а ниже — значки соцсетей. Подписи темы следуют языку страницы; пользовательский текст остаётся одинаковым для всех языков. Пустой текст не занимает места, длинный переносится на мобильных устройствах. Существующие настройки и PUBLIC_SITE_TAGLINE сохраняются; миграция не требуется.
Выбор языков
Включены en, ja, ko, es, zh, pt-br, de, ru и zh-hant; исходный основной язык — английский. Для отключения добавьте, например:
i18n: {
locales: {
ja: { meta: { enabled: false } },
ko: { meta: { enabled: false } },
},
},
Пропуск языка не отключает его: настройки объединяются со стандартными. Основной язык всегда активен. Для одноязычного блога явно отключите остальные восемь. Это не удаляет и не переводит файлы.
Замена примеров и первая статья
Для каждого языка starter содержит приветствие и три руководства. Сохраните нужное и удалите лишние примеры; не удаляйте используемые изображения.
npm run new-post -- my-first-post
# --locales en,pt-br
Команда создаёт шаблон для каждого активного языка, изначально девять. Она не переводит текст и не перезаписывает файлы. Измените заголовок, описание и текст в src/content/blog/ru/my-first-post.md.
Проверка и публикация
npm run doctor
npm run preview
doctor выполняет проверки и сборку. preview показывает результат локально, не публикуя его. Статический сайт находится в dist/, включая поиск и изображения ссылок. На хостинге задайте npm run build и каталог dist. Следуйте инструкции Astro, затем проверьте страницы, переключение языков, поиск и /ru/rss.xml.
Правила настройки
Оставляйте по одному объекту theme и i18n. Объединяйте параметры; массивы заменяются целиком. Не редактируйте созданные адаптеры в src/config/. Обновление npm не обновляет локальные файлы starter. Перед миграцией прочитайте руководство по обновлению.