You're using an outdated browser

For a better experience, keep your browser up to date. Check here for the latest version.


Customizing the Attachments Macro in a Viewport

Thomas Walker

Thomas Walker Last update: Aug 7, 2017

Scroll Viewport comes with a special Viewport-aware replacement of the Confluence Attachments macro, that can be used to individually change the look of the attachments list.

Default Output of the Attachments Macro in Viewport

When a page is rendered in a viewport, Scroll Viewport will automatically replace the Confluence Attachments macro with the Viewport-aware Attachments macro. This means, users can (and should) use the Confluence Attachments macro. By default Scroll Viewport uses the following Velocity file to output the Attachments list:

#* @vtlvariable name="attachment" type="com.atlassian.confluence.pages.Attachment" *#
#* @vtlvariable name="dateFormat" type="java.text.SimpleDateFormat" *#
<table class="confluenceTable scroll-attachment-table">
        <th class="confluenceTh">$i18n.getText("heading.name")</th>
        <th class="confluenceTh">$i18n.getText("heading.version.number")</th>
        <th class="confluenceTh">$i18n.getText("heading.version.date")</th>
        #foreach($attachment in $attachments)
            <td class="confluenceTd"><a href="${request.contextPath}${attachment.downloadPath}">$attachment.fileName</a></td>
            <td class="confluenceTd">$attachment.version</td>
            <td class="confluenceTd">

Customizing the Output of the Attachments Macro

Theme developers can override the default template of attachment macros, to change what information about the attachments is outputted and how it is rendered..

To customize the output of the attachments macro, you can override the default template as follows:

  1. Create a page overrides/attachments.vm in your theme and use the default template (above) and modify it.


    Use the JavaDoc for com.atlassian.confluence.pages.Attachment to see what additional information is available to be referenced. 

  2. Where you output the page contents, add that file to the overrides list like this:

    $page.renderContent("layouts/layout12.vm", {
        "sp-attachments" : "overrides/attachments.vm"

Additional Resources

We use cookies to create a secure and effective browsing experience for our website visitors and to understand how you use our site (i.e. Google Analytics). For more information: click here.