diff --git a/content/music.tree b/content/music.tree index 97353f1..6be95ef 100644 --- a/content/music.tree +++ b/content/music.tree @@ -10,7 +10,7 @@ % id = "01J8YY31QJQJYW1TTYSHKB2AV1" - :folder: *blog* - % content.link = "music/reviews/aphex-twin/blue-calx" + % content.link = "music/blue-calx" id = "01JCY18RY6B6CTC3H8ME0FRZXC" + :page: Blue Calx @@ -19,26 +19,26 @@ + :page: the curious case of Amon Tobin's Creatures % id = "01J8ZKEPGF9HDMRK2ERNM23FE2" - content.link = "music/reviews/opn/i-dont-love-me-anymore" + content.link = "music/i-dont-love-me-anymore" + :page: I Don't Love Me Anymore % id = "01J73BSW850Z2SDVM832FB60QT" content.link = "music/brainz" + :page: the ListenBrainz dataset - % content.link = "music/reviews/telefon-tel-aviv/map-of-what-is-effortless" + % content.link = "music/map-of-what-is-effortless" id = "01H9R1NKBBFTWT6FT2MVWHETR6" + :page: Telefon Tel Aviv - Map of What Is Effortless - % content.link = "music/reviews/radiohead/a-moon-shaped-pool" + % content.link = "music/a-moon-shaped-pool" id = "01H9JB094CA55NT8QR1AYNXDBT" + :page: Radiohead - A Moon Shaped Pool - % content.link = "music/reviews/aphex-twin/syro" + % content.link = "music/syro" id = "01H9DQNG9APD9BSDTP3N3QQFG3" + :page: Aphex Twin - Syro - % content.link = "music/reviews/radiohead/ok-computer" + % content.link = "music/ok-computer" id = "01H969NN1ADGRWRQTT2NE5TJZ1" + :page: Radiohead - OK Computer diff --git a/content/music/reviews/radiohead/a-moon-shaped-pool.tree b/content/music/a-moon-shaped-pool.tree similarity index 100% rename from content/music/reviews/radiohead/a-moon-shaped-pool.tree rename to content/music/a-moon-shaped-pool.tree diff --git a/content/music/reviews/aphex-twin/blue-calx.tree b/content/music/blue-calx.tree similarity index 100% rename from content/music/reviews/aphex-twin/blue-calx.tree rename to content/music/blue-calx.tree diff --git a/content/music/reviews/opn/i-dont-love-me-anymore.tree b/content/music/i-dont-love-me-anymore.tree similarity index 100% rename from content/music/reviews/opn/i-dont-love-me-anymore.tree rename to content/music/i-dont-love-me-anymore.tree diff --git a/content/music/reviews/telefon-tel-aviv/map-of-what-is-effortless.tree b/content/music/map-of-what-is-effortless.tree similarity index 100% rename from content/music/reviews/telefon-tel-aviv/map-of-what-is-effortless.tree rename to content/music/map-of-what-is-effortless.tree diff --git a/content/music/reviews/radiohead/ok-computer.tree b/content/music/ok-computer.tree similarity index 100% rename from content/music/reviews/radiohead/ok-computer.tree rename to content/music/ok-computer.tree diff --git a/content/music/reviews/aphex-twin/syro.tree b/content/music/syro.tree similarity index 100% rename from content/music/reviews/aphex-twin/syro.tree rename to content/music/syro.tree diff --git a/content/programming.tree b/content/programming.tree index 417893e..edbfd36 100644 --- a/content/programming.tree +++ b/content/programming.tree @@ -9,43 +9,43 @@ % id = "01HPD4XQQ5GPQ20C6BPA8G670F" - :folder: *blog* - % content.link = "programming/blog/aoc" + % content.link = "programming/aoc" id = "01JDZKMPHT02WJBF2TC5YBWGMB" + :page: Advent of Code feels - % content.link = "programming/blog/vfs" + % content.link = "programming/vfs" id = "01JDJJHCGTAJ78K8WRXV00ZEJC" + :page: composable virtual file systems - % content.link = "programming/blog/cstring-starts-with" + % content.link = "programming/cstring-starts-with" id = "01JCGAM56KS2C6D4XZ1MRATXH4" + :page: prefix matches with C strings - % content.link = "programming/blog/buildsome" + % content.link = "programming/buildsome" id = "01J7BYKQHZKYQ969T3PH3V8HF1" + :page: not quite buildless - % content.link = "programming/blog/haku" + % content.link = "programming/haku" id = "01J4J4PAXRWZDP9PAZNGCQ9S3D" + :page: haku - writing a little programming language for fun - % content.link = "programming/blog/lvalues" + % content.link = "programming/lvalues" id = "01HY5R1ZW0M0Y5KQ1E8F0Q73ZT" + :page: places, or what is up with `*x` not always meaning the same thing - % content.link = "programming/blog/systems" + % content.link = "programming/systems" id = "01J0PBKY1AAPGXG6NSRDTMV48F" + :page: systems are just a bunch of code - % content.link = "programming/blog/or-types" + % content.link = "programming/or-types" id = "01HTWN4XB2YMF3615BE8V6Y76A" + :page: OR-types - % content.link = "programming/blog/tairu" + % content.link = "programming/tairu" id = "01HPD4XQQ5WM0APCAX014HM43V" + :page: tairu - an interactive exploration of 2D autotiling techniques - % content.link = "about-treehouse" + % content.link = "programming/about-treehouse" id = "01H89RFHCQ1YB7CXBBR6NDDAC1" redirect_from = ["about-treehouse"] + :page: about the treehouse @@ -53,22 +53,22 @@ % id = "01HRG2RJCNKT9JJJVQ8WVRC9CA" - :folder: *languages* - % content.link = "programming/languages/cxx" + % content.link = "programming/cxx" id = "programming/languages/cxx" + :folder: C++ - % content.link = "programming/languages/javascript" + % content.link = "programming/javascript" id = "programming/languages/javascript" + :page: JavaScript - % content.link = "programming/languages/lua" + % content.link = "programming/lua" id = "programming/languages/lua" + :page: Lua % id = "01HRG2RJCN8J42NK0KWD3SBSJA" - :folder: *technologies* - % content.link = "programming/technologies/unreal-engine" + % content.link = "programming/unreal-engine" id = "programming/technologies/unreal-engine" + :folder: Unreal Engine diff --git a/content/about-treehouse.tree b/content/programming/about-treehouse.tree similarity index 99% rename from content/about-treehouse.tree rename to content/programming/about-treehouse.tree index 06c76a9..93f3a21 100644 --- a/content/about-treehouse.tree +++ b/content/programming/about-treehouse.tree @@ -27,7 +27,7 @@ % id = "01H8VWEFHZA94G0DNPD79YV535" + … - % content.link = "about-treehouse/emoji" + % content.link = "treehouse/emoji" id = "01H8VWEFHZ7Z71WJ347WFMC9YT" + by the way did you know this website has custom emojis? and quite a lot of them, too @@ -53,7 +53,7 @@ + _where?_ % id = "01H89RFHCQW4NN6PW6V6RFCVH3" - content.link = "about-treehouse/the-end-is-never" + content.link = "the-end-is-never" + _*WHERE???*_ % id = "01H89RFHCQPAMNSN81SRVH2TZ5" diff --git a/content/programming/blog/aoc.tree b/content/programming/aoc.tree similarity index 100% rename from content/programming/blog/aoc.tree rename to content/programming/aoc.tree diff --git a/content/programming/blog/nix.tree b/content/programming/blog/nix.tree deleted file mode 100644 index 840b529..0000000 --- a/content/programming/blog/nix.tree +++ /dev/null @@ -1,88 +0,0 @@ -%% title = "derive me some Nix" - -% id = "01J31356Q1A4Z54F3G7THB1C81" -- chances are you've heard about Nix or NixOS from somewhere and would like to learn more about it. - - % id = "01J31356Q1AQE7ZBE2P7FG03G4" - - if that is the case, welcome to the club! - we're pretty much in the same bucket. - I literally just started using Nix a couple days ago, and I found the documentation *really* unclear. - so here's my shot at a more pedagogical approach. - - % id = "01J31356Q1N80MYK77MP3BMJ1E" - - if that's not the case - Nix is a package manager and system configuration language. - basically, you specify how you want your system to look using config files stored in one place, and Nix _derives_ the system from that config file for you! - - % id = "01J31356Q13VHG7EN0Q24A6GSM" - - I emphasized the word _derives_, because _derivation_ is the fundamental operation of Nix the package manager. - your entire config is specified declaratively, and the entire folder structure and all configuration files are _derived_ from that config. - but we'll get to that shortly. - -% id = "01J31356Q1G1X5X9Q7BPDT41R5" -- people seem to be excited about Nix for many reasons. -I'm excited because it helps me achieve *online independence.* - - % id = "01J31356Q12T9Z1WE300PD7J79" - - did you know that since last weekend (since this was written) this website runs on NixOS? - - % id = "01J31356Q1KM0TT28D4PHZTAR9" - - being able to take your VPS's configuration elsewhere and let Nix cook your system up automatically is extremely cool. - it's something that's always frustrated me with how Linux software is configured - - lots of little configuration files scattered across `/etc` and sometimes other directories, which ends up being extremely hard to replicate if you ever want to switch server providers. - - % id = "01J31356Q1D0SJPJB1V4MYPNX9" - - *and* your system config will end up identical to the one you had before! - isn't that awesome? - -% id = "01J31356Q1BNSAF75KDE4PN2PJ" -- word of warning though: I wouldn't recommend running NixOS on a home PC. - - % id = "01J31356Q1C13GSD9KSXETWW1B" - - I use :btw: on my home PC for a very simple reason. - it's just _really darn simple_ to change anything about my system. - - % id = "01J31356Q1JZ13FY2XAVVKAN97" - - need to install a new package? `pacman -S`. - - % id = "01J31356Q1VJ0HFQYVS1AE7CZB" - - need to edit system config? - well first of all no you don't, because other than fundamental config you change during installation, we both know Arch works pretty much works out of the box on your PC, - but even if you _do_ end up needing to change some config for a workaround, it's generally only because you need a _workaround_ - which may not be needed by the time you reinstall your system. - - % id = "01J31356Q162ACZG4S6M9YNQX2" - - and reinstall your OS pretty rarely. - - % id = "01J31356Q1ZXDA6QX5P978FTPS" - - most of your _important_ configuration is stored in `$HOME` y'know, and that's easy to keep between reinstalls - you have a separate `/home` partition after all. - - % id = "01J31356Q1KYMMG64D3TNXH3C5" - - :btw: is also Really Darn Fast. - I can't say that about NixOS. - the package manager is excruciatingly slow to update your system config. - the initial install took _really_ long for how barebones of a system I specified in my config. - -% id = "01J31356Q1CA21R7GM9MXGQ7Q4" -- let's derive us a system! as I mentioned before, everything in Nix is achieved by means of _derivations_. - - % id = "01J31356Q191D3J645CT75YFEJ" - - from a programming perspective, a derivation is simply a function `options -> path`, where `options` is an attribute set specifying how the output `path` should be derived. - - % id = "01J31356Q1PRWPYD0EGGY1ZK3W" - - and that's *it*. - - % id = "01J31356Q1445NB18CNBE91CZP" - - suppose you'd like to download a file from the Internet. - that's what the `pkgs.fetchurl` function is for. - - ```nix - # This expression results in a path to the downloaded file. - pkgs.fetchurl { - url = "https://liquidex.house"; - # As long as you fill in the hash, which I don't know... - # Nix will tell you what it should be though! - hash = ""; - } - ``` - -% id = "01J31356Q1HEW2HCTG27BDFJM2" -- but where does `pkgs` even come from? diff --git a/content/programming/blog/buildsome.tree b/content/programming/buildsome.tree similarity index 100% rename from content/programming/blog/buildsome.tree rename to content/programming/buildsome.tree diff --git a/content/programming/blog/cstring-starts-with.tree b/content/programming/cstring-starts-with.tree similarity index 100% rename from content/programming/blog/cstring-starts-with.tree rename to content/programming/cstring-starts-with.tree diff --git a/content/programming/languages/cxx.tree b/content/programming/cxx.tree similarity index 76% rename from content/programming/languages/cxx.tree rename to content/programming/cxx.tree index a835be5..20e8f42 100644 --- a/content/programming/languages/cxx.tree +++ b/content/programming/cxx.tree @@ -3,11 +3,11 @@ % id = "01H9R1KJESR2F420HE67HW4AVR" - notes and design lessons from the best programming language of all time that everyone loves (not really) -% content.link = "programming/languages/cxx/access-modifiers-as-labels" +% content.link = "programming/cxx/access-modifiers-as-labels" redirect_from = ["programming/cxx/access-modifiers-as-labels"] id = "01H9R1KJESGGM35KT8ANEA2B9Q" + :page: access modifiers as labels (`private:`, `protected:`, and `public:`) -% content.link = "programming/languages/cxx/shared-unique-ptr-deleter" +% content.link = "programming/cxx/shared-unique-ptr-deleter" id = "01J0VN48AZYH6KJGK7PSKN0PCA" + :page: freeing C memory automatically using `std::unique_ptr` and `std::shared_ptr` diff --git a/content/programming/languages/cxx/access-modifiers-as-labels.tree b/content/programming/cxx/access-modifiers-as-labels.tree similarity index 100% rename from content/programming/languages/cxx/access-modifiers-as-labels.tree rename to content/programming/cxx/access-modifiers-as-labels.tree diff --git a/content/programming/languages/cxx/shared-unique-ptr-deleter.tree b/content/programming/cxx/shared-unique-ptr-deleter.tree similarity index 100% rename from content/programming/languages/cxx/shared-unique-ptr-deleter.tree rename to content/programming/cxx/shared-unique-ptr-deleter.tree diff --git a/content/programming/blog/haku.tree b/content/programming/haku.tree similarity index 100% rename from content/programming/blog/haku.tree rename to content/programming/haku.tree diff --git a/content/programming/languages/javascript.tree b/content/programming/javascript.tree similarity index 100% rename from content/programming/languages/javascript.tree rename to content/programming/javascript.tree diff --git a/content/programming/languages/lua.tree b/content/programming/lua.tree similarity index 100% rename from content/programming/languages/lua.tree rename to content/programming/lua.tree diff --git a/content/programming/blog/lvalues.tree b/content/programming/lvalues.tree similarity index 100% rename from content/programming/blog/lvalues.tree rename to content/programming/lvalues.tree diff --git a/content/programming/blog/or-types.tree b/content/programming/or-types.tree similarity index 100% rename from content/programming/blog/or-types.tree rename to content/programming/or-types.tree diff --git a/content/programming/blog/systems.tree b/content/programming/systems.tree similarity index 100% rename from content/programming/blog/systems.tree rename to content/programming/systems.tree diff --git a/content/programming/blog/tairu.tree b/content/programming/tairu.tree similarity index 100% rename from content/programming/blog/tairu.tree rename to content/programming/tairu.tree diff --git a/content/programming/blog/try-is-not-the-only-option.tree b/content/programming/try-is-not-the-only-option.tree similarity index 100% rename from content/programming/blog/try-is-not-the-only-option.tree rename to content/programming/try-is-not-the-only-option.tree diff --git a/content/programming/technologies/unreal-engine.tree b/content/programming/unreal-engine.tree similarity index 69% rename from content/programming/technologies/unreal-engine.tree rename to content/programming/unreal-engine.tree index f994a30..bc3ab92 100644 --- a/content/programming/technologies/unreal-engine.tree +++ b/content/programming/unreal-engine.tree @@ -9,18 +9,18 @@ % id = "01H8YGXP0ZWG6X3PB6GWSGKAT0" - both the fun and the good, and that which ruins my mood -% id = "programming/technologies/unreal-engine/blueprint" - content.link = "programming/technologies/unreal-engine/blueprint" +% id = "programming/unreal-engine/blueprint" + content.link = "programming/unreal-engine/blueprint" + :page: thoughts on Blueprint % id = "01HP1FESY5WVJG4X80AZ4ZBX5D" - :folder: random but cool things - % content.link = "programming/technologies/unreal-engine/generated-body" + % content.link = "programming/unreal-engine/generated-body" id = "01HV1DGFHP6GB268MDGGDXMR12" + :page: how does `GENERATED_BODY()` work exactly? - % content.link = "programming/technologies/unreal-engine/fixes" + % content.link = "programming/unreal-engine/fixes" id = "01HP1FESY5ZS6YTZXA8QTT5V1Z" + :page: data validation quick fixes diff --git a/content/programming/technologies/unreal-engine/blueprint.tree b/content/programming/unreal-engine/blueprint.tree similarity index 100% rename from content/programming/technologies/unreal-engine/blueprint.tree rename to content/programming/unreal-engine/blueprint.tree diff --git a/content/programming/technologies/unreal-engine/fixes.tree b/content/programming/unreal-engine/fixes.tree similarity index 100% rename from content/programming/technologies/unreal-engine/fixes.tree rename to content/programming/unreal-engine/fixes.tree diff --git a/content/programming/technologies/unreal-engine/generated-body.tree b/content/programming/unreal-engine/generated-body.tree similarity index 100% rename from content/programming/technologies/unreal-engine/generated-body.tree rename to content/programming/unreal-engine/generated-body.tree diff --git a/content/programming/blog/vfs.tree b/content/programming/vfs.tree similarity index 100% rename from content/programming/blog/vfs.tree rename to content/programming/vfs.tree diff --git a/content/about-treehouse/the-end-is-never.tree b/content/the-end-is-never.tree similarity index 80% rename from content/about-treehouse/the-end-is-never.tree rename to content/the-end-is-never.tree index c38b66a..076fd42 100644 --- a/content/about-treehouse/the-end-is-never.tree +++ b/content/the-end-is-never.tree @@ -1,6 +1,6 @@ %% title = "the end is never the end is never the end is never the end is never the end is never the end is never the end is never the end is never the end" -% content.link = "about-treehouse/the-end-is-never" +% content.link = "the-end-is-never" do_not_persist = true id = "the-end-is-never" + … diff --git a/content/treehouse.tree b/content/treehouse.tree index 990fd76..db8af6a 100644 --- a/content/treehouse.tree +++ b/content/treehouse.tree @@ -7,6 +7,10 @@ content.link = "treehouse/changelog" + #### :folder: what's going on inside the house? +% id = "treehouse/emoji" + content.link = "treehouse/emoji" ++ #### :folder: emoji index + % id = "treehouse/issues" - #### :folder: [issue tracker][def:treehouse/issues] diff --git a/content/about-treehouse/emoji.tree b/content/treehouse/emoji.tree similarity index 100% rename from content/about-treehouse/emoji.tree rename to content/treehouse/emoji.tree diff --git a/treehouse.toml b/treehouse.toml index ee66c0b..34ec8f3 100644 --- a/treehouse.toml +++ b/treehouse.toml @@ -79,9 +79,36 @@ tags = [ "haku", ] -[redirects.page] -"programming/cxx" = "programming/languages/cxx" -"programming/unreal-engine" = "programming/technologies/unreal-engine" +[redirects.path] + +# 2025-01-14 flattening +"about-treehouse" = "programming/about-treehouse" +"about-treehouse/emoji" = "treehouse/emoji" +"about-treehouse/the-end-is-never" = "the-end-is-never" +"music/reviews/aphex-twin/blue-calx" = "music/blue-calx" +"music/reviews/aphex-twin/syro" = "music/syro" +"music/reviews/opn/i-dont-love-me-anymore" = "music/i-dont-love-me-anymore" +"music/reviews/radiohead/a-moon-shaped-pool" = "music/a-moon-shaped-pool" +"music/reviews/radiohead/ok-computer" = "music/ok-computer" +"music/reviews/telefon-tel-aviv/map-of-what-is-effortless" = "music/map-of-what-is-effortless" +"programming/blog/aoc" = "programming/aoc" +"programming/blog/buildsome" = "programming/buildsome" +"programming/blog/cstring-starts-with" = "programming/cstring-starts-with" +"programming/blog/haku" = "programming/haku" +"programming/blog/lvalues" = "programming/lvalues" +"programming/blog/nix" = "programming/nix" +"programming/blog/or-types" = "programming/or-types" +"programming/blog/systems" = "programming/systems" +"programming/blog/tairu" = "programming/tairu" +"programming/blog/try-is-not-the-only-option" = "programming/try-is-not-the-only-option" +"programming/blog/vfs" = "programming/vfs" +"programming/languages/cxx" = "programming/cxx" +"programming/languages/javascript" = "programming/javascript" +"programming/languages/lua" = "programming/lua" +"programming/technologies/unreal-engine" = "programming/unreal-engine" +"programming/technologies/unreal-engine/blueprint" = "programming/unreal-engine/blueprint" +"programming/technologies/unreal-engine/fixes" = "programming/unreal-engine/fixes" +"programming/technologies/unreal-engine/generated-body" = "programming/unreal-engine/generated-body" [emoji]