• Evie Finch @ewie

    Boring site update changelog 25-09-18

    [...]

    Stuff I still need to do

    • Support reblogging. I don't grab posts using h-entry or anything, and my post templates don't support shared posts yet. I had to design some systems for handling post sharing with my tweet component, so I will probably use similar ideas once I add real posts.
    • Improve accessibility. I have some quick wins I can and should do. Don't neglect accessibility y'all.
    • Add a like button. Don't add a like count.

    Reblogging Evie Finch
    Evie Finch @ewie

    Site update changelog 26-08-09 - Big update!

    Note: The site has had major changes and may look incorrect unless you clear your cache.

    So I have a major update, and I'd like to write a brief changelog talking about what's changed.

    Big Stuff!

    Reblogs added!

    A post can now be a "reblog" of another post. Reblogs get all the same metadata that regular posts get, and reblogs can be chained. This means, in theory, I could reblog nex3's reblog and I could show the original post, nex3's response, and then my own response. I really can't think of any other features this design could have. It's got basically everything I could ever want.

    How it works

    This feature is technically fake. It works similarly to the type of reblogs you see on nex3's site. In her blog, a reblog is a shortcode which renders into a template, and a pile of metadata which is used in that template. She also has a helper function which will fetch the data for her. I don't.1

    However, my version of this feature has a ton of really cool stuff going for it! I have a special markdown-compatible syntax which my blog will see and turn into a reblog. In a blog post, it looks something like this:

    {
      title: Post title
      url: https://link.to/post/
      date: 1970-01-01T00:00:00.000Z
      author:
        displayName: Author Name
        username: handle
        avatar: https://link.to/profile-pic.jpg
    }
    :::
    Post **content** of reblog post.
    :::
    

    My blog has a dedicated preprocessing step that parses every single blog post with a simple (and probably poorly programmed) parser I wrote that scans for any reblogs, extracts them out of a blog post, and attaches them to that post's metadata under the reblogs section. the content is treated like regular markdown, which is really nice. If you're interested in reading the source code for this feature, perhaps so you can implement something like it on your own blog, you can find the parser and the post component on Github.

    I'm incredibly proud of how I implemented reblogs. As far as I can tell, it's completely unique in the world of blogs. However, please steal it if you're interested! This feature is just one part of my crusade to reinvent a fourth website piecemeal and from first principles.2

    Read more overhauled

    To keep posts from taking up too much space in the main timeline, they'd get trimmed down to a certain length. Before, this would be handled on build by deleting the rest of the post after a certain point on the timeline pages and inserting a "read more" link afterwards. Now, this is all handled client-side, so you can get the full experience without ever leaving the timeline. I don't really know how I feel about it being a bit more social media-esque, but this does fix almost every bug the previous read more system had, and there were many. I had multiple occasions where I'd upload a blog post only to find that the read more mangled it somehow. Never again.

    This feature was directly inspired by cohost, and to make the cohost resemblence even greater, the version 2 of read more is a near-blatant copy of the cohost button.3

    Small stuff

    • Fixed RSS issues (after an update broke RSS). (ref)
    • Fixed URL issues (after that same update broke URLs). (ref)
    • Added URL regression testing to prevent future URL issues. (ref)
    • Rehype syntax highlighting plugin is no longer used. Moved to a regular syntax highlighting plugin.4 (Some info on motivations here.) This is part of an effort to genericize the blog's internals into an easy to use template. (ref)
    • Cleaned up _config.ts. Split some of its functionality into a new plugins.ts. This is part of an effort to genericize the blog's internals into an easy to use template. (ref)
    • Added support for the Octothorpes protocol. (ref)
    • Quote-back component created. (ref)

    Stuff I still need to do/Known issues

    • In the timeline, if the same footnote number is used in two posts, clicking on the footnote link will always take you to that footnote number on the newer post.
    • Comments 2.0! I have a whole thing written out to wholly improve comments and support replies! I just need to finish it.
    • Set up Webmentions.
    • Move away from Github.
    • Fully self-host the site.
    • Backfill the rest of my old cohost posts.
    • Finish building the missing links in my menu page.
    • Improve accessibility.

    As per usual, if you notice any issues with the site, please feel free to email me or file an issue on github!

    Footnotes

    1. I'd like to build this helper function down the line! It seems really cool! However it's not a priority right now.

    2. I have a lot of opinions on this post actually but I'll save that for another time.

    3. I didn't steal cohost's implementation. I mean, I probably would if I could, but the site code is hard to understand.

    4. This is technically a downgrade. The regular plugin has fewer features than the Rehype plugin. It currently can't highlight inline code, at least until I get to building that, and it has worse performance than the Rehype plugin due to a difference in how Lume handles processing vs post-processing plugins. However, the regular plugin could, down the line, get turned into something anyone could use in their site.

    1. #meta
    2. #evie on-line meta
    3. #changelog

    View Comments
  • Evie Finch @ewie

    Okay! Posts are finally fixed

    turns out an earlier update also broke some urls. i try really hard to ensure all urls follow a consistent pattern and are permanent, so whoops. sorry. if you had noticed that comments weren't working, this was the cause. they should be fixed, and links for my last one or two posts might be broken as they get updated to the correct permalink. i wrote a shitty script to do some blog post url "regression testing" so hopefully this should never happen again in the future. thanks for putting up with these issues as i make behind the scenes improvements!

    1. #meta

    View Comments
  • Evie Finch @ewie

    hey yall i fucked up the rss feeds

    i've been working on moving some improvements from other branches to the main branch (because these other branches are so massive in their feature updates that some improvements depend on me self-hosting the site, which i'd like to do at some point, but i don't want that to be the thing that keeps any of my other site improvements from shipping).

    apparently i broke the rss feeds, which spammed y'all's rss feeds with duplicate dead links, which i never noticed even though i follow my own feeds for exactly this reason 😭😭😭

    anyways this is fixed now and rss feeds should be normal again. as i continue moving over improvements, i'll keep a closer eye on rss. thanks so much for AminurAlan for reporting the issue. i was able to fix this before i even started coffee.

    also, and really feeling this because i guess enough people follow the site that some of them will even report issues, thanks again to everyone who follows the site. i really appreciate all of you. if there's any other issues yall notice, please report them on the github or email me at [email protected].

    1. #meta

    View Comments
  • Evie Finch @ewie

    i would be willing to bet money that the most wholesome community, like, period, no competition, is the sudoku community on youtube. i watch cracking the cryptic videos to fall asleep and as far as i can tell there's literally not a spot of negativity or toxicity. people are just talking about sudoku.

    1. #sudoku

    View Comments
  • Evie Finch @ewie

    Royale: A Casio AE-1200-a-like written in Zig

    Pebble Royale: Written by hand, with love, in Zig. Animated Casio-looking pebble watchface.

    It's finally out! This watch face is my first time developing for the Pebble (or any embedded system for that matter), and went from concept to product in 12 days for the Pebble Spring 2026 Developer Contest. It's written entirely in the Zig programming language, which was a joy to work with except when the Pebble SDK gave me trouble. It features no AI code. All the bad code came straight from my own brain.

    https://apps.repebble.com/ae80da4fd2d54efc9e907b11

    I would appreciate it if y'all gave it a like on the Pebble app store! I don't actually own a Pebble Time 2, which is the watch I'm developing for, so every like increases the odds that I win a free watch. Then I'll have something to actually test on, which would be nice!


    Anyways there's not really much else to say here. It's just an announcement post. If you're interested in the story behind it, I have "liveblogged" it on the rebble discord, although I don't think the story is super interesting. Mostly a series of ping ponging between "wow it works I'm a genius" and "wow this doesn't work I'm stupid".

    1. #programming
    2. #zig
    3. #pebble

    View Comments
  • Evie Finch @ewie

    A gif of a pebble watch face. It looks like a Casio watch.

    i've been working on a pebble watch face for a bit and i wanted to share it cos i'm proud of it! i'm at the hardest part now, time zones, but once i finish that i'm kinda home free.

    any thoughts? there's a lot of parts i want to change once it's finished and i can give myself permission to increase scope.

    1. #pebble
    2. #programming

    View Comments