TIP AttachLinkPlugin is not installed on Foswiki.org.


Standard links to attachments

Syntax Rules

%ATTACHMENT{ name="filename" topic="TopicName" web="Webname" label="sometimes_text_sometimes_magic" }%

This apparently trivial plugin turns out to be quite useful. Besides syntactic sugar, it actually makes previously hard things easier!

Until now, referencing an attachment in a TWiki topic has required escape to HTML, with lots of ugly TWiki variables like %PUBURLPATH% and %ATTACHURL% to do the simplest things. AttachLinkPlugin fixes that!

Further, it makes it easy to have clickable images - for example, thumbnails that when clicked, expand to a full-size picture.

Here are the syntax details:
  • name - The filename that you upload. Just the name, no path. The name= is optional, but the quotes are not.
  • topic - the topic that manages the attachment. The default is the current topic, so you can usually omit this.
  • web - the web that contains the topic that manages the attachment. The default is the current web, so again, you can usually omit this.
  • label - the thing that you want visible to represent the link. This can be text - or another object. The default is the filename, so you can omit it too. See the examples for details.


%ATTACHMENT{ "foo.jpg" }% Create a link to foo.jpg in the current topic, which will look like: foo.jpg underlined. (Can WYSIWYG underline?)

%ATTACHMENT{ "foo.jpg" label="The foomobile afloat" }% gives you a hyperlink to the same file, like this: The foomobile afloat

%ATTACHMENT{ "foo.jpg" label="%IMG{ "foo_thumb.jpg" align="left" width="40" class="none" }%}% will display foo_thumb.jpg inline. You can click on the image, and if you do, foo.jpg will display.

So you essentially have the power of [[Main.WikiWord][PrettyText]] links, for images and other attachments. And anything else that will take an HTML anchor tag.

A rather surprising result for less than 10 executable statements of perl. If %ATT% is not in use (do we have a registry of variables?), I would be receptive to adding the line to add it as an alias for %ATTACHMENT% - I already have 10s of thousands of instances of %ATTACHMENT%

Enjoy it as much as I do.

Plugin Settings

Plugin settings are stored as preferences variables. To reference a plugin setting write %<nop><plugin>_<setting>%, i.e. %<nop>NEWPLUGIN_SHORTDESCRIPTION%

  • One line description, is shown in the TextFormattingRules topic:
    • Set SHORTDESCRIPTION = Painless links to attachments

  • There are no other settings for this plugin.

Plugin Installation Instructions

Note: You do not need to install anything on the browser to use this plugin. The following instructions are for the administrator who installs the plugin on the Foswiki server.

  • Download the ZIP file from the Plugin Home (see below)
  • Unzip AttachLinkPlugin.zip in your Foswiki installation directory. Content:

File: Description:
data/System/AttachLinkPlugin.txt Plugin topic
data/System/AttachLinkPlugin.txt,v Plugin topic repository
lib/Foswiki/Plugins/AttachLinkPlugin.pm Plugin Perl module
  • Configure the Plugin:
    • Run the configure script to enable the Plugin
    • Change the Plugin settings as needed
  • Test if the installation was successful:
    • enter samples here

Plugin Info

Plugin Author: Foswiki:Main.TimotheLitt
Copyright: © 2007, Foswiki:Main.TimotheLitt
License: GPL (GNU General Public License)
Plugin Version: 21 Dec 2008 (V1.001)
Change History: <!-- versions below in reverse order -->
23 Dec 2008: V1.001 - Foswiki version by Kenneth Lavrsen
20 Dec 2008: V1.000 - Initial version
Dependency: $Foswiki::Plugins::VERSION 1.1
CPAN Dependencies: none
Other Dependencies: none
Perl Version: 5.005
Plugin Home: http://foswiki.org/Extensions/AttachLinkPlugin
Feedback: http://foswiki.org/Extensions/AttachLinkPluginDev

Related Topics: Plugins, DeveloperDocumentationCategory, AdminDocumentationCategory, SitePreferences

-- TimotheLitt - 21 Dec 2008
Topic revision: r3 - 06 May 2009, ArthurClemens
The copyright of the content on this website is held by the contributing authors, except where stated elsewhere. See Copyright Statement. Creative Commons License    Legal Imprint    Privacy Policy