update changelog - revision 10
This commit is contained in:
parent
5b8f9b51cb
commit
782bf344f1
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue