An h-card for my TiddlyWiki

I’m still spending lots of time trying to figure out how TiddlyWiki works, so some of this may seem hack-y, but it seems to get the job done. I’d love it if others who are using their TiddlyWikis as their primary website (and who have more experience than I) weighed in with their expertise or experience.

One of the core IndieWeb building blocks is having an h-card on your website to establish one’s identity, either for others to read or for computers and parsers to know who you are.

A valiant first attempt

To start out, I created an About Tiddler with the appropriate h-card and other microformats mark up and then put it into a tab in my right sidebar to make it easy to find.

Naturally, I ran into a problem when trying to throw this into indiewebify.me. Since TiddlyWiki websites are generated primarily by JavaScript and thus suffer from the js;dr problem, figuring out where to put and display an h-card was going to be an issue. I even tried throwing it into the Site Title in the control panel and hoped for the best, but in the end, the site title is really the shadow Tiddler $:/SiteTitle and like all the rest of the page is generated by JavaScript.

I muddled around a bit and even tried to add an h-card using a <link> in the <head>, but nothing seemed to work.

A hackable solution?

Ultimately, in frustration, I simply threw a simple h-card into the <head> just to see what would happen. It wasn’t terrible—the parser found it and displayed it as a success. Unfortunately I discovered that TiddlyWiki displayed my photo and name at the bottom of my page in the browser. I didn’t expect this, but at least it was a start.

Since this method seemed to work, I thought I’d continue the cheat and just throw in some in-line CSS so that the muddled h-card wouldn’t actually show on my page. I’d use this coded h-card in my <head> for computers and keep the somewhat more elaborate one for people in my about page.

What I did

So, for those who’d like the entirety of the solution, here’s what I did:

  1. I created a plugin tiddler entitled $:/plugins/indieweb/core/rawMarkup and gave it the tag $:/tags/RawMarkup
  2. I added the following lines of code to it and saved the Tiddler
    1. <a style="display:none" class="h-card u-url" href="http://tw.boffosocko.com/">
      <img src="https://www.boffosocko.com/logo.jpg" alt="" style="display:none" />Chris Aldrich</a>
  3. Profit!

Again, this works, but seems very hack-y to me. If you’ve managed to get a h-card into your TiddlyWiki in a different or more elegant way, I’d love to hear your thoughts.

Thoughts on delegated h-cards

Given the difficulty and trouble of all this, I’m sort of left wondering why–particularly since I’m using this site as a secondary one to my primary site–I couldn’t just throw in a link to the h-card for my primary site and call it a day? Unless I’m missing something, for some reason the way that representative h-cards are defined, they expect the h-card to point to the site they’re actually on.

Why couldn’t/shouldn’t I delegate my h-card on subdomains or other personal sites to point to the representative h-card on my primary site? What if parsers could follow other rel=”me” links on my site to find/intuit a representative h-card from one of those? While I could have lots of domains to better differentiate my online identity, why couldn’t I do that, but still have the same primary identity?

I think I’ve learned more about TiddlyWiki by looking at others’ online than I have from direct documentation or search. Thanks @Jack Baty (#), @JoshSullivan (#), Sphygm.us, and h0p3 for hosting yours out in the open.

It reminds me a lot of the “view source” I used to do in the days of the early web.

Replied to a tweet by Toby Osbourn (Twitter)
I wrote and intro article on Webmention a while back for A List Apart: Webmentions: Enabling Better Communication on the Internet and Jason McIntosh just wrote Webmentions, Active and Passive which is solid.

From there, I’d take a look at the canonical Webmention page of the IndieWeb wiki which has a huge number of resources. Since it looks like you’re coming from a Ruby perspective, you might appreciate the Ruby page on the IndieWeb wiki which has some pre-existing resources which may cut back on your work and learning curve. Perhaps Jason Garber (@jgarber)might be a useful resource within the Ruby world?

If you’re using other platforms/languages, simply search the IndieWeb wiki for other details relating to Webmention. Have questions as you delve in? Just ask in the IndieWeb #Dev chat.

Self-hosting TiddlyWiki with GitHub Pages

TiddlyWiki is most often used as a private wiki for personal note taking and creating private journals.

Because it is a single text file usually named index.html written in HTML, CSS and some JavaScript, I thought it would make an ideal candidate for a simple-to-use personal website that can be hosted on one’s own domain. As a researcher who appreciates the IndieWeb and Domain of One’s Own philosophies and uses my personal website as a commonplace book for both work and personal reasons, how could I resist?

TiddlyWiki

TiddlyWiki is easy to use, highly flexible, modifiable, and can be easily copied, backed up, and shared. There’s an active community of users and developers for the platform which dates back to 2004. There are a variety of examples and documentation online and plugins are literally as simple as dragging and dropping some files from one source directly into your own Wiki. For those interested in the OER movement, individual Tiddlers (TiddlyWiki’s name for cards or discrete entries within the wiki) can be easily dragged and dropped from other TiddlyWikis to copy them!

There are some useful instructions for hosting it almost everywhere–except on one’s own domain name.

The few easy options I’ve found for hosting a TiddlyWiki publicly online as a website were rely on someone else’s service as a subdomain. As much as I like the idea of TiddlySpot I really wanted to use my own domain name (not to mention that it’s non-obvious how to host a newer TiddlyWiki version 5 (TW5) instance there). I’d also seen TiddlySpace shut down a few years ago and didn’t want to deal with that potentiality—though I will admit that exporting would be as simple as downloading and moving a single file!

So after a month or so at tinkering around at several complicated solutions that always seemed beyond my grasp, I went back to IndieWeb basics. What is their recommendation for the easiest way to get a website up and running? The fact that an empty TiddlyWiki file is named index.html gave me my answer: set up a GitHub Pages-based website and simply connect it to my domain!

However, as simple as this pathway may seem to some, I thought I’d briefly document the process I took so others can do the same for themselves.

First I’ll presume you’ve got a domain name and a host that will allow you to change the CNAME for where your domain name is pointed. (If you don’t, check out https://indieweb.org/personal-domain for details.)

In short, you’re going to upload a single file to your GitHub account and then point your domain name at it.

The idea of GitHub may scare a lot of people, but you won’t need to use git, know any git commands, or even know how git works since I’ll describe steps that entirely use the graphical user interface and don’t come anywhere near using the command line or any complicated GitHub applications. It’ll be as easy as dragging and dropping.

Let’s start!

Step-by-Step Tutorial

Get TiddlyWiki

  • Go to https://tiddlywiki.com/ and click on the “Download Empty” button on their homepage. This will allow you to save a file called index.html to a convenient place on your computer.
  • This one file is the entirety of your future website! Guard it well.

GitHub

  • If you don’t already have one, create an account at https://github.com/
    • You’ll use this account and their free GitHub Pages service to host your website for free as long as the project folder (also known as a repository) you are hosting is public.
  • At GitHub create a new repository.
    • Name it username.github.io, where username is your username (or organization name if you’re doing it for your organization) on GitHub.
    • Give your repository an optional descriptive name. I named mine “A TiddlyWiki commonplace book”
    • Choose the “Public” option, otherwise no one will be able to visit your new website.
    • Click “Create Repository”
  • Upload your TiddlyWiki to your new repository
    • In the Quick Set Up box click on the link for “uploading an existing file”.
    • On the subsequent page you can either drag and drop the empty TiddlyWiki index.html file you saved on your computer or you can click “choose your files” to find and upload the file.
    • If you like, you can optionally add any additional README, License, or gitignore files as necessary. If you don’t know what these are you can safely skip them or revisit doing this later.
    • Under “Commit changes” give your upload a short title; the suggested “Add files via upload” is fine. You can add an optional extended description if you like.
    • Click on the “Commit Changes” button.
      • P.S.: If you haven’t done so before you’ve just made your first Git commit. Congratulations!!
    • Your https://github.com/username/username.github.io repository folder should now be ready and have your index.html file in it.

Setting up your domain

Setting up your website

  • It may take a while for the DNS system to propagate the changes from your host, but you should be able to visit your website and see your empty TiddlyWiki online. Congrations! You’ve got a new website.
  • You’ll notice in the TiddlyWiki documentation that the first rule of TiddlyWiki is to always save or back up your wiki!
    • (The second rule, in true Fight Club fashion, is–let’s say it together–to always save or back up your wiki!)
    • Since our wiki is on GitHub, we’ll want to use the Save to a Git Service instructions. Once set up, the changes to our TiddlyWiki should automatically self-save (this can be changed within your wiki’s Control Panel too) or they can be saved manually using the TiddlyWiki checkmark save functionality.
    • I’ll note that you can presently use your GitHub password in these settings, but this isn’t quite as secure as generating a custom token (or password), and sometime in late 2020, GitHub won’t allow you to use your basic account password this way, so you may as well set up the personal access token now.
  • Setting up Personal Access Tokens
    • You will need a Personal Access Token (essentially a password that will be specific to your TiddlyWiki account) in order to save your TiddlyWiki file.
    • On GitHub, click on your user icon, select “Settings”, then “Developer Settings”
    • Next click on the “Personal Access Tokens” tab and then click “Generate new token”
    • Give your token a descriptive name like “TiddlyWiki”
    • Under scopes, select “repo” (and all of its sub-scopes)
    • Click the “Generate Token” button at the bottom of the page.
    • Once created, immediately copy this string somewhere safe since navigating away from the page will not allow you to recover it. (If you do, you’ll need to regenerate a new token.)
    • Finally copy the text of your token into the Tiddler noted above in place of your password. There’s no explicit save button, just ‘X’ out of the settings control panel and click your TiddlyWiki’s main save button.
    • Your token value should be stored in browser local storage.
    • Now you can edit any Tiddler and save it.
      • After edits to your wiki, you’ll see that the checkmark icon on the page is red (depending on your theme), indicating changes to save. You can click on it to force a save.
      • I’ve found it convenient to wait for the TiddlyWiki to schedule the save on its own, however, make sure you’ve saved any changes you want before closing your browser tab.
      • Sometimes saves aren’t always successful and you’ll see error warnings, but usually they’ll clear themselves up on subsequent auto saves.
      • If necessary, you can visit your GitHub repository for your wiki and it will indicate the interval of time since the last save.

We’re done!

  • Everything after this you may be able to either handle yourself by poking around your new wiki or you can find lots of help in the two Google Groups listed above or by searching around online, in fora, or even step-by-step videos on YouTube.
  • If you’ve done this as part of the IndieWeb or A Domain of One’s Own, be sure to log yourself into the IndieWeb wiki and add yourself to the examples on their TiddlyWiki page where you might also find some other useful ideas.
  • If you like, you can delve deeper into GitHub and use one of their apps or command line functionality to regularly back up your website to your desktop, or you can make branches of your site on your local computer and then push those changes up to the cloud.
  • If you find problems or encounter issues, feel free to drop me a line or catch me or others in the IndieWeb chat.

Review of Typlog as a turnkey platform for IndieWeb as a Service

Yesterday I ran across a tweet in the IndieWeb chat announcing that Typlog, a hosted website/blogging platform, now supports Webmention.

I looked at their website, and it also looks like they support a few other IndieWeb building blocks including WebSub and RelMeAuth by leveraging Twitter and GitHub. (The developer indicated they supported IndieAuth, but I highly suspect it’s just RelMeAuth, which is still a solid option for many IndieWeb tools.) 

Having just put together a Quick Start IndieWeb chart that includes services like micro.blog, i.haza.website, and pine.blog, I was immediately intrigued. This new platform (proprietary and not self-hostable, but very similar to the others) looks like a solid looking little platform for hosting one’s personal website (or podcast) that includes some IndieWeb building-blocks.

It’s got a 7 day free trial, so naturally I spun up a quick website. With just a few simple defaults, I had something pretty solid looking in only a few minutes with a pleasant on-boarding experience.

I’ll note that some functionality like importing content from WordPress, Tumblr, Ghost, or a podcast feed requires an actual subscription. Once you’ve finally subscribed, there are instructions to set it up to use your own domain name. However, most of the basic functionality is available in the trial. Another important indie feature is that it has a built-in export using JSON format, so that one can take their domain and content to another service provider if they wish.

It looks like it’s got a ton of common useful features! This includes support for podcasting, password protected posts, scheduling posts, membership posts, and integrations for Stripe, CloudFlare, Google Analytics, and MailChimp among many others. The platform is built with some basic and beautiful page templates and prefers to have markdown in the editor, but seems to work well with raw HTML.

They also allow adding custom code into <header> and <footer> so it should be straightforward to add support Microsub to one’s site using a service like Aperture so that you can have (feed) reader support.

Unfortunately it looks like there’s no Micropub support yet. I suspect that Typlog would be quite pleased to have a number of posting applications for both desktop and mobile available to it by adding this sort of support.

Also on testing, it looks like while the platform supports incoming Webmention, it doesn’t seem to be sending webmentions to links within posts. (Perhaps they’re batch processed asynchronously, but I haven’t seen anything yet.)

The platform seems to do really well for posting articles and podcasts and even has a custom template for reviews, but all of the user interface I’ve seen requires one to add a title on all posts, so it doesn’t lend itself to adding notes (status updates) or other indie-like posts like bookmarks, likes, or simple replies. It has a minimal built in h-card, but it could be expanded a bit for sending webmentions.

The pricing for the service starts at a very reasonable $4/month and goes up to $12/month with some additional discounts for annual payments.

In sum, I love this as another very indy-flavored web hosting service and platform for those looking to make a quick and easy move into a more IndieWeb way of hosting their website and content. While services like micro.blog and i.haza.website may be ahead of it on some technical fronts, like pine.blog, Typlog has a variety of different and unique features that many are likely to really appreciate or wish that other services might have. I imagine that over time, all of them will have relative technical parity, but will differentiate themselves on user interface, flexibility, and other services. I could definitely recommend it to friends and family who don’t want to be responsible for building and managing their websites.

One of my favorite parts of Typlog is that the company building it is based in Japan, where I’ve seen a little bit of development work for IndieWeb, but not as much as in portions of Europe, America, or Australia. It’s been great seeing some growth and spread of IndieWeb philosophy and platforms in Asia, Africa, and India recently.

And of course, who couldn’t love the fact that the developer is obviously eating their own cooking by using the platform to publish their own website! I can’t wait to see where Typlog goes next.

Replied to a tweet (Twitter)
Congratulations! I’m curious if you have plans to offer other IndieWeb building blocks like Micropub, Microsub, or IndieAuth? Given your offerings, I’m tempted to add Typlog to the options at https://indieweb.org/Quick_Start.
RSVPed Attending WordPress IndieWeb Online Meetup

Interested in the Indieweb, but you already have a WordPress site? Do you have a WordPress website or thinking of starting one?

Whether you’re a blogger, coder, designer, or just someone who wants to improve their presence on the web, if you have a WordPress site and want to add Indieweb functionality to it, this is the meetup for you.

Expand your reach, improve your connection with your audience. Make it easier to interact with your website. Have better control of your web presence.

With recent events keeping many of us at home, what better time is there to connect your presence on the web to others?

  • 7:00-7:15 - Introductions
  • 7:15-7:45 - overview of Indieweb tools and WordPress
  • 7:45-9:00 - Open Discussion/Chat/Support
RSVPed Attending ONLINE: Homebrew Website Club West Coast
April 1, 2020
Wed 6:00 - 8:00pm (America/Los_Angeles)
 

Join the Zoom call: link to come

We will provide a Zoom video conference link 20 minutes before the meetup here and in the IndieWeb chat.


Homebrew Website Club is a meetup for anyone interested in personal websites and a distributed web. Whether you’re a blogger, coder, designer, or just someone who wants to improve their presence on the web, this meetup is for you.

6:00pm–7:00pm Quiet writing hour

  • Finish that blog post you’ve been working on!

7:00pm–8:00pm IndieWeb Meetup

  • Demos of personal website breakthroughs
  • Discussion around the independent web
  • Create or update your personal web site!

Join a community with like-minded interests. Bring friends that want a personal site, or are interested in a healthy, independent web!

Chat archives

Please read through our Code of Conduct.

Webmentions with WordPress for Open Pedagogy

Abstract: With growing support for the W3C Webmention spec, teachers can post assignments on their own websites & students can use their sites to respond and interact. Entire classes can have open discussions from site-to-site owning all their data and eschewing corporate surveillance capitalism.

Missed my presentation for PressEdConf20 on Twitter earlier and want to read it all bundled up instead? The “article” version appears blow. You can also enjoy the Twitter moment version if you like. 


ONE

Chris Aldrich
Chris Aldrich

Hello everyone! My name is Chris Aldrich. I’m an independent researcher in a variety of areas including the overlap the internet and education. You can find more about me on my website https://boffosocko.com

Today I’ll be talking about Webmentions for open pedagogy. 


TWO

For a variety of reasons (including lack of budget, time, support, and other resources) many educators have been using corporate tools from Google, Twitter, Facebook, and others for their ease-of-use as well as for a range of functionality that hadn’t previously existed in the blogosphere or open source software that many educators use or prefer.

This leaves us and our students open to the vagaries and abuses that those platforms continually allow including an unhealthy dose of surveillance capitalism.

Wall of security cameras looking down at two women
Photo by Matthew Henry on Unsplash

THREE

In the intervening years since the blogosphere and the rise of corporate social media, enthusiasts, technologists and open source advocates have continued iterating on web standards and open protocols, so that now there are a handful of web standards that work across a variety of domains, servers, platforms, allowing educators to use smaller building blocks to build and enable the functionalities we need for building, maintaining, and most importantly owning our online courseware.


FOUR

Some of these new W3C specs include Webmention, Micropub, WebSub, IndieAuth, and Microsub. Today I’ll talk abut Webmentions which are simply site-to-site @mentions or notifications which don’t involve corporate social media silos.

For those who’d like more information about Webmentions and how they could be used, I’ve written a primer for A List Apart entitled Webmentions: Enabling Better Communication on the Internet.

Cartoon of baseball player hitting a ball with a bat to a waiting player with a tennis raquet
Illustration by Dougal MacPherson
Image courtesy of A List Apart

FIVE

Many common content management systems support Webmention either out of the box or with plugins including: our friend WordPress, Drupal, WithKnown, Grav, and many others.

Webmention rocks logo
Webmention rocks

SIX

WordPress can use this new standard with the Webmention plugin. (Surprise!) I also highly recommend the Semantic Linkbacks plugin which upgrades the presentation of these notifications (like Trackback, Pingback, or Webmention) to more user-friendly display so they appear in comments sections much like they do in corporate social media as commentsrepostslikes, and favorites, detected using microformats2 markup from the source of the linkback.


SEVEN

Another plugin I love is Post Kinds Plugin (Classic editor only at present) which automatically parses URLs I want to reply to, like, bookmark, etc. and saves the reply context to my website which helps prevent context collapse. My commentary and notes then appear below it.

(I also use a plugin that saves the content of URLs on my site to the Internet Archive, so I can reference them there later if necessary.)

Example of a reply context with author name, image, title, and short synopsis


EIGHT

These plugins with WordPress allow teachers to post course content and students can then post their responses on their own sites and send notifications that they’ve read, listened to, or watched that content along with their ideas and commentary.


NINE

Examples of webmentions in a course setting: Greg McVerry and I ran an experiment with Webmentions in a class in 2018. 

Example assignment: https://archive.jgregorymcverry.com/5570-2/

Notice the replies underneath which came from other sites including my response which is mirrored on my site at https://boffosocko.com/2018/08/04/highlighting-some-of-my-favorite-edtech-tools/

Example podcast post for a class: https://archive.jgregorymcverry.com/2toponder-episode-one/

Notice the listen webmention in the comments which links to my listen response at: https://boffosocko.com/2018/08/06/2toponder-episode-one-intertextrevolution/ where I own a copy of the context and my own response. As a student, even if the originals disappear, I’ve got the majority of the important content from the course.


TEN

When the course is over, the student has an archive of their readings, work, and participation (portfolio anyone?) on a site they own. They can choose to leave it public or unpublish it and keep private copies.

[Copies for Facebook, Google+ or Big EdTech Giants? They can ask for them nicely if they want them so desperately instead of taking them surreptitiously.]


ELEVEN

As a concrete example, I now have tagged archives for all the work I’ve done for EDU522 with Greg McVerry who also has his related posts in addition to a variety that he subsequently archived.

Fluffy cat head that moves with the fur underneath it appearing more like rocket exhaustion as the cat "takes off" into the air


TWELVE

By taking the content AND the conversation around it out of the hands of “big social media” and their constant tracking and leaving it with the active participants, we can effect far more ethical EdTech.

Gif of grain silo on a farm collapsing in on itself.

[No more content farming? What will the corporate social media silos do?]


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.

gif of Kermit the frog sitting on a desk excitedly flailing his arms and legs

[Webmentions + creativity: How might you take their flexibility and use it in your online teaching practices?]


FOURTEEN

There’s current research, coding work, and thinking going on within the IndieWeb community to extend ideas like private webmentions and limiting audience so that this sort of interaction can happen in more secluded online spaces.

I’d welcome everyone who’s interested to join in the effort. Feel free to inquire at an upcoming IndieWebCamp, Homebrew Website Club, event, or in online chat right now.

Huge group of diverse attendees at IndieWebSummit 2019 waving


FIFTEEN

I’ve also been able to use my WordPress website to collect posts relating to my participation in conferences like PressEdConf20 or Domains 2019 which included syndicated content to Twitter and the responses from there that have come back to my site using Brid.gy which bootstraps Twitter’s API to send Webmentions back to my website.

If Twitter were to go away, they may take some of my connections, but the content and the conversations will live on in a place under my own control.


Thanks for your time and attention! I’m around on Twitter–or better: my own website!–if you have any questions.

FIFTEEN

I’ve also been able to use my WordPress website to collect posts relating to my participation in conferences like PressEdConf20 or Domains 2019 which included syndicated content to Twitter and the responses from there that have come back to my site using Brid.gy which bootstraps Twitter’s API to send Webmentions back to my website.

If Twitter were to go away, they may take some of my connections, but the content and the conversations will live on in a place under my own control.

Thanks for your time and attention! I’m around on Twitter–or better: my own website!–if you have any questions.

 
 
FOURTEEN

There’s current research, coding work, and thinking going on within the IndieWeb community to extend ideas like private webmentions and limiting audience so that this sort of interaction can happen in more secluded online spaces. I’d welcome everyone who’s interested to join in the effort. Feel free to inquire at an upcoming IndieWebCamp, Homebrew Website Club, event, or in online chat right now.

Huge group of diverse attendees at IndieWebSummit 2019 waving

 
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.