@developers
A similar app called Notable uses a nifty solution of this (other than using YAML for title):
- Instead of “:” it uses “꞉” (Wikipedia) in the actual file name, but interprets it inside the app (e.g. in header/title) as a regular colon.
- Instead of “?” it uses “ʔ”.
- etc
As far as the user is concerned, no character is disallowed, and the OS is happy.
ETA: yt-dlp uses the same method for illegal characters.