phpexperts / tempest-highlight-api
tempest/highlight 的轻量级、Docker 化 API 服务器。
v1.5.0
2024-03-30 02:47 UTC
Requires
- php: ^8.3
- ext-json: *
- pecee/simple-router: ^5.4
- phpexperts/dockerize: ^9.1
- phpexperts/rest-speaker: ^2.6
- tempest/highlight: ^1.0
Requires (Dev)
- monolog/monolog: ^2.9
- octoper/cuzzle: ^3.1
- symfony/var-dumper: ^7.0
README
此代码托管于 https://highlight.phpexperts.pro/
许可证:MIT
https://github.com/PHPExpertsInc/highlight.phpexperts.pro/
API 路由
POST: /highlight
{
"lang": "language",
"text": "JSON-encoded text"
}
Output: text/html
安装说明
通过 Composer + Docker
composer create-project phpexperts/tempest-highlight-api
cd tempest-highlight-api
# Edit the desired HTTP port in `docker-compose.yml`.
docker compose up -d
通过 Git + Nginx
本地运行需要 PHP v8.3 或更高版本以及 ext-json 扩展。
sudo -s
cd /var/www
git clone https://github.com/PHPExpertsInc/highlight.phpexperts.pro
cd highlight.phpexperts.pro/
# Add a new virtualhost:
cp docker/web/sites/001_default.conf /etc/nginx/sites-available/999_my-highlighter.conf
# Edit it and add a `server_name my.url;` directive.
systemctl restart nginx
客户端
纯 JavaScript 客户端
<link rel="stylesheet" href="https://highlight.phpexperts.pro/css/highlight-tempest.css" /> <code lang="JavaScript"> console.log("Hello, World!"); </code> <script src="https://highlight.phpexperts.pro/js/highlight.min.js" defer="defer"></script>
PHP 客户端
首先,composer require phpexperts/rest-speaker
。然后
复制 [src/client.php] 或直接复制此代码。
use PHPExperts\RESTSpeaker\NoAuth; use PHPExperts\RESTSpeaker\RESTSpeaker; $url = 'https://highlight.phpexperts.pro'; $highlighter = new class(new NoAuth(), $url) extends RESTSpeaker { public function highlight(string $language, string $text): string { $result = $this->post('/highlight', [ 'lang' => $language, 'text' => $text ]); if ($this->getLastStatusCode() === 400) { throw new \RuntimeException($result); } return $result; } }; echo $highlighter->highlight('PHP', 'echo "Hello, World!\n";');