I'm in the process of gradually enhancing my site's markup with microformats, in order to "indiewebify" my site further. On thing I noticed while working on this at the Düsseldorf Indiewebcamp, is that WordPress (or the way my theme handles) tags on posts has no way to get an additional class insid...
NEW #Drupal #indieweb release— scrappy new year - think creatively (@HongPong) January 14, 2020
Microformats for Drupal 8. v 1.0-alpha1https://www.drupal.org/project/microformats
Many thanks to @mlncn @agaric @drutopiaforgood for contributing time and patches to complete this initial feature set which provides configurable H-card sitewide markup
As I’ve continued to work on the theme that I’m planning to use after Standard (and that I’ hoping to begin dogfooding within the next month or so), there have been a couple of features that I’ve wanted to implement for the sake of styling. For example, there are times where I want to be abl...
I could also appreciate it parsing a page and allowing me to use an h-card to quickly create a follow post and automatically add a page’s feed to my feed reader.
When people are getting started in the indieweb, we commonly point them to IndieWebify.Me to validate some of the building blocks on their site. One of those building blocks is the h-card microformat which is used to markup information about yourself: your URL, name, photo, bio, and more. Earlier th...
How to provide better credit on the web using the standard rel=“canonical” by looking at an example from the Open Learner Patchbook
A couple of weeks back, I noticed and began following Cassie Nooyen when I became aware of her at the Domains 2019 conference which I followed fairly closely online.
She was a presenter and wrote a couple of nice follow up pieces about her experiences on her website. I bookmarked one of them to read later, and then two days later I came across this tweet by Terry Green, who had also apparently noticed her post:
I really hope this new post of the Open Learner Patchbook comes across the feed of lots of learners who haven’t experienced a Domain of One’s Own program before.
Patch Twenty Five – My Domain, My Place To Grow
— Terry Greene (@greeneterry) June 21, 2019
This means that there are now at least two full copies of Cassie’s post online:
- Original: https://techbar.crnooyen.knight.domains/blog/what-having-a-domain-for-a-year-has-taught-me/
- Copy: http://openlearnerpatchbook.org/technology/patch-twenty-five-my-domain-my-place-to-grow/
While I didn’t see a Creative Commons notice on Cassie’s original or any mention of permissions or even a link to the source of the original on the copy on the Open Patchbook, I don’t doubt that Terry asked Cassie for permission to post a copy of her work on his site. I’ll also suspect that it may have been the case that Cassie might not have wanted any attention drawn to herself or her post on her site and may have eschewed a link to it. I will note that the Open Patchbook did have a link to her Twitter presence as a means of credit. (I’ll still maintain that people should be preferring links to their own domain over Twitter for credits like these–take back your power!)
Even with these crediting caveats aside, there’s a subtle technical piece hiding here relating to search engines and search engine optimization that many in the Domain of One’s Own space may not realize exists, or if they do they may not be sure how to fix. This technical subtlety is that search engines attempt to assign proper credit too. As a result there’s a very high chance that Open Patchbook could rank higher in search for Cassie’s own post than Cassie’s original. As researchers and educators we’d obviously vastly prefer the original to get the credit. So what’s going on here?
Search engines use a web standard known as rel=“canonical”, a microformat which is most often found in the HTML
<header> of a web page. If we view the current source of the copy on the Open Learner Patchbook, we’ll see the following:
<link rel="canonical" href="http://openlearnerpatchbook.org/technology/patch-twenty-five-my-domain-my-place-to-grow/" />
According to the Microformats wiki:
rel=“canonical”to a hyperlink, a page indicates that the destination of that hyperlink should be considered the preferred or definitive version of the current page. This helps search engines avoid duplicate content, and is useful for deciding how to link to a page when citing it.
In the case of our example of Cassie’s post, search engines will treat the two pages as completely separate, but will suspect that one is a duplicate of the other. This could have dramatic consequences for one or the other sites in which search engines will choose one to prefer over the other, and, in some cases, search engines may penalize one site for having duplicate content and not stating that fact (in their metadata). Typically this would have more drastic and averse consequences for Cassie’s original in comparison with an institutional site.
How do we fix the injustice of this metadata?
There are a variety of ways, but I’ll focus on several in the WordPress space.
WordPress core has built-in functionality that should set the permalink for a particular page as the canonical one. This is why the Open Patchbook page displays the incorrect canonical link. Since most people are likely to already have an SEO related plugin installed on their site and almost all of them have this capability, this is likely the quickest and easiest method for being able to change canonical links for pages and posts. Two popular choices for this are Yoast and All in One SEO which have simple settings for inputting and saving alternate canonical URLs. Yoast documents the steps pretty well, so I’ll provide an example using All in One SEO:
- If not done already, click the checkbox for canonical URLs in the “General Settings” section for the plugin generally found at
- For the post (or page) in question, within the All in One SEO metabox in the admin interface (pictured) put the full URL of the original posts’ location.
- (Re-)publish the post.
If you’re using another SEO plugin, it likely handles canonical URLs similarly, so check their documentation.
For aggregation websites, like the Open Learner Patchbook, there’s also another solid option for not only setting the canonical URL, but for more quickly copying the original post as well. In these cases I love PressForward, a WordPress plugin from the Roy Rosenzweig Center for History and New Media which was designed with the education space in mind. The plugin allows one to quickly gather, organize, and republish content from other places on the web. It does so in a smart and ethical way and provides ample opportunity for providing appropriate citations as well as, for our purposes, setting the original URL as the canonical one. Because PressForward is such a powerful and diverse tool (as well as a built-in feed reader for your WordPress website), I’ll refer users to their excellent documentations.
Another useful reason I’ll mention for using rel-canonical mark up is that I’ve seen cases in which using it will allow other web standards-based tools like Hypothes.is to match pages for highlights and annotations. I suspect that if the Open Patchwork page did have the canonical link specified that any annotations made on it with Hypothes.is should mirror properly on the original as well (and vice-versa).
I also suspect that there are some valuable uses of this sort of small metadata-based mark up within the Open Educational Resources (OER) space.
In short, when copying and reposting content from an original source online, it’s both courteous and useful to mark the copy as such by putting a tag onto the URL of the original to provide it with the full credit as the canonical source.
I’m using the following general markup to make this happen:
<blockquote><link rel="canonical" href="https://www.example.com/annotated_URL"> Text of the thing which was previously annotated. </blockquote>
Let’s give it a whirl:
This summer marks the one-year anniversary of acquiring my domain through St. Norbert’s “Domain of One’s Own” program Knight Domains. I have learned a few important lessons over the past year about what having your own domain can mean.
The first issue that I never really thought about was the security and privacy on my domain. A few months after having my domain, I realized that if you searched my name, my domain was one of the first things that popped up. I was excited about this, but I soon realized that this meant everything I blogged about was very much in the open. This meant all of my pictures and also every person I have mentioned. I made the decision to only use first names when talking about others and the things we have done together. This way, I can protect their privacy in such an open space. With social media you have some control over who can see your post based on who “friends” or “follows you”; on a domain, this is not as much of a luxury. Originally, I thought my domain would be something I only shared with close friends and family, like a social media page, but understanding how many people have the opportunity to see it really shocked me and pushed me to think about the bigger picture of security and safety for me and those around me.
—Cassie Nooyens in What Having a Domain for a year has Taught Me
Unfortunately, however, I’m noticing that if I quote multiple sources this way (at least in my Chrome browser), only the last quoted block of text transcludes the Hypothes.is annotations. Based on prior experiments using rel-canonical mark up I’ve noticed this behavior, but I suspect it’s simply the fact that the rel-canonical appears on the page and matches one original. It would be awesome if such a rel-canonical link which was nested into any number of blockquote tags would cause the annotations from the originals
Perhaps Jon Udell and friends could shed some light on this and or make some tweaks so that blockquoting multiple sources within the same page could also allow the annotations on those quoted passages to be transcluded onto them?
Separately, I’m a tad worried that any annotations now made on my original could also be mistakenly pushed back to the quoted pages because of the matching rel-canonical without anything taking into account the nested portions of the page or the blockquoted pieces. I’ll make a test on a word or phrase like “security and privacy” to see if this is the case. We’ll all notice that of course this test fails by seeing the highlight on Cassie’s original. Oh well…
So the question becomes, is there a way within the annotation spec to allow us to write simple HTML documents that blockquote portions of other texts in such a way that we can bring over the annotations of those other texts (or allow annotating them on our original page and have them pushed back to the original) within the blockquoted portions, yet still not interfere with annotating our own original document? Ideally what other HTML tags could/should this work on? Further could this be common? Generally useful? Or simply just a unique edge case with wishful thinking made from this pet example? Perhaps there’s a better way to implement it than my just having thrown in the random link on a whim? Am I misguidedly attempting to do something that already exists?
(Skip to the end for the TL;DR summary) After an evening of debugging and rewriting sections of the HTML in “K”, I think I’ve fixed the markup and parsing issues I mentioned yesterday. It turns out that X-Ray, the parsing engine used by IndieNews, Aperture, and probably others, was only findin...
With this announcement, I have two great pieces of news. The first, is that you'll now be able to follow my website's h-feed, which is a microformats2 structure for a feed of data. This is in addition to my RSS feed (/feed.xml) and my JSON feed (/feed.json), and will allow further interoperability with the IndieWeb.
We used to control our online identities, content, and experience. We now share Twitter names instead of domains; even web developers tweet and post on Medium instead of their own sites. We scroll social media and feel empty instead of reading news & blogs to feel informed and connected. Algorithmic feeds amplify rage & conspiracies, enabling tribal ad-targeting to polarise and spread misinformation, threatening democracy itself.
What happened? And what are we doing to fix it?
That's a big question that will require all of us, our communities, our employers, to shift. I don't want to wait, and you probably don't either.
What can you do for yourself, today?
Own your domain. Own your content. Own your social connections. Own your reading experience. IndieWeb services, tools, and standards enable you to take back your web.
This page is for brainstorming about various uses and details of XFN, as well as collecting input for potential extensions.
It took me a while to puzzle it out when I first ran across it, but the text just underneath your title:
<SPAN CLASS='P-AUTHOR H-CARD'>MIRIAM AVERY</SPAN> is occurring because you’re using the microformats 2 plugin which tries to inject the p-author h-card portion into your page, but it’s having a conflict with your theme which is escaping the output for that author section. (More details on this known issue here.)
Chances are pretty good that you could deactivate the microformats plugin to fix the cosmetic issue without causing other major issues. Depending on your theme’s native microformats markup, you may likely find that you don’t see or experience any other major issues with any of the other technology. The one issue I’ve seen people come across here is if they’re using Brid.gy to syndicate their content via webmention to Twitter, in which case having stronger markup becomes much more important. Hopefully this will at least help you track down and either fix the issue or figure out the best way around it for your particular needs.
The best long term solution would be to add the proper microformats markup directly into the theme itself.
I’ve been chipping away at several things over the last two weeks, mostly focussing on markup, presentation, and theme file organisation. I want to get these finalised before I look at theme customisation options. If you’ve visited the home page, you might have noticed the display of certain pos...