
Récemment, Confluence et sharepoint ont presque complètement régné sur le marché de la base de connaissances. Les systèmes sont excellents, je ne discute pas, mais personnellement, je n'ai pas assez de flexibilité et je n'ai pas grandi en quelque sorte ensemble: le wiki sharepoint est resté quelque part au niveau de 2005 (je ne parle pas de travailler avec des documents de bureau, c'est tout le bourdonnement), et Confluence, en raison de ses caractéristiques, avec l'augmentation du nombre d'articles, inexorablement transformé en un dépotoir dans lequel il est impossible de trouver quoi que ce soit nécessaire (
mais peut-être que le problème était en moi ).
Sans diminuer les mérites de ces systèmes, je voudrais parler des opportunités
qu'offre Mediawiki comme base de connaissances d'entreprise. Bien sûr, mediawiki ne convient pas à tout le monde - il n'a pas d'intégration à la mode avec jira / tfs / etc, le transfert de documents avec des images à partir du package Microsoft Office est beaucoup d'inconvénients, et il est lui-même écrit en PHP, qui a récemment dissuadé certains spécialistes informatiques . Néanmoins, la plateforme est plus vivante que toutes les plates-formes vivantes et beaucoup de gens travaillent à son développement, tant que
la famille de projets de la
Fondation Wikimedia est basée sur elle.
Le wiki lui-même est plutôt avare de possibilités, mais de nombreuses
extensions ont été écrites pour cela. La plupart des fonctionnalités intéressantes se trouvent dans les extensions, donc une bonne partie de l'article en parlera. Et oui, je ne peux que noter qu'il existe une version d'entreprise spéciale de Mediawiki -
BlueSpice , que je n'ai pas utilisée, et donc je ne peux pas juger de son adéquation.
Pourquoi vous êtes-vous embarqué et qui êtes-vous de toute façonSalut Je m'appelle Nikolai, je suis ingénieur QA.
L'AQ comprend non seulement / pas tant les tests que l'assurance qualité au sens large. Et parmi d'autres significations de ce sens le plus large, une chose telle que la gestion des connaissances a été cachée. Il y a beaucoup d'articles et de livres abstraits sur ce sujet qui parlent des principes de la gestion des connaissances, mais étonnamment, il y a peu de recommandations concrètes et d'idées pratiquement applicables, du moins en quelque sorte fraîches. Cela me fait penser que tout le monde utilise ce que les entreprises célèbres donnent à tout le monde et se réjouissent, ou n'utilise rien et souffre, ou a vu son propre vélo secret, ce qui est gênant de parler dans une entreprise décente.
Je suis gêné aussi, mais je vais vous le dire. Tout d'abord, sur les puces de mediaiwki lui-même
Avant de parler des extensions, il convient de mentionner les fonctionnalités du mediawiki lui-même en général. Si vous avez mille modifications sur Wikipédia sur votre compte, il est peu probable que vous appreniez quelque chose de nouveau dans cette partie, vous pouvez l'ignorer en toute sécurité.
Le premier et l'un des goodies les plus tangibles -
catégories . Les pages peuvent être ajoutées aux catégories, les catégories elles-mêmes peuvent être ajoutées aux catégories. Contrairement à la structure du fichier (oubliez les liens symboliques), une page / catégorie peut être dans plusieurs catégories à la fois. L'utilisation de catégories entrave la croissance du chaos avec le nombre croissant d'articles. Surtout si vous parcourez périodiquement des listes d'articles non catégorisés et de catégories non catégorisées
Espaces de noms . L'idéologie du wiki dit que tout est une page (même une catégorie ou une image). Afin de séparer les pages de différents types, l'idée d'espaces de noms a été ajoutée. Si vous le souhaitez, vous pouvez ajouter vos propres espaces de noms pour séparer les connaissances des différents types (par exemple, des espaces de noms séparés pour les informations sur les produits, les utilitaires, les guides, les descriptions des processus, d'autres informations sur les services).
Le wiki prend également en charge des
modèles - des pages wiki qui peuvent ensuite être incluses dans d'autres pages. Les modèles prennent en charge l'utilisation des paramètres, ce qui les transforme en quelque chose de plus que de simples insertions de texte: si vous le souhaitez, vous pouvez écrire un script simple dans le langage du modèle. Soit dit en passant, ils disent que
le langage du modèle peut être complet par Turing .
En plus des modèles, l'extension
Scribunto permet l'utilisation de
modules lua dans un wiki. Les modules ainsi que les modèles vous permettent d'implémenter de nombreuses choses sans même avoir à écrire vos propres extensions.
Par exemple,
les tables de navigation sont construites sur la base de ce duo. La table de navigation est, par exemple, cette chose, qui peut généralement être vue au bas de la page:

Bien qu'ils ne soient pas des fonctionnalités standard, ils se sont imposés comme un moyen pratique de navigation et de restauration de l'ordre et sont maintenant utilisés presque partout.
Je ne peux que mentionner les fichiers
Mediawiki: Common.css et Mediawiki: Common.js qui vous permettent d'ajouter une petite personnalisation au wiki - il est préférable d'utiliser des extensions pour de grandes choses.
Éditeurs
L'éditeur est l'une des parties les plus importantes d'un wiki. Il est extrêmement difficile d'implémenter un wiki s'il n'a pas d'éditeur visuel, car seule une personne très initiatrice acceptera d'apprendre le balisage wiki.
Editeur visuel
Une extension relativement récente -
VisualEditor résout le problème de l'édition visuelle des articles. Il a ses propres jambages, mais pour la plupart des tâches, il en a assez. Parmi les problèmes les plus visibles - il n'y a pas l'insertion d'image la plus pratique.
L'apparition de l'éditeur visuel est étroitement liée à l'avènement de
Parsoid , un service de conversion entre la syntaxe Mediawiki et le HTML. Cette tâche s'est avérée extrêmement non triviale en raison du fait que la syntaxe mediawiki s'est développée de manière aléatoire et n'a pas été strictement définie. En savoir plus dans l'
excellent article du blog officiel .
Parmi les extensions qui s'intègrent à VisualEditor, vous pouvez sélectionner
Graphique pour éditer des graphiques,
Math pour éditer des formules mathématiques et
SyntaxHighlight pour mettre en évidence la syntaxe des fragments de code.
Wikieditor
WikiEditor est un simple éditeur wikitext. Certaines choses délicates sont encore plus pratiques à faire via l'éditeur wikitext, à certains endroits, l'édition visuelle n'est toujours pas prise en charge. Quoi qu'il en soit, WikiEditor facilite le travail avec Wikitext, et il est
assez simple de le personnaliser .
Modification des conflits
Quiconque a utilisé Mediawiki dans le passé se souvient de la difficulté de chaque résolution de conflits d'édition.
TwoColConflict avec bêta activé par défaut simplifie considérablement la solution. En cas de conflit, vous pouvez regarder les endroits où le conflit a lieu et sélectionner la version souhaitée du fragment controversé. Si les deux versions ne sont pas complètes, vous pouvez compléter l'une d'entre elles. Quelque chose comme ça ressemble aux affaires:

Vous pouvez l'essayer vous-même
sur la page de test .
Formulaires pour ajouter le même contenu
L'
extension PageForms vous permet d'ajouter du contenu uniforme à votre wiki à l'aide de formulaires. Dans ma pratique, j'ai utilisé des formulaires pour ajouter des clés de registre, des tables de base de données et d'autres choses typiques similaires au wiki.

Cette extension révèle sa puissance lors de l'utilisation de
Semantic Mediawiki ou de ses analogues. La science des médias sémantiques vous permet d'ajouter des propriétés de page ou des objets avec vos propriétés à la page. Les propriétés sont définies comme ceci (par exemple, page Allemagne):
[[ ::]]
Ces propriétés et objets peuvent ensuite être obtenus à l'aide de la
demande de demande ou via l'API.
À partir des propriétés obtenues, vous pouvez dériver des tableaux, créer des graphiques et
faire beaucoup d'autres choses intéressantes . Par exemple, dans mon cas, sur la base de tables ajoutées via des formulaires, les schémas db les plus simples sont construits. De plus, le schéma peut être construit non pas pour l'ensemble du produit, mais pour une catégorie spécifique. Et dans le diagramme, en plus des liens FK / PK évidents, des liens implicites peuvent également être reflétés qui ne peuvent pas être vus avec les outils de cartographie standard.
Pour les clés de registre, les informations de clé sont extraites des mêmes propriétés afin de pouvoir être utilisées pour générer un fichier .reg avec une valeur donnée.
Arbre de catégorie
PageForms prend en charge la possibilité d'ajouter un champ avec une arborescence de catégories, donc pour ajouter une page aux catégories dont vous avez besoin, cliquez simplement sur les cases à cocher nécessaires.
En revanche, lorsque nous avons déjà des articles classés, ils peuvent être affichés sur n'importe quelle page sous la forme d'un arbre:

L'arbre est chargé dynamiquement, il fonctionne donc pour un grand nombre d'articles et pour les catégories en boucle, si quelqu'un en a soudainement besoin.
Autorisation LDAP / AD
L'extension
Ldap Authentication prend en charge l'autorisation de domaine, la restriction d'accès pour certains groupes et le mappage des groupes d'utilisateurs mediawiki aux groupes ldap. Vous pouvez configurer plusieurs domaines à la fois. C'est assez fastidieux en termes de paramètres, mais, heureusement,
il y a de très bonnes instructions sur Internet .
Droits d'accès granulaires
Ici, tout va mal. Si la tâche consiste à restreindre l'accès aux utilisateurs non autorisés, alors c'est simple. Si parmi ces utilisateurs il est nécessaire de distinguer des groupes séparés avec des droits d'accès spéciaux, alors c'est difficile.
Il existe de nombreuses extensions différentes, mais elles ne résolvent pas le problème fondamental: mediawiki n'a pas été créé en tant que CMS. Pour prendre en charge les droits d'accès, vous devrez patcher le code Mediawiki, en ajoutant manuellement
$title->userCan('read')
dans tout ce qui ne devrait pas être donné sans vérification des droits. La même chose s'applique à toutes les extensions: pour chaque extension que vous ajoutez, vous devrez ajouter manuellement toutes les vérifications nécessaires.
Pour ma part, j'ai résolu le problème avec une extension self-made, construite sur l'idée de
PermissionACL et un pack de correctifs pour différentes extensions et le mediawiki lui-même. Heureusement, je n'avais pas besoin d'une liste de contrôle d'accès avancée; il y avait suffisamment de contrôles primitifs pour plusieurs groupes.
Pour prendre en charge la même chose pour les images, vous devrez
encapsuler l' accès au fichier dans
Img_auth.php . Et ce dernier utilise un streamer de fichiers de mediawiki, qui ne sait pas donner
un contenu partiel (au moment de mediawiki 1.31), donc pour prendre en charge la lecture vidéo, vous devrez attacher un autre streamer de fichiers.
Support vidéo
Le support vidéo n'est pas inclus dans le package standard, mais est résolu de manière triviale en installant l'extension
TimedMediaHandler . Lecteur vidéo normal, rien de spécial. L'insertion de vidéo sur une page est exactement la même chose que l'insertion d'une image.
Chercher
L'une des choses qui me dérange personnellement dans Confluence est la recherche. La recherche standard de Mediawiki est encore pire, mais heureusement, il existe des extensions tierces. Parmi les extensions de recherche, les plus populaires sont
CirrusSearch et
SphinxSearch . Je n'ai jamais utilisé ce dernier, mais j'ai appris à bien connaître le premier, d'ailleurs, il est également utilisé dans les projets de fonds Wikimedia
CirrusSearch fonctionne sur la base d'
elasticsearch , pour que l'extension fonctionne, vous devrez également installer une interface intermédiaire - l'extension
Elastica .
CirrusSearch prend en charge un
nombre insensé de paramètres et se développe assez activement. Par exemple, j'étais très heureux que la recherche CamelCase ait commencé dans la branche 1.32.
Un autre point que j'ai aimé est la possibilité d'ajouter un dictionnaire de synonymes. Le dictionnaire fonctionne bien avec un jargon interne bien établi, des abréviations, des fautes de frappe typiques ou diverses translittérations. Mais le dictionnaire doit d'abord être écrit, ce qui n'est peut-être pas la tâche la plus simple. Si vous n'affinez pas le dictionnaire pour une entreprise spécifique, vous pouvez essayer les dictionnaires existants dans l'esprit de
WordNet , mais pas le fait qu'ils vous conviendront personnellement.
L'extension ne prend pas en charge l'ajout de synonymes au niveau de la
configuration LocalSettings, mais cela n'est pas difficile à résoudre en modifiant le code d'extension - voir
AnalysisConfigBuilder.php et les
instructions pour configurer des synonymes pour elasticsearch .
Si vous le souhaitez, vous pouvez ajouter une ligne de recherche à la page principale via l'extension
InputBox , après quoi vous pouvez y
fixer l'auto-complétion selon les instructions .

Soit dit en passant,
AdvancedSearch aidera à ranger l'apparence de la page de recherche, avec elle, elle ne ressemblera pas à une victime d'un fan de case à cocher.
Analytique
Cela semble ridicule, bien sûr, mais l'analyse est extrêmement utile même pour la base de connaissances interne qu'une centaine de personnes visitent par mois. Il vous permet de comprendre comment les utilisateurs interagissent avec l'interface, ce qu'ils recherchent, ce qu'ils lisent, ce qu'ils utilisent. Si les plans prévoient le développement de la base de connaissances, les statistiques seront tout simplement inestimables.
Pour l'intranet, il existe une extension extrêmement digne de
Matomo (ex Piwik). L'extension correspondante pour l'intégration est
MatomoAnalytics .

Matomo collecte des statistiques sur les requêtes de recherche, les sources de trafic, les téléchargements, les clics (vous pouvez voir la fréquence des clics avec superposition sur la page elle-même) et de nombreuses autres mesures. Les statistiques peuvent être collectées à la fois en référence à des utilisateurs spécifiques et anonymes, afin de ne dérouter personne.
Autre
En plus de ce qui précède, il existe de nombreuses extensions qui simplifient simplement la vie. Par exemple,
GuidedTour pour enseigner aux débutants les bases du travail avec les interfaces,
Popups pour prévisualiser les articles en survol,
MultimediaViewer pour une visualisation plus confortable des images en taille réelle et bien plus encore.
Quel est le résultat?
L'ensemble d'extensions du gentleman répertorié couvre une partie importante des besoins de création d'une base de connaissances, mais pas tous. Mediawiki ne convient pas comme base de connaissances unifiée universelle. Mais tout le monde fait aussi mal en tant que système universel - sharepoint, confluence, dossiers old-school Outlook, qui prennent une demi-heure à rechercher, etc. Mediawiki sur leur arrière-plan se distingue par ses capacités de personnalisation et son excellente évolutivité.
Contrairement à tous ces avantages, mediawiki nécessite constamment une fonctionnalité de découpe de fichier pour les besoins d'une entreprise particulière, donc son administrateur doit être mentalement préparé à comprendre le code php, js et lua. Mais si cela ne fait pas peur et si vous acceptez de séparer le travail avec les documents bureautiques et de travailler avec des articles wiki sur différentes plates-formes, mediawiki en tant que base de connaissances peut être une assez bonne idée.