feat: doc templating & cleanup of routes (#4411)

* feat: clean up route structure

* feat: install html-pdf-node-ts

* fea

* feat: use @ceereals/vue-pdf (react-pdf)

* feat: remove pdf

* feat: hide cc

* feat: shared template

* feat: payment statement document & redirect for emails

* feat: layout tweaks

* fix: lint issues

* fix: robots.txt

* feat: remove letterhead

* Delete .claude/settings.local.json

Signed-off-by: Calum H. <contact@cal.engineer>

---------

Signed-off-by: Calum H. <contact@cal.engineer>
This commit is contained in:
Calum H.
2025-10-07 11:47:59 +01:00
committed by GitHub
parent 59e48ea2b1
commit cb5600ad45
38 changed files with 681 additions and 325 deletions

View File

@@ -0,0 +1,28 @@
import { render } from '@vue-email/render'
import type { Component } from 'vue'
import docs from '~/templates/docs'
export default defineEventHandler(async (event) => {
const template = event.context.params?.template as string
try {
const component = (await docs[template]()).default as Component | undefined
if (!component) {
throw createError({
statusCode: 404,
message: 'Document template not found',
})
}
const html = await render(component, {})
return html
} catch (error) {
console.error(`Error rendering document template ${template}:`, error)
throw createError({
statusCode: 500,
message: 'Failed to render document template',
})
}
})

View File

@@ -1,7 +1,7 @@
import { render } from '@vue-email/render'
import type { Component } from 'vue'
import emails from '~/emails'
import emails from '~/templates/emails'
export default defineEventHandler(async (event) => {
const template = event.context.params?.template as string