blog/scripts/cssFilter.js

33 lines
794 B
JavaScript
Raw Normal View History

'use strict'
/* global hexo */
/*
* Normalize typing.css using sanitize.css
* Add browser prefixes using autoprefixer
*
* renderer is used (instead of filter) due to
* incompatible with hexo-yam
*/
const autoprefixer = require('autoprefixer')
const micromatch = require('micromatch')
const normalize = require('postcss-normalize')
const postcss = require('postcss')
2019-08-26 04:18:10 +00:00
hexo.extend.renderer.register('css', 'css', (data, options) => {
if (data.path) {
if (micromatch.isMatch(data.path, '*.min.css', { basename: true })) return data.text
2019-08-26 04:18:10 +00:00
}
2019-08-26 04:18:10 +00:00
return new Promise((resolve, reject) => {
postcss([normalize, autoprefixer])
.process(data.text, { from: data.path })
.then(result => {
resolve(result.css)
},
error => {
reject(error)
})
})
})