rhymix/common/vendor/league/html-to-markdown/bin/html-to-markdown
Kijin Sung 5fff6b6eab Move all composer files inside the common directory
- 2022년 3월 개발팀 결정사항 적용
- 모듈 등 서드파티 자료 개발시 composer를 사용하면 상위 경로에 있는 코어의
  composer.json을 수정하고, 코어의 vendor 디렉토리를 건드리는 것이 기본값임
- 이를 방지하기 위해 코어의 composer.json과 vendor를 common 디렉토리 안으로
  이동하여, 모듈 경로에서 상위 폴더로 인식하지 않도록 함
2022-12-26 16:33:32 +09:00

108 lines
2 KiB
PHP
Executable file

#!/usr/bin/env php
<?php
requireAutoloader();
ini_set('display_errors', 'stderr');
foreach ($argv as $i => $arg) {
if ($i === 0) {
continue;
}
if (substr($arg, 0, 1) === '-') {
switch ($arg) {
case '-h':
case '--help':
echo getHelpText();
exit(0);
default:
fail('Unknown option: ' . $arg);
}
} else {
$src = $argv[1];
}
}
if (isset($src)) {
if (!file_exists($src)) {
fail('File not found: ' . $src);
}
$html = file_get_contents($src);
} else {
$stdin = fopen('php://stdin', 'r');
stream_set_blocking($stdin, false);
$html = stream_get_contents($stdin);
fclose($stdin);
if (empty($html)) {
fail(getHelpText());
}
}
$converter = new League\HTMLToMarkdown\HtmlConverter();
echo $converter->convert($html);
/**
* Get help and usage info
*
* @return string
*/
function getHelpText()
{
return <<<HELP
HTML To Markdown
Usage: html-to-markdown [OPTIONS] [FILE]
-h, --help Shows help and usage information
If no file is given, input will be read from STDIN
Examples:
Converting a file named document.html:
html-to-markdown document.html
Converting a file and saving its output:
html-to-markdown document.html > output.md
Converting from STDIN:
echo -e '<h1>Hello World!</h1>' | html-to-markdown
Converting from STDIN and saving the output:
echo -e '<h1>Hello World!</h1>' | html-to-markdown > output.md
HELP;
}
/**
* @param string $message Error message
*/
function fail($message)
{
fwrite(STDERR, $message . "\n");
exit(1);
}
function requireAutoloader()
{
$autoloadPaths = array(
// Local package usage
__DIR__ . '/../vendor/autoload.php',
// Package was included as a library
__DIR__ . '/../../../autoload.php',
);
foreach ($autoloadPaths as $path) {
if (file_exists($path)) {
require_once $path;
break;
}
}
}