feat: Make good art (with Typst) #20

Open
doomhammer wants to merge 7 commits from make-good-art into main
Collaborator
No description provided.
doomhammer added 1 commit 2026-04-27 20:22:01 +00:00
doomhammer added 1 commit 2026-05-02 11:12:01 +00:00
First-time contributor

dodać logotyp HS3 (do pobrania stąd: https://fishy-tile-b98.notion.site/8ba11351d77a407492b3691db7c43e42?v=f06acb96869c4f0a9ee7c2a9cd3ac068 ), qr kod HS3, logotypy SM, ustawić teksty wydarzeń w czcionce bardziej technicznej (np. Rajdhani lub Hanken Grotesk), ułożenie i wygląd zbliżone do przykładowego plakatu

dodać logotyp HS3 (do pobrania stąd: https://fishy-tile-b98.notion.site/8ba11351d77a407492b3691db7c43e42?v=f06acb96869c4f0a9ee7c2a9cd3ac068 ), qr kod HS3, logotypy SM, ustawić teksty wydarzeń w czcionce bardziej technicznej (np. Rajdhani lub Hanken Grotesk), ułożenie i wygląd zbliżone do przykładowego plakatu
Author
Collaborator

Czy my potrzebujemy to "dołącz do nas" na obrazku na którym nawet nie ma linków?

Czy my potrzebujemy to "dołącz do nas" na obrazku na którym nawet nie ma linków?
doomhammer added 1 commit 2026-05-03 09:07:14 +00:00
Author
Collaborator

Tak to wygląda w najnowszej wersji:

Tak to wygląda w najnowszej wersji:
doomhammer added 1 commit 2026-05-03 16:39:30 +00:00
Author
Collaborator
No description provided.
First-time contributor

Tested on main and pr-20 with the same configuration.

main:

Fetching events between 2026-05-08T11:51:08Z and 2027-05-08T11:51:08Z...
File '/kronos/dist/newsletter_events.html' generated successfully.
File '/kronos/dist/newsletter_events_inlined.html' (inline CSS) generated.
[2026-05-08 13:51:08] [INFO    ] discord.client: logging in using static token
Error: expected token to be a str, received NoneType instead
5MoF czyli 5 Minut Sławy (lub Sławosza) — 2026-07-03T16:00:00Z
[DI.Day] Dzień Cyfrowej Niezależności — 2026-06-01T16:00:00Z
Wycieczka na P.I.W.O. — 2026-05-29T22:00:00Z
Otwarty Dzień Projektowy — 2026-05-29T16:00:00Z
⚡ 101 Electronics — 2026-05-27T18:00:00Z
Otwarty Dzień Projektowy — 2026-05-22T16:00:00Z
⚡ 101 Electronics — 2026-05-20T18:00:00Z
Otwarty Dzień Projektowy — 2026-05-15T16:00:00Z
⚡ 101 Electronics — 2026-05-13T18:00:00Z
Otwarty Dzień Projektowy — 2026-05-08T16:00:00Z
Adding 10 events

(10 events, generated HTML)

pr-20:

Fetching events between 2026-05-08T11:48:23Z and 2027-05-08T11:48:23Z...
Error: Incoming markup is of an invalid type: None. Markup must be a string, a bytestring, or an open filehandle.
5MoF czyli 5 Minut Sławy (lub Sławosza) —  2026-07-03T16:00:00Z
[DI.Day] Dzień Cyfrowej Niezależności —  2026-06-01T16:00:00Z
Wycieczka na P.I.W.O. —  2026-05-29T22:00:00Z

(only 3 events)

Tested on main and pr-20 with the same configuration. **main:** ``` Fetching events between 2026-05-08T11:51:08Z and 2027-05-08T11:51:08Z... File '/kronos/dist/newsletter_events.html' generated successfully. File '/kronos/dist/newsletter_events_inlined.html' (inline CSS) generated. [2026-05-08 13:51:08] [INFO ] discord.client: logging in using static token Error: expected token to be a str, received NoneType instead 5MoF czyli 5 Minut Sławy (lub Sławosza) — 2026-07-03T16:00:00Z [DI.Day] Dzień Cyfrowej Niezależności — 2026-06-01T16:00:00Z Wycieczka na P.I.W.O. — 2026-05-29T22:00:00Z Otwarty Dzień Projektowy — 2026-05-29T16:00:00Z ⚡ 101 Electronics — 2026-05-27T18:00:00Z Otwarty Dzień Projektowy — 2026-05-22T16:00:00Z ⚡ 101 Electronics — 2026-05-20T18:00:00Z Otwarty Dzień Projektowy — 2026-05-15T16:00:00Z ⚡ 101 Electronics — 2026-05-13T18:00:00Z Otwarty Dzień Projektowy — 2026-05-08T16:00:00Z Adding 10 events ``` (10 events, generated HTML) **pr-20:** ``` Fetching events between 2026-05-08T11:48:23Z and 2027-05-08T11:48:23Z... Error: Incoming markup is of an invalid type: None. Markup must be a string, a bytestring, or an open filehandle. 5MoF czyli 5 Minut Sławy (lub Sławosza) — 2026-07-03T16:00:00Z [DI.Day] Dzień Cyfrowej Niezależności — 2026-06-01T16:00:00Z Wycieczka na P.I.W.O. — 2026-05-29T22:00:00Z ``` (only 3 events)
leming requested changes 2026-05-13 19:41:50 +00:00
leming left a comment
Owner
  • What's the use of src/typst/assets/photo.jpg?
  • What's the use of src/typst/content/.gitkeep?
- What's the use of `src/typst/assets/photo.jpg`? - What's the use of `src/typst/content/.gitkeep`?
devenv.nix Outdated
@ -21,3 +24,4 @@
};
packages = [
pkgs.google-fonts
Owner

Group and comment deps.

Group and comment deps.
Author
Collaborator

group how?

group how?
@ -0,0 +1,74 @@
from datetime import datetime
Owner

Add comments, this applies everywhere.

Add comments, this applies everywhere.
@ -0,0 +1,3 @@
import typst
Owner

Not sure what is this file doing.

Not sure what is this file doing.
doomhammer marked this conversation as resolved
@ -5,4 +5,3 @@
from argparse import ArgumentParser
import requests
from bs4 import BeautifulSoup
Owner

Are unused imports removed?

Are unused imports removed?
Author
Collaborator

A very good question. I think it was you who set up the tooling, so maybe you recall if we had this working before?

A very good question. I think it was you who set up the tooling, so maybe you recall if we had this working before?
@ -0,0 +1,143 @@
import datetime
Owner

Prefix private stuff with _.

Prefix private stuff with `_`.
doomhammer marked this conversation as resolved
@ -0,0 +1,2 @@
assets/tmp/*
Owner

Instead of creating a new file - add this info to repo root .gitignore?

Instead of creating a new file - add this info to repo root `.gitignore`?
Author
Collaborator

That's what I wanted to avoid. This was sub-project specific so I wanted to keep it within the bounds of a sub-project.

That's what I wanted to avoid. This was sub-project specific so I wanted to keep it within the bounds of a sub-project.
Author
Collaborator

@leming wrote in #20 (comment):

  • What's the use of src/typst/assets/photo.jpg?

It's a placeholder for generating event covers

* What's the use of `src/typst/content/.gitkeep`?

It allows Git to create the directory when checking out so we can fill in the contents of events we want to put on a calendar poster

@leming wrote in https://forge.hs3.pl/leming/kronos/pulls/20#issuecomment-237: > * What's the use of `src/typst/assets/photo.jpg`? It's a placeholder for generating event covers > > * What's the use of `src/typst/content/.gitkeep`? It allows Git to create the directory when checking out so we can fill in the contents of events we want to put on a calendar poster
doomhammer added 1 commit 2026-06-03 10:03:03 +00:00
Author
Collaborator

@xyphozoa wrote in #20 (comment):

Tested on main and pr-20 with the same configuration.

main:

Fetching events between 2026-05-08T11:51:08Z and 2027-05-08T11:51:08Z...
File '/kronos/dist/newsletter_events.html' generated successfully.
File '/kronos/dist/newsletter_events_inlined.html' (inline CSS) generated.
[2026-05-08 13:51:08] [INFO    ] discord.client: logging in using static token
Error: expected token to be a str, received NoneType instead
5MoF czyli 5 Minut Sławy (lub Sławosza) — 2026-07-03T16:00:00Z
[DI.Day] Dzień Cyfrowej Niezależności — 2026-06-01T16:00:00Z
Wycieczka na P.I.W.O. — 2026-05-29T22:00:00Z
Otwarty Dzień Projektowy — 2026-05-29T16:00:00Z
⚡ 101 Electronics — 2026-05-27T18:00:00Z
Otwarty Dzień Projektowy — 2026-05-22T16:00:00Z
⚡ 101 Electronics — 2026-05-20T18:00:00Z
Otwarty Dzień Projektowy — 2026-05-15T16:00:00Z
⚡ 101 Electronics — 2026-05-13T18:00:00Z
Otwarty Dzień Projektowy — 2026-05-08T16:00:00Z
Adding 10 events

(10 events, generated HTML)

pr-20:

Fetching events between 2026-05-08T11:48:23Z and 2027-05-08T11:48:23Z...
Error: Incoming markup is of an invalid type: None. Markup must be a string, a bytestring, or an open filehandle.
5MoF czyli 5 Minut Sławy (lub Sławosza) —  2026-07-03T16:00:00Z
[DI.Day] Dzień Cyfrowej Niezależności —  2026-06-01T16:00:00Z
Wycieczka na P.I.W.O. —  2026-05-29T22:00:00Z

(only 3 events)

It should be good now

@xyphozoa wrote in https://forge.hs3.pl/leming/kronos/pulls/20#issuecomment-219: > Tested on main and pr-20 with the same configuration. > > **main:** > > ```text > Fetching events between 2026-05-08T11:51:08Z and 2027-05-08T11:51:08Z... > File '/kronos/dist/newsletter_events.html' generated successfully. > File '/kronos/dist/newsletter_events_inlined.html' (inline CSS) generated. > [2026-05-08 13:51:08] [INFO ] discord.client: logging in using static token > Error: expected token to be a str, received NoneType instead > 5MoF czyli 5 Minut Sławy (lub Sławosza) — 2026-07-03T16:00:00Z > [DI.Day] Dzień Cyfrowej Niezależności — 2026-06-01T16:00:00Z > Wycieczka na P.I.W.O. — 2026-05-29T22:00:00Z > Otwarty Dzień Projektowy — 2026-05-29T16:00:00Z > ⚡ 101 Electronics — 2026-05-27T18:00:00Z > Otwarty Dzień Projektowy — 2026-05-22T16:00:00Z > ⚡ 101 Electronics — 2026-05-20T18:00:00Z > Otwarty Dzień Projektowy — 2026-05-15T16:00:00Z > ⚡ 101 Electronics — 2026-05-13T18:00:00Z > Otwarty Dzień Projektowy — 2026-05-08T16:00:00Z > Adding 10 events > ``` > > (10 events, generated HTML) > > **pr-20:** > > ```text > Fetching events between 2026-05-08T11:48:23Z and 2027-05-08T11:48:23Z... > Error: Incoming markup is of an invalid type: None. Markup must be a string, a bytestring, or an open filehandle. > 5MoF czyli 5 Minut Sławy (lub Sławosza) — 2026-07-03T16:00:00Z > [DI.Day] Dzień Cyfrowej Niezależności — 2026-06-01T16:00:00Z > Wycieczka na P.I.W.O. — 2026-05-29T22:00:00Z > ``` > > (only 3 events) It should be good now
doomhammer added 1 commit 2026-06-03 11:20:22 +00:00
doomhammer added 1 commit 2026-06-06 12:25:29 +00:00
leming requested changes 2026-06-07 12:36:58 +00:00
@ -0,0 +5,4 @@
This module compiles the typst code of the calendar and puts it in `calendar.pdf` file (in the
current working directory) for printing or distribution.
setzer means typesetter in German: https://en.wiktionary.org/wiki/Setzer#Noun
Owner

Just name this file run_typst_compilation.py. Even english name does not indicate clearly what it does in digital context, and here we need dictionary to understand context.

Just name this file `run_typst_compilation.py`. Even english name does not indicate clearly what it does in digital context, and here we need dictionary to understand context.
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin make-good-art:make-good-art
git checkout make-good-art

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git checkout main
git merge --no-ff make-good-art
git checkout make-good-art
git rebase main
git checkout main
git merge --ff-only make-good-art
git checkout make-good-art
git rebase main
git checkout main
git merge --no-ff make-good-art
git checkout main
git merge --squash make-good-art
git checkout main
git merge --ff-only make-good-art
git checkout main
git merge make-good-art
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
4 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: leming/kronos#20
No description provided.