memory heap
343 subscribers
2.32K photos
472 videos
52 files
2.95K links
science ∩ art = wonder

all memory blocks here are allocated by @a_v_p

GitHub: https://github.com/artyom-poptsov
Mastodon: https://fosstodon.org/@avp

https://memory-heap.org/~avp/
Download Telegram
Выпустил релиз Guile-ICS 0.2.1 — парсера для формата ICS (Internet Calendaring and Scheduling Core Object Specification.) Формат также известен, как iCalendar, и описан в RFC5545.

Новый релиз должен быть обратно совместим с предыдущим API (0.2.0).

В Guile-ICS 0.2.1:
- Исправлена сборка с GNU Guile 3.0+.
- Из библиотеки удалён модуль SRFI-64, предоставляющий фреймворк для тестирования — теперь используется SRFI-64, который идёт вместе с Guile 3.
- Добавлен новый модуль (ics version), который содержит процедуры для получения версии библиотеки.
- В репозиторий добавлено описание пакета для GNU Guix (см. файл guix.scm). Теперь самую последнюю версию из репозитория можно собрать следующим образом:
$ guix build -f ./guix.scm
$ guix package -f ./guix.scm
- Для консольной утилиты ics, которая ставится вместе с Guile-ICS, теперь доступна опция --version.
- Для утилиты ics тажке генерируется man-страница.
- Обновлена документация.

Отправил также патч в GNU Guix, обновляющий Guile-ICS до 0.2.1

В перспективе хочу переписать Guile-ICS так, чтобы парсер компилировался из PlantUML через Guile-SMC.

#dev #guile #ics #icalendar #projects
🔥2
Пробую интегрировать работу с форматом vCard (RFC 6350) в Guile-ICS, поскольку этот формат крайне похож на iCalendar (RFC 5545.) Хочу ещё добавить также конвертацию табличных данных в vCard, чтобы массово можно было создавать карточки контактов на основе некой адресной книги (актуальная задача по работе сейчас.)

Для чтения табличных данных как раз можно использовать Guile-DSV. ^_^

Пример данных vCard:
BEGIN:VCARD
VERSION:4.0
UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
FN;PID=1.1:J. Doe
N:Doe;J.;;;
EMAIL;PID=1.1:jdoe@example.com
EMAIL;PID=2.1:boss@example.com
TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555
TEL;PID=2.1;VALUE=uri:tel:+1-666-666-6666
CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
END:VCARD


Пример описания содержимого vCard утилитой ics, которая идёт в комплекте к Guile-ICS:
$ ics describe vcard.vcf
;;; VCARD
;;; CLIENTPIDMAP (TEXT: Text type: RFC5545, 3.3.11)
;;; 1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
;;; TEL (TEXT: Text type: RFC5545, 3.3.11)
;;; tel:+1-666-666-6666
;;; VALUE uri
;;; PID 2.1
;;; TEL (TEXT: Text type: RFC5545, 3.3.11)
;;; tel:+1-555-555-5555
;;; VALUE uri
;;; PID 1.1
;;; EMAIL (TEXT: Text type: RFC5545, 3.3.11)
;;; boss@example.com
;;; PID 2.1
;;; EMAIL (TEXT: Text type: RFC5545, 3.3.11)
;;; jdoe@example.com
;;; PID 1.1
;;; N (TEXT: Text type: RFC5545, 3.3.11)
;;; Doe;J.;;;
;;; FN (TEXT: Text type: RFC5545, 3.3.11)
;;; J. Doe
;;; PID 1.1
;;; UID (TEXT: Text type: RFC5545, 3.3.11)
;;; urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
;;; VERSION (TEXT: Text type: RFC5545, 3.3.11)
;;; 4.0


Режим "pretty print":
$ ics print vcard.vcf
BEGIN: VCARD
CLIENTPIDMAP: 1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
TEL;VALUE=uri;PID=2.1: tel:+1-666-666-6666
TEL;VALUE=uri;PID=1.1: tel:+1-555-555-5555
EMAIL;PID=2.1: boss@example.com
EMAIL;PID=1.1: jdoe@example.com
N: Doe;J.;;;
FN;PID=1.1: J. Doe
UID: urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
VERSION: 4.0
END: VCARD


#projects #guile #ics #parser #rfc5545 #rfc6350
1