function List_Files($Files, $Recursive = true, $Sub = false) { global $MDR; $Return = '<ul>'; foreach ($Files as $File => $Title) { if (is_array($Title)) { require_once $MDR['Core'] . '/function.url_to_title.php'; $Return .= '<li><a href="' . $File . '"><em>' . url_to_title($File) . '</em></a></li>'; if ($Recursive) { $Return .= List_Files($Title, $Recursive, $File); } } else { if ($File != '__NON_RECURSIVE__') { $Return .= '<li><a href="'; if ($Sub) { $Return .= $Sub; } $Return .= $File . '">' . $Title . '</a></li>'; } else { $Return .= '<li>' . $Title . '</li>'; } } } $Return .= '</ul>'; return $Return; }
function Title_Files($Files, $Recursive = true) { global $MDR; foreach ($Files as $File => $Title) { if (is_array($Title) && (!$Recursive || empty($Title))) { unset($Files[$File]); } else { if (is_array($Title)) { $Files[$File] = Title_Files($Title, $Recursive); } else { if (empty($Title)) { require_once $MDR['Core'] . '/function.url_to_title.php'; $Files[$File] = url_to_title($File); } } } } return $Files; }
function Find_Files($Directory, $Recursive = true, $Recurred = false) { global $MDR; $Files = array(); foreach (glob($Directory . '/*.md') as $File) { if (strpos($File, '/_') === false) { $File = substr($File, 0, -3); if ($Recurred) { $URL = str_replace($Directory, '', $File); } else { $URL = str_replace($MDR['Root'], '', $File); } require_once $MDR['Core'] . '/function.url_to_title.php'; $Files[$URL] = url_to_title(str_replace($Directory, '', $File)); } } // FOREACHDIRECTORY // Search in ALL sub-directories. foreach (glob($Directory . '/*', GLOB_ONLYDIR) as $Sub) { // This is a recursive function. // Usually, THIS IS VERY BAD. // For searching recursively however, // it does make some sense. if (substr($Sub, -7) != '/assets' && strpos($Sub, '/_') === false) { if ($Recursive) { $Sub_Files = Find_Files($Sub, $Recursive, true); } else { $Sub_Files = array('__NON_RECURSIVE__' => '…'); } $Sub = str_replace($MDR['Root'], '', $Sub); $Files[$Sub] = $Sub_Files; } } // FOREACHDIRECTORY return $Files; }
// Footer echo '</div>'; include $Templates['Footer']; } else { // Render the file if (is_readable($Request['Directory'])) { // Apparently this isn't a directory, just a poorly named file. $Content = file_get_contents($Request['Directory']); $Request['Source'] = $Request['Directory']; } else { $Content = file_get_contents($Request['Markdown']); $Request['Source'] = $Request['Markdown']; } $Request['Source'] = str_replace($MDR['Root'], '', $Request['Source']); require_once $MDR['Core'] . '/function.url_to_title.php'; $page['title'] = url_to_title(basename($Request['Source'], '.md')); // Syntax highlighting $page['scripts'] = '<script src="scripts/highlight.pack.js"></script>'; $page['scripts'] .= '<script src="scripts/docs/main.js"></script>'; $page['scripts'] .= '<link rel="stylesheet" type="text/css" media="all" href="styles/solarized_light.css">'; $page['scripts'] .= '<link rel="stylesheet" type="text/css" media="all" href="styles/solarized_dark_bash.css">'; $page['scripts'] .= '<link rel="stylesheet" type="text/css" media="all" href="styles/docs.css">'; $page['theme-color'] = '#3A416F'; include $Templates['Header']; echo '<div class="row docs">'; include $Templates['Alert']; require_once $Libraries['Parsedown']; require_once $Libraries['ParsedownExtra']; $Parsedown = new ParsedownExtra(); $Content = $Parsedown->text($Content); $Content = str_replace('⌘', '⌘', $Content);