Boom, @manton, and just like that … all my custom theme's stylesheets are now built from Sass files located in the theme's assets/sass
directory.

Boom, @manton, and just like that … all my custom theme's stylesheets are now built from Sass files located in the theme's assets/sass
directory.
A plugin for Micro.blog that injects structured data for blog posts via a JSON-LD script tag. This is what search engines use to decorate their results. Confirmation that the structured data is accessible can be had by using Google’s rich results test. It's code lives here.
A guide to navigating the non-obvious nature of the process for providing the data my plugins want … and that you want to give them.
Updated this one: plugin-favicons
All that time fussing with aliases, turns out you can just straight up set the category page's URL in the front matter:
---
title: "Perspectives"
description: "Essays off the beaten path, mostly political in nature at the moment."
url: /perspectives/
menu:
main:
name: "Perspectives"
title: "Perspectives"
identifier: "perspectives"
url: "/perspectives/"
weight: 10
---
*Essays off the beaten path.*
Recreated @manton's Conversation.js
output. Not sure why yet.
<div id="conversation-output"></div>
<script type="text/javascript">
fetch('https://micro.blog/conversation.js?url={{ .Permalink }}&format=jsonfeed')
.then(response => response.json())
.then(data => {
loadResponse(data);
});
function loadResponse(response) {
let output = document.getElementById("conversation-output");
if (response.title == "Conversation") {
let posts = response.items.map(entry => loadEntry(entry));
posts.forEach(post => output.appendChild(post));
} else {
output.remove();
}
}
function loadEntry(entry) {
let date = new Date(entry.date_published);
let post = document.createElement("DIV");
post.setAttribute("class", "microblog_post");
post.innerHTML = `
<div class="microblog_user">
<img class="microblog_avatar" src="${entry.author.avatar}" width="20" height="20" style="max-width: 20px;" />
<span class="microblog_fullname">${entry.author.name}</span>
</div>
<div class="microblog_text">${entry.content_html}</div>
<div class="microblog_time">
<a href="${entry.url}>${date.toDateString()}</a>
</div>`;
return post
}
</script>
A plugin for Micro.blog that injects favicon meta into the page
<head>
. Its code lives here.
If y'all Micro.blog-types ever get curious about all this plugin horsesh$t I've been posting about, feel free to drop on by moondeer.blog. The only reason I write any of them is to use them:
And now I've factored out my social media links into plugin-social-media-links. This might just be OCD.
Let's see, so far today we've created plugin-webring and plugin-precision-injection. Both still need their READMEs.
What I was up to this week:
plugin-bookshelves
plugin-cards
plugin-category-cloud
plugin-plausible-plus
plugin-twitter-analytics
plugin-google-analytics
plugin-google-tag-manager
plugin-prismjs
plugin-banner
plugin-lightbox
plugin-gallery
A plugin for Micro.blog that injects Prism Javascript and CSS stylesheets to enable syntax highlighting for a sh$t ton of grammars within inline <code>
tags and <pre><code>
combination code blocks. Its code lives here.
A plugin for Micro.blog for presenting a slide carousel containing images and/or videos. Its code lives here. It was inspired by Jason Becker’s plugin with which I’m sure you are already familiar.
A plugin for Micro.blog for adding Plausible Analytics. Its code lives here.
`
So, you use Micro.blog to generate your static site. You totally embraced Hugo templating, even rolled your own custom theme for @manton’s server to push all your content through whenever your static site regenerates. Now you’re looking to refactor your bits and pieces into plugins, perhaps considering plugin creation when pondering the insertion of new functionality. Wait … just me? F$&k it … play along.
When you're so impatient about your Hugo build you add nearly two months to the publish date of a post just to get it to rebuild along with the other 29 that make the inital cut.