Загружаемые ресурсы надстроек

Доступность:

Этот модуль плагина доступен в JIRA 3.5 и более поздних версиях.

Плагины JIRA могут определять загружаемые ресурсы. Если ваш плагин требует, чтобы JIRA обслуживал дополнительные статические файлы, такие как изображения, JavaScript или CSS, вам нужно будет использовать загружаемые ресурсы плагина, чтобы сделать их доступными.

Цель ресурса

«Ресурс» - это не-Java-файл, который может понадобиться плагину для работы. Примерами возможных ресурсов могут быть:

  • Файл Velocity, используемый для генерации HTML для модуля плагина макроса или макета в Confluence.
  • Файл CSS, необходимый модулю плагинов макета темы.
  • Изображение, на которое ссылается модуль плагина макета.
  • Файл справки макроса.
  • Файл свойств локализации.

Определения ресурсов могут быть либо частью плагина, либо частью определенного модуля плагина.

 

Пример определения ресурса

Вот пример определения ресурса:


<!-- A resource has a type, a name and a location. The resource definition maps -->
<!-- some arbitrary resource name to where that resource would be located in    -->
<!-- the server's classpath -->
<resource type="velocity" name="template" location="com/example/plugin/template.vm"/>

<!-- For the localisation property file below, it must be named exampleplugin.properties -->
<!-- located under the resources folder -->
<resource type="i18n" name="i18n" location="exampleplugin" />

<!-- Resources may contain arbitrary key/value pairs -->
<resource type="download" name="style.css" location="com/example/plugin/style.css">
   <property key="content-type" value="text/css"/>
</resource>

Содержание определения ресурса

Ресурс имеет имя, тип и местоположение. Определение ресурса сопоставляет произвольное имя ресурса местоположению этого ресурса в пути к классу сервера.

Элемент&Атрибут

Описание

<resource>

Этот блок определяет ресурс. Например: <resource type = "speed" name = "template" location = "com / example / plugin / template.vm" />

<resource>

 

name

Имя ресурса определяет, как модуль плагина может найти определенный ресурс. Должно быть указано, если «namePattern» - нет. Если ваш параметр местоположения указывает на каталог, а не на один ресурс, вы должны указать имя с завершающим «/». Например: <resource type = "download" name = "myimages /" location = "com / example / plugin / myimages" />

 

Обратите внимание, что для ресурсов css / javascript они должны иметь соответствующее расширение файла в имени то есть .css, .js

<resource>

 

namePattern

Шаблон, используемый при загрузке ресурса каталога.

<resource>

 

type

Тип ресурса сообщает модулю, как можно использовать этот ресурс. Допустимые значения различны для каждого приложения.

Модуль может искать ресурсы определенного типа или имени. Например, плагин для layout требует, чтобы его файл справки был файлом типа velocity и названный help.

См. Примеры типов ресурсов ниже.

<resource>

 

location

Местоположение ресурса сообщает плагину, где ресурс может быть найден в файле jar. (Ресурсы загружаются загрузчиком ресурсов Java classpath).

 

·         Требуется полный путь к файлу (без косой черты).

·         При использовании атрибута 'namePattern' для загрузки нескольких ресурсов в каталог должен заканчиваться символом '/'.

<property>

 

key/value

Ресурсы могут содержать произвольные пары ключ / значение. Например: <property key = "content-type" value = "text / css" />

<param>

 

name/value

Ресурсы могут содержать произвольные пары имя / значение. Например: <param name = "content-type" value = "image / gif" />. См. Список значений элемента param ниже

 

Пример типа ресурса: Загружаемые ресурсы плагина

Простейший вид ресурса, поддерживаемый всеми типами модулей плагинов, имеет тип download, что делает ресурс доступным для загрузки из приложения по определенному URL-адресу.


<resource type="download" name="aimon.gif" location="templates/extra/impresence/aimon.gif">
   <param name="content-type" value="image/gif"/>
</resource>

Пример типа ресурса: таблица стилей, относящаяся к изображениям

Таблицы стилей вашего плагина часто могут ссылаться на изображения также в вашем плагине. В этом случае вам нужно будет загружаемой как таблицу стилей, так и изображения.


<resource type="download" name="my-images/" location="com/example/plugin/myimages"/>
<resource type="download" name="my-style.css" location="com/example/plugin/my-style.css"/>

Примечание. Если у вас есть несколько определенных таблиц стилей и ресурсов JavaScript, вы должны поместить определения ресурсов в модуль веб-ресурсов.

Чтобы ссылаться на ваши изображения плагина в таблице стилей, используйте относительный путь на основе имени ресурса, определенного для изображения (в данном случае это «мои-изображения»).

my-style.css


 .my-class {
   background-image: url(my-images/mypicture.gif);
}

Чтобы ссылаться на изображения, уже доступные в приложении, вам нужно перейти к трем родительским каталогам:


.my-class {
   background-image: url(../../../images/icons/confluence-logo.gif);
}

Значения для элемента Param

Это общие пары имя / значение, поддерживаемые элементом <param>.

Имя и значение: тип содержимого | изображение / GIF

Описание: укажите тип содержимого MIME.

Название и стоимость: медиа | Распечатать

Описание:

Объявить тип носителя для ресурсов CSS. Это поддерживается модулями плагина Web Resource.

Например, запрос на этот ресурс будет вставлять <link> в заголовок HTML со значением для печати 'print':


<web-resource key="mechanical-parts" name="Mechanical Parts"
    i18n-name-key="com.example.confluence.plugin.special.mechanical.parts.name">
    <resource type="download" name="sprockets.css" location="styles/sprockets.css">
        <param name="media" value="print"/>
    </resource>
</web-resource>

Имя и значение: ieonly | true

 

Описание:

Укажите, что ресурс должен быть обернут в условный комментарий Internet Explorer. Это поддерживается модулями плагина Web Resource.

Например, в объявлении веб-ресурса ниже говорится, что ресурс должен быть обернут условным комментарием Internet Explorer, а это значит, что он будет использоваться только Internet Explorer. Это полезно для стилей, специфичных для IE, для работы с ошибками(багами) браузера.


<web-resource key="mechanical-parts" name="Mechanical Parts"
    i18n-name-key="com.example.confluence.plugin.special.mechanical.parts.name">
    <resource type="download" name="sprockets-ie.css" location="styles/sprockets.css">
        <param name="ieonly" value="true"/>
    </resource>
</web-resource>

Результат HTML, когда этот ресурс включен, будет примерно таким:


<!--[if IE]>
<link type="text/css" rel="stylesheet" media="all"
    href="/s/1418/13/1.0/_/download/resources/plugin.example:mechanical-parts/sprocket-ie.css" />
<![endif]-->

Параметр ieonly также работает для ресурсов JavaScript.

 

Имя и значение: условный комментарий | IE IE 9

Описание:

Укажите, что ресурс должен быть обернут в условный комментарий Internet Explorer и должен использоваться при нацеливании на определенные версии Internet Explorer. Это поддерживается модулями плагина Web Resource.

Например, в объявлении веб-ресурса ниже говорится, что ресурс должен быть обернут условным комментарием Internet Explorer, а это значит, что он будет использоваться только версиями Internet Explorer меньше чем 9. Это полезно для стилизации IE-версии для работы над багами браузера.


<web-resource key="mechanical-parts" name="Mechanical Parts"
    i18n-name-key="com.example.confluence.plugin.special.mechanical.parts.name">
    <resource type="download" name="sprockets-lt-ie9.css" location="styles/sprockets-lt-ie9.css">
        <param name="conditionalComment" value="lt IE 9"/>
    </resource>
</web-resource>

Результат HTML, когда этот ресурс включен, будет примерно таким:


<!--[if lt IE 9]>
<link type="text/css" rel="stylesheet" media="all"
    href="/s/1418/13/1.0/_/download/resources/plugin.example:mechanical-parts/sprocket-lt-ie9.css" />
<![endif]-->

Параметр conditionalComment также работает для ресурсов JavaScript.

 

Имя и значение (пример): title | (Ваш заголовок)

Описание: Значение, указанное здесь, будет составлять атрибут заголовка тега CSS <link>.

 

По материалам Atlassian JIRA  Server Developer Downloadable add-on resources