16 import(
'classes.handler.Handler');
23 parent::__construct();
32 function index($args, $request) {
33 $path =
'docs/manual/';
34 $urlPart = join(
'/', $request->getRequestedArgs());
35 $filename = $urlPart .
'.md';
38 $summaryFile = $path . $language .
'/SUMMARY.md';
41 if (!file_exists($path . $language) || !file_exists($summaryFile) || filesize($summaryFile)==0) $language =
'en';
43 if (!preg_match(
'#^([[a-zA-Z0-9_-]+/)+[a-zA-Z0-9_-]+\.\w+$#', $filename) || !file_exists($path . $filename)) {
44 $request->redirect(
null,
null,
null, array($language,
'SUMMARY'));
49 $previousLink = $nextLink =
null;
50 if (preg_match_all(
'/\(([^)]+)\)/sm', file_get_contents($summaryFile), $matches)) {
51 $matches = $matches[1];
52 if (($i = array_search(substr($urlPart, strpos($urlPart,
'/')+1), $matches)) !==
false) {
53 if ($i>0) $previousLink = $matches[$i-1];
54 if ($i<count($matches)-1) $nextLink = $matches[$i+1];
59 $parser = new \Michelf\Markdown;
60 $parser->url_filter_func =
function ($url) use ($filename) {
61 return (empty(parse_url($url)[
'host']) ? dirname($filename) .
'/' :
'') . $url;
66 'content' => $parser->transform(file_get_contents($path . $filename)),
67 'previous' => $previousLink,