From c8304a48c7e8f65186213b0c687630b6feaeace2 Mon Sep 17 00:00:00 2001
From: philipp lang <philipp@aweos.de>
Date: Sat, 17 Jul 2021 15:25:39 +0200
Subject: [PATCH] Add tex compiler

---
 app/Tex/TexCompiler.php        | 12 ++++++++++++
 app/Tex/TexServiceProvider.php | 35 ++++++++++++++++++++++++++++++++++
 2 files changed, 47 insertions(+)
 create mode 100644 app/Tex/TexCompiler.php
 create mode 100644 app/Tex/TexServiceProvider.php

diff --git a/app/Tex/TexCompiler.php b/app/Tex/TexCompiler.php
new file mode 100644
index 00000000..9acc455b
--- /dev/null
+++ b/app/Tex/TexCompiler.php
@@ -0,0 +1,12 @@
+<?php
+
+namespace App\Tex;
+
+use Illuminate\View\Compilers\BladeCompiler;
+
+class TexCompiler extends BladeCompiler
+{
+
+    protected $contentTags = ['<<<', '>>>'];
+
+}
diff --git a/app/Tex/TexServiceProvider.php b/app/Tex/TexServiceProvider.php
new file mode 100644
index 00000000..cea362cf
--- /dev/null
+++ b/app/Tex/TexServiceProvider.php
@@ -0,0 +1,35 @@
+<?php
+
+namespace App\Tex;
+
+use Illuminate\Support\ServiceProvider;
+use Illuminate\View\Compilers\BladeCompiler;
+use Illuminate\View\DynamicComponent;
+use Illuminate\View\Engines\CompilerEngine;
+
+class TexServiceProvider extends ServiceProvider
+{
+    /**
+     * Register services.
+     *
+     * @return void
+     */
+    public function register()
+    {
+        view()->addExtension('tex', 'tex', function() {
+            $compiler = new TexCompiler(app('files'), config('view.compiled'));
+
+            return new CompilerEngine($compiler, app('files'));
+        });
+    }
+
+    /**
+     * Bootstrap services.
+     *
+     * @return void
+     */
+    public function boot()
+    {
+        //
+    }
+}