gulp-webp-retina-html
Version:
Replaces the <img> tag with <picture> <source> <img> in HTML files. Webp, retina, php tags and data- support.
115 lines (81 loc) • 2.48 kB
Markdown
# gulp-webp-retina-html
This is a modified version of the plugin [gulp-webp-html](https://www.npmjs.com/package/gulp-webp-html) and [gulp-webp-html-nosvg](https://www.npmjs.com/package/gulp-webp-html-nosvg).
Here was added support for retina images and PHP templates.
## Example
```html
// Input
<img src="/images/catalogImage.jpg" alt="<?php echo 'Image'; ?>">
// Output
<picture>
<source srcset="/images/catalogImage.webp" type="image/webp">
<source srcset="/images/catalogImage.jpg 1x, /images/catalogImage@2x.jpg 2x" type="image/jpeg">
<img src="/images/catalogImage.jpg" alt="<?php echo 'Image'; ?>">
</picture>
```
## Supported extensions
- `.jpg`, `.jpeg`, `.jfif`, `.pjpeg`, `.pjp`
- `.png`, `.apng`
- `.gif`
- `.svg`
- `.webp`
- `.bmp`
- `.ico`, `.cur`
- `.tif`, `.tiff`
- `.avif`
## Install
```bash
npm i --save-dev gulp-webp-retina-html
```
## Usage
```javascript
let webpHtml = require('gulp-webp-retina-html');
gulp.task('html',function(){
gulp.src('./assets/**/*.html')
.pipe(webpHtml())
.pipe(gulp.dest('./public/'))
});
// OR
gulp.task('html',function(){
gulp.src('./assets/**/*.html')
.pipe(webpHtml({
extensions: ['jpg', 'jpeg', 'png', 'gif'],
retina: {
1: '',
2: '@2x',
3: '@3x',
4: '@4x'
},
checkExists: true,
noWebp: false,
publicPath: '.'
}))
.pipe(gulp.dest('./public/'))
});
```
## Options
##### extensions
Type: `string[]`<br>
Default: `['jpg', 'jpeg', 'png', 'gif']`
Pass an array of extensions to specify files to process.
##### retina
Type: `object`<br>
Default: `{}`
Pass an object with name patterns for retina images. For example, {1: '', 2: '@2x'}.
##### checkExists
Type: `boolean`<br>
Default: `false`
If true, only files that exist in the directory, specified by the `src` attribute, will be added to the `<picture>` tag.
##### publicPath
Type: `string`<br>
Default: `.`
Public path where to check for image files specified in `src` attribute.
##### noWebp
Type: `boolean`<br>
Default: `false`
If true, disables generate `<source>` tag with webp images.
##### noscriptFallback
Type: `boolean`<br>
Default: `false`
If true, adds a `<noscript>` tag with a fallback image inside if using lazy loading of images with disabled JavaScript.
## Features
Doesn't modify `<img>` elements which are already inside `<picture>`