Инструменты пользователя

Инструменты сайта


wiki:plugin:myicon

Это старая версия документа!


MyIcon для «ДокуВики»

Данный плагин предоставляет визуальный интерфейс вставки более 3500 иконок размером 16х16 в формате .png из окна редактора страницы. Этот плагин добавляет дополнительную кнопку в редактор страниц. С помощью этой кнопки можно выбирать иконки в визуальном интерфейсе. Плагин работает с папкой менеджера загрузок ./data, что не нагружает сервер подменой кода в шаблона Lexer1)

Этот плагин был разработан VladPolskiy.

Совместимость

  • 2024-02-06 «Kaos» да
  • 2023-04-04 «Jack Jackrum» да
  • 2022-07-31 «Igor» да
  • 2020-07-29 «Hogfather» да

Монтаж

Используйте менеджер плагинов для установки или…

  1. скачать zip-файл
  2. распаковать его в <dokuwiki>/lib/plugins/

:!: Дополнительные внешние требования: Для этого плагина требуются следующие дополнительные компоненты, которые необходимо установить отдельно:

  • в папке ./data/media необходимо создать директорию с именем 16 для хранения иконок 16х16
  • распокавать архив myicon.zip и из папки 16 все файлы иконок копировать! в папку ./data/media/16 вашего сайта Dokuwiki

Примеры/Использование

Посмотрите на плагин в действии здесьздесь. На странице-образце показаны все стили, доступные в плагине.

Простое использование:

{{icon>home}}

Некоторые более сложные варианты использования:

{{icon>home?24&circle&padding=10px&background=#DDD&color=#CCC}}
{{fa>home|My Home}}
{{fugue>user?24}}
{{silk>anchor}}
{{flag>no}}
[[:wiki:welcome|{{fa>home?24|Welcome to DokuWiki}}]]
[[https://github.com/LotarProject/dokuwiki-plugin-icons|{{fa>github-square?24|Icons DokuWiki plugin on GitHub}}]]  

Синтаксис

Базовый синтаксис

{{icon>icon-name&flags|title}}

Синтаксис ссылки DokuWiki

[[:dokuwiki:page|{{icon>icon-name&flags|title}}]]

Синтаксис внешней ссылки

[[protocol://host/path|{{icon>icon-name&flags|title}}]]

Доступные пакеты иконок

Пакет
icon стандартный набор иконок (см. defaultPack)
fa Font-Awesome font icon
ra RPG-Awesome font icon
glyphicon Glyphicons font icon
typcn Typicons font icon
mdi Material Design Icons font icon
fl Font-Linux font icon
fugue Fugue
oxygen KDE Oxygen
breeze KDE Plasma Breeze

Всплывающий помощник

Icons plugin provide a popup helper to easy add the icons in your page. To open the popup click to DokuWiki icon in the toolbar in edit page.

The popup support this icon packs:

  • Font-Awesome
  • RPG-Awesome
  • Typicons
  • Material Design Icons
  • Glyphicons

Конфигурация и настройки

Вариант конфигурации Значение по умолчанию Описание
defaultSize 16 Значение по умолчанию, если размер не указан
defaultPack fa Пакет иконок по умолчанию, если не указано иное
loadFontAwesome On Font Awesome : разрешить/запретить загрузку CSS (отключите, если у вас шаблон на основе Bootstrap3)
loadTypicons Off Typicons : включить значок шрифта
loadFontlinux Off Font-Linux : включить значок шрифта
loadMaterialDesignIcons On Иконки материалов : включить значок шрифта
loadRpgAwesome On Font-Linux : включить значок шрифта
fugueURL (CDN URL) Fugue CDN или локальный URL
oxygenURL (CDN URL) KDE Oxygen CDN или локальный URL
breezeURL (CDN URL) KDE Plasma Breeze CDN или локальный URL
silkURL (CDN URL) Silk CDN или локальный URL
flagURL (CDN URL) Флаг CDN или локальный URL

ПРИМЕЧАНИЕ для пакета значков флагов: по умолчанию используются флаги из плагина перевода присутствующего в вашей установке DokuWiki..

Флаги

Флаг Значение Описание
size (см. defaultSizeвариант) Размер значка (в пикселях)
pack (см. defaultPackвариант) Набор иконок (fa, glyphicon, fugue, oxygen)
circle - Создайте круг вокруг значка.
border - Добавьте рамку вокруг значка
borderColor - Установить цветную границу
padding - Применить отступ к иконке (в пикселях)
background - Применить фон к значку (в шестнадцатеричном формате или в виде названия цвета)
color - Применить цвет к значку (в шестнадцатеричном формате или в виде названия цвета)
class - Добавляет дополнительные CSS- классы к значку (полезно для Font Awesome или Glyphicon)
align left|center|right Выровнять значок ( по левому краю , по правому краю или по центру)
left - Выровнять значок по левому краю
right - Выровнять значок по правому краю
center - Выровнять значок по центру

Флаги Font Awesome

Флаг Значение Описание
lg - Увеличение размера иконки на 33%
2x|3x|4x|5x - Увеличить размер значка
border - Добавить границу к значку
spin - Добавить анимацию вращения
pulse - Добавить анимацию пульса
rotate 90|180|270 Повернуть значок
flip horizontal|vertical Перевернуть значок
pull-left - Потяните значок влево
pull-right - Потяните значок вправо

Демо

Демонстрация и примеры доступны по адресу http://www.lotar.altervista.org/dokuwiki/wiki/plugin/icons.

Часто задаваемые вопросы

Как установить Font Awesome и Glyphicon в портативную версию Dokuwiki?

Первый шаг, скачайте пакет Font Awesome и создайте в вашей установке DokuWiki каталог (например, assets/font-awesome) и поместите все файлы. Следующий шаг в Configuration Manager, установите loadFontAwesome и введите url вашего локального пакета font awesome в fontAwesomeURL (например, /dokuwiki/assets/font-awesome/css/font-awesome.min.css).

Не работает ли плагин-помощник?

Это происходит потому, что скрипт, который использует jQuery в /lib/plugins/icons/exe/popup.php, вызывает jQuery до загрузки jQuery. Весь jQuery встроен с тегом defer, поэтому и возникает эта ошибка.

безопасное решение:

  1. сделайте резервную копию popup.php
  2. скопируйте скрипт, который находится внутри popup.php (скрипт для справки находится внизу этого комментария)
  3. создайте файл popup_script.js в том же каталоге и вставьте в него этот скопированный скрипт
  4. удалите этот скрипт из popup.php.
  5. на место удаленного скрипта вставте скрипт следующего вида <script src=«/lib/plugins/icons/exe/popup_script.js» defer=«defer»></script>
  6. и сохраните.

примечание: браузер игнорирует, defer если <script> не имеет src директивы. Вот о чем эта суета. Скрипт для вставки в popup.php:

<script src="/lib/plugins/icons/exe/popup_script.js" defer="defer"></script>

перезагрузите страницу, вызовите всплывающее меню, теперь все работает.

Скрипт для справки:

popup_script.js
jQuery(document).ready(function() {
 
      var is_bootstrap = (typeof jQuery.fn.modal !== "undefined");
 
      var $icon_pack    = jQuery('#icon_pack'),
          $icon_name    = jQuery('#icon_name'),
          $icon_size    = jQuery('#icon_size'),
          $icon_align   = jQuery('#icon_align'),
          $output       = jQuery('#output'),
          $preview      = jQuery('#preview');
 
      if (! is_bootstrap) {
        jQuery('.tab-pane').hide();
      }
 
      jQuery('button[data-icon-size]').on('click', function() {
 
        jQuery('button[data-icon-size]').removeClass('active');
        jQuery(this).addClass('active');
 
        $icon_size.val(jQuery(this).data('icon-size'));
        jQuery(document).trigger('popup:build');
 
      });
 
      jQuery('button[data-icon-align]').on('click', function() {
 
        jQuery('button[data-icon-align]').removeClass('active');
        jQuery(this).addClass('active');
 
        $icon_align.val(jQuery(this).data('icon-align'));
        jQuery(document).trigger('popup:build');
 
      });
 
      jQuery('ul.nav a').on('click', function() {
 
        if (! is_bootstrap) {
          jQuery('.tab-pane').hide();
          jQuery('ul.nav li.active').removeClass('active');
          jQuery(jQuery(this).attr('href')).show();
          jQuery(this).parent().addClass('active');
        }
 
        $icon_pack.val(jQuery(this).data('pack'));
        jQuery('.preview-box').removeClass('hide');
 
        jQuery(document).trigger('popup:reset');
 
      });
 
      jQuery('.btn-icon').on('click', function() {
        $icon_name.val(jQuery(this).data('icon-name'));
        jQuery(document).trigger('popup:build');
      });
 
      jQuery(document).on('popup:build', function() {
 
        var icon_pack  = $icon_pack.val(),
            icon_size  = $icon_size.val(),
            icon_align = $icon_align.val(),
            icon_name  = $icon_name.val();
 
        if (! icon_name) {
          return false;
        }
 
        var syntax = [ '{{' ];
 
        syntax.push(icon_pack);
        syntax.push('>' + icon_name);
 
        var icon_size_pixel = 0;
 
        switch (icon_size) {
          case 'small':
            icon_size_pixel = 24;
            break;
          case 'medium':
            icon_size_pixel = 32;
            break;
          case 'large':
            icon_size_pixel = 48;
            break;
        }
 
        if (icon_size_pixel) {
          syntax.push('?' + icon_size_pixel);
        }
 
        if (icon_align) {
          syntax.push('&align=' + icon_align);
        }
 
        syntax.push('}}');
 
        $output.val(syntax.join(''));
        $preview.text(syntax.join(''));
 
      });
 
      jQuery('#btn-reset').on('click', function() {
        jQuery(document).trigger('popup:reset');
      });
 
      jQuery(document).on('popup:reset', function() {
        jQuery('form').each(function(){
          jQuery(this)[0].reset();
        });
        $output.val('');
        $preview.text('');
      });
 
      jQuery('#btn-preview, #btn-insert').on('click', function() {
 
        if (jQuery(this).attr('id') === 'btn-insert') {
          opener.insertAtCarret('wiki__text', $output.val());
          opener.focus();
        }
 
      });
 
    });

Ссылка на решение проблеммы на форуме wiki

Альтернативный способ

Настройка и поддержка Fontawesome 6.71

jasonwch модифицировал этот плагин для поддержки последнего набора иконок Fontawesome 6.71.

P.S. Этот ZIP-архив содержит ТОЛЬКО измененные/добавленные файлы. ОБЯЗАТЕЛЬНО установите оригинальный плагин, а затем замените/добавьте эти файлы. dw_icons_fa6.zip

Что изменено в модифицированной версии:

  • заменен набор иконок на Fontawesome 6.71. Поскольку 6.71 отделил иконки брендов, для таких иконок есть дополнительная вкладка/префикс
  • (должно быть) совместимым с уже добавленными значками FA из предыдущей версии, поэтому старые страницы не нужно обновлять вручную
  • добавить дополнительную вкладку руководства во всплывающем окне для более удобного использования тегов
  • В сочетании с исправлением js defer, оригинальный скрипт расширения должен отключить defer JS со страницы конфигурации для работы. Из issue#26, «inbsp» предоставил исправление для разделения JS, чтобы исправить эту ошибку. Однако, когда всплывающее окно появляется, вам все равно нужно переключить страницу один раз, чтобы отобразить значки.

Техническое примечание:

  1. Я использовал Node.js для извлечения нового имени значка в виде списка для замены оригинального list-font-awesome.php ( https://github.com/mackilroy007/font-awesome-v6 )
  1. добавлены строки комментариев в измененных файлах, чтобы вам было легче проверить, какая строка была изменена.

Ссылка на оригинальный текст icons_plugens_new.rar

Обновление

Для обновления удалите исходную папку lib/plugins/icons и установите новую версию, как указано выше.

Файл для загрузки

Лицензия

1)
Lexer сканирует документ DokuWiki и выводит последовательность «токенов», соответствующих синтаксису в документе
Только авторизованные участники могут оставлять комментарии.
wiki/plugin/myicon.1736679768.txt.gz · Последнее изменение: 2025/01/12 14:02 — vladpolskiy