treehouse/content/treehouse/issues.tree

223 lines
9.6 KiB
Plaintext

%% 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 = "01J093FGZFMK5TM27RT7R2YM6N"
- :DOING: :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"
- :TODO: caching images
% id = "01J3A23S4RTP0FBKWWCNN3KCTQ"
- :DONE: caching JavaScript
% id = "01J3A23S4RVHZR3BE7EFQ8ZPPB"
- :TODO: caching the import map - browsers make this kinda hard because `<script type="importmap">`
currently does not support the `src=""` attribute.
I wonder if it's possible to add an import map into the document dynamically.
% id = "01J3A23S4R0NNH1K4V2J8ZJAT2"
- :TODO: caching HTML pages
% id = "01J3A23S4RQRG0SG6T7QZGH7SF"
- :TODO: caching the sandbox
% id = "01J0VN48BRABQ11Z1CE8EDQXXS"
+ :TODO: :l_feat: add page backreferences
% id = "01J0VN48BRGF0YD16Q7XWE5BPS"
- sometimes it's useful to see which pages link to a specific page
% id = "01J0VN48BRFM9DDP9KGZF4RGAR"
+ :TODO: :l_dev: replace Handlebars with something simpler and smaller
% id = "01J0VN48BR9299AB13A8FR2SF4"
- I don't need this many dependencies with this little customizability thank you
% id = "01J095FBXRC760YT7PZWWXQCMT"
+ :TODO: :l_feat: add search feature to issue tracker
% id = "01J095FBXRR0B8ESMDNWGVE73V"
- it can be kind of annoying to have to navigate all the issues manually
% id = "01J093FGZFWANMZ16P3FS092QP"
+ :TODO: :l_art: this issue tracker lacks icons. lol
% id = "01J094P8H3Z82NASXGT5ASQ13J"
- in the meantime, if you're reading this - the `:l_*:` emoji are meant to be issue labels.
% id = "01J095FBXRP9WNX3XJ30WCKQRN"
- BEFORE YOU SCREAM AT ME THAT EVEN AS STUPID OF A THING AS `:TODO:` IS MISSING - I KNOW.
LET ME COOK.
% id = "01J093FGZFTR7MET3K0J8XDV2J"
+ :TODO: :l_dev: a more sophisticated build system to avoid rebuilding all pages when that's not needed
% 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"
+ :TODO: :l_content: [page:programming/projects] needs the rest of my projects
% id = "01J0VN48BR5XZSHC0D6Q3DRG8P"
- I haven't had the motivation (or a reason) to talk about my projects there yet so yeah.
% id = "01J093FGZF0D919Q1CS67SR4S2"
+ :TODO: :l_perf: experiment with fetching smaller amounts of HTML to fill in trees
% 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"
+ :TODO: :l_content: [page:programming/blog/lvalues] C compiler that desugars lvalue operations
% id = "01J093FGZFDYYGHEQJ63AQ7HKX"
- it would be nice if we had a way of letting the user explore the idea in more detail
% id = "01J093FGZFR8YQB58SSDT4QDY4"
+ :TODO: :l_perf: experiment with caching HTML pages/fragments
% 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"
+ :TODO: :l_feat: RSS/Atom feed
% 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"
+ :TODO: :l_a11y: respect `@media (prefers-reduced-motion: reduce)`
% id = "01J094P8H314H637A9ECGTCT95"
- should be pretty easy to implement this - we control all transitions via a single `var(--transition-duration)` CSS variable
% id = "01J093FGZFYEFPV01SG9MKM0GT"
+ :TODO: :l_feat: implement [Webmentions](https://indieweb.org/Webmention)
% id = "01J093FGZFJZ191RSZFVSND6QE"
+ :TODO: :l_content: [page:programming/blog/tairu] has a [leftover TODO][branch:01HPD4XQPW8HE7681P7H686X4N]
% id = "01J093FGZF5PEM6EWCDEKSX8S0"
+ :TODO: :l_feat: :l_sandbox: do not load iframes that are out of viewport
% 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"
+ :TODO: :l_dev: fallback and dev servers
% 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"
+ :TODO: :l_sandbox: sandbox: <kbd>Delete</kbd> key does not work
% 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"
+ :TODO: :l_feat: :l_a11y: keyboard navigation
% 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"
+ :TODO: :l_feat: allow the user to "zoom into" a branch
% 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 = "01J093FGZFPT3EF8XX6ZRPJVR9"
+ :DONE: :l_a11y: respect user's font size instead of forcing 14px
% 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.
% 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!