mirror of https://codeberg.org/pzp/pzp-hub.git
50 lines
1.3 KiB
JavaScript
50 lines
1.3 KiB
JavaScript
import { createRequire } from 'module'
|
|
import { unified } from 'unified'
|
|
import remarkParse from 'remark-parse'
|
|
import remarkRehype from 'remark-rehype'
|
|
import rehypeStringify from 'rehype-stringify'
|
|
import fs from 'fs'
|
|
import path from 'path'
|
|
|
|
const require = createRequire(import.meta.url)
|
|
const __dirname = path.dirname(new URL(import.meta.url).pathname)
|
|
|
|
const fastify = require('fastify')
|
|
const fastifyView = require('@fastify/view')
|
|
const fastifyStatic = require('@fastify/static')
|
|
const ejs = require('ejs')
|
|
|
|
const staticsPath = path.join(__dirname, 'public')
|
|
const viewsPath = path.join(__dirname, 'views')
|
|
const homepagePath = path.join(__dirname, '..', 'HOMEPAGE.md')
|
|
|
|
const processor = unified()
|
|
.use(remarkParse)
|
|
.use(remarkRehype)
|
|
.use(rehypeStringify)
|
|
|
|
const homepageMD = fs.readFileSync(homepagePath, 'utf8')
|
|
const homepageHTML = processor.processSync(homepageMD)
|
|
|
|
const app = fastify({ logger: true })
|
|
|
|
app.register(fastifyView, { engine: { ejs }, root: viewsPath })
|
|
|
|
app.register(fastifyStatic, { root: staticsPath })
|
|
|
|
app.get('/', (req, reply) => {
|
|
reply.view('homepage.ejs', { markdown: homepageHTML })
|
|
})
|
|
|
|
app.get('/invite', (req, reply) => {
|
|
reply.view('invite.ejs')
|
|
})
|
|
|
|
app.listen({ port: 3000 }, (err, address) => {
|
|
app.log.info(`server listening on ${address}`)
|
|
if (err) {
|
|
app.log.error(err)
|
|
process.exit(1)
|
|
}
|
|
})
|