Link Plugin
The Link Plugin allows you to add hyperlinks to your document, either by specifying them manually or by selecting from repositories using autocompletion.
1 Functional Description
To create a new link, click on the link button. If a text is already entered you have to mark the desired word(s) and click on the link button. Now you can enter a URL of another website, or enter a name of an existing page in your repository. On the Aloha Editor Sidebar you can enter a name for the link and decide in which target the link should be opened. In order to delete a link just click at the linked text and deactivat the link button from the “Format” tab or click on the remove link button on the “Link” tab.
2 Components
- formatLink – will format a given selection as a link by wrapping it in an <a> tag. If the selection is collapsed createLink will be executed
- createLink – will insert a new link tag with an empty href into the dom at the current cursor position
- editLink – allows you to edit an existing link
- unlink – removes an existing link by unwrapping
3 Events
When a link is removed, the link plugin will publish the event ‘aloha.link.remove’ with PubSub:
define(['PubSub'], function (PubSub) {
PubSub.sub('aloha.link.remove', function (eventArgument) {
// eventArgument.range defines the selection when the link was removed
// eventArgument.text contains the link text
});
});
4 Configuration
Aloha.settings.plugins.link = {
// all elements with no specific configuration may insert links
config: ["a"],
editables: {
// No links in the title.
"#top-text": []
},
// Test if the link's href value denotes an external link.
// eg: "ftp://www.example.com" or "//www.example.com"
titleregex: "^([^:]+:)?\/\/",
// The value to set the link's title attribute field to if the link's href
// value matchs `titleregex`.
title: "External link",
// all links that match the targetregex will get set the target
// e.g. ^(?!.*aloha-editor.com).* matches all href except aloha-editor.com
targetregex: "^(?!.*aloha-editor.com).*",
// this target is set when either targetregex matches or not set
// e.g. _blank opens all links in new window
target: "_blank",
// the same for css class as for target
cssclassregex: "^(?!.*aloha-editor.com).*",
cssclass: "aloha",
// use all resources of type website for autosuggest
objectTypeFilter: ["website"],
// handle change of href
onHrefChange: function (obj, href, item) {
var jQuery = Aloha.require("jquery");
if (item) {
jQuery(obj).attr("data-name", item.name);
} else {
jQuery(obj).removeAttr("data-name");
}
},
// Add additional properties of the link target to the sidebar (if the link
// target is fetched from a repository)
sidebar: [
{
"attr": "path",
"title": {
"en": "Path",
"de": "Pfad"
}
}
],
// Adds an anchor button and an additional text field to the ui for editing the link anchor.
// This enables users to set anchors to pages from the repository.
anchorLinks: true
};


Chapters