it was weird. i pressed delete on a subfolder, i think one of the pages.off folders that i was using. and then, suddenly, nvim on windows 7 decided to delete every file in the directory. they weren't shred off the space time continuum, but just marked deleted. i had to pay $80 to get access to a software that could see them. bleh! just seeing all my work, a little over a week, was pretty heart shattering. but i remembered that long ago, a close friend said i could call them whenever i was feeling sad. i finally took them up on that offer. the first time i've ever called someone for emotional support. but it's ok. i got it back. and the site framework is better than ever. i'm gonna commit and push more often. the repo is private anyways.
39 lines
1 KiB
TypeScript
39 lines
1 KiB
TypeScript
import type { Metadata } from "../types/metadata-interface";
|
|
import type { AbsoluteTemplateString } from "../types/metadata-types";
|
|
|
|
function resolveTitleTemplate(
|
|
template: string | null | undefined,
|
|
title: string,
|
|
) {
|
|
return template ? template.replace(/%s/g, title) : title;
|
|
}
|
|
|
|
export function resolveTitle(
|
|
title: Metadata["title"],
|
|
stashedTemplate: string | null | undefined,
|
|
): AbsoluteTemplateString {
|
|
let resolved;
|
|
const template = typeof title !== "string" && title && "template" in title
|
|
? title.template
|
|
: null;
|
|
|
|
if (typeof title === "string") {
|
|
resolved = resolveTitleTemplate(stashedTemplate, title);
|
|
} else if (title) {
|
|
if ("default" in title) {
|
|
resolved = resolveTitleTemplate(stashedTemplate, title.default);
|
|
}
|
|
if ("absolute" in title && title.absolute) {
|
|
resolved = title.absolute;
|
|
}
|
|
}
|
|
|
|
if (title && typeof title !== "string") {
|
|
return {
|
|
template,
|
|
absolute: resolved || "",
|
|
};
|
|
} else {
|
|
return { absolute: resolved || title || "", template };
|
|
}
|
|
}
|