Use Inspector References for Markdown Links

I am test driving the Scrivener 2.2.05 Beta with MMD3 support and try to figure out a usable workflow for referencing websites.

I am a big fan of the (Multi)Markdown reference link style with the following syntax:

[code]This is a link to the Scrivener forum.

The second line of this example can live anywhere in the document, for example at the end of a paragraph, section or chapter.

With more complex documents it gets increasingly harder to manage the list of labels and URLs. It would be really great, if one could reuse the References section of the Inspector to provide the label-URL mapping.

In my example Scrivener should check in the Description column of References whether one description matches the ScrivForum label and if it finds a match it should internally create the ScrivForum: literatureandlatte.com/forum/ line for me. On compile the reference link should work as if I had typed both lines by hand. If there is no ScrivForum label/Description in References Scrivener should check Project References, too.

Is it possible to implement this feature in Scrivener and do you think it is useful? Especially in fullscreen mode it would be very handy, IMHO.

Best regards,
Sebastian

Here’s a tip for how I work with lots of references like this:

  • Set the “Automatically detect [[Scrivener links]]” option in the Corrections preference tab
  • Create a document and name it something distinctive and easy to type in repeatedly. “RefLinks” works well.
  • If you use a text expansion tool, making a quick abbreviation for “[[RefLinks]]” can save time. The trick is to leave the last closing bracket out of the expansion, otherwise Scrivener won’t catch it. So something like ‘…rl’ to ‘[[[RefLins]’ works. Then you type in ‘[Visible text]…rl]]’ in Scrivener, which will result in ‘[Visible text][RefLinks]’.
  • That leaves fixing the hyperlink. Just Opt-LeftArrow + Opt-RightArrow and type in your unique link ID to replace the “RefLinks” placeholder. The only purpose for using that is so that the automatically generated Scrivener link points to the correct file.

Final result is an MMD style link with a Scrivener Link bound to your general purpose link reference storage document, with literal text that becomes a valid MMD link when compiling. When you click that, you’ll be presented with the link list (in whatever fashion you please, depending upon Navigation preferences).

There are other strategies as well. I use custom title IDs quite a bit. I store them in a custom meta-data field rather than clutter up the binder with these. For these I use Scrivener’s project auto-completion list to make remembering and typing them in them easier. Assigning a keyboard shortcut to “Add Selection to Auto-Complete List” can make typing in your reference easier in the future. So that’s a nice technique for stuff that gets used a lot like title ids.

At any rate, I think storing MMD references in the text editor somewhere is going to provide an overall superior experience to using the References pane for this. The References pane is very single-direction in its usage. There is no way to search for them and no way to output or export them in any fashion. If all you ever do is use the reference in the document it pertains to and never cross-reference from another document—or never anticipate splitting the document and ending up with duplicate references you have to delete—then it would work a touch better, but once you start dislocating References (the feature) from references, the text they could become cryptic if the original reference cannot be easily located.

Meanwhile a text list in a dedicated references document can be easily used as a look-up. Just select the ID, hit Cmd-E to load it as a search query in the background, click the link, and hit Cmd-G to pop straight to it. You might wish to tweak your navigation settings for how links work to optimise this. QuickReference Panels and opening the link in the same editor will be easier to handle than opening in the other editor—at least in terms of keyboard access efficiency. Cmd-W to close a panel or Cmd-[ to get back to where you were is easier than Ctrl-Opt-Cmd-E + Cmd-’ to switch splits and close the aux.

This works in full screen as well—only the link list will come up in a QuickReference panel at all times, which is easy to work with.

Anyway, I use this technique for figure lists and reference lists and have never had any major gripes with it.

Thanks for your very detailed answer Ioa. I did not know that one can not search or export the Reference pane. You convinced me to use your more powerful alternatives instead.

When I looked for information on the Reference pane in the manual and tutorial I realized that it is not discussed very prominently. Maybe the Reference pane should be removed some day, because Scrivener has gained some more powerful alternatives for linking references? There are currently so many different ways to hold references that it is quite overwhelming to figure out where to put things.

Thanks again for your great support.
Best regards,
Sebastian

EDIT: The feature request might still be interesting for the non-powerusers. One reason I spend so much time in Scrivener atm is that my girlfriend has to write her Bachelor thesis soon and I still hope I can convince her to use Scrivener :slight_smile: For her use case the workflow I described in my feature request would be much easier to understand then our nerd-workflows.

References are quite powerful for what they are, and there is no functional replacement for some of the things they do. So long as you consider them a single-direction referencing tool—by that I mean you access them as an auxiliary source of information for that piece of the binder alone. In this way they are great for obscuring lots of research linkings that are only relevant to portions of the text. They are also an easy way to establish live links to the Web (rather than archived imported stuff) or to files on your computer without bulking up the project itself with imported data. A piece can have 30 PDF links that would take up 50mb of space in the project, slowing down backups and wasting disk space with duplicates, otherwise.

Secondarily to that they can link to other pieces of the binder—which is where I think they really shine, particularly in that whenever you create a Scrivener link to something, the target item automatically gets a back-link to the source item in the reference list. Consequently, as you use the above described method to link to your “RefLinks” document, its References pane will fill up with all of the individual pieces of the structure that use it. That particular scenario is not terribly useful, but consider how useful it would be for ordinary MMD style cross-references (that you’ve Scrivener linked as well) between sections. Over time, as you link up your project, it’s meta-linking grows richer without you have to do anything. A basic-real world example of where this can come in super-handy: recently some new preferences were added to the base program. I needed to edit the user manual so that not only the new preference was described in the appendix for it, but I also needed to go through and find any mention of the feature that was augmented in the rest of the manual. That would ordinarily take a lot of work, but since I frequently cross-reference to preference settings or primary articles on a feature from other places in the manual, I need only click on the “hub” items that discuss the feature in depth, and check its References table. In there, I have a complete list of every single cross-reference, something that would otherwise take a lot of searching and skimming to do, especially if the wording is not precise but rather abstract. Now, since I use MMD that makes it a little easier because the actual cross-reference is plain-text. I can just perform a project-wide search for “[article name]” and find everything that links to it. That’s one of the reasons I like writing in plain-text so much. For those that do not use MMD however, links that do not use the actual name of the target would be very difficult to track down without a back-reference feature.

So overall I disagree that this feature is vestigial or not worth the time to use it. It can be extremely useful if used within the constraints of what it was designed for.

Most (non-computer nerd) people working in citation heavy documents are using some kind of external database for managing all of that; Bookends, Sente, Endnote and so forth. Scrivener already has decent integration with most of these packages. We do have it on the long-term list to make this even better in the future, but if we do it will likely be its own feature, rather than usurping on the References feature. But—maybe that will be the route take—or at least mixing in citation style links with the other types of reference links you can hold in this table. I don’t know, it’s really only a statement of intent in the feature list right now. :slight_smile:

But that aside, working with a bib manager might be something to look in to as you conduct your research on workflows. There are a number of threads on the forum discussion the various software and how to use it. Most of them won’t be approaching from an MMD angle though; rather a standard RTF to Word style workflow.