function ls($dir) {
$dir = rtrim(is_dir($dir) ? $dir : dirname($dir) ."/". basename($dir, ".md"), "/");
printf("<ul>\n");
- printf("<li>⇐ <a href=/>Home</a></li>\n");
+ printf("<li>⇐ <a href=>Home</a></li>\n");
if ($dir !== "." && ($dn = dirname($dir)) !== ".") {
- printf("<li>⇑ <a href=/%s>%s</a></li>\n",
+ printf("<li>⇑ <a href=%s>%s</a></li>\n",
urlpath($dir, ".."),
ns($dn));
}
if ($dir !== ".") {
printf("<ul>\n<li> %s</li>\n", ns($dir));
}
- printf("<ul>\n");
- foreach (scandir($dir) as $file) {
- /* ignore dot-files */
- if ($file{0} === ".") {
- continue;
- }
-
- $path = "$dir/$file";
-
- if (is_file($path)) {
- $pi = pathinfo($path);
- /* ignore files not ending in .md */
- if (!isset($pi["extension"]) || $pi["extension"] != "md") {
- continue;
- }
- /* ignore files where an accompanying directory exists */
- if (is_dir("$dir/".$pi["filename"])) {
- continue;
- }
- } else {
- /* ignore directories where no accompanying file exists */
- if (!is_file("$path.md")) {
- continue;
- }
+ if (($glob = glob("$dir/[_a-zA-Z]*.md"))) {
+ printf("<ul>\n");
+ foreach ($glob as $file) {
+ printf("<li>⇒ <a href=\"%s\">%s</a></li>\n",
+ urlpath($dir, $file),
+ ns("$dir/".basename($file, ".md")));
}
-
- printf("<li>⇒ <a href=\"/%s\">%s</a></li>\n",
- urlpath($dir, $file),
- ns("$dir/".basename($file, ".md")));
+ printf("</ul>\n");
}
- printf("</ul>\n");
if ($dir !== ".") {
printf("</ul>\n");
}
if ($pi["extension"] !== "md") {
return;
}
- if (!ctype_upper($pi["filename"][0])) {
- // namespaced functions
- $dir = $pi["dirname"] . "/" . $pi["filename"];
- if (is_dir($dir)) {
- printf("<h2>Functions:</h2>\n");
- printf("<ul>\n");
- foreach (scandir($dir) as $file) {
- if ($file{0} === "." || !is_file("$dir/$file") || ctype_upper($file{0})) {
- continue;
- }
- printf("<li><h3><a href=\"/%s\">%s</a></h3><p>%s</p><p>%s</p></li>\n",
- urlpath($dir, $file),
- basename($file, ".md"),
- @end(head("$dir/$file", 3)),
- join(" ", cut(head("$dir/$file"), ["f"=>"1-"]))
- );
- }
- printf("</ul>\n");
- }
- } else {
- // methods
- $dir = $pi["dirname"] . "/" . $pi["filename"];
- if (is_dir($dir)) {
- printf("<h2>Methods:</h2>\n");
- printf("<ul>\n");
- foreach (scandir($dir) as $file) {
- if ($file{0} === "." || !is_file("$dir/$file") || ctype_upper($file{0})) {
- continue;
- }
- printf("<li><h3><a href=\"/%s\">%s</a></h3><p>%s</p><p>%s</p></li>\n",
- urlpath($dir, $file),
- basename($file, ".md"),
- @end(head("$dir/$file", 3)),
- join(" ", cut(head("$dir/$file"), ["f"=>"1-"]))
- );
- }
- printf("</ul>\n");
+ $dir = $pi["dirname"] . "/" . $pi["filename"];
+ if (($glob = glob("$dir/[_a-z]*.md"))) {
+ printf("<h2>%s:</h2>\n", !ctype_upper($pi["filename"][0]) ?
+ "Functions" : "Methods");
+ printf("<ul>\n");
+ foreach ($glob as $file) {
+ printf("<li><h3><a href=\"%s\">%s</a></h3><p>%s</p><p>%s</p></li>\n",
+ urlpath($dir, $file),
+ basename($file, ".md"),
+ @end(head($file, 3)),
+ join(" ", cut(head($file), ["f"=>"1-"]))
+ );
}
+ printf("</ul>\n");
}
}
$r = fopen($file, "r");
$md = MarkdownDocument::createFromStream($r);
$md->compile(MarkdownDocument::AUTOLINK|MarkdownDocument::TOC);
- print str_replace("<br/>","<br />",$md->getHtml());
+ print $md->getHtml();
fclose($r);
ml($file);
break;
}
}
-chdir($_SERVER["DOCUMENT_ROOT"]);
+chdir(__DIR__);
$t = ["css"=>"text/css", "js"=>"application/javascript"];
$r = new http\Env\Request;
$u = new http\Url($r->getRequestUrl());
$s = new http\Env\Response;
-$p = ".". $u->path;
+$b = dirname($_SERVER["SCRIPT_NAME"]);
+$p = ".". substr($u->path, strlen($b));
switch($p) {
case "./index.php":
<head>
<meta charset="utf-8">
<title><?=ns($p)?></title>
- <link rel="stylesheet" href="/index.css">
+ <base href="<?=$b?>/">
+ <link rel="stylesheet" href="index.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <?php if (!extension_loaded("discount") || !getenv("DISCOUNT")) : ?>
- <script src="/markdown.js"></script>
- <?php endif; ?>
</head>
<body>
<div class="sidebar">
ob_end_flush();
?></pre>
<?php else: ?>
- <?php if (!md($p, $s)): ?>
- <?php endif; ?>
+ <?php md($p, $s); ?>
<?php endif; ?>
+
+ <div id="disqus_thread"></div>
+
<footer>
- <a href="/VERSION">Version</a>
- <a href="/AUTHORS">Authors</a>
- <a href="/LICENSE">License</a>
+ <a href="VERSION">Version</a>
+ <a href="AUTHORS">Authors</a>
+ <a href="LICENSE">License</a>
+ <?php if ($p !== "./") : ?>
+ <a href="https://github.com/m6w6/mdref/edit/master/<?=trim($p,"/")?>.md">Edit</a>
+ <?php endif; ?>
</footer>
- <script src="/index.js"></script>
+ <script src="index.js"></script>
+ <?php if ($_SERVER["SERVER_NAME"] != "localhost") : ?>
+ <script>
+ var disqus_shortname = 'mdref';
+ var disqus_identifier = '<?=$p?>';
+ (function() {
+ var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
+ dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+ })();
+ </script>
+ <?php endif; ?>
</body>
</html>
<?php