treehouse/content/treehouse/issues.tree

232 lines
10 KiB
Plaintext
Raw Normal View History

2024-06-13 18:04:31 +02:00
%% title = "issues"
styles = ["page/treehouse/issues.css"]
% id = "01J093FGZF8R1MZR0QG7R6G2EB"
- welcome! this page lists all publicly known issues with the treehouse, as well as future improvement plans etc.
% id = "01J093FGZFX9DW9YNDD61G1BX0"
- to submit an issue, please [get in touch][branch:hello].
% id = "01J093FGZFX3E14J7C5YPS97HC"
- before you do, please have a cursory glance at all the issues and ensure your issue hasn't already been fixed, or marked as "won't fix"
% id = "issue-list"
- ## issue list
% id = "01J3A23S4RVHZR3BE7EFQ8ZPPB"
- :TODO: :l_perf: caching the import map
2024-07-20 23:38:41 +02:00
% id = "01J3JRJECXHZ1M90VSAQPN2FX1"
- browsers make this kinda hard because `<script type="importmap">` currently does not support the `src=""` attribute.
2024-07-20 23:38:41 +02:00
% id = "01J3JRJECXDK25115XSN5FC7XA"
- I wonder if it's possible to add an import map into the document dynamically.
all my attempts so far have failed.
2024-07-20 23:38:41 +02:00
% id = "01J3JRJECXCZ3QFH5Z4PPKPCVK"
- an alternative to this would be to avoid the import map and instead recompile JS to add query params to `import` statements, but that's a piece of complexity I'd like to avoid.
I like the simplicity of import maps.
2024-07-20 23:38:41 +02:00
% id = "01J3JRCRA8CGG9VGT2Y2W0G160"
+ :TODO: :l_feat: branch edit history
2024-07-20 23:38:41 +02:00
% id = "01J3JRCRA86XYST7JBVN9HX5VE"
- I've been trying to not conceal old (versions of) branches, but it's kind of hard to do while keeping content readable (both from the user side and my side.)
so having an unobtrusive system for tracking changes here would be nice.
2024-07-20 23:38:41 +02:00
2024-06-20 22:24:12 +02:00
% id = "01J0VN48BRABQ11Z1CE8EDQXXS"
2024-06-19 22:34:03 +02:00
+ :TODO: :l_feat: add page backreferences
2024-06-13 18:04:31 +02:00
2024-06-20 22:24:12 +02:00
% id = "01J0VN48BRGF0YD16Q7XWE5BPS"
2024-06-19 22:34:03 +02:00
- sometimes it's useful to see which pages link to a specific page
2024-06-20 22:24:12 +02:00
% id = "01J0VN48BRFM9DDP9KGZF4RGAR"
2024-06-19 22:34:03 +02:00
+ :TODO: :l_dev: replace Handlebars with something simpler and smaller
2024-06-20 22:24:12 +02:00
% id = "01J0VN48BR9299AB13A8FR2SF4"
2024-06-19 22:34:03 +02:00
- I don't need this many dependencies with this little customizability thank you
2024-06-13 18:04:31 +02:00
% id = "01J095FBXRC760YT7PZWWXQCMT"
2024-06-19 22:34:03 +02:00
+ :TODO: :l_feat: add search feature to issue tracker
2024-06-13 18:04:31 +02:00
% id = "01J095FBXRR0B8ESMDNWGVE73V"
- it can be kind of annoying to have to navigate all the issues manually
% id = "01J093FGZFWANMZ16P3FS092QP"
2024-06-19 22:34:03 +02:00
+ :TODO: :l_art: this issue tracker lacks icons. lol
2024-06-13 18:04:31 +02:00
% id = "01J094P8H3Z82NASXGT5ASQ13J"
- in the meantime, if you're reading this - the `:l_*:` emoji are meant to be issue labels.
% id = "01J095FBXRP9WNX3XJ30WCKQRN"
2024-06-19 22:34:03 +02:00
- BEFORE YOU SCREAM AT ME THAT EVEN AS STUPID OF A THING AS `:TODO:` IS MISSING - I KNOW.
2024-06-13 18:04:31 +02:00
LET ME COOK.
% id = "01J093FGZFTR7MET3K0J8XDV2J"
2024-06-19 22:34:03 +02:00
+ :TODO: :l_dev: a more sophisticated build system to avoid rebuilding all pages when that's not needed
2024-06-13 18:04:31 +02:00
% id = "01J093FGZFPS5BF2AMKZEJA5TE"
- currently the treehouse rebuilds the entirety of itself, always
% id = "01J093FGZFS4TTF9E212VJRPK7"
- I'd like to explore a more incremental approach where only changed files + dependencies are rebuilt
% id = "01J094P8H32GPSG0KPNXE345CH"
- probably without too much complicated dependency tracking because fuck that.
reparsing JS and HTML every single time cannot be fast
% id = "01J093FGZFGBDJ5QPHSZW9NVB5"
2024-06-19 22:34:03 +02:00
+ :TODO: :l_content: [page:programming/projects] needs the rest of my projects
2024-06-20 22:24:12 +02:00
% id = "01J0VN48BR5XZSHC0D6Q3DRG8P"
2024-06-19 22:34:03 +02:00
- I haven't had the motivation (or a reason) to talk about my projects there yet so yeah.
2024-06-13 18:04:31 +02:00
% id = "01J093FGZF0D919Q1CS67SR4S2"
2024-06-19 22:34:03 +02:00
+ :TODO: :l_perf: experiment with fetching smaller amounts of HTML to fill in trees
2024-06-13 18:04:31 +02:00
% id = "01J093FGZFVCJFK2S2Z5YEMZ3N"
- currently opening an externally-linked branch fetches its linked page in its entirety, except that's not really necessary
% id = "01J093FGZFGZQX0ZNW1HTPPYGM"
- arguably the current `_tree.hbs` template is not that large, but it's not exactly small either
% id = "01J093FGZFMA8RWXA3QTMFX4A0"
2024-06-19 22:34:03 +02:00
+ :TODO: :l_content: [page:programming/blog/lvalues] C compiler that desugars lvalue operations
2024-06-13 18:04:31 +02:00
% id = "01J093FGZFDYYGHEQJ63AQ7HKX"
- it would be nice if we had a way of letting the user explore the idea in more detail
% id = "01J093FGZFR8YQB58SSDT4QDY4"
2024-06-19 22:34:03 +02:00
+ :TODO: :l_perf: experiment with caching HTML pages/fragments
2024-06-13 18:04:31 +02:00
% id = "01J093FGZF3JH8DVAKYDYETVQH"
- currently the browser fetches each branch from scratch because they cannot be cached
% id = "01J094P8H3AXF4J13KQGWW7ZNY"
- maybe exploiting cache control headers would help here to reduce the need to redownload the same content over and over again
% id = "01J094P8H3R910T6R10S62QA40"
- maybe using IndexDB to save branch content and fetch it quickly would help too.
but I don't like that as much as just using what the browser offers.
% id = "01J093FGZF8M0Q02YX3VFSZ06X"
2024-06-19 22:34:03 +02:00
+ :TODO: :l_feat: RSS/Atom feed
2024-06-13 18:04:31 +02:00
% id = "01J094P8H3VZKESVHKVJRVXTG1"
- there's no real way to subscribe to updates from the treehouse yet. (talking about [page:treehouse/new] here)
% id = "01J094P8H3Q59F5CAE8CK6DWYY"
- arguably this might be a bit hard, since it seems like feed readers are meant to let you read the whole post inline - which uh, treehouse, uhhhh
% id = "01J094P8H37P5F1MP14758ZNQH"
- its structure makes this kind of hard
% id = "01J093FGZF3M6HR6E0X3P44D0M"
2024-06-19 22:34:03 +02:00
+ :TODO: :l_a11y: respect `@media (prefers-reduced-motion: reduce)`
2024-06-13 18:04:31 +02:00
% id = "01J094P8H314H637A9ECGTCT95"
- should be pretty easy to implement this - we control all transitions via a single `var(--transition-duration)` CSS variable
% id = "01J093FGZFYEFPV01SG9MKM0GT"
2024-06-19 22:34:03 +02:00
+ :TODO: :l_feat: implement [Webmentions](https://indieweb.org/Webmention)
2024-06-13 18:04:31 +02:00
% id = "01J093FGZFJZ191RSZFVSND6QE"
2024-06-19 22:34:03 +02:00
+ :TODO: :l_content: [page:programming/blog/tairu] has a [leftover TODO][branch:01HPD4XQPW8HE7681P7H686X4N]
2024-06-13 18:04:31 +02:00
% id = "01J093FGZF5PEM6EWCDEKSX8S0"
2024-06-19 22:34:03 +02:00
+ :TODO: :l_feat: :l_sandbox: do not load iframes that are out of viewport
2024-06-13 18:04:31 +02:00
% id = "01J094P8H3KK35GQ0A0KMMAPHQ"
- this slows down loading a page initially and contributes to layout shift when you're linked to a branch that's very far down the bottom of the page
% id = "01J093FGZFMAFSRZQ8QPMQRW04"
2024-06-19 22:34:03 +02:00
+ :TODO: :l_dev: fallback and dev servers
2024-06-13 18:04:31 +02:00
% id = "01J094P8H35B433CRTS1TYR7R8"
- add a fallback server that nginx redirects to while the main server is rebuilding
% id = "01J094P8H3C9ZMA482D49ZEM9F"
- once the main server is rebuilt, we boot it up and restart the fallback (which will be quick since there's no need to rebuild Rust code again)
% id = "01J094P8H3GDRAMRP025ZS352C"
- 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"
2024-06-19 22:34:03 +02:00
+ :TODO: :l_sandbox: sandbox: <kbd>Delete</kbd> key does not work
2024-06-13 18:04:31 +02:00
% id = "01J094P8H34NSZDWC067ENAX3T"
- I managed to get the <kbd>Backspace</kbd> key to work fine in Firefox, but <kbd>Delete</kbd> still needs some work.
% id = "01J093FGZF2K8Y2S8JY61GBWHR"
2024-06-19 22:34:03 +02:00
+ :TODO: :l_feat: :l_a11y: keyboard navigation
2024-06-13 18:04:31 +02:00
% id = "01J094P8H38VGB9Q2AR70P0CR8"
- it should be possible to navigate the tree using your keyboard:
% id = "01J094P8H3HJCADRWQNGBWMR36"
- <kbd>↑</kbd> <kbd>↓</kbd> - choose branch
% id = "01J094P8H3B44DBXCY0N6AFG9D"
- <kbd>←</kbd> - collapse
% id = "01J094P8H30JBKYJPT01M0C68T"
- <kbd>→</kbd> - expand
% 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.
% id = "01J094P8H368794MNW65W074A0"
- 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.
% id = "01J093FGZFJB7BB1YNJX32MXCG"
2024-06-19 22:34:03 +02:00
+ :TODO: :l_feat: allow the user to "zoom into" a branch
2024-06-13 18:04:31 +02:00
% id = "01J094P8H34WES4R37NAE6DA6H"
- something akin to Logseq where you can click the bullet point to isolate the branch, because deep nesting can get a little unwieldy and hard to read (especially on mobile devices.)
% id = "01J094P8H3Z1XD5WZ61KP77A84"
- not sure how to solve this UX-wise.
% id = "01J093FGZFMK5TM27RT7R2YM6N"
+ :DONE: :l_perf: cache static assets
% id = "01J094P8H3C9V6KFHTTS1MW467"
- this should improve performance for repeated visits _drastically_ since Recursive isn't exactly the smallest font and takes a bunch of time to load
% id = "01J3A23S4R8F21J6FDREJGJH75"
- implementation progress
% id = "01J3A23S4RNRYJXT46FQBJTA9F"
- :DONE: caching the enormous giant ass woff (woof!)
% id = "01J3A23S4R9AQXXGB4TH176F66"
- :DONE: caching CSS
% id = "01J3A23S4RCJDHVHZDCRAXJNDE"
- :DONE: caching emotes
% id = "01J3A23S4RNPZ2AGVB54FCJS9K"
- :DONE: caching images
% id = "01J3A23S4RTP0FBKWWCNN3KCTQ"
- :DONE: caching JavaScript
2024-06-19 22:34:03 +02:00
% id = "01J093FGZFPT3EF8XX6ZRPJVR9"
+ :DONE: :l_a11y: respect user's font size instead of forcing 14px
2024-06-13 18:04:31 +02:00
% id = "01J093FGZFS61ZEM1HCF6G5SRW"
+ curious why this is not GitHub?
% id = "01J093FGZFH0VCZ4T7WHMS9BJ5"
- since this is _my_ website that is closed to contributions, I'd like the issue tracker to be hosted on a place _I_ own.
2024-06-13 18:04:31 +02:00
% id = "01J093FGZFANJ8W6SPF78BS0XN"
- GitHub is simply not that, thank you very much.
% id = "01J093FGZFN5DTPA4AHSN3SPVK"
- hosting my own issue tracker does make submitting issues from eg. my phone impossible, but I'm trying out something new here.
% id = "01J094P8H36032168AZ72AJZJE"
- one thing that's a really cool side effect is that the tracker is linked to the rest of the treehouse, which makes it super easy to link stuff!