🎉 Initial setup

🎉 Initial setup

Setup deployment
This commit is contained in:
Dennis Reimann
2020-10-03 21:49:25 +02:00
commit 0202e858e6
55 changed files with 11718 additions and 0 deletions

13
tasks/fetch_feed.js Normal file
View File

@@ -0,0 +1,13 @@
const { writeFileSync } = require('fs')
const { join, resolve } = require('path')
const Parser = require('rss-parser')
const dir = resolve(__dirname, '..')
const dst = join(dir, 'feed.json')
;(async () => {
const parser = new Parser()
const feed = await parser.parseURL('https://anchor.fm/s/d8d3c38/podcast/rss')
writeFileSync(dst, JSON.stringify(feed, null, 2))
})()

22
tasks/generate_pages.js Normal file
View File

@@ -0,0 +1,22 @@
const pug = require('pug')
const { mkdirSync, writeFileSync } = require('fs')
const { dirname, resolve } = require('path')
const config = require('../pug.config')
const site = require('../site-data')
const feed = require('../feed.json')
const team = require('../content/team.json')
const renderPage = (name, out, data = {}) => {
const file = resolve(__dirname, '..', `src/${name}.pug`)
const options = Object.assign({}, config, { site }, data)
const rendered = pug.renderFile(file, options)
const dst = resolve(__dirname, '..', 'dist', `${out}.html`)
const dir = dirname(dst)
mkdirSync(dir, { recursive: true })
writeFileSync(dst, rendered)
}
renderPage('index', 'index', { navCurrent: 'index' })
renderPage('team', 'team/index', { navCurrent: 'team', team })
renderPage('podcast', 'podcast/index', { navCurrent: 'podcast', feed })

View File

@@ -0,0 +1,12 @@
const { writeFileSync } = require('fs')
const { join, resolve } = require('path')
const meta = require('../content/meta.json')
const dir = resolve(__dirname, '..')
const dst = join(dir, 'site-data.json')
const date = (new Date()).toJSON().split('T')[0]
const data = { date, meta }
writeFileSync(dst, JSON.stringify(data, null, 2))

14
tasks/optimize_images.js Normal file
View File

@@ -0,0 +1,14 @@
const compress_images = require('compress-images')
const input = 'compress/*.{jpg,png,svg,gif}'
const output = 'compress/out/'
compress_images(input, output, { compress_force: true, statistic: true, autoupdate: false }, false,
{ jpg: { engine: "mozjpeg", command: ["-quality", "60"] } },
{ png: { engine: "pngquant", command: ["--quality=20-50", "-o"] } },
{ svg: { engine: "svgo", command: "--multipass" } },
{ gif: { engine: "gifsicle", command: ["--colors", "64", "--use-col=web"] } },
(error, completed, statistic) => {
if (error) console.error(error)
if (statistic) console.log(statistic)
}
)