Найти в Дзене

База знаний на Mediawiki + Semantic Mediawiki

Оглавление

Расскажу про Mediawiki + Semantic Mediawiki как хранилище инструкций и базу знаний для всей компании.

Принципы

В основу положен принцип вики: все могут редактировать всё.

Контент

База знаний содержит три типа контента.

Произвольные проектные инструкции

Их пишут сотрудники. Это уже основной вики-контент, хотя поначалу его почти не было - люди почти не проявляли инициативы.

Документы Системы Менеджмента Качества

Они регламентируют работу компании: политики, стратегии, описания процессов, методологические и рабочие инструкции. Поскольку они должны находиться под управлением, то для них предусмотрено утверждение (через расширение ApprovedRevs). По умолчанию отображается утверждённая версия, но вообще можно посмотреть любую версию документа, в т.ч. пока ещё не утверждённый черновик новой версии. А также сравнить любую версию с любой (базовая фича Mediawiki). Эти документы пишут их владельцы, утверждение происходит через менеджера по качеству.

Справка по самописной ERP на платформе 1С

Поскольку в самой 1С работа со справкой сделана уныленько, решили вынести справку в вики. Её пишут и обновляют в основном люди из группы разработки. Но иногда точечные правки вносит и остальной народ.

Роли

Их по большому счёту две (всякие боты и бюрократы не используются):

  • Обычные пользователи - они могут читать и редактировать всё.
  • Админы (в т.ч. менеджер по качеству) - они могут утверждать документы и творить некоторую магию на “Специальных страницах” - это у Медиавики так называется админский раздел, где часть страниц доступна для чтения всем.

Авторизация для всех через Active Directory. Т.е. хотя вики доступна из Интернета, доступ в неё есть только у сотрудников компании.

Категории

Это базовая фича Mediawiki. Она позволяет включать страницу в одну или несколько категорий. При просмотре страницы категории кроме её собственного контента отображается список страниц, входящих в эту категорию.

Это минимально необходимый функционал для структурирования страниц, но при использовании Semantic Mediawiki он становится ненужным как слишком примитивный.

Semantic Mediawiki

Для тех, кто в теме, скажу, что Semantic Mediawiki для Mediawiki - это как Dataview для Obsidian. Т.е. must have.

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

Шаблон

Это страница, которая будучи включенной в другую страницу, на месте включения выводит контент шаблона, заменяя в нём переменные их значениями, которые прописываются в вызове (включении) шаблона.

Например, у нас “шапка” документа СМК - это шаблон. Если нужно её изменить, мы меняем шаблон, и на всех страницах “шапка” меняется соответственно.

Пример использования шаблона для формирования “шапки” документа (выделена красным):

Пример использования шаблона для формирования “шапки” документа (выделена красным)
Пример использования шаблона для формирования “шапки” документа (выделена красным)

Код вставки шаблона этой “шапки”:

{{cover|2017/01/20|Russian|Дмитрий Уланов|{{REVISIONUSER}}|{{REVISIONDAY2}}.{{REVISIONMONTH}}.{{REVISIONYEAR}}|МИ-17|Тестировщик,Проект-менеджер по техническим проектам,Тест-аналитик|Методологическая инструкция}}

  • cover - название шаблона, остальные элементы, разделённые | - параметры, которые можно задавать последовательно, а можно именовать и задавать в произвольном порядке.
  • Текст капсом в двойных фигурных скобках - системные переменные

Код шаблона развесистый и в spaghetty style, поэтому его не привожу :)

Вычисления на лету и прочая логика

Есть множество дополнений и какие-то скудные фичи “из коробки”, допускающие примитивное “программирование”.

Например, при вызове шаблона “шапки” документа одним из параметров передаётся язык шаблона (в вики контент на русском и на английском). Шаблон в зависимости от нужного языка формирует “шапку” на русском или на английском языке.

Кроме того, если существует страница, аналогичная данной, но на другом языке, то в “шапке” автоматически формируется и отображается ссылка на неё.

Что в итоге получилось

  • На главной странице вверху меню навигации по основным разделам (TOC-страницам). Увы, массовый гуманитарий не смог уяснить, что поиск + внутренние ссылки = найдётся всё. Ему подавай олдскульное главное меню.
  • На левом сайдбаре меню управления текущей страницей, история, входящие ссылки и пр.
  • На правом сайдбаре - структура текущей страницы (строится по заголовкам).
  • TOC (Table of Contents)-страницы показывают какой-то вводный текст и выборки страниц по определённым признакам. Например:
  1. Список документов, применимых к определённой должности или отделу
  2. Список документов заданного уровня применения (обязательный, рекомендованный, на свой страх и риск)
  3. Список отчётов ERP-системы в виде таблицы с основными характеристиками: название, кому доступен, что показывает, какие есть фильтры и параметры

Когда я увлекался сыроедением и ферментированием, то поднял и чуток наполнил рецептами общедоступную вики на базе тех же Mediawiki + Semantic Mediawiki. Можно рассматривать её как демонстрацию вершины айсберга возможностей Semantic Mediawiki ;-)

Над внешним видом не колдовал, поэтому выглядит всё стандартно и слабопривлекательно.

А вот корпоративную базу знаний мы перелицевали, и она выглядит приятненько, почти как современный сайт.