mirror of
https://github.com/SeCherkasov/util-linux-cal.git
synced 2026-03-30 16:01:50 +03:00
99 lines
3.2 KiB
Markdown
99 lines
3.2 KiB
Markdown
# 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` | Резервная локаль для определения страны |
|