"server side rendering" is a misleading term since it implies there is a server. that isn't neccecarily the case here, since it supports running in the browser. I think "clover engine" is cute, short for "clover html rendering engine". Instead of "server side rendering", it's just rendering. This commit makes things a lot more concise, such as `ssr.ssrAsync` being renamed to `render.async` to play nicely with namespaced imports. `getCurrentRender` and `setCurrentRender` are just `current` and `setCurrent`, and the addon interface has been redesigned to force symbols with a wrapping helper.
24 lines
560 B
TypeScript
24 lines
560 B
TypeScript
export interface Meta {
|
|
title: string;
|
|
description?: string | undefined;
|
|
openGraph?: OpenGraph;
|
|
alternates?: Alternates;
|
|
}
|
|
export interface OpenGraph {
|
|
title?: string;
|
|
description?: string | undefined;
|
|
type: string;
|
|
url: string;
|
|
}
|
|
export interface Alternates {
|
|
canonical: string;
|
|
types: { [mime: string]: AlternateType };
|
|
}
|
|
export interface AlternateType {
|
|
url: string;
|
|
title: string;
|
|
}
|
|
export function renderMeta({ title }: Meta): string {
|
|
return `<title>${esc(title)}</title>`;
|
|
}
|
|
import { escapeHtml as esc } from "#engine/render";
|