Skip to content

Commit f13e928

Browse files
committed
Adds initial setup of server-side syntax highlighting
1 parent e77a199 commit f13e928

File tree

6 files changed

+6079
-9
lines changed

6 files changed

+6079
-9
lines changed

Diff for: composer.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@
2222
"require": {
2323
"php": "^8.1",
2424
"filament/filament": "^3.0",
25+
"illuminate/contracts": "^10.0",
2526
"spatie/laravel-package-tools": "^1.15.0",
26-
"illuminate/contracts": "^10.0"
27+
"tempest/highlight": "dev-main"
2728
},
2829
"require-dev": {
2930
"laravel/pint": "^1.0",

Diff for: resources/css/index.css

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
@import '../../vendor/filament/filament/resources/css/theme.css';
2+
@import "../../vendor/tempest/highlight/src/Themes/highlight-light-lite.css";
23

34
.filament-syntax-entry-component .grid {
45
@apply block;

Diff for: resources/dist/filament-syntax-entry.css

+6,058-1
Large diffs are not rendered by default.

Diff for: resources/views/syntax-entry.blade.php

+1-4
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@ class="filament-syntax-entry"
66
package: 'parallax/filament-syntax-entry'
77
))]"
88
>
9-
<div>
10-
{{-- <pre><code>{{ $$getState() }}</code></pre> --}}
11-
{{ $getState() }}
12-
</div>
9+
<pre>{{ $getValue() }}</pre>
1310
</div>
1411
</x-dynamic-component>

Diff for: src/SyntaxEntry.php

+16-2
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,17 @@
33
namespace Parallax\FilamentSyntaxEntry;
44

55
use Closure;
6-
use Filament\Infolists\Components\Concerns\HasAffixes;
6+
use Filament\Infolists\Components\Concerns;
77
use Filament\Infolists\Components\Contracts\HasAffixActions;
88
use Filament\Infolists\Components\Entry;
9+
use Illuminate\Support\HtmlString;
10+
use Illuminate\Support\Str;
11+
use Tempest\Highlight\Highlighter;
912

1013
class SyntaxEntry extends Entry implements HasAffixActions
1114
{
12-
use HasAffixes;
15+
use Concerns\CanFormatState;
16+
use Concerns\HasAffixes;
1317

1418
protected string $view = 'filament-syntax-entry::syntax-entry';
1519

@@ -19,6 +23,16 @@ class SyntaxEntry extends Entry implements HasAffixActions
1923

2024
protected string | Closure | null $darkModeTheme = 'filament-dark';
2125

26+
public function getValue(): HtmlString
27+
{
28+
$state = $this->getState();
29+
$language = $this->language;
30+
$toParse = !is_string($state) || $language === 'json' ? json_encode($state, JSON_PRETTY_PRINT) : $state;
31+
$parsed = (new Highlighter())->parse($toParse, 'json');
32+
33+
return Str::of($parsed)->toHtmlString();
34+
}
35+
2236
public function language(string | Closure $language): static
2337
{
2438
$this->language = $language;

Diff for: tailwind.config.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ module.exports = {
99
],
1010
safelist: [
1111
/syntax-entry-.+/,
12-
/hljs-.+/
12+
/hl-.+/
1313
]
1414
}

0 commit comments

Comments
 (0)