Шаблон:Mscgen


{{Mscgen}} — шаблон для вывода диаграмм обмена сообщениями, отрисованных программой MscGen, использующий функциональность расширения MediaWiki ExternalData.

Параметры:

  1. или msc — описание диаграммы на языке MSC. Если в описании присутсвует знак равенства, потребуется использовать синтаксис именованного параметра (1= или msc=). Если имеется символ |, его надо заменить на {{!}}.

ПримерыПравить

Описание Викитекст Вывод
Простой пример
{{mscgen|id=e1|msc=
msc {
  hscale = "1";

  a,b,c;

  a->b [ label = "ab()" ] ;
  b->c [ label = "bc(TRUE)"];
  c=>c [ label = "process(1)" ];
  c=>c [ label = "process(2)" ];
  ...;
  c=>c [ label = "process(n)" ];
  c=>c [ label = "process(END)" ];
  a<<=c [ label = "callback()"];
  ---  [ label = "If more to run", ID="*" ];
  a->a [ label = "next()"];
  a->c [ label = "ac1()\nac2()"];
  b<-c [ label = "cb(TRUE)"];
  b->b [ label = "stalled(...)"];
  a<-b [ label = "ab() = FALSE"];
}
}}

a b c ab() bc(TRUE) process(1) process(2) process(n) process(END) callback() If more to run * next() ac1() ac2() cb(TRUE) stalled(...) ab() = FALSE

Рамки
{{mscgen|id=e2|msc=
msc {

   # The entities
   A, B, C, D;

   # Small gap before the boxes
   {{!}}{{!}}{{!}};

   # Next four on same line due to ','
   A box A [label="box"],
   B rbox B [label="rbox"],
   C abox C [label="abox"],
   D note D [label="note"];

   # Example of the boxes with filled backgrounds
   A abox B [label="abox", textbgcolour="#ff7f7f"];
   B rbox C [label="rbox", textbgcolour="#7fff7f"];
   C note D [label="note", textbgcolour="#7f7fff"];
}
}}

A B C D box rbox abox note abox rbox note

Настройки викиПравить

Для работы шаблон требует установки расширения MediaWiki ExternalData, программы mscgen и настроек в LocalSettings.php:

$edgExeName             ['mscgen']  = 'mscgen';
$edgExeUrl              ['mscgen'] = 'https://www.mcternan.me.uk/mscgen/';
$edgExeVersion          ['mscgen'] = 'Mscgen version 0.20, Copyright (C) 2010 Michael C McTernan, [email protected]';
$edgExeCommand          ['mscgen'] = 'mscgen -Tsvg -o -';
$edgExeInput            ['mscgen'] = 'msc';
$edgExePreprocess       ['mscgen'] = 'EDConnectorExe::wikilinks4dot';
$edgExePostprocess      ['mscgen'] = 'EDConnectorExe::innerXML';
$edgExeTags             ['mscgen'] = 'mscgen';

СсылкиПравить