Ustawy-o-PIT icon indicating copy to clipboard operation
Ustawy-o-PIT copied to clipboard

👷 Simple gitaction for auto PDF creation

Open fanooel opened this issue 1 year ago • 12 comments

Simple pdf auto creation from MD files (as artifact in ACTION)

Next step:

  1. Implement release strategy- pdf will be created only for releases.
  2. Switch to 'pandoc' or other action for MD to PDF conversion.

fanooel avatar May 14 '23 16:05 fanooel

Bardzo dobry pomysł. Właśnie to pisałem :)

MateuszNaKodach avatar May 14 '23 16:05 MateuszNaKodach

Jak się pojawi koncepcja z releasami i wersjonowaniem (sugeruję auto release z auto wersjami) to mogę to przenieść to pandoca, gdzie informacje o wersji będzie np. w stopce i stronie tytułowej.

Jeśli będzie też strategia z branchem devel- można devele jako wersje robocze też generować.

No i jeszcze można dodać akcję na dodawanie linka do aktualnej wersji PDF w README :) i CHANGELOG

fanooel avatar May 14 '23 16:05 fanooel

Na deser- powiadomienia o releasach dla prawników kochających czytanie PDF

fanooel avatar May 14 '23 16:05 fanooel

Widzę, że jest nas więcej z tym pomysłem :)

maciejmrozinski avatar May 14 '23 16:05 maciejmrozinski

Ma razie to jest tylko do artefaktów, w Actions, więc nie ma co się za bardzo rozdrabniać w konwencji. Ostatecznie powinno to i tak lądować jako artefakt release.

fanooel avatar May 14 '23 17:05 fanooel

Mam wrażenie że warto by było rozważyć zmianę konwencji położenia plików. O ile nie spotkałem się wcześniej z projektami ustaw na githubie, to mam wrażenie że powszechnie znaną konwencją jest trzymanie plików źródłowych w roocie projektu lub folderze "src", a wygenerowane pliki w osobnym katalogu.

czlowiek488 avatar May 15 '23 10:05 czlowiek488

Mam wrażenie że warto by było rozważyć zmianę konwencji położenia plików. O ile nie spotkałem się wcześniej z projektami ustaw na githubie, to mam wrażenie że powszechnie znaną konwencją jest trzymanie plików źródłowych w roocie projektu lub folderze "src", a wygenerowane pliki w osobnym katalogu.

Jednak trzeba pamiętać, że nie tylko programiści są adresatami tego repo :) Jednakże łatwiej by pewnie było gdyby pliki .MD były jakoś łatwiej dostępne czy opisane, bo to w nich powinno się proponować zmiany. PDFy właśnie w ogóle można pewnie wywalić i publikować z tego doc (jeśli osoby mniej techniczne dadzą radę).

MateuszNaKodach avatar May 15 '23 10:05 MateuszNaKodach

@MateuszNaKodach Po twoim komentarzu zastanawiam się czy nie lepszą opcją byłoby wrzucanie plików na jakiś hosting pdf'ów. W ten sposób osoby które chcą przeczytać miałyby jeszcze prościej. Nie sprawdzałem takiego rozwiązania wcześniej, ale - https://fliphtml5.com/ wygląda sensownie. Ewentualnie customowa aplikacja, ale to już byłyby koszta.

czlowiek488 avatar May 15 '23 10:05 czlowiek488

A może po prostu stworzyć stronkę z pomocą Github pages (ewentualnie dokupić domenę, żeby w wyszukiwarce wyglądało profesjonalnie) i tam by się wrzucało automatycznie pdfy z github actions? Oczywiście to by wymagało, żeby front-endowcy wymyślili dobry layout. Że np. jedna podstrona na robocze wersje (devel), coś na te otagowane na Githubie. No i przede wszystkim żeby to była statyczna strona bez Javascriptu i fajerwerków (jakiś static site generator, albo czysty html i css (tailwind?)). Może w sumie lepiej stworzyć issue, żeby tu nie śmiecić? Co o tym myślicie?

pm4rcin avatar May 15 '23 11:05 pm4rcin

Co do koncepcji z wydaniami i wersjonowaniem:

  • https://github.com/ProjektyUstaw/Ustawy-o-PIT/issues/112#issuecomment-1547843212
  • https://github.com/ProjektyUstaw/Ustawy-o-PIT/issues/109#issuecomment-1547830717

piotrminkina avatar May 15 '23 16:05 piotrminkina

PDF to format binarny i nie jest zbyt wygodny do wersjonowania ponieważ nie da się zobaczyć na nim git diff pomiędzy wersjami. Czy jest sens pchać to do Git repo? Może lepiej trzymać to w release z wygenerowaną sumą kontrolną i tyle - to trochę tak jakby pchać wygenerowane pliki "exe" na githuba.

dotevo avatar May 16 '23 12:05 dotevo

A może po prostu stworzyć stronkę z pomocą Github pages (ewentualnie dokupić domenę, żeby w wyszukiwarce wyglądało profesjonalnie) i tam by się wrzucało automatycznie pdfy z github actions? Oczywiście to by wymagało, żeby front-endowcy wymyślili dobry layout. Że np. jedna podstrona na robocze wersje (devel), coś na te otagowane na Githubie. No i przede wszystkim żeby to była statyczna strona bez Javascriptu i fajerwerków (jakiś static site generator, albo czysty html i css (tailwind?)). Może w sumie lepiej stworzyć issue, żeby tu nie śmiecić? Co o tym myślicie?

VitePress raczej by się sprawdził

Jakubk15 avatar May 16 '23 17:05 Jakubk15

Wie ktoś może jak ustawić czcionkę szeryfową dla generowanego PDFa? @fanooel ?

MacDada avatar May 16 '23 20:05 MacDada

Osobiście uważam, że czcionki szeryfowe są jednymi z gorszymi do czytania dlatego pozostałbym przy tym co jest. A finalnie to i tak te Ustawy będą ręcznie obrabiane w Word 🙂.

Aktualnie używany skrypt baileyjm02/[email protected] nie umożliwia bezpośredniego ustawienia czcionki, ale możemy go zastąpić innym narzędziem, które obsługuje niestandardowe czcionki.

Nie jestem ekspertem w GitHub Workflows ale można spróbować z tym:

- name: Install wkhtmltopdf
  run: sudo apt-get install -y wkhtmltopdf

- name: Install fonts
  run: sudo apt-get install -y fonts-dejavu-core

- name: Convert to PDF
  run: |
    cd wersze\ tekstowe
    find . -name '*.md' -type f -exec sh -c 'wkhtmltopdf --enable-local-file-access --margin-top 0mm --margin-right 0mm --margin-bottom 0mm --margin-left 0mm --page-size A4 --no-background --no-outline --dpi 300 --footer-spacing 0 -T 0mm -R 0mm -B 0mm -L 0mm --header-spacing 0 -t pdf --encoding utf-8 --quiet --quiet "{}" "../wersze pdf/{}.pdf"' \;

gajosadrian avatar May 16 '23 20:05 gajosadrian

@gajosadrian jak już to lepiej użyć pandoca, gdzie możesz zrobić własny template w TEXie i nawet pododawać załączniki, spisy treści, nagłówki, stopki i co tam chcesz. Od biedy można tym też eksportować do odt czy worda :)

fanooel avatar May 17 '23 08:05 fanooel

Ewentualnie można generować PDF'y za pomocą tego skryptu w GitHub Actions, ale nie wersjonować tego w repozytorium, tylko jako artefakt w Actionsach i przy wydaniu wersji (release).

Jakubk15 avatar May 18 '23 05:05 Jakubk15

Wdrożyliśmy w końcu nieco bardziej rozbudowaną wersję z automatycznymi release i generowaniem PDFów przy pomocy Pandoca i LaTeXa (dają większe możliwości konfiguracji).

Dziękujemy za propozycje i sugestie!

MacDada avatar Jun 14 '23 21:06 MacDada