public function __construct()
 {
     $helper = new StyleguideComponents();
     $components = $this->sortComponents($helper->getAllComponents());
     /** @var \Wikia\UI\Component $button */
     $button = \Wikia\UI\Factory::getInstance()->init('button');
     $this->sectionData = ['header' => ['home' => ['mainHeader' => wfMessage('styleguide-home-header')->plain(), 'getStartedBtn' => $button->render(['type' => 'link', 'vars' => ['name' => 'get-started', 'href' => '#', 'classes' => 'button', 'value' => wfMessage('styleguide-get-started')->plain(), 'title' => wfMessage('styleguide-get-started')->plain()]]), 'version' => 'Version 1.0.0'], 'components' => ['sectionHeader' => wfMessage('styleguide-components-header')->plain(), 'tagLine' => wfMessage('styleguide-components-header-tagline')->plain()], 'tagLine' => wfMessage('styleguide-home-header-tagline')->plain()], 'footer' => ['list' => [['link' => '#', 'linkTitle' => wfMessage('styleguide-blog')->plain(), 'linkLabel' => wfMessage('styleguide-blog')->plain()], ['link' => '#', 'linkTitle' => wfMessage('styleguide-changelog')->plain(), 'linkLabel' => wfMessage('styleguide-changelog')->plain()]]], 'home' => ['sections' => [['header' => wfMessage('styleguide-home-welcome-message')->plain(), 'paragraph' => wfMessage('styleguide-home-welcome-tagline')->plain()], ['header' => wfMessage('styleguide-home-stakeholders-header')->plain(), 'paragraph' => wfMessage('styleguide-home-stakeholders-paragraph')->plain()], ['header' => wfMessage('styleguide-home-team-header')->plain(), 'paragraph' => wfMessage('styleguide-home-team-paragraph')->plain(), 'list' => [['link' => '', 'linkTitle' => 'Elizabeth Worthy', 'linkName' => 'Elizabeth Worthy', 'linkTagline' => wfMessage('styleguide-home-team-pm')->plain()], ['link' => '', 'linkTitle' => 'Rafał Leszczyński', 'linkName' => 'Rafał Leszczyński', 'linkTagline' => wfMessage('styleguide-home-team-engineer')->plain()], ['link' => '', 'linkTitle' => 'Mika Kozma', 'linkName' => 'Mika Kozma', 'linkTagline' => wfMessage('styleguide-home-team-designer')->plain()], ['link' => '', 'linkTitle' => 'Earl Carlson', 'linkName' => 'Earl Carlson', 'linkTagline' => wfMessage('styleguide-home-team-designer')->plain()]]]]], 'components' => ['exampleHeadline' => wfMessage('styleguide-examples-headline')->plain(), 'typesHeadline' => wfMessage('styleguide-types-headline')->plain(), 'paramCellHeadline' => wfMessage('styleguide-types-param-cell-headline')->plain(), 'templateVarCellHeadline' => wfMessage('styleguide-types-template-var-cell-headline')->plain(), 'typeCellHeadline' => wfMessage('styleguide-types-type-cell-headline')->plain(), 'valueObjectCellHeadline' => wfMessage('styleguide-types-value-object-cell-headline')->plain(), 'descCellHeadline' => wfMessage('styleguide-types-desc-cell-headline')->plain(), 'showParametersLink' => wfMessage('styleguide-show-parameters')->plain(), 'componentsList' => $components, 'toc' => $this->renderTOC($components)]];
 }
 /**
  * Include components messages files when recompiling the language cache
  *
  * @param $extensionMessagesFiles - array with extensions' messages files
  *
  * @return bool hook run status
  */
 public static function onBeforeExtensionMessagesRecache(&$extensionMessagesFiles)
 {
     // we don't want to use componentsNames from the cache when rebuilding the cache, as it won't speedup the process
     // anyway and we risk some of the messages won't get cached
     foreach (StyleguideComponents::loadComponentsFromFileSystem() as $componentName) {
         $componentMessageFile = self::getComponentMessagesFileFullPath($componentName);
         $extensionMessagesFiles['StyleguideComponents' . ucfirst($componentName)] = $componentMessageFile;
     }
     return true;
 }