. * */ namespace Friendica\Module; use Friendica\BaseModule; use Friendica\Content\Nav; use Friendica\Content\Text\Markdown; use Friendica\DI; use Friendica\Network\HTTPException; /** * Shows the friendica help based on the /doc/ directory */ class Help extends BaseModule { protected function content(array $request = []): string { Nav::setSelected('help'); $text = ''; $filename = ''; $config = DI::config(); $lang = DI::session()->get('language', $config->get('system', 'language')); // @TODO: Replace with parameter from router if (DI::args()->getArgc() > 1) { $path = ''; // looping through the argv keys bigger than 0 to build // a path relative to /help for ($x = 1; $x < DI::args()->getArgc(); $x ++) { if (strlen($path)) { $path .= '/'; } $path .= DI::args()->get($x); } $title = basename($path); $filename = $path; $text = self::loadDocFile('doc/' . $path . '.md', $lang); DI::page()['title'] = DI::l10n()->t('Help:') . ' ' . str_replace('-', ' ', $title); } $home = self::loadDocFile('doc/Home.md', $lang); if (!$text) { $text = $home; $filename = "Home"; DI::page()['title'] = DI::l10n()->t('Help'); } else { DI::page()['aside'] = Markdown::convert($home, false); } if (!strlen($text)) { throw new HTTPException\NotFoundException(); } $html = Markdown::convert($text, false); if ($filename !== "Home") { // create TOC but not for home $lines = explode("\n", $html); $toc = "