Blueprints (and other add-ons) can make use of the new instructional text feature for templates. The purpose of instructional text is to:
You can insert instructional text into a blueprint or template using the <ac:placeholder>instruction text</ac:placeholder>
notation in the storage format.
There is also an optional ac:type
attribute that specifies the type of instructional text that the placeholder represents.
Confluence provides support for the following types:
mention
– activates the user search autocomplete to insert a user mention into the page. jira
– launches the Jira Issues macro dialog and lets a user to search for or create an issue. Here is a sample storage format for an instructional text:
1 2<ul> <li><ac:placeholder>This is an example of instruction text that will get replaced when a user selects the text and begins typing.</ac:placeholder></li> <li><ac:placeholder ac:type="jira">This placeholder will launch the Jira Issues macro dialog when clicked</ac:placeholder></li> </ul> <ac:task-list> <ac:task> <ac:task-status>incomplete</ac:task-status> <ac:task-body><ac:placeholder ac:type="mention">@mention example. This placeholder will automatically search for a user to mention in the page when the user begins typing.</ac:placeholder></ac:task-body> </ac:task> </ac:task-list>
It is possible to add support for additional types of instructional text via a plugin.
To do this, add a tinymce
plugin inside your plugin as follows.
The following code sample is a skeleton file to add support for another type of instructional text.
editor_plugin_src.js
1 2(function($) { tinymce.create('tinymce.plugins.InstructionalTextExample', { init : function(ed) { // This adds support for this type of instructional text into the template editor if(AJS.Rte.Placeholder && AJS.Rte.Placeholder.addPlaceholderType) { AJS.Rte.Placeholder.addPlaceholderType({ type: 'example', label: AJS.I18n.getText("property.panel.textplaceholder.display.example"), tooltip: AJS.I18n.getText("property.panel.textplaceholder.display.example.tooltip"), // The following defines how the placeholder can be activated. It is optional, and if omitted will have the following default values activation: { click: false, keypress: true } }); } // This adds support to responding to this instruction text being replaced in the editor AJS.bind('editor.text-placeholder.activated', function(e, data) { if(data && data.placeholderType === "example") { // do something special here for this type of instruction text } }); }, getInfo : function() { return { longname : 'Instructional Text Type Example', author : 'Atlassian', authorurl : 'http://www.atlassian.com', version : tinymce.majorVersion + "." + tinymce.minorVersion }; } }); tinymce.PluginManager.add('instructionaltextexample', tinymce.plugins.InstructionalTextExample); })(AJS.$); AJS.Rte.BootstrapManager.addTinyMcePluginInit(function(settings) { settings.plugins += ",instructionaltextexample"; });
Here is an example of web-resource
and i18n resource
for atlassian-plugin.xml
file:
1 2<resource type="i18n" name="i18n" location="instructional-text-example" /> <web-resource key="editor-example-instructional-text-resources" name="Example Instruction Text Resources"> <description>Example Instruction Text Resources</description> <transformation extension="js"> <transformer key="jsI18n"/> </transformation> <resource name="tinyMce-plugins-example-instructional-text.js" type="download" location="js/editor_plugin_src.js"/> <context>editor</context> <dependency>com.atlassian.auiplugin:ajs</dependency> </web-resource>
Here is an example of i18n properties in instructional-text-example.properties
:
1 2property.panel.textplaceholder.display.example=Example Instructional Text Type property.panel.textplaceholder.display.example.tooltip=This is only example
Rate this page: