• 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

    Boring site update changelog 25-09-18

    I figured I should write some of these to kinda show in open that I actually write a decent amount of code for this site.

    Big stuff!

    Relative time added.

    If you look at the timestamp on each post, it now says how long ago it's been since the post went up as opposed to the absolute time it came out. This is helpful for a couple reasons, but a big one is that all my timestamps are in UTC (Coordinated Universal Time), which meant you could not get a sense for what time I was uploading posts anyways. I'd fire something off at dinner and then it'd seem like I was doing crazed 1am posting.

    Part of my Cohost archive has been reuploaded!

    You can now see old cohost posts reuploaded to my blog at the #cohost archive tag. I am missing most of my posts because I have to import these by hand. Any posts that rebugged other posts or my own posts are not uploaded (see: Stuff I still need to do).

    Small stuff

    • Fixed the leave a comment box not having a shadow.
    • Minor improvements to syntax highlighting
    • General CSS improvements.
    • Demo web components made for a secret blog post I may or may not make down the line

    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.
    1. #evie on-line meta
    2. #changelog

    View Comments