ben-rogerson / laravel-mix-twig-to-html

A Laravel Mix extension to convert Twig files to Html
MIT License
9 stars 6 forks source link
laravel-mix laravel-mix-plugin twig-templates twigjs

NPM NPM

Laravel Mix Twig to Html

A Laravel Mix extension to convert twig files to html.

Usage

Install the extension:

npm install laravel-mix-twig-to-html --save-dev

or

yarn add laravel-mix-twig-to-html --dev

Then require and configure the extension within your webpack.mix.js.

Simple configuration

Create the html pages from a string (or an array) of minimatch supported paths to your twig files.

const mix = require('laravel-mix');

require('laravel-mix-twig-to-html');

mix.twigToHtml({
    files: 'src/templates/**/*.{twig,html}',
    fileBase: 'src/templates',
});

Advanced configuration

Additional output options allow you to set custom html-webpack-plugin options and twig options.

const mix = require('laravel-mix');

require('laravel-mix-twig-to-html');

const files = [
    {
        template: 'src/templates/about/**/*.twig',
        title: 'About',
    },
    {
        template: 'src/templates/index.twig',
        title: 'Home',
        inject: false, // disable asset tag injection
    }
]

mix.twigToHtml({
    files: files,
    fileBase: 'src/templates',
    twigOptions: { data: {} },
});

Underscore to ignore

Files or folders prefixed with an underscore are ignored from html output. This is a handy feature for ignoring component and layout files.

Ignored files:
/_components/header.twig
/_layouts/base.twig
/_include.twig

Options

Name Type Default Description
files * string / array [] Paths to your twig source files (supports minimatch)
OR
An array of objects to pass to html-webpack-plugin
fileBase * string `` The base path to your template folder
twigOptions object {} The twig-html-loader options, see twig-html-loader for the options
enabled boolean true Turns the extension on or off manually

* = Required

Links

This extension was created for the Agency Webpack Mix Config.