98 lines
2.4 KiB
JavaScript
98 lines
2.4 KiB
JavaScript
const directus = require('@directus/sdk-js');
|
|
const yaml = require('js-yaml');
|
|
const fs = require('fs');
|
|
const moment = require('moment');
|
|
const slug = require('slugg')
|
|
|
|
var config;
|
|
try {
|
|
config = yaml.safeLoad(fs.readFileSync(__dirname+'/config.yml', 'utf8'));
|
|
} catch (e) {
|
|
console.log(e);
|
|
}
|
|
|
|
const client = new directus({
|
|
url: config.directus_url,
|
|
project: '_',
|
|
token: config.directus_token,
|
|
apiVersion: 1 // Optional - default 1
|
|
});
|
|
|
|
client.getItems('oreolek_blog')
|
|
.catch(error => console.error(error))
|
|
.then(res => {
|
|
if (res === undefined) {
|
|
console.error('no data!');
|
|
return;
|
|
}
|
|
const len = res.rows.length;
|
|
for (var i = 0; i < len; i++) {
|
|
var entry = res.rows[i];
|
|
if (entry.active == 2) // draft
|
|
continue;
|
|
console.log(entry.title);
|
|
var pubdate = moment(entry.published_at).format('YYYY-MM-DD');
|
|
var newslug = entry.slug;
|
|
if(entry.slug == undefined)
|
|
{
|
|
newslug = slug(entry.title);
|
|
}
|
|
var layout = "post";
|
|
if (entry.layout != undefined && entry.layout.length > 0) {
|
|
layout = entry.layout;
|
|
}
|
|
var content = {
|
|
title: entry.title,
|
|
date: pubdate,
|
|
tags: entry.tags,
|
|
slug: newslug,
|
|
password: entry.password,
|
|
layout: layout
|
|
};
|
|
content = "---\n"
|
|
+ yaml.safeDump(content)
|
|
+ "\n---\n"
|
|
+ entry.content;
|
|
fs.writeFile("./source/posts/"+pubdate+'-'+newslug+'.md', content, function(err) {
|
|
if(err) {
|
|
return console.log(err);
|
|
}
|
|
});
|
|
};
|
|
});
|
|
|
|
client.getItems('oreolek_blog_pages')
|
|
.catch(error => console.error(error))
|
|
.then(res => {
|
|
if (res === undefined) {
|
|
console.error('no data!');
|
|
return;
|
|
}
|
|
const len = res.rows.length;
|
|
for (var i = 0; i < len; i++) {
|
|
var entry = res.rows[i];
|
|
var layout = "page";
|
|
if (entry.layout != undefined && entry.layout.length > 0) {
|
|
layout = entry.layout;
|
|
}
|
|
var newslug = entry.slug;
|
|
if(entry.slug == undefined)
|
|
{
|
|
newslug = slug(entry.title);
|
|
}
|
|
var content = "---\ntitle: "
|
|
+ entry.title
|
|
+ "\nslug:"
|
|
+ newslug
|
|
+ "\nlayout:"
|
|
+ layout
|
|
+ "\n---\n"
|
|
+ entry.content;
|
|
fs.writeFile("./source/"+newslug+'.md', content, function(err) {
|
|
if(err) {
|
|
return console.log(err);
|
|
}
|
|
});
|
|
}
|
|
});
|