@newlogic-digital/core 0.9.13 → 1.0.0-beta.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. package/README.md +15 -45
  2. package/index.js +262 -43
  3. package/package.json +13 -58
  4. package/LICENSE +0 -674
  5. package/modules/Core.js +0 -626
  6. package/modules/Emails.js +0 -110
  7. package/modules/Icons.js +0 -140
  8. package/modules/Scripts.js +0 -321
  9. package/modules/Serve.js +0 -124
  10. package/modules/Styles.js +0 -298
  11. package/modules/Templates.js +0 -468
  12. package/modules/Utils.js +0 -299
  13. package/modules/Watch.js +0 -75
  14. package/modules/tailwind/index.cjs +0 -84
  15. package/modules/tailwind/index.js +0 -75
  16. package/packages/gulp-clean-css/LICENSE +0 -20
  17. package/packages/gulp-clean-css/README.md +0 -79
  18. package/packages/gulp-clean-css/index.js +0 -66
  19. package/packages/gulp-clean-css/package.json +0 -68
  20. package/packages/gulp-twig2html/CHANGELOG.md +0 -77
  21. package/packages/gulp-twig2html/LICENSE +0 -22
  22. package/packages/gulp-twig2html/README.md +0 -112
  23. package/packages/gulp-twig2html/index.js +0 -30
  24. package/packages/gulp-twig2html/package.json +0 -47
  25. package/packages/postcss-inset/CHANGELOG.md +0 -5
  26. package/packages/postcss-inset/LICENSE.md +0 -106
  27. package/packages/postcss-inset/README.md +0 -121
  28. package/packages/postcss-inset/index.cjs.js +0 -49
  29. package/packages/postcss-inset/index.es.mjs +0 -47
  30. package/packages/postcss-inset/index.js +0 -47
  31. package/packages/postcss-inset/package.json +0 -58
  32. package/packages/twig-renderer/CHANGELOG.md +0 -66
  33. package/packages/twig-renderer/LICENSE +0 -22
  34. package/packages/twig-renderer/README.md +0 -93
  35. package/packages/twig-renderer/package.json +0 -49
  36. package/packages/twig-renderer/twig-renderer.js +0 -90
@@ -1,66 +0,0 @@
1
- const applySourceMap = require('vinyl-sourcemaps-apply');
2
- const CleanCSS = require('clean-css');
3
- const path = require('path');
4
- const PluginError = require('plugin-error');
5
- const through = require('through2');
6
-
7
- module.exports = (options, callback) => {
8
-
9
- let _callback = callback || (o => undefined);
10
-
11
- return through.obj(function (file, enc, cb) {
12
-
13
- let _options = Object.assign({}, options || {});
14
-
15
- if (file.isNull()) {
16
- return cb(null, file);
17
- }
18
- if (file.isStream()) {
19
- this.emit('error', new PluginError('gulp-clean-css', 'Streaming not supported!'));
20
- return cb(null, file);
21
- }
22
-
23
- if (file.sourceMap) {
24
- _options.sourceMap = JSON.parse(JSON.stringify(file.sourceMap));
25
- }
26
-
27
- const content = {
28
- [file.path]: {styles: file.contents ? file.contents.toString() : ''}
29
- };
30
- if (!_options.rebaseTo && _options.rebase !== false) {
31
- _options.rebaseTo = path.dirname(file.path);
32
- }
33
-
34
- new CleanCSS(_options).minify(content, (errors, css) => {
35
-
36
- if (errors) {
37
- return cb(errors.join(' '));
38
- }
39
-
40
- let details = {
41
- 'stats': css.stats,
42
- 'errors': css.errors,
43
- 'warnings': css.warnings,
44
- 'path': file.path,
45
- 'name': file.path.split(file.base)[1]
46
- };
47
-
48
- if (css.sourceMap) {
49
- details['sourceMap'] = css.sourceMap;
50
- }
51
- _callback(details);
52
-
53
- file.contents = new Buffer.from(css.styles);
54
-
55
- if (css.sourceMap) {
56
- const iMap = JSON.parse(css.sourceMap);
57
- const oMap = Object.assign({}, iMap, {
58
- file: path.relative(file.base, file.path),
59
- sources: iMap.sources.map(mapSrc => path.relative(file.base, mapSrc))
60
- });
61
- applySourceMap(file, oMap);
62
- }
63
- cb(null, file);
64
- });
65
- });
66
- };
@@ -1,68 +0,0 @@
1
- {
2
- "name": "gulp-clean-css",
3
- "description": "Minify css with clean-css.",
4
- "homepage": "https://github.com/scniro/gulp-clean-css#readme",
5
- "version": "4.2.0",
6
- "author": "scniro",
7
- "license": "MIT",
8
- "bugs": {
9
- "url": "https://github.com/scniro/gulp-clean-css/issues",
10
- "email": "scniro@outlook.com"
11
- },
12
- "repository": {
13
- "type": "git",
14
- "url": "https://github.com/scniro/gulp-clean-css.git"
15
- },
16
- "files": [
17
- "index.js"
18
- ],
19
- "keywords": [
20
- "css",
21
- "clean",
22
- "minify",
23
- "uglify",
24
- "clean-css",
25
- "minify-css",
26
- "gulp-minify-css",
27
- "gulp-clean-css",
28
- "gulpplugin",
29
- "gulpfriendly"
30
- ],
31
- "nyc": {
32
- "report-dir": "./.coverage",
33
- "reporter": [
34
- "lcov",
35
- "text"
36
- ],
37
- "include": [
38
- "index.js"
39
- ],
40
- "sourceMap": false,
41
- "temp-dir": "./.coverage/.nyc_output"
42
- },
43
- "dependencies": {
44
- "clean-css": "5.0.1",
45
- "plugin-error": "1.0.1",
46
- "through2": "3.0.1",
47
- "vinyl-sourcemaps-apply": "0.2.1"
48
- },
49
- "devDependencies": {
50
- "chai": "4.2.0",
51
- "chai-string": "1.5.0",
52
- "coveralls": "3.0.9",
53
- "express": "4.17.1",
54
- "fancy-log": "1.3.3",
55
- "gulp": "4.0.2",
56
- "gulp-concat": "2.6.1",
57
- "gulp-rename": "2.0.0",
58
- "gulp-sass": "4.0.2",
59
- "gulp-sourcemaps": "2.6.5",
60
- "mocha": "7.0.0",
61
- "nyc": "15.0.0",
62
- "vinyl": "2.2.0"
63
- },
64
- "scripts": {
65
- "cover": "./node_modules/.bin/nyc npm test",
66
- "test": "./node_modules/.bin/mocha ./index.spec.js"
67
- }
68
- }
@@ -1,77 +0,0 @@
1
- # Release History
2
-
3
- ## v2.2.0, 2021-03-12
4
- * update `twig-renderer`
5
- * update `devDependencies`
6
-
7
- ---
8
-
9
- ## v2.1.0, 2020-08-04
10
- * drop node 8 support in tests
11
- * update `dependencies`
12
- * update `devDependencies`
13
-
14
- ---
15
-
16
- ## v2.0.2, 2019-07-17
17
- * remove node 6 from travis tests
18
-
19
- ---
20
-
21
- ## v2.0.1, 2019-07-16
22
- * update `dependencies`
23
- * update `devDependencies`
24
-
25
- ---
26
-
27
- ## v2.0.0, 2019-06-07
28
- * change context hierarchy
29
- * move renderer to separate package
30
-
31
- ---
32
-
33
- ## v1.2.1, 2019-05-06
34
- * update `twig` to 1.13.2
35
- * update `devDependencies`
36
-
37
- ---
38
-
39
- ## v1.2.0, 2019-03-26
40
- * add namespaces support
41
- * fix npm vulnerabilities
42
- * update `README`
43
- * update `dependencies`
44
-
45
- ---
46
-
47
- ## v1.1.2, 2019-02-07
48
- * update `twig` to 1.13.2
49
- * update `devDependencies`
50
- * update `README`
51
-
52
- ---
53
-
54
- ## v1.1.1, 2019-01-11
55
- * update `package-lock.json` to fix travis-ci
56
-
57
- ---
58
-
59
- ## v1.1.0, 2019-01-11
60
- * update `twig` to 1.13.0
61
- * update `devDependencies`
62
-
63
- ---
64
-
65
- ## v1.0.0, 2018-11-27
66
- * move to Gulp 4
67
- * update dependencies
68
-
69
- ---
70
-
71
- ## v0.1.1, 2018-09-11
72
- * add `eslint` to `package.json`
73
-
74
- ---
75
-
76
- ## v0.1.0, 2018-09-11
77
- * defined `twig2html` task
@@ -1,22 +0,0 @@
1
- Copyright (c) 2017-2018, Viktor Dmitrievtsev and the gulp-twig2html Contributors
2
-
3
- Permission is hereby granted, free of charge, to any person
4
- obtaining a copy of this software and associated documentation
5
- files (the "Software"), to deal in the Software without
6
- restriction, including without limitation the rights to use,
7
- copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- copies of the Software, and to permit persons to whom the
9
- Software is furnished to do so, subject to the following
10
- conditions:
11
-
12
- The above copyright notice and this permission notice shall be
13
- included in all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17
- OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19
- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
- OTHER DEALINGS IN THE SOFTWARE.
@@ -1,112 +0,0 @@
1
- # gulp-twig2html [![pipeline status](https://gitlab.com/toptalo/gulp-twig2html/badges/master/pipeline.svg)](https://gitlab.com/toptalo/gulp-twig2html/commits/master)
2
-
3
- Gulp plugin that compile twig templates to html pages.
4
-
5
- Build upon [Twig.js](https://github.com/twigjs/twig.js), the JS port of the Twig templating language by John Roepke.
6
-
7
- ## Install
8
-
9
- ```shell
10
- npm install gulp-twig2html --save
11
- ```
12
-
13
- ## The "twig2html" task
14
-
15
- ### Usage
16
-
17
- ```js
18
- const gulp = require('gulp');
19
- const rename = require('gulp-rename');
20
- const twig2html = require('gulp-twig2html');
21
-
22
- gulp.task('twig2html', () => {
23
- return gulp.src('src/*.twig')
24
- .pipe(twig2html({
25
- // Task-specific options go here.
26
- }))
27
- .pipe(rename({ extname: '.html' }))
28
- .pipe(gulp.dest('dist'));
29
- });
30
- ```
31
-
32
- ### Options
33
-
34
- #### options.globals
35
- Type: `String`
36
- Default value: `''`
37
-
38
- Path to JSON file with global context variables.
39
-
40
- #### options.extensions
41
- Type: `Array`
42
- Default value: `[]`
43
-
44
- Can be an array of functions that extend TwigJS with [custom tags](https://github.com/twigjs/twig.js/wiki/Extending-twig.js-With-Custom-Tags).
45
-
46
- #### options.functions
47
- Type: `Object`
48
- Default value: `{}`
49
-
50
- Object hash defining [functions in TwigJS](https://github.com/twigjs/twig.js/wiki/Extending-twig.js#functions).
51
-
52
- #### options.filters
53
- Type: `Object`
54
- Default value: `{}`
55
-
56
- Object hash defining [filters in TwigJS](https://github.com/twigjs/twig.js/wiki/Extending-twig.js#filters).
57
-
58
- #### options.context
59
- Type: `Object`
60
- Default value: `{}`
61
-
62
- Object hash defining templates context variables.
63
-
64
- #### options.separator
65
- Type: `String`
66
- Default value: `'\n'`
67
-
68
- A string that is inserted between each compiled template when concatenating templates.
69
-
70
- #### options.namespaces
71
- Type: `Object`
72
- Default value: `{}`
73
-
74
- Object hash defining namespaces.
75
-
76
- ### Usage Examples
77
-
78
- ```js
79
- const gulp = require('gulp');
80
- const rename = require('gulp-rename');
81
- const twig2html = require('gulp-twig2html');
82
-
83
- gulp.task('twig2html', () => {
84
- return gulp.src('src/*.html')
85
- .pipe(twig2html({
86
- context: {}, // task specific context object hash
87
- globals: 'path/to/globals.json'
88
- }))
89
- .pipe(rename({ extname: '.html' }))
90
- .pipe(gulp.dest('dist'));
91
- });
92
- ```
93
-
94
- #### Context hierarchy
95
-
96
- Template context extends in this order:
97
- * `options.context` if provided
98
- * `options.globals` if provided
99
- * template JSON context files (stored in template path, with same name,
100
- example: `/templates/index.json` for `/templates/index.twig`) if provided
101
-
102
- ## Contributing
103
- In lieu of a formal style guide, take care to maintain the existing coding style.
104
- Add unit tests for any new or changed functionality.
105
- Lint and test your code using [ESLint](https://eslint.org/) and [Jest](https://jestjs.io/).
106
-
107
- ## Sponsored by
108
-
109
- [![DesignDepot](https://designdepot.ru/static/core/img/logo.png)](https://designdepot.ru/?utm_source=web&utm_medium=npm&utm_campaign=gulp-twig2html)
110
-
111
- ## Release History
112
- See the [CHANGELOG](CHANGELOG.md).
@@ -1,30 +0,0 @@
1
- 'use strict';
2
-
3
- const TwigRenderer = require('../twig-renderer/twig-renderer.js');
4
- const through = require('through2');
5
- const PluginError = require('plugin-error');
6
-
7
- const PLUGIN_NAME = 'gulp-twig2html';
8
-
9
- module.exports = params => {
10
- const twigRenderer = new TwigRenderer(params);
11
-
12
- return through.obj(function (file, enc, callback) {
13
- if (file.isNull()) {
14
- callback(null, file);
15
- return;
16
- }
17
-
18
- if (file.isStream()) {
19
- throw new PluginError(PLUGIN_NAME, 'Streaming not supported');
20
- } else {
21
- twigRenderer.render(file.path).then(html => {
22
- file.contents = Buffer.from(html);
23
- this.push(file);
24
- callback();
25
- }).catch(error => {
26
- throw new PluginError(PLUGIN_NAME, error.message);
27
- });
28
- }
29
- });
30
- };
@@ -1,47 +0,0 @@
1
- {
2
- "name": "gulp-twig2html",
3
- "version": "2.2.0",
4
- "description": "Gulp plugin that compile twig templates to html pages",
5
- "keywords": [
6
- "gulpplugin",
7
- "templating",
8
- "twig",
9
- "html",
10
- "django"
11
- ],
12
- "bugs": {
13
- "url": "https://gitlab.com/toptalo/gulp-twig2html/-/issues"
14
- },
15
- "license": "MIT",
16
- "author": {
17
- "name": "Виктор Виктор",
18
- "email": "spam.vitek@gmail.com"
19
- },
20
- "files": [
21
- "index.js"
22
- ],
23
- "main": "index.js",
24
- "repository": {
25
- "type": "git",
26
- "url": "https://gitlab.com/toptalo/gulp-twig2html.git"
27
- },
28
- "scripts": {
29
- "lint": "eslint index.js",
30
- "test": "rimraf tmp && gulp && jest"
31
- },
32
- "dependencies": {
33
- "@toptalo/twig-renderer": "^0.5.0",
34
- "gulp": "^4.0.2",
35
- "plugin-error": "^1.0.1",
36
- "through2": "^4.0.2"
37
- },
38
- "devDependencies": {
39
- "eslint": "^7.21.0",
40
- "gulp-rename": "^2.0.0",
41
- "jest": "^26.6.3",
42
- "rimraf": "^3.0.2"
43
- },
44
- "engines": {
45
- "node": "^10.12.0 || >=12.0.0"
46
- }
47
- }
@@ -1,5 +0,0 @@
1
- # Changes to PostCSS Inset
2
-
3
- ### 1.0.0 (August 5, 2017)
4
-
5
- - Initial version
@@ -1,106 +0,0 @@
1
- # CC0 1.0 Universal
2
-
3
- ## Statement of Purpose
4
-
5
- The laws of most jurisdictions throughout the world automatically confer
6
- exclusive Copyright and Related Rights (defined below) upon the creator and
7
- subsequent owner(s) (each and all, an “owner”) of an original work of
8
- authorship and/or a database (each, a “Work”).
9
-
10
- Certain owners wish to permanently relinquish those rights to a Work for the
11
- purpose of contributing to a commons of creative, cultural and scientific works
12
- (“Commons”) that the public can reliably and without fear of later claims of
13
- infringement build upon, modify, incorporate in other works, reuse and
14
- redistribute as freely as possible in any form whatsoever and for any purposes,
15
- including without limitation commercial purposes. These owners may contribute
16
- to the Commons to promote the ideal of a free culture and the further
17
- production of creative, cultural and scientific works, or to gain reputation or
18
- greater distribution for their Work in part through the use and efforts of
19
- others.
20
-
21
- For these and/or other purposes and motivations, and without any expectation of
22
- additional consideration or compensation, the person associating CC0 with a
23
- Work (the “Affirmer”), to the extent that he or she is an owner of Copyright
24
- and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and
25
- publicly distribute the Work under its terms, with knowledge of his or her
26
- Copyright and Related Rights in the Work and the meaning and intended legal
27
- effect of CC0 on those rights.
28
-
29
- 1. Copyright and Related Rights. A Work made available under CC0 may be
30
- protected by copyright and related or neighboring rights (“Copyright and
31
- Related Rights”). Copyright and Related Rights include, but are not limited
32
- to, the following:
33
- 1. the right to reproduce, adapt, distribute, perform, display,
34
- communicate, and translate a Work;
35
- 2. moral rights retained by the original author(s) and/or performer(s);
36
- 3. publicity and privacy rights pertaining to a person’s image or likeness
37
- depicted in a Work;
38
- 4. rights protecting against unfair competition in regards to a Work,
39
- subject to the limitations in paragraph 4(i), below;
40
- 5. rights protecting the extraction, dissemination, use and reuse of data
41
- in a Work;
42
- 6. database rights (such as those arising under Directive 96/9/EC of the
43
- European Parliament and of the Council of 11 March 1996 on the legal
44
- protection of databases, and under any national implementation thereof,
45
- including any amended or successor version of such directive); and
46
- 7. other similar, equivalent or corresponding rights throughout the world
47
- based on applicable law or treaty, and any national implementations
48
- thereof.
49
-
50
- 2. Waiver. To the greatest extent permitted by, but not in contravention of,
51
- applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
52
- unconditionally waives, abandons, and surrenders all of Affirmer’s Copyright
53
- and Related Rights and associated claims and causes of action, whether now
54
- known or unknown (including existing as well as future claims and causes of
55
- action), in the Work (i) in all territories worldwide, (ii) for the maximum
56
- duration provided by applicable law or treaty (including future time
57
- extensions), (iii) in any current or future medium and for any number of
58
- copies, and (iv) for any purpose whatsoever, including without limitation
59
- commercial, advertising or promotional purposes (the “Waiver”). Affirmer makes
60
- the Waiver for the benefit of each member of the public at large and to the
61
- detriment of Affirmer’s heirs and successors, fully intending that such Waiver
62
- shall not be subject to revocation, rescission, cancellation, termination, or
63
- any other legal or equitable action to disrupt the quiet enjoyment of the Work
64
- by the public as contemplated by Affirmer’s express Statement of Purpose.
65
-
66
- 3. Public License Fallback. Should any part of the Waiver for any reason be
67
- judged legally invalid or ineffective under applicable law, then the Waiver
68
- shall be preserved to the maximum extent permitted taking into account
69
- Affirmer’s express Statement of Purpose. In addition, to the extent the Waiver
70
- is so judged Affirmer hereby grants to each affected person a royalty-free, non
71
- transferable, non sublicensable, non exclusive, irrevocable and unconditional
72
- license to exercise Affirmer’s Copyright and Related Rights in the Work (i) in
73
- all territories worldwide, (ii) for the maximum duration provided by applicable
74
- law or treaty (including future time extensions), (iii) in any current or
75
- future medium and for any number of copies, and (iv) for any purpose
76
- whatsoever, including without limitation commercial, advertising or promotional
77
- purposes (the “License”). The License shall be deemed effective as of the date
78
- CC0 was applied by Affirmer to the Work. Should any part of the License for any
79
- reason be judged legally invalid or ineffective under applicable law, such
80
- partial invalidity or ineffectiveness shall not invalidate the remainder of the
81
- License, and in such case Affirmer hereby affirms that he or she will not (i)
82
- exercise any of his or her remaining Copyright and Related Rights in the Work
83
- or (ii) assert any associated claims and causes of action with respect to the
84
- Work, in either case contrary to Affirmer’s express Statement of Purpose.
85
-
86
- 4. Limitations and Disclaimers.
87
- 1. No trademark or patent rights held by Affirmer are waived, abandoned,
88
- surrendered, licensed or otherwise affected by this document.
89
- 2. Affirmer offers the Work as-is and makes no representations or
90
- warranties of any kind concerning the Work, express, implied, statutory
91
- or otherwise, including without limitation warranties of title,
92
- merchantability, fitness for a particular purpose, non infringement, or
93
- the absence of latent or other defects, accuracy, or the present or
94
- absence of errors, whether or not discoverable, all to the greatest
95
- extent permissible under applicable law.
96
- 3. Affirmer disclaims responsibility for clearing rights of other persons
97
- that may apply to the Work or any use thereof, including without
98
- limitation any person’s Copyright and Related Rights in the Work.
99
- Further, Affirmer disclaims responsibility for obtaining any necessary
100
- consents, permissions or other rights required for any use of the Work.
101
- 4. Affirmer understands and acknowledges that Creative Commons is not a
102
- party to this document and has no duty or obligation with respect to
103
- this CC0 or use of the Work.
104
-
105
- For more information, please see
106
- https://creativecommons.org/publicdomain/zero/1.0/.
@@ -1,121 +0,0 @@
1
- # PostCSS Inset [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS Logo" width="90" height="90" align="right">][postcss]
2
-
3
- [![NPM Version][npm-img]][npm-url]
4
- [![Linux Build Status][cli-img]][cli-url]
5
- [![Windows Build Status][win-img]][win-url]
6
- [![Gitter Chat][git-img]][git-url]
7
-
8
- [PostCSS Inset] lets you do use the [`inset`] shorthand property in CSS.
9
-
10
- ```css
11
- .example {
12
- inset: 10px 20px 80px;
13
- }
14
-
15
- /* becomes */
16
-
17
- .example {
18
- top: 10px;
19
- right: 20px;
20
- bottom: 80px;
21
- left: 20px;
22
- }
23
- ```
24
-
25
- ## Usage
26
-
27
- Add [PostCSS Inset] to your build tool:
28
-
29
- ```bash
30
- npm install postcss-inset --save-dev
31
- ```
32
-
33
- #### Node
34
-
35
- Use [PostCSS Inset] to process your CSS:
36
-
37
- ```js
38
- require('postcss-inset').process(YOUR_CSS);
39
- ```
40
-
41
- #### PostCSS
42
-
43
- Add [PostCSS] to your build tool:
44
-
45
- ```bash
46
- npm install postcss --save-dev
47
- ```
48
-
49
- Use [PostCSS Inset] as a plugin:
50
-
51
- ```js
52
- postcss([
53
- require('postcss-inset')()
54
- ]).process(YOUR_CSS);
55
- ```
56
-
57
- #### Gulp
58
-
59
- Add [Gulp PostCSS] to your build tool:
60
-
61
- ```bash
62
- npm install gulp-postcss --save-dev
63
- ```
64
-
65
- Use [PostCSS Inset] in your Gulpfile:
66
-
67
- ```js
68
- var postcss = require('gulp-postcss');
69
-
70
- gulp.task('css', function () {
71
- return gulp.src('./src/*.css').pipe(
72
- postcss([
73
- require('postcss-inset')()
74
- ])
75
- ).pipe(
76
- gulp.dest('.')
77
- );
78
- });
79
- ```
80
-
81
- #### Grunt
82
-
83
- Add [Grunt PostCSS] to your build tool:
84
-
85
- ```bash
86
- npm install grunt-postcss --save-dev
87
- ```
88
-
89
- Use [PostCSS Inset] in your Gruntfile:
90
-
91
- ```js
92
- grunt.loadNpmTasks('grunt-postcss');
93
-
94
- grunt.initConfig({
95
- postcss: {
96
- options: {
97
- use: [
98
- require('postcss-inset')()
99
- ]
100
- },
101
- dist: {
102
- src: '*.css'
103
- }
104
- }
105
- });
106
- ```
107
-
108
- [npm-url]: https://www.npmjs.com/package/postcss-inset
109
- [npm-img]: https://img.shields.io/npm/v/postcss-inset.svg
110
- [cli-url]: https://travis-ci.org/jonathantneal/postcss-inset
111
- [cli-img]: https://img.shields.io/travis/jonathantneal/postcss-inset.svg
112
- [win-url]: https://ci.appveyor.com/project/jonathantneal/postcss-inset
113
- [win-img]: https://img.shields.io/appveyor/ci/jonathantneal/postcss-inset.svg
114
- [git-url]: https://gitter.im/postcss/postcss
115
- [git-img]: https://img.shields.io/badge/chat-gitter-blue.svg
116
-
117
- [PostCSS Inset]: https://github.com/jonathantneal/postcss-inset
118
- [PostCSS]: https://github.com/postcss/postcss
119
- [Gulp PostCSS]: https://github.com/postcss/gulp-postcss
120
- [Grunt PostCSS]: https://github.com/nDmitry/grunt-postcss
121
- [`inset`]: https://www.w3.org/TR/css-logical-1/#propdef-inset