I did the first, but the problem is that renpy rolls back save-dependent variables and the encyclopaedia I'm using is save-dependent, rendering that option unfeasible.
The rest relies on actually figuring out code, but I'm using this encyclopaedia framework https://renpy-encyclopaedia.readthedocs.io/en/latest/index.html .
The safest option would be simply to use hidden entries that get "unlocked", but I'm trying to keep the actual number of entries hidden :)