SuperMemo replaces relative HTML links with absolute HTML links

From SuperMemopedia
Jump to navigation Jump to search


I have been trying to avoid having resources outside supermemo (because resources can disappear or change locations). For exampke, I've been going through my collection and replacing all html links to GIF files on the internet with registry entries.

For a long time I could not figure out why some links I knew I had changed from absolute to relative would become absolute again, but I just found out 2 ways this is happening.

I have an element where I had 3 html links. I replaced all the links with relative links that stay within the supermemo tree.

For example, I replaced this xxx in <img src="xxx"> file:///F:/lurn/scheme/Dybvig-theSchemePL2ndEd/math/5.gif

with this ../../1\10\14\12146.gif

This second link is where Supermemo put that image in the registry.

Later I copied the entire element. I did this by clicking on the element to put in edit mode. Then I hit Ctrl-A (select all) then Ctrl-C (Copy).

I then went to another element, clicked on the HTML component to put it in edit mode, and pasted (Ctrl-V).

In the second element all the relative paths become absolute paths. So continuing the above example, this ../../1\10\14\12146.gif

became this file:///G:/sams/2back/sm2004/systems/root/elements/1%5C10%5C14%5C12146.gif

The second way this is happening is when you 'view html' (F9). SM hands over absolute links to the external viewer. So occasionally, when I have copied from firefox into SM, the links became absolute again.


  • the correct way of dealing with external pictures is to use Download Images. If images must be interwoven with HTML, Localize option should be used
  • copy and paste on HTML from element to element is NOT legal, the relative path will not work when moved to a file at a different location; it is Internet Explorer (not SuperMemo) who converts the links to make them workable; naturally they will work only as long as the collection remains in its original location
  • when external viewer is called, it does the conversion on its own (again behind the back of SuperMemo