Obsidian plugin: Markdownlint
Lints your vault's markdown files using the markdownlint library, highlighting issues right in the editor as you write. Supports the standard .markdownlint.jsonc/.json/.yaml/.yml config formats.
Lints your vault's markdown files using the markdownlint library, highlighting issues right in the editor as you write. Supports the standard .markdownlint.jsonc/.json/.yaml/.yml config formats.
In this post, I'll show you how to implement cache busting in your Lume site using a custom plugin.
Cache busting is a technique used to force browsers to load the most recent version of a file by appending a hash to the file's URL. This ensures that users always get the latest version of your assets, even if their browser has cached an older version.
Quarkus in the Cloud: Strategies for Teams and Topologies
A talk about the tradeoffs between monoliths and microservices, and how team structure and topology should inform how you carve up (or don't carve up) an application built with Quarkus.
Trisha Gee interviewed me at DevNexus 2024, just days after we launched the Commonhaus Foundation. We talked about why solo maintainers of critical projects like Jackson and Morphia need a foundation that helps without adding bureaucracy, why code of conduct is mostly about mediation rather than nightmare scenarios, and why the whole thing boils down to a very simple call to action: push the button, buy the foundation a beer.
I use multiple profiles in Google Chrome to separate my work and personal browsing.
I wanted to be able to switch to a specific profile's window using Alfred.
The Alfred workflow only has two parts:
Welcome to the grand finale of our Hugo to Lume migration saga! In part 1, we talked about motivations and initial setup. Part 2 covered index generation. Now, we face the ultimate challenge: tackling the 'gorpy bits'—the formatting quirks and embedded Hugo shortcodes in our site's content.
Continuing the migration from Hugo to Lume that I started here, the next few templates to address are indexes. Despite the substantial amount of template markup, there's not much text or old formatting to handle. Posts are another matter. Some of them are very old, and use some interesting markup.
I've decided to move my blog from Hugo to Lume. As noted in my previous post, I've been using Hugo for a while, and it's been pretty great! But putting together made me realize how many small friction points there are. I also want to embed the documentation for some of my projects in the site, and (based on an experiment), I think that will be much easier to do with Lume.
This will be a multi-step process, and I'll document it as I go. I'm starting with the base template, and will work my way through the rest of the site.
All tech has a cycle, including what we use to make our websites. I come back to this place every few years[1], and it is always a ramble when I do.
I am setting up a new website for someone else, which has given me the lovely excuse to revisit this perennial topic. While not a developer, they are familiar with Obsidian (and its markdown extensions). Messing around with Obsidian and themes has also lead to some familiarity with CSS, which is a bonus.
I have a few objectives for the exercise this time around: I want site content (blog posts, section pages) to be previewable and editable in Obsidian. For simplicity, I will start by publishing the whole vault (no filters other than the ubiquitous draft frontmatter flag). I am thinking most "pre-process" stuff (markdown file/link construction) can just be done with the Templater plugin.
Obsidian is a lovely note-taking tool that I use for all the things. It is flexible and plastic in a really lovely way.
But over time (or due to overuse of bulk updates in VSCode), you can end up with images that aren't referenced anywhere, or links to images that don't exist (or are not where the note expects them to be).
My first attempt at making a list of lost things used dataview, but I had a few problems with it: it was generally slow to render (not surprising, it was doing a lot), and due to that slowness, the note would flicker when I opened it on my tablet.
In this attempt, I'm using an invokable scripts from the CustomJS plugin to update/replace the conent of a note.
The general idea: I run the script (command), it updates/replaces the contents of a note. I can review that note and decide if unreferenced files should be deleted, or if links need to be fixed, etc. I can run the script again to verify that I've fixed the problem, or I can forget about it until the next time I feel like I should tidy things up.
The gist is shown below the fold (see more).