A Metalsmith plugin that sends your CSS through any PostCSS plugins.
npm install metalsmith-postcss



> A Metalsmith plugin that sends your CSS
> through any PostCSS plugins.
``sh`
npm install metalsmith-postcss
If you haven't checked out Metalsmith before,
head over to their website and check out the documentation.
Using the JavaScript api for Metalsmith,
just add the postcss package name, optionally with it’s
options, to your .use() directives. Here is an examplepostcss-pseudoelements
using and postcss-nested to
transform your source files.
`js
var postcss = require('metalsmith-postcss');
metalsmith.use(postcss({
plugins: {
'postcss-pseudoelements': {}
'postcss-nested': {}
}
}));
`
By default, files with .css extension will be parsed. This may be overridden
by providing a custom pattern e.g.
`js`
metalsmith.use(postcss({
pattern: '*.postcss',
plugins: { ... }
}));
Using the Metalsmith CLI, just add the postcss package name,
optionally with it’s options, to your metalsmith.json config.postcss-pseudoelements
Here is an example using and postcss-nested
to transform your source files.
`js`
"metalsmith-postcss": {
"plugins": {
"postcss-pseudoelements": {},
"postcss-nested": {}
},
"map": true
}
Sometime in PostCSS, plugins need to be defined in a certain order and JavaScript
Objects cannot guarantee the order of keys in an object. Therefore, you are able
to specify PostCSS plugins using an array of objects(which can guarantee the order
of loading).
`js`
"metalsmith-postcss": {
"plugins": [
"postcss-pseudoelements",
{
"postcss-nested": {
"some": "config"
}
}
]
}
This plugin doesn't generate sourcemaps by default. However, you
can enable them using several ways.
Add map: true to the options argument to get your
sourcemaps written into the source file.
`js`
metalsmith.use(postcss({
plugins: {},
map: true
}));
Behind the scenes, this resolves to the following:
`js`
metalsmith.use(postcss({
plugins: {},
map: {
inline: true
}
}));
If you don't want to have your files polluted with sourcemaps,
just set inline: false. Using that, you'll get .map files
generated beside your sources.
`js`
metalsmith.use(postcss({
plugins: {},
map: {
inline: false
}
}));
To run the tests use:
`sh``
npm test