Webmention for TiddlyWiki to enable website to website notifications and communication

What is a Webmention?

Webmention is a relatively recent web standard (or W3C recommendation) that allows notifications when one website mentions a URL on another website. Think of it like @mentions on social platforms, but instead of just working within a particular website from one account to another, they work across websites. Your website can now @mention my website!

For those who are interested in delving deeper into the idea and its implications, I’ve written a primer in the past : Webmentions: Enabling Better Communication on the Internet.

The goal is for other websites to be able to reference content in my TiddlyWiki website, and if those websites support sending the notifications as either webmentions (or the older pingbacks), I’ll get a notification that my content was referenced elsewhere on the web. This is just the beginning of allowing two way communication between websites.

My exploration today is how to quickly get these up and running on a public TiddlyWiki instance. The public part is important because webmentions won’t work for non-public URLs which includes private TiddlyWikis. If you’re wondering how to self-host a TiddlyWiki on your own domain, I’ve recently written up a tutorial for doing just that. At the end of this article, I’ll make a few notes about how one might use webmentions, particularly in a TiddlyWiki ecosystem.

I’ll start out by saying that writing a full JavaScript implementation of the Webmention spec is beyond my capabilities presently, but it could be something that TiddlyWiki core might implement in the future. (Maybe something like Lazymention which is written in node.js might be leveraged?)

Here I’m going to focus on using a third party service to do all of the heavy lifting and code our behalf. It’s relatively common, especially in the static website space, for websites to rely on third party or publisher services to either send or receive Webmentions on their behalf. Given my current knowledge of TiddlyWiki and how its internals work and my knowledge of Webmention services, I thought it would be quickest and easiest to look at using the Webmention.io service to handle receiving these @mentions from other sites on my behalf.

While this article may seem long, I’m hoping it’s detailed enough for those who are code averse to follow the recipe and do this themselves. If you can create a Tiddler, cut and paste some text, and follow the tutorial you won’t need to know anything about code. I did the entire thing myself in about five minutes from start to finish.

Receiving Webmention notifications for your TiddlyWiki

As a quick overview, we’re going to cut and paste a few lines of code into a special tiddler of our TiddlyWiki based website. This will allow us to do two things:

  1. Log into Webmention.io to create an account
  2. Allow other sites that send webmentions to us to find an endpoint on our TiddlyWiki website that accepts them on our behalf.

We’ll then rely on the Webmention.io dashboard to show us our notifications or received webmentions.

Logging into Webmention.io

Webmention.io requires you to log in with your domain name/URL and relies on you being able to authenticate yourself using it. Since I’m not aware of an IndieAuth or equivalent mechanism for using TiddlyWiki to log into Webmention.io, the quickest method to accomplish this is to rely on RelMeAuth using IndieAuth.com to log into Webmention.io using either a Twitter or GitHub account. From a non-technical perspective, we’ll be using either our Twitter or GitHub account and it’s OAuth2 security to log into the service.

First we want to put a link to our public TiddlyWiki website into the website field on either Twitter or GitHub using the profile settings of one of those services. Here’s what mine looks like on GitHub:

Screenshot of my GitHub accounts details featuring a link to my website

Next we want to place a corresponding link to the relevant service into the <head> of our TiddlyWiki site using one (it’s okay to use both) of the the following lines of code:

<link rel="me" href="https://twitter.com/username" />
<link rel="me" href="https://github.com/username" />

where you will replace the username in these links with the respective usernames of your accounts. (I’ll note that you don’t need to do this for both accounts, you can use either Twitter or GitHub.)

To place these lines into the appropriate location on your TiddlyWiki, you’ll want to create a tiddler with a name like $:/plugins/indieweb/core/rawMarkup and the tag $:/tags/RawMarkup.

Then cut and paste one or both of these links as appropriate into this tiddler and save it (and your TiddlyWiki).

You should now be able to go to webmention.io and enter the URL for your TiddlyWiki into the web sign in box and click “sign in”. The service will parse your website’s page, find the link to either Twitter or GitHub and present you with the appropriate sign in button for one or both of those services. Click on the button for your chosen service. IndieAuth.com will then take you to that service to log into it, or, if you’re already logged in, it will take you back to webmention.io to your new account.

Creating your Webmention endpoint

Within webmention.io you can now go to the “settings” page which will give you two more links which are your webmention and pingback endpoints. They will look something like this:

<link rel="webmention" href="https://webmention.io/example.com/webmention" />
<link rel="pingback" href="https://webmention.io/example.com/xmlrpc" />

where example.com will be replaced with the URL for your website.

Now you should cut and paste these two <link>s into the same tiddler you created above: $:/plugins/indieweb/core/rawMarkup. Now save the Tiddler and your TiddlyWiki. (Be sure to leave the previous links in case you need to log back into webmention.io in the future.)

You’re done!

That hopefully wasn’t too hard.

But what does this do? When another website links to your website and sends you a notification, the code on your page will delegate the receipt of the webmention to webmention.io which will verify that the sending site has your URL on a publicly viewable page (this helps to cut down on spam problems that pingbacks used to have). It will then store the notification for you.

If you need a reminder to check them occasionally, maybe you could add a Tiddler with the link to your dashboard to appear on your wiki when you open it next.

Perhaps in a future tutorial I’ll delve into the specifics of actually showing these mentions directly within your TiddlyWiki on the Tiddlers to which they relate.

Optional Webmention badge

Some may notice that I’ve put a small Webmention badge into the footer of my TiddlyWiki site to visually indicate to human readers that the site accepts webmentions. You can optionally do this for fun if you’d like.

Sending Webmentions with TiddlyWiki

Sending Webmentions seems to be an issue as the fragment-based URLs that TiddlyWiki uses as permalinks using JavaScript seem to cause an issue with many receivers. They apparently have problems resolving and parsing pages due to js;dr related issues. I would send webmentions manually, but most receivers I’m aware of have this js;dr problem. I’m not sure if there is an easy way around this issue.

Hyperchats, Wikis, and Open Educational Resources

What’s interesting about supporting Webmention, particularly from a TiddlyWiki perspective, is that if my TiddlyWiki is notified of mentions of it from outside sources, I can quickly cut and paste those responses directly into my Wiki pages in a pseudo-comment section similar to the comments section on this post which could serve as a model. If those mentions of a particular Tiddler are from other TiddlyWikis, I could also choose to drag-and-drop (or import) them into my TiddlyWiki!

If I want to go a step further, I could transclude those imported Tiddlers into the Tiddler that they’re in reference to. Perhaps I might do this under a heading of “@mentions” or perhaps “Comments” and suddenly I’ve got a way of displaying two-way conversations on my own TiddlyWiki site.

As is mentioned in Kicks Condor’s post about Hyperchat Modality, one could potentially use custom theming information (cleverly named “whostyles” in that post) from imported Tiddlers (or themes from other platforms) to identify the web identities of the sites they’re received from. I’ll also mention Kicks’ post about Hypertexting which is related and forms an interesting melange of websites, blogs, wikis, and hypertext of all kinds to form a more interesting web medium.

For the broader information collecting and building or academic communities (and here I can’t help thinking about the Open Educational Resources space that uses Creative Commons licensing to build their teaching resources), one could use these webmentions as a means of notifying sites that their content has been used, changed, or updated (typically those using Creative Commons will credit their source using a link). Then the receiver of the notification could optionally add to or change their version or even just collect the changes. This becomes particularly useful when the Tiddlers can be easily dragged and dropped between TiddyWikis!

As an explicit example, imagine a professor who wanted to build a textbook anthology, but who could do so by dragging and dropping a variety of Tiddlers from one site to another to create a quick textbook or reader for their students. This idea is particularly exciting to me when combined with the idea behind TW5-powered ebooks!

What could you imagine doing with webmention notifications on your TiddlyWiki site?

THIRTEEN

Imagine webmentions being used for referencing journal articles, academic samizdat, or even OER? Suggestions and improvement could accumulate on the original content itself rather than being spread across dozens of social silos on the web.

Bookmarked Where to find open textbooks – BCcampus OpenEd Resources (open.bccampus.ca)
On this site we have a curated collection of open textbooks that align with the top 40 highest enrolled 1st and 2nd year post-secondary subject areas in British Columbia. But there are many other places to find open textbooks that have already been developed and are ready for adaptation or adoption. The following resources contain existing open texts and other teaching resources that are openly-licensed and free for educators to use and adapt to their own needs.
Bookmarked Open Textbooks (OER Commons)
ISKME's digital librarians have curated collections of Open Textbooks and full courses to help leverage OER in your classroom. Whether you are looking for more affordable options for your students, or dynamic content to inspire your own teaching and learning practice, this hub, organized by discipline and provider will help you discover the resources you need at your fingertips.
Read Zocurelia - Inspiring Learners to Read and Discuss by Axel DürkopAxel Dürkop (axel-duerkop.de)
With Zocurelia you can increase the fun of reading online literature together. The browser tool shows the activity of a reading community directly in the context of the texts being read and discussed. This way learners can be motivated to participate and join the discussion - hopefully hypothetically. In this article I will explain my motivation, ideas and decisions that led to the development of Zocurelia.

For those interested in online reading groups, journal clubs, OER, open education, marginal syllabus, etc., Axel Dürkop has created quite a lovely little tool that mixes Zotero with Hypothes.is.

Using his online version (though the code is open source and it looks like I could pretty quickly host my own), it only took me a few minutes to mock up a collaborative space using an Econ Extra Credit group I’d tried to encourage. This could be quite cool, particularly if they continued the series past the first recommended textbook.

I could easily see folks like Remi Kalir using this as part of their marginal syllabus project and allowing students to recommend texts/articles for class and aggregating discussions around them.


First of all, I wanted to learn more about how to inspire learners to read. And this means for me as an educator to create a technical and social environment that is welcoming and easy to participate in.

Annotated on March 03, 2020 at 08:01PM

I want to have ways to show learners that I chose the texts for them, as I’m convinced that empathy is motivating.

I quite like this idea as a means of pedagogy.
Annotated on March 03, 2020 at 08:03PM

Read Reducing Friction in OER Adoption by David WileyDavid Wiley (iterating toward openness)
Last week I promised I would write a few posts about reducing friction with regard to OER. When I use the phrase “reducing friction” in this context, I mean taking things that are needlessly difficult and making them much easier. In last week’s post I talked about how we’re making it ridicul...

Some sketch thoughts about OER to come back and revisit

Does anyone/organization maintain a wiki or centralized repository of OER textbooks? (Especially a consortium of institutions which provide financial support).

It should contain a list of people/departments who’ve adopted (an indicator of quality).

It could maintain lists of people with technical expertise that can help to reshuffle pieces or allow customization? Maybe create easier methods for customization with related UI.

How to best curate resources and put them into a searchable repository for easy later use?

Can we create an organization that somewhat models the instutionalization of traditional textbook publishers that organize and track their assets? This institution should be supported by a broad array of colleges and universities as a means of supporting the otherwise invisible labor that is otherwise going on.

How can we flip the script to allow students to choose their own materials instead of allowing professors to do this? Their economic pressure alone will dramatically help the system. (Especially the hidden labor issues.)

 

 

Watched Meta: Edit-a-Thon (February 20, 2020): Engaging with Open Educational Resource Adoption through Syllabus Revision from ethicaledtech.info

11 a.m. Mountain Time

Zoom link

Librarians from Utah State University and one faculty member will talk about their experiences marketing and promoting open educational resources to interested faculty at their institution.

  • Erin Davis, Distance Education Library Services Coordinator, Utah State University
  • Dr. Avery Edenfield, Assistant Professor in Technical Communication and Rhetoric, Utah State University
  • Shannon M. Smith, Scholarly Communication Librarian, Utah State University
  • Rachel Todd, Open Educational Resources (OER) Coordinator, Utah State University
The title of this mini-conference session wasn’t as apt as its description, but it did give me a handful of ideas about how we need to reframe our approach to textbooks in higher education.

Institutions and individual departments need to better take on the work of creating and curating materials for their students. We have to stop relying on faculty, who are already overburdened with their own issues and troubles, from passing the textbook and learning materials burdens on to their students. By inter-mediating themselves into the natural market between publishers and the students who buy those materials, they’re allowing their laziness in requiring specific textbooks and supplementary materials, many of which either aren’t actively used in many courses or which students don’t/can’t use even when they’re assigned, to allow the publishers to dramatically overcharge for their services. 

By simply going from a required textbook(s) to a list of ten or more recommended resources with a variety of price points would completely obliterate the gouging we see in big publishing, particularly in the largest lecture classes. Layering OER efforts on top of this will help even further.

Read Electric Book Works: Producing The Economy: a case study in multi-format book production by Arthur Attwell (Electric Book Works)
Very rarely, a book-maker gets to add new tricks to the 500-year-old craft of book-making. We got to do that in producing The Economy.
This is an awesome piece with some good overview of dovetailing some of the issues between physical and digital publishing. Some good resources here to check out.

Originally bookmarked on January 28, 2020 at 01:55PM


Notice how print books have remained ad-free in an age when every other available surface carries advertising – something about print books has kept them immune from the disease of advertising.

Annotated on February 04, 2020 at 09:58AM


Books as websites can be public goods in a way that printed books cannot, especially for the poor.

Annotated on February 04, 2020 at 09:59AM


There are other great teams doing similar work: PressBooks uses a WordPress backend for online book and website development. Booktype, which has been around for a long time, also uses a browser-based editing workflow to produce HTML and PDF books. PubSweet is developing a modular editorial workflow, optimised, for now, for journals and monographs. The MagicBook project is being used at New York University. And our Electric Book workflow uses on- and offline static-site generation to make print and digital books.

Nice list of tools for digital publishing for the book space.
Annotated on February 04, 2020 at 10:01AM

Read Reducing Friction and Expanding Participation in the Continuous Improvement of OER by David Wiley (iterating toward openness)
I’m going to write a post or three about some of the friction that exists around using OER. There are some things about working with OER that are just harder or more painful than they need to be, and getting more people actively involved in using OER will require us to reduce or eliminate those po...
This reminds me I should write up something about using Webmention in conjunction with OER.