Is anyone still using #microformats or h-entry tags anymore?
Slowly moving past the MVP phase. Replies now work in my AP implementation.
I have to work on the rendering, but you can see the replies as part of the thread since I added inReplyTo property to notes.
Have a look at how my home-made rss-reader sees your website by appending your url to villepreux.net/lab/metadata/?url=xxxxxxxxx
Example with the excellent David Bushell @db website: https://villepreux.net/lab/metadata/?url=dbushell.com
The rss-reader in question: https://villepreux.net/web-feed
Beyond aggregated and summarized stats, in 2025 I met a few amazing people (you know who you are), and started a few projects. Most of these projects started with an idea, or recognizing a problem, that inspired invention.
Sometimes the ideas came from observations, shared, questioned, distilled into insights, and sometimes new creations.
During one such conversation over coffee last year, James (https://jamesg.blog/) and I noticed that our Spotify “daylist” list names were often quite entertaining, despite their brevity.
We mused whether it was worth keeping track of the particularly fun or interesting names, even knowing they were automatically generated.
In September 2025, James created a page on his site, a simple HTML list of a few of his fun daylists names, and shared it:
* https://jamesg.blog/daylists
With a single real world #indieweb example, it was enough to stub a wiki page:
* https://indieweb.org/daylists
A little over two months later, during the weekend of 2025 IndieWeb Black Friday Create Day: Build Don’t Buy, I followed James’s example and built my own daylists page with a similar list of names of daylists, adding the datetimes when I had taken screenshots of my daylists.
* https://tantek.com/daylists
Realizing it was a page of items listed in reverse chronological order with datetime stamps, it made sense to mark it up as an h-feed so a social reader could theoretically subscribe to it. The list items had the minimum viable information for h-entry markup: content and a datetime. Minimal information meant only minimal markup was necessary: one nested HTML time element, and a couple of class names.
The list item of just the daylist name I started with:
<!-- a daylist item -->
<li>
cyberpunk synthwave wednesday early morning
</li>
<!-- -->
The name’s coarse textual day and time of day was a handy bit of text to markup with the time element with a numerical date-time for parsers. That plus two h-entry class names:
<!-- minimal h-entry markup for a daylist item -->
<li class="h-entry">
cyberpunk synthwave
<time class="dt-published" datetime="2025-10-15 07:59">wednesday early morning</time>
</li>
<!-- -->
As linked on my daylists page, that plus a little h-feed wrapper is enough to make a web feed that a social reader like Monocle can parse and display:
* https://monocle.p3k.io/preview?url=https%3A%2F%2Ftantek.com%2Fdaylists
Minimal incremental markup added to an existing human readable HTML page.
No separate feed file needed. No XML, XSLT, or JavaScript either.
The HTML is the feed.
A feed that social readers, like Monocle, or Artemis (that James wrote) can directly follow.
Full circle.
And the year before that, James blogged about how publishing an h-feed is also a more efficient, and easier to maintain, method of supporting other formats:
* https://jamesg.blog/2024/06/06/publish-h-feed
This is post 6 of #100PostsOfIndieWeb. #100Posts #yearInReview #webFeed #microformats #microformats2 #hFeed #hEntry #socialReader #socialWeb
← https://tantek.com/2026/005/t1/year-movies-in-theaters
→ 🔮
Glossary:
Artemis
https://indieweb.org/Artemis
daylists
https://indieweb.org/daylists
h-entry
https://indieweb.org/h-entry
h-feed
https://indieweb.org/h-feed
IndieWeb Black Friday Create Day
https://indieweb.org/events/2025-black-friday-create-day
Monocle
https://indieweb.org/Monocle
social reader
https://indieweb.org/social_reader
time element
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/time
Trying to make my site more indieweb friendly, but this microformat business is doing my head in. I already use schema for structured data, which is much easier as the data doesn't rely on a particular markup structure. Like, I don't want to have to print the full permalink url for each blog post, or refactor my post header so that the author profile picture is inside of an element with the `p-author` class. Honestly, I don't want this extra cruft in my markup at all. #indieweb #microformats
I need some #WebDev or #IndieWeb advice about date semantics for reuploads (or manual #PESOS).
On my new website I want to import:
- some posts from my old blog (still online)
- maybe some posts from an even older blog (deleted many years ago)
- some old Facebook posts
What is the correct published date? Is it the publication date on the new site with new domain? Or the original date? Both feel wrong (or equally right), but using dates from the past effects the sort order and feeds. So I tend to use the current date.
If I use both (published_date, original_published_date), how should I mark them up? For "published_date" I have the "dt-published" class (#MicroFormats). But I couldn't find any advice for the original date on https://indieweb.org/ or http://microformats.org/ .
Discussing implementation of microformats on my bearblog project.
#Article #Bearblog #IndieWeb #Microformats
Using Microformats with Bear - https://l.prry.uk/using-microformats-with-bear/
They could be parsed and handled programmatically via their IDREF or role context. They're safe for page translation services. And they would be announced by screen readers, eg. as "James Edwards, Author" and "Mastodon thread, Discussion".
Those examples are in this draft article template I've been tinkering with.
https://brothercake.com/notes/$template.html
(The editable code examples are cool too, but this is all still WIP ⛔️☺️)
What do people think of this?
```
<data hidden>
<span id="lang-en-author">Author</span>
<span id="lang-en-discussion">Discussion</span>
</data>
<p><a href="#" aria-describedby="lang-en-author">James Edwards</a></p>
<p><a href="#" aria-describedby="lang-en-discussion">Mastodon thread</a></p>
```
It's basically a draft idea for accessible microformats based on ARIA descriptions.
🌘 Microformats 2:建構富含資料的網頁基石
➤ 從零開始掌握 Microformats 2 資料的解析與應用
✤ https://microformats.org
本文旨在闡述如何有效地解析與利用 Microformats 2 (MF2) 資料,這是一種用於標記個人網站上各類資訊(如個人資料、貼文、活動等)的標準。透過將原始網頁內容轉換為標準化的 MF2 JSON 結構,開發者能夠建構各種應用程式來處理這些結構化資料。文章詳述了選擇合適的解析器、處理網頁抓取與解析時的注意事項,以及儲存原始 HTML 或已解析 JSON 的考量。此外,也深入探討瞭如何導覽與理解 MF2 資料結構中的巢狀組織,並說明瞭屬性值的各種可能形式,以利開發者進行資料處理。
+ 這篇文章對於想了解如何提取網頁結構化資料的開發者來說非常有幫助,特別是關於解析器的選擇和資料儲存的建議。
+ 解析 Microformats 2 的確是個挑戰,但作者的說明很清晰,讓我對如何處理不同的屬性值有了更深的認識。
#網頁開發 #資料結構 #Microformats
Introducing Cornerstone: A WordPress Theme for the IndieWeb
I've released Cornerstone, a WordPress theme built for the IndieWeb community. It's now available on GitHub under the GPL v2 licence.@ndw I suspect #microformats would fit the bill. https://microformats.org/wiki/Main_Page #indieweb
@WuMargaret @cestith @perigrin @Chanclatrix @genehack @pippa @gizmomathboy @jacobydave @randomgeek @fitzgepn @xan #XFN (the source of the rel="me" attribute used to verify oneself on #Mastodon and elsewhere) really needs a rel="nemesis" value.
Just completed all the steps to indiewebify my blog https://www.burgeonlab.com using https://indiewebify.me/. Luckily, the h-card and h-entry wasn't too hard to setup on #hugo.
Happy I can now receive #webmentions! But I haven't implemented displaying replies or mentions yet on the frontend.
I used https://webmentions.rock to check if the link rel=webmention is working.
And I am using https://github.com/aaronpk/webmention.io for receiving webmentions.
Also a microformats/semantic HTML question: is there a good accessibility argument for using microformats or other semantic markup for locations specifically?
I ask because I've soured a bit on structured data now that it feels like I'm just making it easier to slurp up my page for AI training.
I like the idea of making things richer and easier to use for humans, but apart from using microformats to add data to webmentions, I'm starting to consider paring back on how much I use them.
Following the advice and instructions at https://jamesg.blog/2024/06/06/publish-h-feed, I've now enabled #hfeed (HTML feed) for my blog¹ and my linkblog². I really like that idea of HTML of a page itself being a machine readable feed for #feedReaders. Unfortunately, AFAIK, no readers have native support for HFeed yet. Thankfully, we can use https://granary.io/ to convert an HFeed to an #Atom or #RSS #feed.
¹ https://abhinavsarkar.net/posts/
² https://abhinavsarkar.net/linkblog/
Last week I deployed a change to how I generate plain text versions of content on my website. This week I changed it again. And updated additional post types to use Markdown as their editing and storage format.
#Html #WebDevelopment #Indieweb #Markdown #BeautifulSoup #Changelog #Microformats #Mistune #Html2Text