X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=funcsummary.php;h=f4830e022223a79d2211c7b9f62fadc247b3e2ad;hp=f5330e69e9bff18e44e6ed98118b4274bf0ee3b7;hb=39feb7a7e30bb4b393a6f76aa2f35d4e9275523e;hpb=a12e8ddfaa5a94e76261f165b0c0299c87b886b1 diff --git a/funcsummary.php b/funcsummary.php index f5330e6..f4830e0 100644 --- a/funcsummary.php +++ b/funcsummary.php @@ -14,11 +14,18 @@ function ff($t) { $t = preg_replace('/^ \* /m', '', trim($t, "*/ \n")); $t = preg_replace_callback('/(\<\?php.*?\?\>)/s', 'hl', $t); - $t = nl2br(preg_replace('/\n *\* */', "\n", $t)); + $t = str_replace("
\n
\n", "

\n

", nl2br(preg_replace('/\n *\* */', "\n", $t))); $t = preg_replace('/(\
\n)+\(\
\n)+/', '

', $t);
     $t = preg_replace('/(\
\n)+\<\/pre\>(\
\n)+/', '

', $t); + $t = str_replace("
\n", "", $t); return sprintf('

%s

', ltrim($t, ' *')); } +function e($s) +{ + $a = func_get_args(); + array_unshift($a, STDERR); + call_user_func_array('fprintf', $a); +} $preface = <<<_PREFACE @@ -29,13 +36,20 @@ $preface = <<<_PREFACE font-size: 80%%; font-family: sans-serif; } - h2 { + h2, h3 { color: #339; clear: both; font-size: 1.2em; background: #ffc; padding: .2em; } + h2.o { + color: #66b; + clear: both; + font-size: 1.3em; + background: #f0f0f0; + padding: .2em; + } p { margin-left: 1em; } @@ -53,9 +67,32 @@ $preface = <<<_PREFACE width: auto; float: left; } + p, pre { + clear: both; + } p br, pre code br { display: block; } + .toc { + position: absolute; + top: 10px; + right: 10px; + width: 300px; + height: 95%%; + overflow: scroll; + font-size: .9em; + } + body>div.toc { + position: fixed; + } + .toc ul { + padding-left: 15px; + margin-left: 0; + } + .toc li { + padding: 0; + margin: 0; + } @@ -65,23 +102,59 @@ $footer = <<<_FOOTER

Generated at: %s

+ _FOOTER; if ($_SERVER['argc'] < 2) { die("Usage: {$_SERVER['argv'][0]} [ ...]\n"); } +$TOC = array(); + printf($preface, basename(getcwd())); -foreach (array_slice($_SERVER['argv'], 1) as $f) { - if (mf($f, $m)) { - printf("

%s

\n", basename($f)); - foreach ($m[1] as $i => $p) { - printf("

%s

\n%s\n", $m[4][$i], $p, ff($m[3][$i])); +foreach (array_slice($_SERVER['argv'], 1) as $fp) { + foreach (glob($fp) as $f) { + + if (mf($f, $m)) { + e("\nAnalyzing %s\n", basename($f)); + printf("

%s

\n", basename($f), basename($f)); + foreach ($m[1] as $i => $p) { + e("Documenting $p\n"); + if ($o = preg_match('/^(.*), (.*)$/', $m[4][$i], $n)) { + if ($n[2] == '__construct') { + printf("

%s

\n", $n[1], $n[1]); + } + $TOC[basename($f)][$n[1]][$n[2]] = $n[1].'::'.$n[2].'()'; + printf("%s\n", 3, $n[1].'_'.$n[2], $p, 3); + } else { + $TOC[basename($f)][$m[4][$i]] = $m[4][$i].'()'; + printf("%s\n", 2, $m[4][$i], $p, 2); + } + print ff($m[3][$i]) ."\n"; + } + print "
\n"; } - print "
\n"; } } +printf("
Table of Contents\n\n
\n"); printf($footer, date('r')); -?> \ No newline at end of file +e("\nDone\n"); +?> +