| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 | 
							- #!/usr/bin/env php
 
- <?php
 
- /**
 
-  * @copyright Copyright (c) 2014 Carsten Brandt
 
-  * @license https://github.com/cebe/markdown/blob/master/LICENSE
 
-  * @link https://github.com/cebe/markdown#readme
 
-  */
 
- $composerAutoload = [
 
-     __DIR__ . '/../vendor/autoload.php', // standalone with "composer install" run
 
-     __DIR__ . '/../../../autoload.php', // script is installed as a composer binary
 
- ];
 
- foreach ($composerAutoload as $autoload) {
 
-     if (file_exists($autoload)) {
 
-         require($autoload);
 
-         break;
 
-     }
 
- }
 
- // Send all errors to stderr
 
- ini_set('display_errors', 'stderr');
 
- $flavor = 'cebe\\markdown\\Markdown';
 
- $flavors = [
 
- 	'gfm'   => ['cebe\\markdown\\GithubMarkdown', __DIR__ . '/../GithubMarkdown.php'],
 
- 	'extra' => ['cebe\\markdown\\MarkdownExtra', __DIR__ . '/../MarkdownExtra.php'],
 
- ];
 
- $full = false;
 
- $src = [];
 
- foreach($argv as $k => $arg) {
 
- 	if ($k == 0) {
 
- 		continue;
 
- 	}
 
- 	if ($arg[0] == '-') {
 
- 		$arg = explode('=', $arg);
 
- 		switch($arg[0]) {
 
- 			case '--flavor':
 
- 				if (isset($arg[1])) {
 
- 					if (isset($flavors[$arg[1]])) {
 
- 						require($flavors[$arg[1]][1]);
 
- 						$flavor = $flavors[$arg[1]][0];
 
- 					} else {
 
- 						error("Unknown flavor: " . $arg[1], "usage");
 
- 					}
 
- 				} else {
 
- 					error("Incomplete argument --flavor!", "usage");
 
- 				}
 
- 			break;
 
- 			case '--full':
 
- 				$full = true;
 
- 			break;
 
- 			case '-h':
 
- 			case '--help':
 
- 				echo "PHP Markdown to HTML converter\n";
 
- 				echo "------------------------------\n\n";
 
- 				echo "by Carsten Brandt <mail@cebe.cc>\n\n";
 
- 				usage();
 
- 			break;
 
- 			default:
 
- 				error("Unknown argument " . $arg[0], "usage");
 
- 		}
 
- 	} else {
 
- 		$src[] = $arg;
 
- 	}
 
- }
 
- if (empty($src)) {
 
- 	$markdown = file_get_contents("php://stdin");
 
- } elseif (count($src) == 1) {
 
- 	$file = reset($src);
 
- 	if (!file_exists($file)) {
 
- 		error("File does not exist:" . $file);
 
- 	}
 
- 	$markdown = file_get_contents($file);
 
- } else {
 
- 	error("Converting multiple files is not yet supported.", "usage");
 
- }
 
- /** @var cebe\markdown\Parser $md */
 
- $md = new $flavor();
 
- $markup = $md->parse($markdown);
 
- if ($full) {
 
- 	echo <<<HTML
 
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 
- 	"http://www.w3.org/TR/html4/loose.dtd">
 
- <html>
 
- <head>
 
- 	<meta http-equiv="content-type" content="text/html; charset=utf-8">
 
- 	<style>
 
- 		body { font-family: Arial, sans-serif; }
 
- 		code { background: #eeeeff; padding: 2px; }
 
- 		li { margin-bottom: 5px; }
 
- 		img { max-width: 1200px; }
 
- 		table, td, th { border: solid 1px #ccc; border-collapse: collapse; }
 
- 	</style>
 
- </head>
 
- <body>
 
- $markup
 
- </body>
 
- </html>
 
- HTML;
 
- } else {
 
- 	echo $markup;
 
- }
 
- // functions
 
- /**
 
-  * Display usage information
 
-  */
 
- function usage() {
 
- 	global $argv;
 
- 	$cmd = $argv[0];
 
- 	echo <<<EOF
 
- Usage:
 
-     $cmd [--flavor=<flavor>] [--full] [file.md]
 
-     --flavor  specifies the markdown flavor to use. If omitted the original markdown by John Gruber [1] will be used.
 
-               Available flavors:
 
-               gfm   - Github flavored markdown [2]
 
-               extra - Markdown Extra [3]
 
-     --full    ouput a full HTML page with head and body. If not given, only the parsed markdown will be output.
 
-     --help    shows this usage information.
 
-     If no file is specified input will be read from STDIN.
 
- Examples:
 
-     Render a file with original markdown:
 
-         $cmd README.md > README.html
 
-     Render a file using gihtub flavored markdown:
 
-         $cmd --flavor=gfm README.md > README.html
 
-     Convert the original markdown description to html using STDIN:
 
-         curl http://daringfireball.net/projects/markdown/syntax.text | $cmd > md.html
 
- [1] http://daringfireball.net/projects/markdown/syntax
 
- [2] https://help.github.com/articles/github-flavored-markdown
 
- [3] http://michelf.ca/projects/php-markdown/extra/
 
- EOF;
 
- 	exit(1);
 
- }
 
- /**
 
-  * Send custom error message to stderr
 
-  * @param $message string
 
-  * @param $callback mixed called before script exit
 
-  * @return void
 
-  */
 
- function error($message, $callback = null) {
 
- 	$fe = fopen("php://stderr", "w");
 
- 	fwrite($fe, "Error: " . $message . "\n");
 
- 	if (is_callable($callback)) {
 
- 		call_user_func($callback);
 
- 	}
 
- 	exit(1);
 
- }
 
 
  |