Creating Hyperlinks Now Made Easier

Hyperlinks are an important component of every interactive document, whether you’re creating an EPUB, an interactive PDF, or a DPS project. The latest version of Adobe InDesign CC brings improvements to the Hyperlinks panel and context menus. These improvements make the hyperlink creation process much easier than ever.

Rather than needing to open the dedicated Hyperlinks panel to create a hyperlink, you can now create a hyperlink with a simple right-click (Control+click). This gives you access to designate the hyperlink sources from a drop down list including URL, File, Email, Page, Text Anchor, and Shared Destination.

 All you have to do to create a hyperlink is to select the text, right-click (Control+click) and choose Hyperlinks > New Hyperlink from the context menu.

If a character style named “Hyperlink” does not exist for the document, the style is created automatically and applied to the selected text. By default, the Hyperlink character style colors the text blue and adds an underline attribute which makes it recognizable as a hyperlink. Of course, you can set properties for the style as needed. If a character style named “Hyperlink” exists in the document, InDesign will not automatically apply it to the new hyperlink; but gives the user the option to choose the style wanted.

If text is selected that InDesign recognizes as a URL, the hyperlink is created automatically by choosing New Hyperlink from URL from the context menu (right-click).

Any text or object can be used as a hyperlink. If you are linking to a URL that has been previously hyperlinked from your document, it will be available in the Hyperlinks panel’s URL pulldown. Whether you create a hyperlink using the context menu or from the URL pulldown, InDesign groups hyperlinks having the same URL automatically.

Editing Hyperlinks

If you want to change the URL for a hyperlink, all you have to do is select the hyperlinked text, right-click, and choose Edit Hyperlink from the context menu.

Cross References

Cross-references and hyperinks are no longer in one shared panel. They are now separated. The Cross-References panel now has improvements similar to the Hyperlinks panel giving it similar functionality and ease of use.

Validating Hyperlinks

A quick look in the Hyperlinks panel indicates if a URL hyperlink is valid. A green stoplight icon next to an entry in the Hyperlinks panel indicates the link is valid. Clicking the green light will take the user to its destination. This is also true for the Cross-References panel.

Once a hyperlink has been validated, it still displays with a green light even when the user is offline. Of course, if a hyperlink is created or changed when offline, it can’t be checked. It does not automatically update once online. To update the hyperlink, click the Refresh URL Status icon, and the status indicator will be updated.

Hyperlink Destinations

To create Text Anchor and Shared Destination hyperlink destinations you do need to use the Hyperlink panel. Select the text you want to use as an anchor/destination and select New Hyperlink Destination from the panel’s menu. A dialog is then presented. Select Text Anchor from the dialog’s drop down and give the hyperlink a name. You can also create page and URL hyperlink destinations from the dialog’s drop down.

Of course, if you prefer, you can have a script assigned to a keyboard shortcut to make creating text anchor destinations that much easier. Following is a sample script to get you started:


tell application "Adobe InDesign CC"
	set hyperStyleProps to {visible:false, highlight:inset, borderStyle:solid, hidden:true}
		set docRef to document 1
		set selList to selection
		if class of item 1 of selList = text then
			set textStr to my getString()
			set textRef to item 1 of selList
			set insertRef to insertion point 1 of textRef
			tell docRef
				set hyperDest to make hyperlink text destination with properties {destination text:insertRef, name:textStr}
			end tell
		end if
	on error errStr
		display alert errStr
	end try
end tell
(*getString handler gets text for name of hyperlink*)
on getString()
	set userResponse to display dialog "Enter name for hyperlink" default answer "" buttons {"OK", "Cancel"} default button 1
	set textStr to text returned of userResponse
	if textStr = "" then
		error ("Requires name for hyperlink")
	end if
	return textStr
end getString