The extension to the projectdoc Toolbox provides macros to link to and transclude from pages on remote servers.
Typically links to remote servers are fully qualified when copied to a Confluence page. This makes it difficult or cumbersome to change the URL at a later time. For instance the URLs to an API documentation may contain a version information or the URL to the server providing architecture view images changes. The macros provided by this extension makes it easy to deal with such changes by externalizing path prefixes with space properties.
Categories of Macros
There are three kinds of macros in this extension. Macros that
- help to integrate by identifying domain information
- reference or transclude image and text information
- reference or transclude text information with explicit URL
The first two versions have in common that the base link is configured at space level (or at site level using the delegate-space feature). The third category provide tools to access remote information at an individual basis with explicitly specifying the URL.
The macros make it easier to link to resources on remote servers. The link is specified in form of a domain specific value, not as a plain URL.
The Javadoc Link Macro allows to create a link to information in the API documentation by specifying the class or method.
Java Elements in Javadoc
To reference the a class, specify the name of the class like this:
The following example references a method
Here an example referencing a method
aMethod(String, Class<?>)with generics:
Note to specify the parameters fully qualified and that generic type parameters or wildcards are not part of the reference.
- Reference to a view on the model create by the Enterprise Architect are created via the Image ID with the Enterprise Architect Image Link Macro.
The Nexus Link Macro renders links to artifacts with group, artifact, and version information.
The macro body contains the reference to the artifact.
This is the rendered short link:
The rendered XML code looks like this:
In this example the title is a link to the artifact on the Nexus server.
Specify references to images and text based on systems specified at space level.
Macros allow to transclude by specifying the URL explicitly.
The extension provides the following macros to specify links or transclusions to remote resources.
Renders an image generated from an Enterprise Architect diagram, transcluded from a server.
Transclude HTML content from a remote server.
Links API documentation pages for Java elements.
Renders a link to an artifact stored on a Nexus server.
Renders an image transcluded from a remote server.
Links to a resource on a server.
Transclude content from a resource from a remote system.
Transclude text content from a remote server.
The following macros are deprecated since version 1.0 and will be removed soon. Please use the System Link Macro instead.
Render links to jobs and services on a Hudson server.
Links to a resource on a versioned site.
Renders a link to a project on a Sonar service.
Renders a link to a resource on a Subversion (SVN) repository.
Transcludes a snippet from a project on a Subversion (SVN) server.
The extension provides the following services and components.
Autoconvert URLs to Macros of the Information Systems Extension.
Keeping references to external systems up-to-date is a difficult task. It is to some degree easier to reference systems that are external to the Confluence server, but still in control of the team managing the documentation and communication infrastructure. None-the-less external information systems may change addresses. To change all references to an external information system easily, the Information Systems Extension provides macros to derive the base URI from a central configuration on the Confluence server. The autoconvert service enhances the usability of these macros by creating them on the user's paste action.
How it works
The macros of the Information Systems Extension use base URIs defined as space properties, shortcuts, or application links (see System Identifier to URI Resolution Algorithm for details). The macros are specialized or generic, as explained in Categories of Information System Macros.
By pasting an URL to a page the autoconvert service checks for the appropriate macro based on the pasted URL. The identification process has to take into account that not all URIs have to be autoconverted. That is the URI needs to match a specific pattern to uniquely identify the macro or determine that none of the macros match. Therefore it is recommended to associate the URI with a specific matcher by name with the space property
This information is reused by the Autoconvert component. The Autoconvert component tries to derive the appropriate macro.
The configuration of the autoconverters is conducted in two steps:
- Define the information system(s)
- Map information system(s) to autoconverters
Define Information Systems
If the information system macro defines a default system identifier, it is recommended to use this identifier for the binding. Users then do not need to type the identifier to the macros explicitly.
In situations where this system default identifier is already in use in a space with a different meaning, use the following syntax to specify the system with a space property:
The key with the
url-Prefix is always checked first.
The following examples shows the definition of three information systems as space properties.
Map Information Systems
Use the space property information-system-autoconvert-hint to bind autoconverters to information systems.
Check if the default configuration (as specified in information-system-autoconvert-hint) will work for you. This is especially the case if you do not use the generic information systems to link to images or text resources.
If you can go with that configuration is much simpler - since nothing has to be done.
Note that if you specify one system, default systems are no longer defined.
Specify the Hint
The following examples shows how to bind information systems by their identifier to autoconverters.
Since version 1.4 the link type is per default '
link', if not specified.
The old version, where the type matches the name can still be used if the hint ends with '
:'. This will just save some typing since
my-id: is the same as
Impersonating OAuth using Application Links is supported.
The URL configured with projectdoc (for example as a space property using the
url- prefix) needs to find a prefix URL configured as an application link. So the URLS of the system link and the Application Link have to match, not the prefix of your defined url-property and the name of the Application Link The first match is used to authenticate to access a protected resource on the remote service.
Definition of the space property:
Definition of the Application Link
So the value of the property url-Jenkins mapps to the Display URL of the Application Link
Currently not supported.
Basic authentication using HTTP headers is supported.
A Basic Authentication Link is also established using the Application Links admin page.
This time you do not create an impersonating OAuth Link but an Application Link with Basic Authentication.
Create an Application Link and fill in the URL → press "Continue"
Fill in the "Application Name" and press "Continue".
Edit the "Application Link" by clicking the "pencil" icon.
Choose "Outgoing Authentication" and there "Basic Access" and fill in "Username", "Password" and "Confirm Password".
Related information on the information system extension.
- Autoconvert Information System URIs
- Introduction to the autoconvert feature for URIs to external systems.
- Categories of Information System Macros
- Overview over the different categories of macros that are part of the Information Systems Extension.
- Confluence as the Information Hub
- Tools from the projectdoc Toolbox to import from and export to other information systems.
- Information System Macros
- List of macros linking to or transcluding from external information systems.
- System Identifier to URI Resolution Algorithm
- Describes how the system calculates the URI to an information system based on its identifier.