Aby wylistować folder z plikami i zapisać listę plików jako json na potrzeby tej strony - blog.grzgorztomicki.pl należy oczywiście mieć najpierw zainstalowane nodejs
Tworzymy plik powiedzmy list_images.js
Najpierw używamy wbudowanej biblioteki fs - fs
const fs = require("fs");
const nameGallery = "chiny";
const name = "test";
const test = [];
const author = "Grzegorz Tomicki";
let now = new Date();
let date = now.getDate() + "." + (now.getMonth()+1) + "." + now.getFullYear();
let datePublished = new Date().toISOString().slice(0,10);
let dateModified = datePublished;
Czytamy folder z plikami jpg za pomocą fs.readdir
fs.readdir(`./sources/images/${nameGallery}/1200/`, function (err, files) {
if (err)
throw err;
for (let index in files) {
Tutaj używamy czegoś nowego z ES6 a mianowicie "template string". Używamy do tego znaku obok jeden na klawiaturze ` a zmienne podajemy w postaci ${} coś wspaniałego 🙂
Poniżej są dwa przykłady użycia a mianowicie path jak i template - wiele linii jak widać nie trzeba sklejać za pomocą "+" cud malina 🙂
let path = `{"path":"./images/${nameGallery}/","img":"${files[index]}","alt":""}`;
test.push("\r\t\t\t\t" + path);
}
const template = (`
{
"head": {
"title": "",
"description": ""
},
"body": {
"title": "",
"date": "${date}",
"text": "",
"items": [$ {
test
}]
},
"footer": {
"js": "../../build/js/boundle.min.js"
},
"schema": {
"datePublished": "${datePublished}",
"dateModified": "${dateModified}",
"author": "${author}"
}
}
`);
Zapisujemy plik za pomocą fs.writeFile
fs.writeFile(`./sources/data/site/${name}.json`, template, function (err) {});
});
Aby oczywiście uruchomić ten plik należy go uruchomić przez komendę w konsoli node list_images.js
Cały proces tworzenia strony można znaleźć pod tym linkiem tutaj