Я занимаюсь разработкой сайта с Gatsby и prismi c .io. В файле gatsby-node.js
я запускаю код для сглаживания всех изображений обложек. Вот код:
var DitherJS = require("ditherjs/server")
var fs = require("fs")
var find = require("find")
let options = {
step: 3, // The step for the pixel quantization n = 1,2,3...
palette: [
[0, 0, 0],
[255, 255, 255],
], // an array of colors as rgb arrays
algorithm: "atkinson", // one of ["ordered", "diffusion", "atkinson"]
}
let ditherjs = new DitherJS(options)
exports.onPostBuild = async ({ graphql, reporter }) => {
const result = await graphql(`
query allDitherImages {
prismic {
allProjects(sortBy: meta_firstPublicationDate_DESC) {
edges {
node {
cover_image
cover_imageSharp {
name
}
}
}
}
}
}
`)
receivedNames(result.data.prismic.allProjects.edges)
function receivedNames(data) {
let imageList = []
data.map(({ node: project }) => {
if (project.cover_imageSharp) {
imageList.push(project.cover_imageSharp.name)
}
})
ditherFiles(imageList)
}
function ditherFiles(filenames) {
filenames.map(filename => {
let filepaths = find.fileSync(new RegExp(filename), "./public/static/")
filepaths.map(file => {
let buffer = fs.readFileSync(file)
fs.writeFileSync(file, ditherjs.dither(buffer, options))
})
})
reporter.info(`Dithered cover images!`)
}
}
Это может быть не самый красивый код, но он работает. Но есть одна проблема:
Prismi c ограничивает количество запросов до 20 Результатов (в моем случае 20 имен cover_image). Это означает, что только первые 20 изображений будут отредактированы кодом ...
Ребята, вы не представляете, как я мог "l oop пролистать" все изображения (с помощью функции нумерации страниц ) )?
Я благодарен за любой совет! Michael