const blog = require('/home/sacha/proj/static-blog/_site/blog/all/index.json');
const cheerio = require('cheerio');
const base = '/home/sacha/proj/static-blog/_site';
const fs = require('fs');
const path = require('path');
function slugify(p) {
return p.permalink.replace('/blog', 'post-').replace(/\//g, '-');
}
async function processPost(p) {
console.log('Processing '+ p.permalink);
let $ = cheerio.load(fs.readFileSync(base + p.permalink + 'index.html'));
$('#comment').remove();
let images = $('article img');
await Promise.all(images.map((i, e) => {
let url = $(e).attr('src');
const outputFileName = 'images/' + path.basename(url).replace(/ |%20|%23/g, '-');
$(e).attr('src', outputFileName);
$(e).attr('style', 'max-height: 100%; max-width: 100%; ' + ($(e).attr('style') || ''));
$(e).attr('srcset', null);
$(e).attr('sizes', null);
$(e).attr('width', null);
$(e).attr('height', null);
if (!fs.existsSync(outputFileName)) {
console.log('fetch', outputFileName);
return fetch(url).then(res => res.arrayBuffer()).then(data => {
const buffer = Buffer.from(data);
return fs.createWriteStream(outputFileName).write(buffer);
});
} else {
console.log(outputFileName, 'exists');
return null;
}
}));
console.log('Done ' + p.permalink);
let slug = slugify(p);
$('article h2').attr('id', slug);
let header = $('article header').html();
let entry = $('article .entry').html();
return `