mirror of
https://github.com/Einundzwanzig-Podcast/einundzwanzig.space.git
synced 2025-12-13 16:26:50 +00:00
34 lines
1.2 KiB
JavaScript
34 lines
1.2 KiB
JavaScript
// initialize markdown rendering
|
|
const helpers = require('./helpers')
|
|
|
|
const IS_DEV = process.env.NODE_ENV === 'development'
|
|
const HOST = IS_DEV ? 'localhost:3000' : 'einundzwanzig.space'
|
|
const random = max => Math.floor(Math.random() * Math.floor(max))
|
|
const shuffle = arr => { for (let i = arr.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * i); const temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; }; return arr }
|
|
const formatDate = date => (new Date(date)).toISOString().replace(/T.*/, '').split('-').reverse().join('.')
|
|
const linkTarget = url => url.startsWith('http') ? '_blank' : null
|
|
const assetPath = path => {
|
|
if (path.startsWith('http')) return path
|
|
let revs
|
|
try { revs = require('./generated/rev.json') } catch (error) { }
|
|
return `${(revs && revs[path]) || path}`
|
|
}
|
|
const assetUrl = (path, protocol = 'https') => {
|
|
if (IS_DEV && !path.startsWith('http')) protocol = 'http'
|
|
const base = path.startsWith('http') ? '' : `${protocol}://${HOST}`
|
|
let url = `${base}${assetPath(path)}`
|
|
if (!url.startsWith(`${protocol}:`)) url = url.replace(/^.*:/, `${protocol}:`)
|
|
return url
|
|
}
|
|
|
|
module.exports = {
|
|
basedir: './src/includes',
|
|
random,
|
|
shuffle,
|
|
assetUrl,
|
|
assetPath,
|
|
formatDate,
|
|
linkTarget,
|
|
...helpers
|
|
}
|