Hello. My ikiwiki is at an unreliable and unprofessional host, that still has many advantages. It's my university. One thing making sure I tolerate this is that it is free and I have ssh access. Now I have two location onto which I would like to put my website, both are of the form of http://users.university.top/user/wiki/, where "user" is different for each host. This is a problem for some of my wiki pages:
I have some pages in the wiki (content) and some files in a directory parallel to the wiki directory called publicfiles/, and some images in images/. Now I want to link to files in publicfiles/ and images/ from the wiki, and I can't use absolute paths, since the "user" part is different in each URL (and will be different for each host I choose). I could use relative paths, that has worked before, so I type ../../publicfiles/file.tar.gz; but I've run into a problem again: inline pages. For inline pages where you include pages from a different level, it doesn't work.
I've tried a middle ground with pages relative to the wiki top, that is the link index/../publicfiles/file.tar.gz. I think ikiwiki doesn't allow this, doing index/../ doesn't take you out of the wiki root.
I found one solution, and that was to put a symlink called publicfiles into the wiki/ directory. This has to be put in place on the server I think, I don't know how this will do with ikiwiki or my remote sync. --ulrik Thu, 20 Dec 2007 22:07:05 +0100
But not even the symlink solution works, since I have only two choices, specify relative to the ikiwiki page, or relative to the absolute webdomain root. I need to specify from wiki root for example the link publicfiles/ will not as I thought link always to wikiroot/publicfiles , but rather link to publicfiles in the level of the wiki you are at right now.
If you put the publicfiles/ into the srcdir that ikiwiki builds the wiki from, then it'll know about them and wikilinks to the files will work same as wikilinks to any other files ikiwiki knows about. Perhaps there's a reason you can't do that, such as the files being too large, or not being available on the host you build on, I don't know. --Joey
Yes, that would solve it. A part of me wanted though that it should be possible to put a symlink called publicfiles that basically points to wikiroot/../publicfiles, and have the ability to link to files with wikisyntax anyway. But it doesn't work since symlinks are dangerous, and.. how would ikiwiki know how to interpret a relative link, relative to source dir or dest dir (etc..)? I'll have to put all my images and publicfiles into the wiki; it is principally wrong since publicfiles are tar.gz (and a few .deb files) for software, but it is practically ok since the individual files are not more than 150K and I don't have anything against archiving them. --ulrik
You know, you don't need to check the files into revision control, they can just be put in the srcdir of the wiki outside revision control.
To try to formalize and clarify my first proposal: An administrator would be able for each wiki to create a list of off-wiki "places" that are accessed via certain items in the wiki root (or could be under a subpage too of course). The example is illustrated by publicfiles and the symlink, but a non-symlink solution would probably be better. A natural way to specify off-wiki places are absolute URLs, but also relative to the wiki root, since that would fit to my case. Just like you can't go out of the wiki root, you should not be able to go up from such an external resource. This should all be done in some plugin of course. I'll have to learn Perl before I write the plugin though --ulrik