forked from 365Academic/Lyna
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuilder.js
More file actions
75 lines (66 loc) · 3 KB
/
builder.js
File metadata and controls
75 lines (66 loc) · 3 KB
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
64
65
66
67
68
69
70
71
72
73
74
75
/*--------------------------------------------------------------------------------------\
| _______ _ _____ _ _ _ ________ ___ ___ ___ __ |
| |__ __| (_) / ____| | | (_) / ____ \ |__ \ / _ \__ \/_ | |
| | | __ _ _ | (___ | |_ _ _ __| |_ ___ / / ___| \ ) | | | | ) || | |
| | |/ _` | | \___ \| __| | | |/ _` | |/ _ \ | | | | / /| | | |/ / | | |
| | | (_| | | ____) | |_| |_| | (_| | | (_) | | | |___ | / /_| |_| / /_ | | |
| |_|\__,_|_| |_____/ \__|\__,_|\__,_|_|\___/ \ \____| / |____|\___/____||_| |
| \________/ |
\--------------------------------------------------------------------------------------*/
const fs = require('fs');
const cheerio = require('cheerio');
const rimraf = require('rimraf');
if(!fs.existsSync('dist')){
fs.mkdirSync('dist');
}
else{
fs.rmdirSync('dist', { recursive: true });
fs.mkdirSync('dist');
}
if(fs.existsSync('pages/demo')){
rimraf('pages/demo', (err) => {
if(err)console.log(err);
});
}
var today = new Date();
var dd = String(today.getDate()).padStart(2, '0');
var mm = String(today.getMonth() + 1).padStart(2, '0');
var yyyy = today.getFullYear();
today = `${yyyy}-${mm}-${dd}`;
//SITEMAP
const sitemap = cheerio.load(fs.readFileSync('PatternSitemap.xml'), {
xmlMode: true
});
function getFiles (dir, files_){
files_ = files_ || [];
var files = fs.readdirSync(dir);
for (var i in files){
//PAGES
var config = require(`./pages/${files[i]}/${files[i]}.json`);
const $ = cheerio.load(fs.readFileSync('index.html'));
//TITLES
$('title').text(`Lyna | ${config.name}`);
$('meta[name="title"]').attr('content', `Lyna | ${config.name}`);
$('meta[name="twitter:title"]').attr('content', `Lyna | ${config.name}`);
$('meta[property="og:title"]').attr('content', `Lyna | ${config.name}`);
//IMAGES
$('meta[name="twitter:image"]').attr('content', `https://lyna.ga/${config.logo}`);
$('meta[property="og:image"]').attr('content', `https://lyna.ga/${config.logo}`);
//DESCRIPTION
if(config.description == null){config.description = "Create a page for provide your social links and other."}
$('meta[name="description"]').attr('content', `${config.description}`);
fs.writeFileSync(`dist/${files[i]}.html`, $.html());
sitemap("urlset").append(`
<url>
<loc>https://lyna.ga/${files[i]}</loc>
<lastmod>${today}</lastmod>
<changefreq>hourly</changefreq>
</url>
`);
fs.writeFileSync(`./dist/sitemap.xml`, sitemap.html());
fs.writeFileSync(`sitemap.xml`, sitemap.html());
fs.writeFileSync(`sitemap2021.xml`, sitemap.html());
}
return files_;
}
getFiles('pages');