RFC: archive-url standard variable

Create an archive-url standard variable for the next CSL release.

Summary

On Wikipedia, there’s a reference template called cite web. It’s used like so: {{cite web |last= |first= |date= |title= |url= |website= |location= |publisher= |url-status= |archive-url= |archive-date=}}.

In the template, you can see a field called archive-url, which permits a URL to be archived using a service such as Archive.org. I would like support for this field in CSL, defined as a standard variable within the specification.

Motivation

I recently requested this feature in Typst’s Hayagriva bibliography tool, but I was told that, since it isn’t present in CSL, it couldn’t be added to Hayagriva.

So, to permit implementors (like Typst) to add this field to their languages, I’d like to see it added in CSL.

It would provide better support for online sources, many of which are particularly volatile, such as blog posts, social media posts, and online videos. Online sources almost always need an included archival link, and including it in CSL could push folks to use better link archival practices, resulting in more reliable online sources in all places where CSL is used.

Guide-level explanation

CSL now has the archive-url standard variable. It stores 1 or more archived links for the source.

Reference-level explanation

The archive-url standard variable takes >=1 value(s), storing archived versions of the entry/entries under the url standard variable or other online URL(s) where backup copies of the provided resource exist.

Drawbacks

CSL already has the archive variable, which has only a minimal definition. Its lax definition may allow using it to store links already. However, in my view, it’s better to have a field specifically for archive URLs, even if that means adding another variable to CSL.

Implementors would also have to add it to their implementations.


This template is based off the Rust RFC format. I didn’t see an “RFC” template for CSL specifically, but if there is one, please let me know, and I’ll reformat it. :smiling_face:

Hi @barrett_ray - sorry for the delay in any response.

I can’t really speak for CSL (though I am its original creator), other than to say it’s a challenge to know how to evolve the language at this point IMO.

It’s for that reason I started a new project (which, BTW, is written in Rust and supports Typst):

https//citum.org

Anyway, earlier in my career I actually did archival research, so this reminded me it’s a feature I’d like to better support.

Towards that end, I’ve implemented this and broader archival support: