Files
util-linux-cal/plugins/holiday_highlighter/README_ru.md

99 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Holiday Highlighter Plugin
Плагин для `cal`, добавляющий подсветку официальных праздников через API isdayoff.ru.
## Возможности
- **Автоматическое определение страны** по системной локали
- **Кэширование данных** для уменьшения количества запросов к API
- **Поддержка нескольких стран**: Россия, Беларусь, Казахстан, США, Узбекистан, Турция, Латвия
- **Данные о типах дней**: рабочие, выходные, сокращённые, официальные праздники
## Сборка
```bash
# Сборка всего workspace
cargo build --release --workspace
# Только плагин
cargo build --release -p holiday_highlighter
```
## Установка
### Локально для пользователя
```bash
mkdir -p ~/.local/lib/cal/plugins
cp target/release/libholiday_highlighter.so ~/.local/lib/cal/plugins/
```
### Системно
```bash
sudo mkdir -p /usr/lib/cal/plugins
sudo cp target/release/libholiday_highlighter.so /usr/lib/cal/plugins/
```
## Использование
```bash
# Подсветка праздников для текущей страны
cal -H
# Год с праздниками
cal -y -H
# Три месяца с праздниками
cal -3 -H
```
## Поддерживаемые страны
| Код | Страна | Локали для автоопределения |
|-----|--------|----------------------------|
| RU | Россия | ru_RU, ru_BY, ru_KZ, ru_UZ, ru_LV |
| BY | Беларусь | be_BY, ru_BY |
| KZ | Казахстан | kk_KZ, ru_KZ |
| US | США | en_US, en |
| UZ | Узбекистан | uz_UZ, ru_UZ |
| TR | Турция | tr_TR |
| LV | Латвия | lv_LV, ru_LV |
## API
Плагин использует [isdayoff.ru API](https://isdayoff.ru/):
### Запрос за месяц
```
GET https://isdayoff.ru/api/getdata?year=2026&month=01&pre=1
```
### Запрос за год
```
GET https://isdayoff.ru/api/getdata?year=2026&pre=1
```
Параметр `pre=1` включает информацию о предпраздничных сокращённых днях.
## Формат данных
Каждый символ в ответе представляет день месяца:
| Символ | Тип дня | Описание |
|--------|---------|----------|
| `0` | Рабочий | Обычный рабочий день |
| `1` | Выходной | Суббота или воскресенье |
| `2` | Сокращённый | Предпраздничный день |
| `8` | Праздник | Официальный государственный праздник |
## Переменные окружения
| Переменная | Описание |
|------------|----------|
| `LC_ALL` | Приоритетная локаль для определения страны |
| `LC_TIME` | Локаль для определения страны |
| `LANG` | Резервная локаль для определения страны |