update changelog - revision 10

This commit is contained in:
liquidex 2024-07-25 23:13:24 +02:00
parent 5b8f9b51cb
commit 782bf344f1
2 changed files with 86 additions and 10 deletions

View file

@ -1,5 +1,81 @@
%% title = "what's going on inside the house? (a changelog)" %% title = "what's going on inside the house? (a changelog)"
% id = "01J3NX4F6Z0JWN0E4B3DJMTAFH"
- **revision 10:** I am speed
% id = "01J3NX4F6Z0WB2RN4GHTVFNRGB"
+ the treehouse now caches most static assets, so that they don't have to be redownloaded.
especially that very large font, which I should probably optimize now that I think about it!
% id = "01J3NX4F6ZMB691JYM61RHP4ZN"
- there are some minor exceptions to this, which include:
% id = "01J3NX4F6Z59655NYTS3QTA9EQ"
+ pages themselves. we cannot cache those at all. well, maybe in release mode, for like 10 seconds, which defeats the point.
% id = "01J3NX4F6Z5J3PYZPBESR30CD8"
- we can only cache those assets which are guaranteed not to change given their URL.
caching on the treehouse is performed by means of a `?cache` query parameter which contains a truncated BLAKE3 sum of the cached file's contents.
that way we can tell the browser to redownload the asset by changing out the hash.
this is impossible to do for pages, because they may change at any point in time.
% id = "01J3NX4F6ZBQVY66EZB5TY8R7Q"
- I tend to update the treehouse very often - including post-deploy, if I fuck something up - so if I enable caching for e.g. an hour, and people visit the broken version, they're then stuck with a broken version for an hour.
seriously, timed caching is not a good solution for incremental website updates.
% id = "01J3NX4F6ZXB360N1XXGN58964"
- except for `/sandbox` maybe, because that tends to be fetched in short bursts... I'll think about it.
% id = "01J3NX4F6ZJE0JT8XY49DH52RX"
- linked branches. it's hard and not worth it for the few extra kilobytes saved - for snappiness it would be much better to prefetch branch content when the user hovers over a branch.
% id = "01J3NX4F6ZVA8PCQNMGMW2DDFB"
- not sure what to do about mobile devices, because they don't have a hover state.
% id = "01J3NX4F6ZASD2FCKKNKWZCJWB"
- more images now have proper `width="" height=""` attributes, which should help eliminate layout shift when loading pages.
% id = "01J3NX4F6Z5MZQ57ZTWHZZJZ7G"
+ the treehouse is now powered by Djot, not Markdown! took me an evening or two to rewrite everything to the new markup, but I think it'll be worth it.
I can already see some pretty big clarity wins.
% id = "01J3NX4F6Z0KWMDDMBCYGB836M"
- my favorite feature so far is that you can add custom attributes to anything.
like this, for example:
``````djot
{:program=haku}
```haku
(- 100 35)
```
``````
% id = "01J3NX4F6ZGK01W6060BXTWJMJ"
- and have you noticed that there's a code block inside this code block? you can't do that in Markdown!
`````````djot
``````djot
{:program=haku}
```haku
(- 100 35)
```
``````
`````````
% id = "01J3NX4F6ZS93FTJ71YK2CASN7"
- literate programming blocks are now correctly rendered with JavaScript disabled, thanks to me rewriting the HTML renderer in the Djot transition.
% id = "01J3NX4F6ZDFZJX77DCZZJ8KKK"
+ I also took the liberty to add some highlighting to missing emojis.
meaning they now stick out like a sore thumb :sore_thumb: to nag me about adding them in (or pulling them in from other branches. hello :verified: :TODO: :DONE: how have you been)
% id = "01J3NX4F6ZY6M6RAA2DVP7TAJ4"
- yeah yeah we all know how [ad blindness][] works, this is totally not gonna push me to do this isn't it
[ad blindness]: https://en.wikipedia.org/wiki/Banner_blindness
% id = "01J09K0B6JGYBJVVZ07QFXB0FM" % id = "01J09K0B6JGYBJVVZ07QFXB0FM"
- **revision 9:** summer cleaning - **revision 9:** summer cleaning

View file

@ -76,7 +76,7 @@
reparsing JS and HTML every single time cannot be fast reparsing JS and HTML every single time cannot be fast
% id = "01J093FGZFGBDJ5QPHSZW9NVB5" % id = "01J093FGZFGBDJ5QPHSZW9NVB5"
+ :TODO: :l_content: [page:programming/projects] needs the rest of my projects + :TODO: :l_content: [page:programming/projects][] needs the rest of my projects
% id = "01J0VN48BR5XZSHC0D6Q3DRG8P" % id = "01J0VN48BR5XZSHC0D6Q3DRG8P"
- I haven't had the motivation (or a reason) to talk about my projects there yet so yeah. - I haven't had the motivation (or a reason) to talk about my projects there yet so yeah.
@ -91,7 +91,7 @@
- arguably the current `_tree.hbs` template is not that large, but it's not exactly small either - arguably the current `_tree.hbs` template is not that large, but it's not exactly small either
% id = "01J093FGZFMA8RWXA3QTMFX4A0" % id = "01J093FGZFMA8RWXA3QTMFX4A0"
+ :TODO: :l_content: [page:programming/blog/lvalues] C compiler that desugars lvalue operations + :TODO: :l_content: [page:programming/blog/lvalues][] C compiler that desugars lvalue operations
% id = "01J093FGZFDYYGHEQJ63AQ7HKX" % id = "01J093FGZFDYYGHEQJ63AQ7HKX"
- it would be nice if we had a way of letting the user explore the idea in more detail - it would be nice if we had a way of letting the user explore the idea in more detail
@ -131,7 +131,7 @@
+ :TODO: :l_feat: implement [Webmentions](https://indieweb.org/Webmention) + :TODO: :l_feat: implement [Webmentions](https://indieweb.org/Webmention)
% id = "01J093FGZFJZ191RSZFVSND6QE" % id = "01J093FGZFJZ191RSZFVSND6QE"
+ :TODO: :l_content: [page:programming/blog/tairu] has a [leftover TODO][branch:01HPD4XQPW8HE7681P7H686X4N] + :TODO: :l_content: [page:programming/blog/tairu][] has a [leftover TODO][branch:01HPD4XQPW8HE7681P7H686X4N]
% id = "01J093FGZF5PEM6EWCDEKSX8S0" % id = "01J093FGZF5PEM6EWCDEKSX8S0"
+ :TODO: :l_feat: :l_sandbox: do not load iframes that are out of viewport + :TODO: :l_feat: :l_sandbox: do not load iframes that are out of viewport
@ -152,10 +152,10 @@
- add a `https://dev.liquidex.house` that will let me push changes for friends to see without breaking shit on the main branch - add a `https://dev.liquidex.house` that will let me push changes for friends to see without breaking shit on the main branch
% id = "01J093FGZF4400EAJYJGT2FFJJ" % id = "01J093FGZF4400EAJYJGT2FFJJ"
+ :TODO: :l_sandbox: sandbox: <kbd>Delete</kbd> key does not work + :TODO: :l_sandbox: sandbox: `<kbd>Delete</kbd>`{=html} key does not work
% id = "01J094P8H34NSZDWC067ENAX3T" % id = "01J094P8H34NSZDWC067ENAX3T"
- I managed to get the <kbd>Backspace</kbd> key to work fine in Firefox, but <kbd>Delete</kbd> still needs some work. - I managed to get the `<kbd>Backspace</kbd>`{=html} key to work fine in Firefox, but `<kbd>Delete</kbd>`{=html} still needs some work.
% id = "01J093FGZF2K8Y2S8JY61GBWHR" % id = "01J093FGZF2K8Y2S8JY61GBWHR"
+ :TODO: :l_feat: :l_a11y: keyboard navigation + :TODO: :l_feat: :l_a11y: keyboard navigation
@ -164,20 +164,20 @@
- it should be possible to navigate the tree using your keyboard: - it should be possible to navigate the tree using your keyboard:
% id = "01J094P8H3HJCADRWQNGBWMR36" % id = "01J094P8H3HJCADRWQNGBWMR36"
- <kbd>↑</kbd> <kbd>↓</kbd> - choose branch - `<kbd>↑</kbd>`{=html} `<kbd>↓</kbd>`{=html} - choose branch
% id = "01J094P8H3B44DBXCY0N6AFG9D" % id = "01J094P8H3B44DBXCY0N6AFG9D"
- <kbd>←</kbd> - collapse - `<kbd>←</kbd>`{=html} - collapse
% id = "01J094P8H30JBKYJPT01M0C68T" % id = "01J094P8H30JBKYJPT01M0C68T"
- <kbd>→</kbd> - expand - `<kbd>→</kbd>`{=html} - expand
% id = "01J094P8H3MTV093F4Z0AMSJQ9" % id = "01J094P8H3MTV093F4Z0AMSJQ9"
- these shortcuts overwrite browser functionality so it should probably only be enabled if the user starts pushing <kbd>Tab</kbd> to focus elements. - these shortcuts overwrite browser functionality so it should probably only be enabled if the user starts pushing `<kbd>Tab</kbd>`{=html} to focus elements.
% id = "01J094P8H368794MNW65W074A0" % id = "01J094P8H368794MNW65W074A0"
- this will probably also require us to add proper `tabindex`es to elements, which isn't currently done; - this will probably also require us to add proper `tabindex`es to elements, which isn't currently done;
the <kbd>Tab</kbd> navigation experience is a hodgepodge, focusing on various elements that don't exactly make much sense. the `<kbd>Tab</kbd>`{=html} navigation experience is a hodgepodge, focusing on various elements that don't exactly make much sense.
% id = "01J093FGZFJB7BB1YNJX32MXCG" % id = "01J093FGZFJB7BB1YNJX32MXCG"
+ :TODO: :l_feat: allow the user to "zoom into" a branch + :TODO: :l_feat: allow the user to "zoom into" a branch