JavaScript Options
Inclusion Code:
Simply add the above snippet to any webpage that you want to enabled Ultralinks on. As you explore and customize the options below, the code above will change to match your configuration settings. The options highlighted below are the ones you are most likely to use or be interested in.
Resource Locations
[ ] +
An array of URLs pointing to Ultralink Roots. This is the most flexible, easy to manage and recommended way to perform mass customization.

If you want to organize different functionality into modular units or expose your customizations for others to use, you will need to put it into an Ultralink Root.
Further Documentation
The URL of the Ultralink Server to use. This indicates where the API endpoints reside and where the Ultralink code gets analysis results from.

Should typically have a '/' character at the end.
The URL where Ultralink resources (dependant libraries, link type definitions, etc.) reside. This is almost always going to be the same as masterPath. It should only be different if you have a good reason to host these resources seperately from masterPath.

Should typically have a '/' character at the end.

If you specify a custom masterPath you don't need to worry about setting this too. The change will automatically propagate down.
The URL where the Ultralink supporting images and fonts are located. Similar to basePath, this value is almost always based off of masterPath. It should only be different if you have a good reason to host these resources seperately from masterPath. Should typically have a '/' character at the end.

If you specify a custom masterPath you don't need to worry about setting this too. The change will automatically propagate down.
Data Sourcing
The database on the Master that we are targeting. This specifies the database that all fragments will be washed through for analysis, the place where interaction events are recorded and the default database that other interactions occur with respect to.
[ ] +
An array of sites where a match causes the connected Ultralink Server to not store any information associated with fragments from this site. Fragment analysis is still performed, but the results are immediately thrown away on the server.

If there is content that you want analyzed or Ultralink enhanced but the sensitivity of that content is too great to even leave in the server's content cache, then you can use this option.
Fragment Scanning
A string or an array of strings that we should scan the page with.

If the option remains at the default '.ultralink' value then the scan selector is calculated based on a set of heuristics that look at various aspects of the page design.
Further Documentation
In the event that there is no suitable fragment selector found for the current page, resort to using this one.
Further Documentation
[ ] +
An array of objects outlining what websites should use which fragment selectors.

Each object should have a "siteRegex" value which is a regular expression string that will match against all the desired URLs and a "selector" value to use on those pages.
{ } +
Structures that describe specific behavior that should occur in specific scanned locations. The scanning guide option can contain a value for either a "Web" environment, "Windows" environment or both.

The Web entry is an array of objects which contain "URL", "description" and "paths" entries. The value of the URL entry is a partial URL that determines the web page that the specific behavior should occur on. The description value is simply a human-readable name for the scannning guide. The paths entry is an array of objects containing a "selector" entry and an "options" object. The selectors determine what portion of the web page should be turned into a fragment and have the values in the options object applied to to.

The Windows entry is an array of objects with some identifying entries and a "paths" entry. A "company" entry indicating the author of the exectuable is required and at least one of either a "name" entry for the application name, "module" entry for the exectuable name or both. Those entries help match which Windows application is being matched against. Name is the application name. Module is the Windows executable name. And company is the listed author of the exectuable. The "paths" entry is an array of objects that contain "path" and an Ultralink "options" object. The path object is a set of nested objects that describe the exact location of the targeted UI element. The options object is the set of behaviors to apply to the analysis of that element.
Further Documentation
Indicates whether the code should immediatly begin analysis on the page content after starting up. This can be used to start the Ultralink functionality but defer the initial scan until you want it performed.
Indicates whether the Ultralink code should continually check the page to see if there are any fragments that should be analyzed.

If this is enabled, then every 5 seconds it will check the page for any new fragments that match against the current scan selector and overlay Ultralinks in them.
Indicates whether the code should bring alive any Ultralinks already defined in the page before starting page analysis.

This is only relevant if there are explicitely defined tags present on the page somewhere.
Ultralink Injection
Indicates whether Wikipedia anchor tags should be automatically converted into Ultralinks.

This is an option that only applies to pages on the Wikipedia family of websites. The result is a very clean and unencumbered reading experience.
[ ] +
A list of category string fragments that must match against an Ultralink's Primary Category string in order for it to appear.

Takes precedence over categoryBlacklist.
[ ] +
A list of category string fragments that must not match against an Ultralink's Primary Category string in order for it to appear.
{ } +
An object with Scanning Guide like structure that defines the values that should be picked up with respect to the elements matched by autogenUltralinks (if any).
Further Documentation
If 'true', this will cause all Ultralinks that only have a single non-search link on them (after locale resolution) to instead be injected as a hyperlink instead of an Ultralink.
Link Customization
{ } +
An object representing custom link types and all the options relating to them. This is how you create new link types and modify existing ones.
Further Documentation
Link Policies
Indicates whether search links should automatically be added to Ultralinks. By default, when an Ultralink is called up search links are added to it using the value of the word string that was clicked.

You can pass 'false' to this option to disable that functionality.
[ ] +
An object containing other objects that describe links that should be added to Ultralinks of a specific category and sourced from a specific database.

You can use this to blanket add the same link to large sets of Ultralinks at once.
{ } +
An set of affiliate keys for use with specific link types. If a link type has support for affiliate keys (by way of the affiliateTag link type attribute), then you can pass in an object here that uses link type strings as keys and has your new affiliate key for the value.

Through this you can make sure that any affiliate links that come to your site use your keys so you get the affiliate revenue.
[ ] +
An array of link types indicating which links types should never be added to an Ultralink.

This is simply a list of link types that you want to suppress from display.
User Data Access
[ ] +
An array of insight objects that are currently configured. Insights are super-useful persistant, background queries. Each object in this array indicates an enabled insights and contains the specific insight configuration values (if any).
Further Documentation
[ ] +
An array of link types that the user has authenticated to. If a link type requires authentication for black shadow access, then this is how that authentication is conveyed.

This is typcially only used in the context of browser extensions, applications or other environments where there can be secure user authentication.
Ultralink Appearance
An object describing the various visual aspects of the Ultralink popup and Inline Pane.

You can use this to completely customize the look and feel of Ultralinks on your pages.
Further Documentation
Indicates whether any mouse cursor movements cause proximate Ultralinks to fade their text shadow in and out.

For discoverabilty reasons this is enabled by default but you might find it a more aestheticlly pleasing experience to turn it off.
Indicates the visual style of the Ultralink popup.

The 'wordwell' style places the Ultralink ontop of the string that was clicked and creates a hole (the 'word well') so you can see the underlying string.

The 'arrow' style creates the Ultralink off to the side of the clicked string and has a little protruding arrow divet that points to the clicked string.
Indicates whether the Ultralink popup should favor the left side or the right or auto pick depending on the distance to the sides of the page.
Indicates whether the Ultralink popup's positioning should be with respect to the word or the origin of the page.
Indicates whether the Ultralink constrained view is allowed. The constrained view reduces some UI features like the link labels and is meant to help the Ultralink display better on small screens.

By default, constrained mode kicks in when the page width is less than 400 pixels. There might be times when it would be appropriate to override that which is where this option comes in.
A simple setting indicating whether Inline Panes are allowed at all or whether every link should be blue shadow.
This indicates whether Ultralink popup links should be combined into category rows or each be given their own row of their own.

Giving each link a single can make for extremely tall and unweildy Ultralinks which is why this setting is enabled by default.
Indicates that the user is authenticated against the Master with 'Editor' or higher privileges.

This affects a few things that are useful if you actually have Editor permissions such as highlighting Ultralinks that have not been reviewed yet in green instead of blue.
The default color of the Ultralink text shadow.
Indicates the highest zIndex that the environment can handle on an element. This ensures that we will draw as close to the top as possible.

You may want to set this if there is a layer you would like to draw above the Ultralink.
Ultralink Interaction
A variable that can quickly enable or disable events that could dismiss an Ultralink and Inline Pane.

You shouldn't normally need to use this but if you wanted to (for example) control the display and presentation of Ultralinks programmatically, you can use this option to lock out any user interference.
Indicates whether Hovering the mouse off of an Ultralink without interaction will result in it's dismissal. Under normal circumstances, if you click on an Ultralink to bring it up and then hover your mouse cursor off, it will be dismissed. However, if the user interacts with the Ultralink by bringing an Inline Pane up for instance, then the user must click outside of the Ultralink to dismiss it.

By setting this option to 'false' it will now require the user to click outside of the Ultralink to dismiss it every time.
Indicates whether hover detection should be enabled at all.
The time in milliseconds needed to hover over an Ultralink to trigger it.
The amount of time in milliseconds that must be waited after an Ultralink popup has been dismissed before a hover can trigger another Ultralink popup.
Causes link type clicks to open a new window/tab when clicked instead of defaulting to normal browser link click behavior.
Operation Mode
An option that can quickly enable or disable Ultralink functionality. You can think of this as a big on/off switch but without needing to remove the Ultralink code.

A value of 'true' means that Ultralinks are enabled and 'false' means that functionality is disabled.
If a value of 'true' is passed into this option, then the currently open Ultralink is closed if there is any.

The value of this setting cannot actually be changed and will always be read as 'false'.
This indicates whether the code should be run in a reduced mode intended for web crawling that foregoes event recording, Ultralink injection and waiting between fragment retrieval.

This mode is only useful for priming the content cache on the Ultralink Server.
Locale Bias
[ ] +
The language order in which users prefer their links to show up. This is defined by an array of standard ISO 639-1 langages codes.

An Ultralink will only display one link of any given link type and so if there are language bias values on the links, then this defines how they are prioritized.
[ ] +
The country order in which users prefer their links to show up. This is defined by an array of standard ISO 3166-1 alpha-2 country codes.

An Ultralink will only display one link of any given link type and so if there are country bias values on the links, then this defines how they are prioritized.
An identifier to associate Ultralink events with.

This is primarily used for fine-grained event tracking on Ultralink Enterprise Servers.
The type of association identifier passed in through associationID.
Indicates whether analytic events are to be recorded.

This is a simple on/off switch you can use to enable or disable whether the client-end Ultralink code reports back interaction events to the Ultralink Server.
A string containing a domain or an array of domains on which analytic events are allowed to be recorded.

This allows you to selectivly turn analytics recording on and off for specific sites.
Indicates whether deep analytics events should be recorded. This level of event recording is deeper and can incur a performance penalty.

You should probably only use it if you know how it works and need what it does.