Създаване на схема на свързани статии във wiki

January 14th, 2009 от singu

Наложи ми се да намеря начин за визуализация как точно са свързани дадени статии от wiki. След няколкодневно търсене и псуване открих комплект от плъгини за MediaWiki - DPL и Wgraph. Първият генерира динамични списъци от статии по зададен критерии, а вторият може да генерира графове ( като този на картинката ) от хмм… текст. Направо всичко е цветя и рози… ама не:

1. Проблемация първа – подкарването на Wgraph се оказа голям проблем. Първо описанието на инсталацията е хем подробно, хем неясно. Второ, подкарването на плъгина изисква свалянето на два отделни изпълними файла – aiSee и recode. На всичкото отгоре работи само aiSee2, не и последната версия ( познайте аз с коя пробвах първо ? )

2. Проблемация втора – след като свалите всичко, сложите правилните изпълними файлове в правилните директории, сложите им правилните права за стартиране ( ! ) и ги направите собственост на правилните потребители ( !!! ), получавате нещо от сорта  при опит за генериране на графика:

<html><a href="/images/Wgraph/Main_Page_1.svg?1231800813" target=wgraph><img src="/images/Wgraph/Main_Page_1_thumb.png?1231800813" title="click for SVG .."></a>

(made with <a href=http://semeb.com/dpldemo/Wgraph target=wgraph>Wgraph</a>)

</html>

което изглежда като валиден HTML код, файла също е генериран правилно, картинката си е на място, просто не се показва. Първосигналната реакция беше да разреша HTML във wiki-то повсеместно, чрез параметъра “$wgRawHtml = true” в Localsettings.php, но и това не помогна. Чак след сериозно зачитане в кода на плъгина се оказа, че изхода му не е връщан коректно на MediaWiki и в резултат се очаква да е wikitext. На всичкото отгоре плъгина наглярски сам си разрешава $wgRawHtml, което определено е голяма дупка в сигурността, особено в публични wiki-та.

Решение на проблема – във Wgraph.php намирате следните редове:

global $wgRawHtml;
$wgRawHtml = true;

и ги коментирате. След това намирате реда в който се връща резултата:

 return $result; // . $wgraph. ":". $thumbResolution ."/".$resolution. ' , '.$clipThumb . '---'. $clipImg;

и го замествате с правилния:

 return array( $result, noparse => true, isHTML => true );

Voila – имаме си графика. За повече информация защо и как действа това – прочетете тази статия[eng].

3. Проблемация последна – никъде не е документирано как точно да се вържат двата плъгина или по-точно как изхода от DPL да бъде докаран до валиден входен код за Wgraph. Истината е чак в 4-тия пример на сайта им, заровен дълбоко – използват се няколко темплейта на MediaWiki, за да се изфилтрират данните.

В крайна сметка се оказа, че са малко недоклатени плъгини ( по-точно Wgraph ), но правят това, което ми трябва. На наколко пъти обмислях да си седна на четирибуквието и да си напиша собсвен плъгин на базата на graphviz, който да не изисква подобни фокуси, но за съжаление това ще го оставим за по-добри времена.

Подобни статии:

  1. Уязвимост във FireFox 2.0.0.12 само часове след пускането и.
  2. Деактивиране на Location-aware във Firefox 3.5
  3. Следите остават ( във MS Office )

Коментирайте

Внимание: Модерирането на коментари е включено и може да доведе до забавяне на публикуването на вашият коментар. Моля за търпение.