Skip to content

Скрипти для автоматизації створення git історії для законів України. Scripts for automating generation of git history for Ukrainian laws

Notifications You must be signed in to change notification settings

skivol/ukrainian-laws-in-time-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Генератор git історії для законів України

Ідея даного репозиторію не нова і полягає в використанні Git для відстежування змін в законодавчих та інших правових документах України. Html документи перетворюються в формат Markdown для покращення можливості перегляду безпосереднього тексту документів, а також збереження посилань та базового форматування.

Приблизний алгоритм генератора

  1. Для обраного документа, завантажити список його попередніх версій, а також поточну з сайта zakon.rada.gov.ua;
  2. Для кожної версії:
    1. Завантажити html текст документа;
    2. Перетворити його в markdown за допомогою бібліотеки turndown;
    3. Оновити текст відповідного документа;
    4. Підготувати git повідомлення у форматі:
    Додає/Оновлює "Назва документа" (код, редакція, підстава зміни)
    
    Джерело: посилання на джерело
    
    1. Створити коміт (в інтерактивному режимі або без людського втручання)
  3. Надати також можливість вказати з якої версії документа починати роботу (для подальшого оновлення документа, коли вже частина версій вже була додана).

Приклад створеної git історії

Версія Node JS

v17.4.0

Рекомендоване налаштування Git

  • Для відображення українських слів в назвах файлів: git config --global core.quotePath false джерело
  • Версія 2.30+ (спосіб фільтрувати незначні зміни (наприклад, посилання) - stackoverflow)
  • Завжди використовувати "pager" (наприклад, для "delta", - git config --global core.pager 'delta --paging always'):

Налаштування delta

Варто звернути увагу на max-line-length та wrap-max-lines, наприклад:

[delta]
    features = side-by-side line-numbers decorations
    whitespace-error-style = 22 reverse
    max-line-length = 0
    wrap-max-lines = unlimited

Залежності

Бібліотеки

  1. node-fetch

Програми

  1. pandoc - для перетворення html в pandoc markdown.

Корисні інструменти

  1. Перегляд markdown документів з командного рядка - https://github.com/charmbracelet/glow
  2. Перегляд змін у документах - https://github.com/dandavison/delta

TODO

  • e2e тести

Інші назви

Генератор для Законов Украины во времени; Ukrainian Laws in Time Generator

Ліцензія

Ліцензія Creative Commons
Цей твір ліцензовано на умовах Ліцензії Creative Commons Зазначення Авторства 4.0 Міжнародна.

About

Скрипти для автоматизації створення git історії для законів України. Scripts for automating generation of git history for Ukrainian laws

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published