С чего начать
Скачайте стартовый проект, соберите первую страницу и измените её текст. Затем добавьте страницы и свои блоки. Подробности — в разделе «Как пользоваться».
Что понадобится
Для сборки нужны Node.js 24+, npm и доступ к публичному npm для зависимостей. Для просмотра через npm run serve установите nginx; для самой сборки он не нужен.
1. Скачайте стартовый проект
Распакуйте архив и откройте каталог nuckty-starter в терминале:
cd nuckty-starter
npm install
В каталоге packages/ лежат готовые архивы ядра и всех десяти расширений. package.json сразу устанавливает ядро, обёртку страницы root и локальный просмотр serve; остальные расширения можно добавить по инструкциям в каталоге. Зависимости пакетов устанавливаются из публичного npm. Исходники соседних репозиториев для этого проекта не нужны.
2. Соберите и откройте страницу
При сборке также генерируется .build/nginx.conf. Генератор не принимает пути с символом доллара ($) и управляющими символами; выберите для проекта каталог без них.
npm run build
npm run serve
Откройте http://localhost:8080. Сборка записала страницу в site/html/index.html, а nginx отдаёт её по адресу /. Для остановки просмотра выполните npm run stop в другом терминале из того же каталога.
3. Измените текст
Откройте content/index.md, замените заголовок и добавьте абзац:
# Мой первый сайт
Эта страница собрана на nuckty: Markdown → BEMJSON → HTML.
Запустите npm run build и обновите страницу в браузере. Сервер продолжает отдавать файлы из site/; перезапускать его после изменения текста не нужно.
4. Посмотрите на конфигурацию
config/config-nuckty.ts задаёт один таргет — один собираемый сайт:
import { defineNucktyConfig } from 'nuckty';
export default defineNucktyConfig({
targets: {
main: { configDir: 'config/', outDir: 'site/', lang: 'ru', host: 'localhost' },
},
ext: ['nuckty-ext-block-root', 'nuckty-ext-command-serve'],
});
root предоставляет обёртку документа HTML, serve — команды просмотра и остановки. Конфигурация site.json выбирает бандл page; декларация blocks/page/page.bemdecl.js перечисляет его блоки:
module.exports = ['root'];
5. Добавьте страницу
Создайте content/about.md и включите её в config/sitemap.yml:
sitemap:
- Главная [/, index.md]
- О проекте [/about, about.md]
После сборки страница появится по адресу /about. Из первой страницы можно сослаться на неё как на [О проекте](about.md) — движок подставит адрес из карты сайта.
Что находится в результате сборки
site/
├── html/ ← страницы
├── css/ ← стили с именами по содержимому
├── svg/ ← логотип
├── brotli/ ← сжатые копии Brotli
├── gzip/ ← сжатые копии Gzip
├── .htaccess ← конфигурация Apache
└── manifest.json ← размеры и хэши для публикации
Артефакт можно передать совместимому серверу. Для Apache нужны необходимые модули и разрешённые настройки через .htaccess; см. конфигурацию хостинга.
Куда дальше
- Модель данных: BEMJSON — как устроены блоки, элементы и модификаторы.
- Шаблоны nu — как задать разметку своего блока.
- Markdown — ссылки, якоря и конструкции разметки.
- Расширения — как добавлять возможности.
После локальной установки команда доступна в скриптах npm как nuckty. Для вызова из терминала используйте npx nuckty ….