One of the things I’ve always liked is linked content. Yet support for crosslinks in Jekyll seems to be lacking; you can write a Liquid expression to look up other posts but it’s nontrivial and, honestly, wants more knowledge of Liquid and Jekyll internals than I want.

I use slug in Jekyll front matter to help me build links - and it turns out I can use that. I now have a “wikilink” plugin that allows me to have an expression to refer to other pages.

It looks like this in Markdown: {% wikilink 'slug-reference' 'Optional Title' %}. With this, I can refer to a page’s slug and have the title injected as the link text, or I can provide my own text. A broken link like {% wikilink 'not-a-real-slug' 'this is not a real destination' %} gets rendered like: this is not a real destination so that I can see it easily when I get something wrong; it also emits a warning in the build process.

A real destination - like a reference to the “fiction” archives - looks like this: Fiction Archives. The actual Markdown for that link looks like this: {% wikilink 'fiction-slug' 'Fiction Archives' %}.

There’s also external slug support. I have a data file with a set of common external links and I can use them as fallbacks - so if I have a slug for jekyll it’ll use my internal link, but if I don’t, I can use {% wl 'jekyll' %} and have that generate a viable reference. (This is how the next paragraph works, actually!)

If you use Jekyll, well… how do you address the crossreferencing problem? I feel like this should be distressingly common, really, and maybe I’m solving a problem that’s already been solved, and I just haven’t seen it. If you’d like me to build a project out of the wikilink plugin, feel free to let me know - but note that I’m not really a Ruby developer, so you’ll have to provide some clear guidance for me to do it well.