add debug option to skip PNG rendering

This commit is contained in:
hazycora 2023-08-02 17:51:06 -05:00
parent 8e5077e9be
commit 2cf7675588
No known key found for this signature in database
GPG key ID: 215AF1F81F86940E
4 changed files with 35 additions and 3 deletions

View file

@ -30,6 +30,6 @@ const renderOptions = {
] ]
} }
export default function (html) { export default async function (html) {
return html2png(html, css, renderOptions) return html2png(html, css, renderOptions)
} }

View file

@ -1,9 +1,13 @@
import express from 'express' import express from 'express'
import { Eta } from 'eta' import { Eta } from 'eta'
import fs from 'node:fs/promises'
import render from './lib/render.js' import render from './lib/render.js'
const debug = process.env.DEBUG ? true : false
const eta = new Eta({ const eta = new Eta({
views: 'views', views: 'views',
cache: false cache: !debug
}) })
const app = express() const app = express()
@ -12,14 +16,29 @@ app.get('/', function (req, res) {
res.redirect('https://git.gay/gitgay/og.git') res.redirect('https://git.gay/gitgay/og.git')
}) })
if (debug) {
app.get('/style.css', async (req, res) => {
res.type('css')
res.send(await fs.readFile('./assets/style.css'))
})
}
app.get('/:owner/:repo', async function (req, res) { app.get('/:owner/:repo', async function (req, res) {
const repoResp = await fetch( const repoResp = await fetch(
`https://git.gay/api/v1/repos/${req.params.owner}/${req.params.repo}` `https://git.gay/api/v1/repos/${req.params.owner}/${req.params.repo}`
) )
const repo = await repoResp.json() const repo = await repoResp.json()
const html = await eta.renderAsync('repo', {
repo,
debug
})
if (debug) {
res.send(html)
return
}
res.type('png') res.type('png')
res.set('Content-Disposition', 'inline') res.set('Content-Disposition', 'inline')
res.send(await render(await eta.renderAsync('repo', { repo }))) res.send(await render(html))
}) })
app.listen(8085) app.listen(8085)

12
views/layout.eta Normal file
View file

@ -0,0 +1,12 @@
<% if (it.debug) { %>
<style>
:root {
font-family: 'Figtree', Arial, Helvetica, sans-serif;
}
* {
font-family: inherit;
}
</style>
<link rel="stylesheet" href="/style.css">
<% } %>
<%~ it.body %>

View file

@ -1,3 +1,4 @@
<% layout('layout') %>
<div class="main"> <div class="main">
<div class="contents"> <div class="contents">
<div class="info"> <div class="info">