Travel Guidebook
geekjourneyx/travel-guidebookAI Agent Skill для создания профессионально свёрстанных PDF-путеводителей. Параллельные агенты исследуют маршрут, Amap MCP предоставляет POI-данные, Playwright экспортирует готовый документ. Для разработчиков туристических и travel-приложений.
Установка
npx skills add https://github.com/geekjourneyx/travel-guidebookREADME
Travel Guidebook
Движок для создания путеводителей — от исследования до готовой книги
Что это такое
AI Agent Skill: вы описываете маршрут одной фразой — на выходе получаете красиво свёрстанный PDF-путеводитель.
Вход: «Пекин → Шанхай, 1–5 мая, пять дней насыщенного путешествия»
Выход: beijing_shanghai_guidebook.pdf (7 МБ, 30+ страниц)
Это не шаблонная подстановка и не набор разрозненных фактов — а полноценный путеводитель с литературным стилем: фон под пергамент, заголовки с засечками, SVG-декор, продуманная цветовая система, раздел для ежедневных заметок.
Ключевые возможности
Рабочий процесс
Установка
Предварительные требования
# Node.js >= 18
node -v
# Playwright + Chromium (движок экспорта PDF)
npm install playwright
npx playwright install chromiumУстановка Skill
npx skills add https://github.com/geekjourneyx/travel-guidebook
Amap MCP (опционально, рекомендуется)
После настройки доступны актуальные данные POI, пешеходные маршруты и схемы общественного транспорта.
// ~/.copilot/mcp-config.json
{
"mcpServers": {
"amap-maps": {
"command": "npx",
"args": ["-y", "@amap/amap-maps-mcp-server"],
"env": {
"AMAP_MAPS_API_KEY": "your_amap_api_key"
}
}
}
}Получите бесплатный Web Service API Key на платформе Amap.
Быстрый старт
После установки просто напишите запрос в Copilot CLI / Claude Code:
> Пекин → Шанхай, 1–5 мая, пять дней культурного путешествия
> Чэнду → Чунцин, три дня на машине, акцент на еду
> Ханчжоу на выходные, двое суток, с пожилыми родителями и детьми
Skill автоматически распознаёт ключевые слова (путеводитель, маршрут, планирование поездки и т.д.) и запускает полный 6-этапный рабочий процесс.
Пример вывода
project/
├── beijing_shanghai_guidebook.html # 82 КБ, самодостаточный HTML
└── beijing_shanghai_guidebook.pdf # 7.1 МБ, PDF печатного качества
Структура путеводителя
┌─────────────────────────────────────────┐
│ Обложка │
│ ├─ SVG-декор с компасом │
│ ├─ Название маршрута + теги темы │
│ └─ Декоративная двойная рамка │
├─────────────────────────────────────────┤
│ Обзор путешествия │
│ ├─ Дни / расстояние / сезон / бюджет │
│ └─ Ключевые highlights │
├─────────────────────────────────────────┤
│ Подготовка к поездке │
│ ├─ Документы / снаряжение / одежда │
│ ├─ Таблица бюджета (эконом/средний/люкс)│
│ └─ Рекомендуемые приложения │
├─────────────────────────────────────────┤
│ День 1 ~ День N (отдельная глава) │
│ ├─ SVG-значок с номером дня │
│ ├─ Карточка расписания (транспорт/погода/highlights)│
│ ├─ Литературное описание маршрута (буквица)│
│ ├─ Карточки достопримечательностей (фото POI + адрес + рейтинг)│
│ ├─ Рекомендации по еде (фото + цена + фирменные блюда)│
│ ├─ Рекомендации по жилью │
│ ├─ Советы на день │
│ └─ Раздел заметок (пунктирные строки + место для билетов)│
├─────────────────────────────────────────┤
│ Тематические статьи (2–3 шт.) │
│ ├─ Исторический контекст │
│ ├─ Культурные особенности │
│ └─ Взгляд местного жителя │
├─────────────────────────────────────────┤
│ Практическое приложение │
│ ├─ Экстренные контакты / разговорник │
│ ├─ Детализация расходов │
│ └─ Рекомендуемый плейлист │
├─────────────────────────────────────────┤
│ Задняя обложка + послесловие │
└─────────────────────────────────────────┘
Дизайн-система
Структура проекта
travel-guidebook/
├── SKILL.md # Определение Skill (читается агентом)
├── README.md # Этот файл
├── LICENSE # MIT
├── references/
│ ├── layout-css.md # Спецификация CSS-вёрстки
│ ├── chapter-templates.md # HTML-шаблоны глав
│ └── report-template.md # Шаблон отчёта об исследовании
└── scripts/
└── html2pdf.mjs # Экспорт PDF через Playwright
Технологический стек
| Уровень | Технология | Назначение |
|---|---|---|
| Фреймворк агентов | Copilot CLI / Claude Code | Среда выполнения Skill |
| Параллельное исследование | explore agents × 4 | Транспорт / еда / достопримечательности / культура |
| Пространственные данные | Amap MCP | POI / маршруты / погода |
| Написание HTML | general-purpose agent | Написание в изолированном контексте |
| Движок вёрстки | CSS @page + break rules | Точная разбивка на страницы A4 |
| Система иконок | Tabler Icons (CDN) | 1800+ линейных иконок |
| Шрифты | Google Fonts (CDN) | С засечками + без засечек + моноширинный |
| Экспорт PDF | Playwright + Chromium | Рендеринг печатного качества |
Часто задаваемые вопросы
Если у изображений установлен атрибут loading="lazy", Playwright в режиме печати не активирует ленивую загрузку.
Решение: убедитесь, что в html2pdf.mjs есть логика ожидания загрузки изображений, или замените атрибут на loading="eager".
Бесплатный ключ имеет низкий лимит QPS. Skill содержит встроенную стратегию деградации: при сбое API автоматически переключается на данные из базы знаний LLM.
Рекомендуется не отправлять более 3 запросов к Amap API одновременно.
Да. На этапе Stage 0 Skill автоматически проверяет доступность Amap MCP и при её отсутствии переходит в режим работы на основе знаний LLM.
Качество путеводителя незначительно снижается (нет актуальных координат POI и фотографий), но основная функциональность сохраняется.
Отредактируйте CSS-переменные в файле references/layout-css.md.
Цветовая схема, шрифты, размеры и отступы управляются через CSS custom properties.
Дорожная карта
- 6-этапный рабочий процесс
- Архитектура параллельных агентов для исследования
- Интеграция с Amap MCP
- Встраивание реальных фотографий POI
- Экспорт PDF через Playwright
- Поддержка нескольких языков (EN / JA / KO)
- Интерактивная HTML-версия (со встроенными картами)
- Пользовательские темы (тёмная / Moranди / киберпанк)
- Публикация и совместная работа над путеводителями
Об авторе
| :globe_with_meridians: Сайт | geekjourney.dev |
| :octocat: GitHub | geekjourneyx |
| :bird: Twitter | @seekjourney |
Лицензия
MIT — свободное использование, модификация и распространение.
Путешествие — не ради прибытия, а ради самого пути.