@limiteddissolve/wander-mark-cli
v1.1.2
Published
CLI tool for building and deploying Wander Mark static sites
Downloads
184
Readme
@injurka/wander-mark-cli
CLI tool for building and deploying Wander Mark static sites.
Install
npm install --global @injurka/wander-mark-cliИли установите CLI локально в проект и запускайте через npx:
npm install --save-dev @injurka/wander-mark-cli
npx wander-mark --config config.jsonUsage
CLI
wander-mark --config config.json --deployProgrammatic API
import { loadConfig, runAutoGeneration, runDeploy } from '@injurka/wander-mark-cli'
const config = await loadConfig('config.json')
await runAutoGeneration(config)
// or with deployment:
await runDeploy('user', 'host', '/path', '.output')Build from source
npm run buildКонфигурация (config.json)
По умолчанию CLI ищет файл config.json в директории запуска. Вы можете настроить пути к исходникам Obsidian, папки для билда и перечень обрабатываемых хранилищ (vaults).
Пример config.json:
{
"paths": {
"sourceNotesRoot": "/mnt/c/Users/evai/Documents/obsidian-mark/",
"metaSource": "/mnt/c/Users/evai/Documents/obsidian-mark/.obsidian/export/meta",
"pluginsSource": "/mnt/c/Users/evai/Documents/obsidian-mark/.obsidian/export/plugins",
"outputContentRoot": "/mnt/c/Users/evai/Documents/obsidian-mark/.output/content",
"outputMetaRoot": "/mnt/c/Users/evai/Documents/obsidian-mark/.output/meta",
"outputPluginsRoot": "/mnt/c/Users/evai/Documents/obsidian-mark/.output/plugins"
},
"vaults": [
{
"sourcePath": "Korean",
"exportPath": "Korean"
}
],
"ignore": {
"folders": [
"Frame Forge",
"Drafts"
]
},
"deploy": {
"user": "root",
"host": "92.63.97.81",
"path": "/root/sources/wander-mark/docker/vault"
}
}🛠 Использование CLI
После установки запускайте wander-mark. Инструмент поддерживает передачу аргументов для гибкого управления сборкой и деплоем.
Базовая сборка
Использует настройки из config.json в текущей папке:
wander-markУказать кастомный путь к конфигу
Если конфиг лежит в другом месте, используйте флаг -c или --config:
wander-mark -c ./.obsidian/scripts/my-config.jsonСборка + Деплой на сервер
Добавьте флаг -d или --deploy. Данные сервера возьмутся из секции "deploy" вашего config.json:
wander-mark --deployДеплой с ручным переопределением сервера
Если в config.json нет секции "deploy" или вы хотите отправить билд на другой сервер (например, тестовый), вы можете передать данные прямо в консоль:
wander-mark --deploy --host 192.168.1.100 --user admin --path /var/www/test-vaultСправка
wander-mark --helpЧто происходит под капотом во время деплоя?
Если передан флаг --deploy, скрипт выполняет следующие шаги автоматически:
- Подключается по SSH и проверяет/создает директорию
pathна сервере. - Собирает папки
contentиmetaиз локальной.outputв единый архивpayload.tar.gz. - Отправляет архив по SCP на удаленный сервер.
- Распаковывает архив на сервере и удаляет
payload.tar.gz. - Очищает локальный
payload.tar.gz.
Внимание: Для работы деплоя без запроса пароля у вас должен быть прокинут SSH-ключ (
~/.ssh/id_rsa.pub) на целевой сервер.
Структура генерируемой директории (.output)
После работы инструмента формируется чистая и изолированная структура, готовая для отдачи статическим сервером или фронтендом:
.output/
├── content/ # Обработанные Markdown файлы и внутренние картинки
│ └── VaultName/ # Папка конкретного хранилища
└── meta/ # Метаданные для фронтенда
└── VaultName/
├── images/
│ └── icon.png # Иконка хранилища (подготавливается заранее в metaSource)
├── settings.json # Настройки базы (название, описание, подключаемые скрипты)
├── search.json # Индекс для полнотекстового поиска
├── graph.json # Ноды и линки для графа (force-directed graph)
└── backlinks.json # Карта обратных ссылок между статьями