Requests for comment/Future of magic links

Jump to: navigation, search
Request for comment (RFC)Requests for comment
Future of magic links
Component General
Creation date 2016-09-14
Author(s) Legoktm
Document status accepted
See Phabricator.


Magic links are a feature of MediaWiki core that create automatic links for 3 hardcoded external identifiers:

For the purposes of this RfC, we are not considering free external links (e.g. typing just to be a magic link.


These are hardcoded, inflexible, un-localizable, and generally unexpected. If this feature were proposed today, it would be rejected in favor of using templates or interwiki links. There have been long standing requests to make them disable-able, move them to an extension, or remove them outright.

In many cases, local templates are preferable and more advanced than magic links. For example, on the English Wikipedia, Template:ISBN checks for invalid ISBNs and adds them to a tracking category for editors to fix up.


As of gerrit:309528 it is now possible to disable magic link functionality using $wgEnableMagicLinks. Our eventual goal should be to remove all magic link functionality from MediaWiki core. While moving them to an extension would allow us to remove them from core, it would probably entrench magic links even deeper in the parser as we would need a mechanism and hook system to support an extension to add magic links.

Instead, we should:

  • YesY Done Add a tracking category (via ParserOutput::addTrackingCategory()) to any page that uses a magic link (3 categories, one for each link type)
  • Add a {{ISBN:...}} parser function that replicates the functionality of the magic word (validation and linking to Special:Booksources).
    • It has also been suggested that we could use a "ISBN" virtual namespace that redirects to Special:Booksources
    • Discussion on phab:T148274 is still ongoing.
  • VisualEditor and other editing tools would continue to support ISBN/RFC/PMID "magic" links as they do, but convert it to a proper link client-side.
  • YesY Done RFC and PMID should be added to the Wikimedia interwiki map and the MediaWiki default one if they aren't already.
  • YesY Done In the MediaWiki 1.28 release, default magic links to being disabled. Wikimedia wikis would still have it enabled for now.
  • In progress In progress Encourage users to migrate to using the parser function and interwiki links or local templates (e.g. w:Template:ISBN), probably using bots and other assisted tools.
  • Remove magic link capabilities in MediaWiki 1.30 (1 year later, also LTS).
    • Update: this part was controversial, and will be re-evaluated based on the response to disabling by default.
    • We would retain ParserOptions::getMagicISBNLinks() and co. but they will always return false, in order to signal to extensions that the magic links are disabled.
    • Old revisions would no longer have autolinks, but that should not reduce the readability of the content as they are well known identifiers.
    • Move Special:Booksources and the ISBN parser function to an extension.


What for would you do this? It will clutter all the projects with extra template calls and other extraneous crap. Rich Farmbrough 18:03, 27 December 2016 (UTC).

There's concern on enwiki (here, for example) about the loss of the ISBN and PMID magic links. There's also concern about the lack of discussion. The first most of us knew about this was when a bot operator submitted a request to remove the links. Can the disabling of the links be halted so that a wider discussion can be held first? SarahSV (talk) 19:05, 29 December 2016 (UTC)

  • Lets look at one "reason" un-localizable, that issue is just tagged as "won't fix" for "the absence of objections." I would have said that localisation is totally trivial, certainly as easy as localising a set of templates. Rich Farmbrough 23:16, 2 January 2017 (UTC).
Has there been any real discussion on the actual sites? This will have a huge impact. [It seems to me that this change goes against consensus? See Removal of ISBN magic links.] Jeblad (talk) 13:12, 15 April 2017 (UTC)
Yes, discussions are on-going. The English Wikipedia had an RfC and agreed to deprecated and eventually remove magic links. Legoktm (talk) 00:31, 12 July 2017 (UTC)
  • At first I thought this cleanup might be a good idea, then I started to wonder if magic links is just the kind of feature that might solve the currency converter problem. Now we write into articles what a specific currency might be, and how it might be converted to a local currency, but by using magic links for the short three-letter codes we could simply parse out the currency and add a currency converter without cluttering the wikitext. This is not that common, so perhaps it is acceptable to use a parser function in those cases. It would probably not go long before someone have created templates for all currencies, with no real additional functionality, if it is added as a parser function. I would prefer silent parsing of an inline magic link. [Just to be clear; I do not support this RfC.] Jeblad (talk) 13:18, 15 April 2017 (UTC)
  • I think this is a really, really bad idea. It will result in many, many, many future ISBN citings for which editors won't use the template and thus won't be linked anymore. I am strongly opposing this RfC. --Matthiasb (talk) 05:20, 23 May 2017 (UTC)
Please keep the magic links, why increase work load for editors? And why clutter the source text, so that it becomes less readable to the vast majority of non-coders (writing an encyclopedia) and potential new authors? Cheers, --Ghilt (talk) 11:00, 23 May 2017 (UTC)
  • I find the magic links to be useful too. They should not be disabled. I'm even proposing more magic links, e.g. for DOIs and URNs! --Gretarsson (talk) 15:30, 23 May 2017 (UTC)
  • Magic links are useful, templates are geeky. So the more templates, the less attractive the wikiverse will get for non-geeks. So like Matthiasb, Ghilt and Gretarsson. And this has to be discussed on at least 50-70 wiki-projects themself, not only here in some back room of geeks. Grüße vom Sänger ♫(Reden) 15:50, 23 May 2017 (UTC)
    In general editors should never have to deal with magic links directly, nor do they need to know they have to add templates themselves. For example, w:Template:Cite book and related automatically link ISBNs, so users don't see any difference. Users who have trouble with wikitext can use Citoid's citation generator which handles all templates for them. Legoktm (talk) 00:31, 12 July 2017 (UTC)
  • You propose to disable an extensively used and useful feature without any need, without any existing alternative and (therfore) without any improvement. CONTRA --Fano (talk) 16:03, 23 May 2017 (UTC)
    The intial motivation is that we're embarking upon cleaning up wikitext, standardizing it, and modernizing it (see the related tidy migration and Linter project). This effort is being done so we can improve tools for editors, and get rid of a lot of technical debt. Magic links have always been a weird part of wikitext, and developers have often been unhappy with the concept due to how magical it is ("explicit is better than implicit"). Alternatives have been proposed and currently the one everyone agrees on is using templates. I don't disagree that for some people this will be a regression in functionality, but overall and in the long run it will be an improvement in my opinion. Legoktm (talk) 00:31, 12 July 2017 (UTC)
  • I miss any reason for abandoning these widely used features. The claims above under the header "problem" seem ridiculous to me. Un-localizable is patently untrue, as localizing them is as easy as apple-pie. Hardcoded is exactly why they are preferable to templates, they need no user activity. And while they are inflexible, that too is exactly what they are supposed to be. They fulfill one purpose, and do so very well. Unexpected is the most laughable reasoning I have read so far on this wiki. These features have been coded for a reason, they shall and do link three well defined information patterns of utmost importance to well established resources. Some years ago you removed DOI from the magic words, and I still miss it. So my proposal would be to reintroduce DOI as magic word ASAP, and certainly keep the three existing ones. --H-stt (talk) 09:26, 24 May 2017 (UTC)
    • +1 -- hgzh 11:11, 24 May 2017 (UTC)
    • +1 --Syrcro (talk) 05:45, 27 May 2017 (UTC)
    • +1 --Albinfo (talk) 19:55, 28 May 2017 (UTC)
    • +1 --ZdBdLaLaLa (talk) 20:36, 31 May 2017 (UTC)
    • +1 (a raw ISBN can be replaced by a template without disabling this feature, so it is independent) Rjh (talk) 05:55, 1 June 2017 (UTC)
    • +1 --Lucas (talk) 14:49, 14 June 2017 (UTC)
    • The stated problem: These are hardcoded, inflexible, un-localizable, and generally unexpected. Judging from H-stt's comment above (and similar comments), and his support, I'm inclined to say that this should not be considered a valid problem statement. Is there a technical, back-end, maintenance reason that magic links are difficult to work around? Why has it been okay to support it all this time and then just decide to stop supporting it because it's not okay anymore, and then claim that it wouldn't have been introduced today? D. F. Schmidt (talk) 16:49, 20 June 2017 (UTC)
      You can find comments from developers for years (e.g. phab:T22832#251476 from 2009) that magic links are technical debt and only around for backwards-compatibility. As I mentioned above, there's currently a push on modernizing and cleaning up wikitext, and this has been one of the things on that list. Magic links require specialized code to handle properly, and are one thing that works differently from the rest of wikitext. I think no one has really bothered or wanted to deal with all the complaints that would come out of removing magic links. We've also advanced significantly in citation related technology (e.g. Citoid, Scribunto) that magic links aren't actually used as much as they used to. Legoktm (talk) 00:31, 12 July 2017 (UTC)
      • +1 to D. F. Schmidt's comment. The current arguments given in the Problem section seem very vague and don't describe the issue in much detail at all. K6ka (talk) 12:30, 5 July 2017 (UTC)
    • +1 -- Lostraven (talk) 18:58, 6 July 2017 (UTC)
If you think something is "as easy as apple-pie" it's a shame you didn't submit a patch earlier to implement that functionality - however I doubt it's as easy as you think. And while you might see hardcoded/inflexible as a feature, many people see it as exactly the opposite. As for being unexpected, see phab:T70217, or w:Wikipedia:Village_pump_(technical)/Archive_8#Automatic_external_link, etc. AFAIK DOI has never been a magic word, and I certainly never removed it. It's still an interwiki link if that's what you meant. Legoktm (talk) 00:31, 12 July 2017 (UTC)
  • Comment from technical site: It will be very helpful to change the Magics to Templates, because of a better possibility to localize or search those contents by API or as database entry as Table Templatelinks including parsing key and value. The edit on article pages is not very more difficult, but we should use our de:Template:Zitation simply a little more to catch such entries. I only can see a helpful optimization and we should do this. Doc Taxon (talk)
  • The ISBN magic link has been in use several dozen million times, I guess. This RfC is, in comparison, absolutely nothing. I can't take this seriously the way it looks. Man77 (talk) 16:08, 25 May 2017 (UTC)
    Why do you think this RfC is "absolutely nothing"? Legoktm (talk) 00:31, 12 July 2017 (UTC)
    Because it ain't done where those links are used, just here with the geeks. Go to the portals in the wikis, where they are heavily used and make some dozen RfC there, and then come back here. Templates are far less useful for editors as plain text, that automagically gets transformed, templates shoo new users without much interest in using strange syntax away. Grüße vom Sänger ♫(Reden) 16:10, 12 July 2017 (UTC)
  • I am agnostic on the proposal itself, but advise that the recommended list of alternatives should include {{cite}}, e.g., {{cite book|title=foo|isbn=bar}}.
  • The parts of the proposal that are shown as done are good to have (like putting in the ability of disable magic links), but I strongly oppose the idea of removing magic links in total. Even if all present ISBNs in all Wikimedia projects are migrated from templates to magic links, this change just adds yet another burden to editors and clutters page source. As per H-stt's opinion, I also support adding back DOI to magic links. If you don't like it being hardcoded, move it to an extension and make it customizable there. Removing it without considering the impact to (the future of) existing projects just does not make sense. --ネイ (talk) 15:55, 19 June 2017 (UTC)
  • A waste of editors' time, with no clear explanation. @Legoktm, the benefits mentioned were vague and the feedback was quite negative. Why did you press ahead? The decision-making process seems to have failed here. What is the correct venue to address the decision-making process? --Hobbes Goodyear (talk) 01:09, 25 June 2017 (UTC)
  • Support I assume this is used by the visual editor people? Typing [[ISBN/0-7475-3269-9]] or {{ISBN:0-7475-3269-9}} instead of ISBN 0-7475-3269-9 is not difficult. Power~enwiki (talk) 21:29, 4 July 2017 (UTC)
  • This is the first I'm learning of this. The wikis I run use magic links extensively. Using journal as an example, our citation format has been and will continue to be <ref name="Name">{{cite journal |title=Title |journal=Journal |author=Author |volume=Vol |issue=Iss |pages=pp |year=Year |doi=DOI |pmid=PMID |pmc=PMC}}</ref> with a references section at the bottom. I don't claim to fully understand what you all are proposing to do. All I know is that for now I just have to plug in a DOI, PMID, etc. into the citation template and it works. It sounds like putting those IDs into the template would no longer produce links in the results shown in the references section; we'd somehow have to add an additional template and thus make it more complicated. The wiki is complicated enough, particularly for new users. Against this change, for the same reasons as H-stt. Lostraven (talk) 18:56, 6 July 2017 (UTC)
    If you're using a standardized template, then this change affects you very little. Just have the template create the links directly (e.g. [[Special:BookSources/{{{isbn}}}|{{{isbn}}}]], and in the articles themselves nothing will change. Legoktm (talk) 00:33, 12 July 2017 (UTC)

See also[edit]