Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/phpexpertsinc/highlight.phpexperts.pro
A self-hosted API server for utilizing tempest/highlight for any web project.
https://github.com/phpexpertsinc/highlight.phpexperts.pro
Last synced: about 6 hours ago
JSON representation
A self-hosted API server for utilizing tempest/highlight for any web project.
- Host: GitHub
- URL: https://github.com/phpexpertsinc/highlight.phpexperts.pro
- Owner: PHPExpertsInc
- License: mit
- Created: 2024-03-29T18:38:32.000Z (8 months ago)
- Default Branch: trunk
- Last Pushed: 2024-03-30T03:14:17.000Z (8 months ago)
- Last Synced: 2024-03-31T03:30:18.162Z (8 months ago)
- Language: PHP
- Size: 664 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## tempest/highlight API Server ##
This code is hosted at https://highlight.phpexperts.pro/
License: MIT
https://github.com/PHPExpertsInc/highlight.phpexperts.pro/
### API Routes ###
POST: /highlight
{
"lang": "language",
"text": "JSON-encoded text"
}
Output: text/html### Installation Instructions
**Via 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**Via Git + Nginx:**
Running natively requires PHP v8.3 or higher with 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## Clients ##
### Pure JavaScript Client ###
```html
console.log("Hello, World!");
```### PHP Client ###
First, `composer require phpexperts/rest-speaker`. Then:
Copy [src/client.php] or copy this code directly.
```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";');
```