-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathgetfiles.js
63 lines (56 loc) · 1.65 KB
/
getfiles.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
const directory = './src/assets/posts/';
const fs = require('fs');
const postsArray = [];
let processed = 0;
const posts = fs.readdirSync(directory);
let popstCount = posts.filter(name => name.indexOf('.md') !== -1).length;
posts.sort((a, b) => {
return (
fs.statSync(directory + a).mtime.getTime() -
fs.statSync(directory + b).mtime.getTime()
);
});
// posts.forEach(p => {
// console.log(fs.statSync(directory + p).mtime.getTime());
// });
posts
.filter(name => name.indexOf('.md') !== -1)
.forEach(post => {
let postObj = {
url: '',
name: '',
title: '',
preview: '',
timestamp: ''
};
postObj.url = `assets/posts/${post}`;
postObj.name = post.replace('.md', '');
postObj.timestamp = fs.statSync(directory + post).mtime.getTime();
// console.log(fs.statSync(directory + post).mtime.getTime());
fs.readFile(`${directory}${post}`, 'utf8', function(err, postcontent) {
processed++;
if (err) {
return console.log(err);
}
let preview = postcontent.substr(0, 200);
posts[popstCount - 1];
postObj.preview = postcontent.substr(0, 200);
let title = postcontent
.substr(0, postcontent.indexOf('</strong>'))
.replace('<strong>', '');
postObj.title = title;
postsArray.push(postObj);
if (popstCount === processed) {
writeJson(postsArray);
}
});
});
writeJson = postsarr => {
const arr = JSON.stringify(postsarr);
const jsonContent = `export const postsArray = ${arr}`;
fs.writeFile(`./src/assets/posts/posts.ts`, jsonContent, function(err) {
if (err) {
return console.log(err);
}
});
};