nuckty
EN
Все разделы →

С чего начать

Скачайте стартовый проект, соберите первую страницу и измените её текст. Затем добавьте страницы и свои блоки. Подробности — в разделе «Как пользоваться».

Что понадобится

Для сборки нужны Node.js 24+, npm и доступ к публичному npm для зависимостей. Для просмотра через npm run serve установите nginx; для самой сборки он не нужен.

1. Скачайте стартовый проект

Скачать nuckty-starter.zip

Распакуйте архив и откройте каталог 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; см. конфигурацию хостинга.

Куда дальше

После локальной установки команда доступна в скриптах npm как nuckty. Для вызова из терминала используйте npx nuckty ….