mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-02-01 09:39:58 +09:00
- 2022년 3월 개발팀 결정사항 적용 - 모듈 등 서드파티 자료 개발시 composer를 사용하면 상위 경로에 있는 코어의 composer.json을 수정하고, 코어의 vendor 디렉토리를 건드리는 것이 기본값임 - 이를 방지하기 위해 코어의 composer.json과 vendor를 common 디렉토리 안으로 이동하여, 모듈 경로에서 상위 폴더로 인식하지 않도록 함
108 lines
2 KiB
PHP
Executable file
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;
|
|
}
|
|
}
|
|
}
|