Как встроить график активности в hgweb
Я хотел бы встроить график активности, созданный hgactivity, в мой веб-интерфейс hgweb. Какой лучший способ сделать это?
Вот скриншот графика активности:
Он показывает количество коммитов за раз в Mercurial хранилище.
3 ответа
Трудность, с которой вы столкнетесь, заключается в том, где разместить таблицу, чтобы ее можно было обслуживать. Если у вас все в порядке со стандартным представлением, которое видят все, вы можете использовать задание cron для запуска hg activity
и сохраните изображение под стандартным именем файла в статических файлах hgweb (css и т. д.). Затем просто настройте шаблон hgweb, добавив тег img, который ссылается на файл изображения. Если ваша работа cron периодически перезаписывает этот файл (ежедневно, ежечасно?), Вам будет хорошо.
Если вам нужно что-то более динамичное (пользовательские запросы, определенные диапазоны дат и т. Д.), Вы можете посмотреть (мое) расширение диаграммы hg. Это не так полно, как hg activity
но у него есть преимущество, заключающееся в том, что он выдает URL-адреса API Google Chart, а не файлы изображений. Пример:
https://chart.apis.google.com/chart?cht=lxy&chs=400x400&chd=e:AAAKAaAjAtA6BHBQBaBkBtB3CACKCUChCqC0C9DHDRDaDkDuD3EBEOEXEhExE7FIFRFbFlFuF4GBGOGeGyG7HFHOHbHlHyIFIVIiIyI8JMJcJlJyJ8KcK2LGLWL8MQMwNDNTNgNqNzOAONOaOjOtO3PAPKPUPdPnPwP6QEQNQXQhQqQ0Q-RORXRnR0SBSLSUSeSrS0S-TITRTeTuT7UIUVUeUoU1VFVPVbVoVyV8WFWPWYWiWsW1W.XJXSXcXmXvX5YGYSYfYpYzY8ZGZTZcZpZzZ8aGaQaZajata6bDbNbWbgbwcDcQcacjc0c9dHdQdadkdtd3eBeNeae3fEfOfXfnf0gOgegug4hBhVhhhrh1h-iIiSibiliyjFjVjlj.kSkckpk1lClSlflvmDmMmWmfmpmznAnJnTncnmnwn5oDoNoWogoqo2pApKpTpdpnpwp9qHqUqdqnq3rArRrkr0r-sKsXshsqs0tLtbtkt0uEuRuou7vFvOvYvivrv4wFwPwfwowyw7xFxPxYxlxvx4yFyVyfypyyy8zGzPzZzizsz20D0M0W0g0p0z081J1T1d1m1w152J2g3Q3q3z4E4Q4g4t5B5K5U5k5u536B6R6r677E7R7h707-8O8b8l8x879F9S9b9o9y97-P-f-o-y-8.F.P.Y.i.s.1..,VnFsKVETK.eWNyCaLTTrSnBdN.MKMVTTHuL8SLLBAbENHZD.HrE8CEKSC1G1H9CiSeJiMb..ItFLFDmnDBIhMKCVFcDbFaCAOuNUEsBtepD3DuBTA6DfGjBoDdDLAuHpAVFWEjI5CYCzAtGWGqFTAhfrDFGxHbFVNZBjE7EBAbDjEaK2CjJXAnHeDpFyGhRSD2OWGJajC.KGHreDISCqGtKVHUCZKbFtCHhId8GrB2EpHRJqItR5A5OSSrOJHgDpKmBHA4D2C1BbE4KBHbCtFHKQW7QpQuKRJDMSEGfDDrDZAeB2VqEPGkHlFHJrHuFFJ-IcB5DQFaGZAaArATA4AJALDaBmCTCkCoAlEtAkEPHpCwE.ETGbFfC9BZJtMJBNBwBPCZHzA3CEAUEiCBBqPdcDIwLnPjFPH3B9S-GNFbDqDaOfdOKcGDKaHeK8IODGJdDXCUCdHADbBQDKCIB1DGAzDCWKLREaCGAFAeA7DEPCA0BZC5FSc0OTC9N7ANKGDGQMEPPfN.BSFHBwJeHiH-FvJlXxEuF1K-M0COEbHHDfB-FKA-TpaADISdHoXiMUMGETE2HnBFBqIYAVATAWA2F5DOEELxNmElS-EDBFFRBBHaEFAyE2AbI9SHDKDSDSFqBtCyFQFZFeBCHhAuCKAibPDlCjXXMRDYKXCq&chxt=y,x&chxl=1:%7c05/03/05%7c03/17/06%7c01/30/07%7c12/15/07%7c10/29/08&chxr=0,0,7166
который выглядит как:
Тогда нет файлов для сохранения или обслуживания. Вы настраиваете свой шаблон, чтобы вызвать небольшой код, который работает hg chart
вставьте URL-адрес в HTML-код страницы и дайте Google создать и предоставить изображение.
Я придумал следующую настройку:
Добавить активность папки в шаблон static
Добавьте хук группы изменений, называемый активность, в hgwebconfig:
[hooks]
changegroup.activity = hg activity --filename /usr/share/mercurial/templates/static/activity/${PWD##*/}.png
${PWD##*/} будет заменен именем папки репозитория (сценарий перехвата запускается в корне репозитория). После запуска (push или pull одного или нескольких наборов изменений) график активности помещается в папку static/ Activity папки шаблона (по умолчанию).
Теперь вы можете добавить следующий HTML-код на страницу шаблона вашего предпочтения
<img src="{staticurl}/activity/{repo}.png"/>
Это загрузит самый последний график активности для текущего хранилища.
Предостережение: Вам нужно сделать хотя бы один толчок после активации этого хука перед созданием изображения.
Я запустил проект, в котором есть эта сборка. Вы можете увидеть демонстрацию на http://hg.python-works.com/, основанную на пилонах, и иметь график активности.