Skip to content

Commit

Permalink
Optimize for hexo server performance
Browse files Browse the repository at this point in the history
  • Loading branch information
ertrzyiks committed Mar 5, 2018
1 parent f42ce19 commit d235770
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 41 deletions.
23 changes: 0 additions & 23 deletions lib/generate_images.js

This file was deleted.

38 changes: 22 additions & 16 deletions lib/responsive_images.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ var minimatch = require('minimatch')
var streamToArray = require('stream-to-array')
var streamToArrayAsync = Promise.promisify(streamToArray)
var getNewPath = require('./new_path')
var generateImages = require('./generate_images')
var sharp = require('sharp')

function generateResponsiveImages() {
var hexo = this
Expand All @@ -24,22 +24,22 @@ function generateResponsiveImages() {
return
}

var stream = route.get(filePath);
return streamToArrayAsync(stream)
.then(function(arr) {
if(typeof arr[0] === 'string'){
return arr[0];
}else{
return Buffer.concat(arr);
}
}).then(function (buffer) {
return generateImages(buffer, sizes)
}).then(function (allImages) {
return Promise.all(allImages.map(function (res) {
var newPath = getNewPath(filePath, {prefix: res.name})
return hexo.route.set(newPath, res.output)
var stream = route.get(filePath)
return streamToArrayAsync(stream).then(function (arr) {
if(typeof arr[0] === 'string'){
return arr[0];
} else{
return Buffer.concat(arr);
}
}).then(function (buffer) {
return Promise.all(sizes.map(function (sizeSets) {
return Promise.all(Object.keys(sizeSets).map(function (name) {
var newPath = getNewPath(filePath, {prefix: name})
console.log('SIEMA', filePath, newPath)
return route.set(newPath, resizeImageFn(buffer, sizeSets[name]))
}))
})
}))
})
})
}

Expand All @@ -54,4 +54,10 @@ function getSizesFor(filePath, rules) {
}, [])
}

function resizeImageFn(buffer, size) {
return function () {
return sharp(buffer).resize(size.width, size.height, size.options).toBuffer()
}
}

module.exports = generateResponsiveImages
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "hexo-filter-responsive-images",
"version": "1.0.0",
"version": "1.0.1",
"description": "Generate mutliple version of images for responsive Hexo blogs",
"main": "index.js",
"directories": {
Expand Down

0 comments on commit d235770

Please sign in to comment.