# Навык GitHubTrends **Быстро находите самые популярные проекты с открытым исходным кодом на GitHub и создавайте визуальные панели!** ## Возможности ### Основные функции - ✅ Получение списков популярных проектов за день/неделю - ✅ Фильтрация по языку программирования (TypeScript, Python, Go, Rust и т. д.) - ✅ Настройка числа возвращаемых проектов - ✅ Отображение общего количества Star и прироста за период - ✅ GitHub API token не требуется ### Визуальная панель 🆕 - ✨ **Интерактивный HTML** — создание интерактивной веб-панели - 📊 **Визуализация данных** — круговая диаграмма распределения языков, столбчатая диаграмма прироста Stars - 📰 **Технологические новости** — интеграция последних новостей Hacker News - 🔍 **Фильтрация в реальном времени** — фильтрация по языку, сортировка, поиск - 📱 **Адаптивный дизайн** — поддержка компьютеров, планшетов и телефонов - 🎨 **Красивый интерфейс** — Tailwind CSS + стиль GitHub ## Быстрый старт ### Просмотр популярных проектов этой недели (по умолчанию) ```bash bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly ``` ### Просмотр популярных проектов сегодня ```bash bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts daily ``` ### Фильтрация по языку ```bash # TypeScript热门项目 bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly --language=TypeScript # Python热门项目 bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly --language=Python # Go热门项目 bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly -l=Go ``` ### Указание числа результатов ```bash # 返回20个项目 bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly --limit=20 # 组合使用:返回15个TypeScript项目 bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly --language=TypeScript --limit=15 ``` --- ## Создание визуальной панели 🆕 ### Основное использование ```bash # 生成本周趋势仪表板(默认) bun ~/.claude/skills/GitHubTrends/Tools/GenerateDashboard.ts ``` ### Включение технологических новостей ```bash # 生成包含 Hacker News 的仪表板 bun ~/.claude/skills/GitHubTrends/Tools/GenerateDashboard.ts --include-news ``` ### Расширенные параметры ```bash # 生成 TypeScript 项目每日仪表板,包含 15 条新闻 bun ~/.claude/skills/GitHubTrends/Tools/GenerateDashboard.ts \ --period daily \ --language TypeScript \ --limit 20 \ --include-news \ --news-count 15 \ --output ~/Downloads/ts-daily-trends.html ``` ### Функции панели Созданный HTML-файл содержит: - **Обзор статистики** — общее число проектов, общее число stars, лучшие проекты - **Диаграмма распределения языков** — круговая диаграмма показывает долю каждого языка - **Диаграмма прироста Stars** — столбчатая диаграмма показывает тенденции роста - **Карточки проектов** — красивое карточное представление проектов - **Технологические новости** — последние новости Hacker News - **Интерактивные функции** — фильтрация, сортировка, поиск - **Адаптивность** — автоматическая подстройка под разные размеры экрана --- ## Пример вывода ```markdown # Популярные проекты GitHub — за неделю (2026-01-19) 📊 **Всего:** 10 проектов | **Язык:** все | **Период:** неделя --- ## 1. vercel/next.js - ⭐ 125,342 (+1,234 за эту неделю) **Язык:** TypeScript **Описание:** React-фреймворк для веба **URL:** https://github.com/vercel/next.js ## 2. microsoft/vscode - ⭐ 160,890 (+987 за эту неделю) **Язык:** TypeScript **Описание:** Visual Studio Code **URL:** https://github.com/microsoft/vscode ... ``` ## Описание параметров | Параметр | Описание | Значение по умолчанию | Допустимые значения | |------|------|--------|--------| | `period` | Период | `weekly` | `daily`, `weekly` | | `--language` | Фильтр по языку программирования | Все | TypeScript, Python, Go, Rust, Java и т. д. | | `--limit` | Число возвращаемых проектов | 10 | Любое положительное целое число | ## Поддерживаемые языки Все распространённые языки программирования можно использовать как условия фильтрации: - **TypeScript** — проекты TypeScript - **JavaScript** — проекты JavaScript - **Python** — проекты Python - **Go** — проекты на языке Go - **Rust** — проекты Rust - **Java** — проекты Java - **C++** — проекты C++ - **Ruby** — проекты Ruby - **Swift** — проекты Swift - **Kotlin** — проекты Kotlin ## Фразы, активирующие навык Этот навык активируется, когда вы говорите что-либо из следующего: - «покажи тренды GitHub» / «популярное на GitHub» - «покажи популярные проекты» / «посмотрим, какие проекты сейчас популярны» - «популярное за неделю» / «популярные проекты этой недели» - «популярное за день» / «популярные проекты сегодня» - «популярное на TypeScript» / «популярное на Python» - «что сейчас в топе GitHub» / «что самое горячее на GitHub» ## Техническая реализация - **Источник данных**: официальная страница GitHub trending (https://github.com/trending) - **Способ разбора**: извлечение информации о проектах посредством разбора HTML - **Аутентификация**: GitHub API token не требуется - **Частота обновления**: раз в час ## Структура каталогов ``` ~/.claude/skills/GitHubTrends/ ├── SKILL.md # Основной файл навыка ├── README.md # Документация по использованию (этот файл) ├── Tools/ │ └── GetTrending.ts # Инструмент получения данных о трендах └── Workflows/ └── GetTrending.md # Документация рабочего процесса ``` ## Важные замечания 1. **Сетевые требования**: необходим доступ к официальному сайту GitHub 2. **Частота обновления**: данные обновляются каждый час, а не в реальном времени 3. **Точность разбора**: изменения структуры страницы GitHub могут повлиять на разбор; при проблемах проверьте `/tmp/github-trending-debug-*.html` 4. **Параметры языка**: регистр не учитывается, `--language=typescript` и `--language=TypeScript` дают одинаковый результат ## Известные проблемы - HTML-структура страницы GitHub trending сложная; URL и имена некоторых проектов могут разбираться неполностью - Если структура страницы GitHub изменится, логика разбора в инструменте может потребовать обновления ## Будущие улучшения - [ ] Поддержка сохранения исторических данных для анализа трендов - [ ] Фильтрация по диапазону stars (1k+, 10k+, 100k+) - [ ] Более умный разбор HTML (с библиотекой разбора HTML вместо регулярных выражений) - [ ] Интеграция в автоматизированные рабочие процессы других навыков ## Вклад в проект Если вы обнаружили проблему или у вас есть предложение по улучшению, сообщайте! --- **Создано с ❤️ автором 老王**