Updated to V2

Signed-off-by: Florian Bouillon <florian.bouillon@delta-wings.net>
This commit is contained in:
2020-09-12 23:11:43 +02:00
parent de9f57906f
commit abad642e10
77 changed files with 6380 additions and 3093 deletions

View File

@ -0,0 +1,67 @@
const favicons = require('favicons')
const package = require('../package.json')
const config = require('../scriptsConfig.json').favicons
const fs = require('fs')
if (!config.enabled) {
return
}
// image source
const source = config.sourceFile
// Output folder
const outFolder = config.assetsOutput
// Typescript React outpout file
// NOTE: add the file to your .gitignore
const tsxOutput = config.tsxOutput
// Configuration
const configuration = config.config
if (configuration.version === 'package.json') {
configuration.version = package.version
}
console.log('Generating Favicons...')
favicons(source, configuration, (error, response) => {
if (error) {
console.log(error)
return
}
console.log('Saving Files')
let gitignore = ''
for (const file of response.images) {
fs.writeFileSync(`${outFolder}/${file.name}`, file.contents)
gitignore += `${file.name}\n`
}
for (const file of response.files) {
fs.writeFileSync(`${outFolder}/${file.name}`, file.contents)
gitignore += `${file.name}\n`
}
fs.writeFileSync(`${outFolder}/.gitignore`, gitignore)
if (!tsxOutput) {
return
}
var htmlList = response.html.map((el) => ` ${el.replace('>', '/>')}`).join('\n')
fs.writeFileSync(tsxOutput, `import React from 'react'
export default class Favicons extends React.Component {
public render = () => (
<>
${htmlList}
</>
)
}
`)
console.log('Saved!')
})

View File

@ -3,23 +3,44 @@
* for static exports
**/
const config = require('../scriptsConfig.json').sitemap
const glob = require('glob')
const fs = require('fs')
const fs = require('fs/promises')
const { SitemapStream , streamToPromise } = require('sitemap')
const { Readable } = require( 'stream' )
// DOMAIN NAME WITHOUT THE LAST /
const domain = "https://www.avior.me"
const files = glob.sync('./out/**/*.html')
let res = `<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">`
for (let file of files) {
file = file.replace("./out", "").replace("index.html", "")
res += `<url><loc>${domain}${file}</loc></url>`
if (!config.enabled) {
return
}
console.log('Generating Sitemap...')
res += `</urlset>`
fs.writeFileSync('./out/sitemap.xml', res)
const stream = new SitemapStream(config.config)
;(async () => {
console.log('Fetching files')
const files = await new Promise((res, rej) => {
glob('./out/**/*.html', (err, results) => {
if (err) {
rej(err)
}
res(results.map(el => ({url: el.replace('./out', '').replace('index.html', '')})))
})
})
console.log('Merging with custom routes')
for (const item of config.customRoutes) {
const index = files.findIndex((val) => val.url === item.url)
if (index !== -1) {
files[index] = item
} else {
files.push(item)
}
}
console.log('Pasing to sitemap.xml')
const res = await streamToPromise(Readable.from(files).pipe(stream))
console.log(res)
console.log('Writing file')
await fs.writeFile(config.outputPath, res)
process.exit(0)
})()