Skip to content

Commit 8d9d624

Browse files
committed
Added a simple Twig extension to simplify using Vite in a template
1 parent c7028a4 commit 8d9d624

File tree

3 files changed

+26
-0
lines changed

3 files changed

+26
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
- Support for year, month, and day parameters on Channel Entries tag
1111
- Enhanced support for many template tags including `exp:channel:form, exp:member:custom_profile_data, exp:member:edit_avatar, exp:member:edit_profile, exp:member:forgot_password_form, exp:member:forgot_username_form, exp:member:login_form, exp:member:logout_form, exp:member:memberlist, exp:member:member_search, exp:member:registration_form`
1212
- Template Generator support for Twig and Blade template engines
13+
- Twig extension to simplify using Vite in a template, e.g. `{{ vite('ee::assets/style.scss') | raw }}`
1314

1415
### Fixed
1516

src/CoilpackServiceProvider.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ public function boot()
5252
Route::macro('templates', new Routing\TemplateRoute);
5353
Route::mixin(new Routing\CoilpackRoutes);
5454

55+
\TwigBridge\Facade\Twig::addExtension(new \Expressionengine\Coilpack\View\Extensions\TwigVite);
56+
5557
$this->loadRoutesFrom(__DIR__.'/../routes/web.php');
5658

5759
Event::listen(function (\Illuminate\Routing\Events\RouteMatched $event) {

src/View/Extensions/TwigVite.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
3+
namespace Expressionengine\Coilpack\View\Extensions;
4+
5+
use Illuminate\Foundation\Vite;
6+
use Twig\Extension\AbstractExtension;
7+
use Twig\Markup;
8+
use Twig\TwigFunction;
9+
10+
class TwigVite extends AbstractExtension
11+
{
12+
public function getFunctions(): array
13+
{
14+
return [
15+
new TwigFunction('vite', [$this, 'vite']),
16+
];
17+
}
18+
19+
public function vite(string $resource): string
20+
{
21+
return new Markup((new Vite)->__invoke($resource), 'UTF-8');
22+
}
23+
}

0 commit comments

Comments
 (0)