|
MediaWiki для ведения и хранения документациианалитическая записка |
|
Онлайн: РИСОВАЛКИ | ИГРЫ | РЕЛАКС программы |
Анатолий Опарин / август, 2018 Эта аналитическая записка написана по результатам экспресс-исследования темы по использованию "движка" MediaWiki в качестве среды для ведения и хранения документации. К движку уместно предъявить некоторые требования, вынесенные в заголовки глав этой статьи.
Изменение структуры бокового менюСтруктуру сайдбара (боковое меню слева на страницах wiki-сайтов) можно менять на странице MediaWiki:Sidebar – просто править ее в wiki-редакторе, придерживаясь синтаксиса:* <название блока 1> ** <ссылка 1>|<отображаемый текст 1> ** <ссылка 2>|<отображаемый текст 2>Эта страница требует прав на изменение. Чтобы в сайдбар поместить древовидный каталог надо подключить расширение CustomNavBlocks. Сайдбар надо будет изменить под структуру хранимой документации. Теоретически в сайдбар можно было бы внедрять и оглавление отдельного документа (как в Word в панели навигации). Но делать этого не стоит, т.к., во-первых, это оглавление будет видно в сайдбаре всегда, даже, когда пользователь находится на другой странице, во-вторых, на отдельной странице документа содержание и так выводится сверху согласно оформленных заголовков. Загрузка файлов различных форматовПо умолчанию в виде файлов можно загружать только png, gif, jpg, jpeg, webp. Список возможных расширений можно расширить в файле LocalSettings.php в строке:$wgFileExtensions = [ 'png', 'gif', 'jpg', 'jpeg', 'webp' ];Нужен админский доступ к этому файлу. Для ведения документации в Wiki мне лично не хватает загрузки по крайней мере файлов с такими расширениями: docx, pdf, svg, bpmn, zip. Использование принципа единого источникаЭтот принцип практикуется в «продвинутых» относительно Word технологиях создания документации (DocBook, DITA...) и заключается в том, что повторяющийся один и тот же блок данных (тест, картинки...) хранится в одном(!) месте и подтягивается в разные документы спецкомандами.MediaWiki имеет функционал шаблонов, который поддерживает данный принцип. Создается страница, например, Шаблон:Todo. Потом в разных статьях в редакторе пишется {{Todo}} и в это место при отображении в браузере Wiki вставляет содержимое вышеприведенной страницы. В шаблонах можно задавать места для параметров, например {{{par}}}, а при вызове параметру присваивать значение, например, {{Todo|par=Абракадабра}}. Такие плейхолдеры полезны для другой отличительной особенности «продвинутых» технологий – когда требуются минорные изменения шаблона на лету в зависимости от того, в какой документ вставляется шаблон. Специального доступа к шаблонам в Wiki не требуется. Можно вставить в страницу_1 содержание страницы_2 и без шаблонов: {{:страница_2}}. Категоризация статейЧрезвычайно полезная функция, которая позволяет маркировать статьи и загруженные файлы по темам. Для этого достаточно внизу статьи добавить строку [[Категория:Название_категории]]. Если статья принадлежит разным категориям, то маркировку для каждой категории нужно повторить. Конвертация wiki-разметкиWord ➞ Wiki (варианты):
Сохранить лист книги в веб-страницу mht. Открыть в браузере. Выделить всё (Ctrl+A). Скопировать в буфер обмена. В визуальном редакторе Wiki вставить из буфера. Wiki ➞ Word (варианты):
Это реально. В той же Википедии в сайдбаре каждой статьи есть ссылка "Скачать как PDF". Вполне нормально и быстро конвертирует за исключением того, что отсутствуют закладки согласно заголовкам. Страница проекта по PDF конвертации - в "Ссылках" ниже. Другие полезные фичи MediaWikiПодстраницыИерархию страниц можно организовать не только с помощью категорий, но и с помощью функционала подстраниц. Правила простые - создавайте новую статью в качестве подстраницы имеющейся статьи путем написания заголовка новой статьи через слеш после заголовка родителя в URL. Поначалу вы ничего особенного не почувствуете. Но стоит в источнике родительской статьи прописать: {{Special:PrefixIndex/{{FULLPAGENAME}}/}}как на месте данного кода возникнет список всех подстраниц текущей страницы. Это еще не всё. Если в файле LocalSettings.php прописать: $wgNamespacesWithSubpages[NS_MAIN] = true;то на дочерней подстранице вверху появится ссылка на родительскую страницу. Подсветка синтаксиса программного кодаЕсть варианты:
Просмотр загруженных файлов по форматуЕсть служебная страница Служебная:MediaStatistics. На ней аггрегируется статистика по количеству файлов определенного формата, загруженных в Wiki. Название формата в списке - это активная ссылка, которая ведет на страницу со списком файлов определенного формата. Если загружать файлы документации только в форматах PDF и DOCX, то это будет дополнительным удобным местом для знакомства с наполнением Wiki, которое касается документации. Если загружать схемы только в формате BPMN, то на этой странице их также будет удобно искать. СноскиПредустановленное расширение Cite позволит пользователю Wiki с удобством расставлять сноски по тексту, что особенно актуально и полезно в научных статьях, но также может пригодиться и в технической документации. Расширение хоть и поставляется с движком, находясь в папке extensions, но не активизировано в файле LocalSettings.php. Поэтому, в этом файле надо прописать: wfLoadExtension( 'Cite' ); После этого в тексте в тех местах, откуда надо сослаться на источник/комментарий/примечание надо в коде страницы вставить <ref>Пояснение = текст сноски</ref>, а в конце страницы сделать вывод всех этих примечаний примерно так: == Примечания == <references/> В итоге в месте ссылки на сноску она будет выглядеть так: [2] и это будет кликабельная ссылка, которая будет перебрасывать читателя вниз в раздел Подключать свои JS и CSS файлы
Это можно делать двумя глобальными способами: $wgHooks['BeforePageDisplay'][] ='onBeforePageDisplay'; function onBeforePageDisplay( OutputPage &$out, Skin &$skin ) { # подключаем нужное в конец head $script = ' <link rel="stylesheet" href="/resources/lib/hightlight-js/styles/solarized-dark.css"> <script type="text/javascript" src="/resources/lib/hightlight-js/highlight.min.js"></script> <script>hljs.initHighlightingOnLoad();</script> '; $out->addHeadItem("itemName", $script); return true; };В первом случае js и/или css код будет хранится в базе данных и из нее подтягиваться на каждую страницу. Во втором случае содержание переменной $string будет внедряться в область заголовка <head> каждой страницы. Также для кастомизированных css-стилей есть расширение CSS (ссылка ниже), благодаря которому можно будет подключать css как для всех страниц Wiki, так и для отдельных. Возможность вставлять на страницы видео- и аудио-роликиПодключить расширение EmbedVideo. Оно устанавливается без всяких сложностей в три этапа: 1. Скачать архив с расширением;2. Скопировать содержимое архива в папку /extensions и переименовать внутриархивную папку в EmbedVideo; 3. В файле LocalSettings.php прописать wfLoadExtension( 'EmbedVideo' );. После этого форматы медиафайлов, прописанные в EmbedVideo.hooks.php, становятся разрешенными для загрузки в Wiki. И начинают действовать обработчики плейсхолдеров в коде wiki-страниц для вставки видео и аудио. Самый простой плейсхолдер: [[File:S1200.mp4]] вставляет видеоролик, который был загружен на сервер. Кроме видеороликов, загруженных в локальную Wiki, расширение позволяет вставлять на страницу iframe с src на адрес видеоролика одного из популярных сервисов с помощью разнообразных плейсхолдеров. Доступные сервисы можно найти в файле VideoService.php и, по всей видимости, добавить свой сервис можно там же при достаточном знании PHP и регулярных выражений. ПоискНа каждой странице Wiki вверху справа есть поле для поиска, которое удовлетворит 80% ваших запросов. Но в некоторых случаях этого недостаточно. Пример:
Нам надо найти все статьи, где встречается слово "рыбалка". Также в интерфейсе Расширенного поиска можно выбрать пространство имен, по которому производится поиск. Например, можно отметить галочку "Файл" для того, чтобы поиск производился по страницам загруженных файлов (поиск по названиям файлов и тексту, который разместил пользователь на странице файла). По умолчанию ищется полное слово, которое написал пользователь в поле поиска. Чтобы искать также производные, то надо в конце слова поставить звёздочку *. Например, по контексту "судак*" будут найдены статьи с "судак", "судаки", "судака", "судаком"... Причем, это уловка работает и для верхнего правого поиска каждой страницы. Если там набрать "рыбалк*", то будут найдены статьи со словоформами от "рыбалка" и в названии, и в теле статей. ВыводыПо результатам предварительного анализа в общем MediaWiki можно использовать для заявленной цели, хотя движок лучше всего подходит для ведения базы знаний, а не для файлохранилища или создания больших (на несколько сотен вордовских страниц) руководств пользователей. Ссылки• Описание механизма Шаблонов MediaWiki• Настройка загрузки файлов • Расширения для MediaWiki • Расширение EmbedVideo • Расширения для конвертации wiki-страниц в PDF • Использование MediaWiki для создания корпоративной базы знаний Анатолий Опарин (при перепечатке указывать авторство) Оглавление:Ещё обзоры для вебмастеров, расширяющие их технологический кругозор: • Памятка начинающему вебмастеру • Amazing Slider – программа для создания HTML5 слайдшоу, галерей, альбомов • Blumentals WeBuilder – удобнейший редактор кода с предпросмотром • Camtasia Studio – видеоредактор с экспортом в интерактивный HTML5 проигрыватель • GDevelop – игровой движок c редактором в вебе, на мобильных и ПК платформах • Google Web Designer – конструктор HTML5 баннеров и приложений • Flip PDF – конвертор PDF документов в HTML5 приложение • Hi Slider – программа для создания продвинутых jQuery слайдеров • Hippani Animator – удобная анимационная студия с экспортом в HTML, video, анимированный gif • Lunacy – для макетирования интернет-страниц • Moodle – практика администратора СДО • MediaWiki – как скачивать Wiki-страницы в PDF • MediaWiki – как подсвечивать синтаксис программного кода • Nicepage – конструктор сайтов и тем для CMS • Pinegrow – стильный визуальны конструктор сайтов • PowerPoint в HTML5 – обзор софта конвертации • RocketCake – лаконичный визуальный конструктор сайтов • Saola Animate – программа для быстрого и удобного создания анимации в HTML5 • Scratch – визуальный язык программирования и редактор кода • Sozi – программа для создания стильных HTML5 презентаций с перелетами между слайдами • SVG – как сделать анимацию линии (имитацию рисования) • Tilda – самый удобный онлайновый конструктор сайтов, плюсы и минусы • TimelineJS – библиотека для хронологических лент • TurboSite – лаконичный конструктор многостраничных сайтов • TurboWarp – продвинутый форк Scratch для создания HTML5 игр и приложений • WOW Slider – программа для создания красивых HTML5 слайдеров • WYSIWYG Web Builder – мощный визуальный конструктор сайтов • Yonote – веб-сервис для организации базы знаний • HTTP – коротко о протоколе • OpenAPI – спецификация, визуализация, инструментарий • Визуально-блочные среды программирования и моделирования – обзор • Инструменты для создания прототипов интернет-страниц: Axure и ProtoShare • Что нужно знать об электронных платежах вебмастеру интернет-магазина • Как создать интерактивный кроссворд на сайте? • Как работать с Flash в современное время • Спецсимволы HTML – коды около 2000 дизайнерских иконок |
Быстро текущие новости
|
|
|