======CamelCase для «ДокуВики»====== {{:wiki:plugin:dwplugin.png?70 |}} Замена синтаксиса DokuWiki CamelCase, использует «_» для разделения слов в названиях страниц. Этот плагин был разработан Кристофер Смит. * **Релиз:** 2005-09-19. * **Правка:** 2008-08-13. * **Репозиторий:**http://dokuwiki.jalakai.co.uk/plugin-camelcase.tar.gz * **Совместимость с «Докувики»:** 2005-09-19+ =====Совместимость===== * 2005-09-19+ :!: **Внимание:** Это расширение не обновлялось более 2 лет. Возможно, оно больше не поддерживается и может иметь проблемы с совместимостью. =====Монтаж===== Используйте менеджер плагинов для установки или… - скачать zip-файл - распаковать его в /lib/plugins/ - войдите как администратор и измените плагин в менеджере конфигурации =====Примеры/Использование===== Этот плагин заменяет текущие обработчики DokuWiki для разметки CamelCase. Он создаст ссылку на страницу с подчеркиваниями между словами CamelCase. например CamelCase => camel_case Стандартное поведение DokuWiki заключается в создании ссылки на страницу с CamelCase, преобразованным в нижний регистр (например, camelcase). Это может привести к снижению читаемости названий страниц. Альтернативой является установка параметра конфигурации [[wiki:config:useheading|useheading]] в вашем **conf/local.php** файле. =====Синтаксис===== [[wiki:syntax|как описано в синтаксисе DokuWiki]] =====Подробности===== ====PHP-источник==== **''lib/plugins/camelcase/syntax.php''** */ if(!defined('DOKU_INC')) die(); /** * All DokuWiki plugins to extend the parser/rendering mechanism * need to inherit from this class */ class syntax_plugin_camelcase extends DokuWiki_Syntax_Plugin { /** * return some info */ function getInfo(){ return array( 'author' => 'Christopher Smith', 'email' => 'chris@jalakai.co.uk', 'date' => '2008-08-13', 'name' => 'Camel Case', 'desc' => 'Override default DokuWiki CamelCase syntax', 'url' => 'http://www.dokuwiki.org/plugin:camelcase', ); } /** * Syntax Type * * Needs to return one of the mode types defined in $PARSER_MODES in parser.php */ function getType(){ return('substition'); } function connectTo($mode) { $this->Lexer->addSpecialPattern( '\b[A-Z]+[a-z]+[A-Z][A-Za-z]*\b',$mode,'plugin_camelcase' ); } function getSort() { return 275; // needs to be lower than 290 } /** * Handler to prepare matched data for the rendering process */ function handle($match, $state, $pos, Doku_Handler $handler){ preg_match_all('/[A-Z][^A-Z]*/u',$match, $matches); $link = implode('_',$matches[0]); return array($link, $match); } /** * Handles the actual output creation. */ function render($format, Doku_Renderer $renderer, $data) { $renderer->internallink($data[0],$data[1]); } } //Setup VIM: ex: et ts=4 enc=utf-8 : =====Файл для загрузки===== {{ :wiki:plugin:plugin-camelcase.tar.gz |plugin-camelcase.tar.gz}} =====Лицензия===== * **Author:** [[chris@jalakai.co.uk|Christopher Smith]] * **License:** [[http://www.opensource.org/licenses/gpl-license.php|GNU GPL v2]] * **Donate:** [[https://www.paypal.com/xclick/business=tjgrant%40tatewake.com&item_name=Citations%20for%20DokuWiki%20Donation&no_shipping=1&no_note=1&tax=0¤cy_code=USD&lc=US|Click here.]] Это не обязательно, но, пожалуйста, рассмотрите возможность ссылки на [[https://www.dokuwiki.org/plugin:camelcase|эту страницу]] с вашего сайта, если вам нравится этот продукт.