export { escape } from "jsr:@std/html@1.0.5/entities";
import { type ImplicitType, parse } from "jsr:@std/yaml@1.0.12/unstable-parse";
import { stringify } from "jsr:@std/yaml@1.0.12/unstable-stringify";
export { acceptsLanguages } from "jsr:@std/http@1.0.25/negotiation";
export { test as testFrontMatter } from "jsr:@std/front-matter@1.0.9";
export { extract as extractFrontMatter } from "jsr:@std/front-matter@1.0.9/yaml";
export { emptyDir, ensureDir, expandGlob } from "jsr:@std/fs@1.0.23";
export * as posix from "jsr:@std/path@1.1.4/posix";
export {
basename,
dirname,
extname,
fromFileUrl,
globToRegExp,
relative,
SEPARATOR,
} from "jsr:@std/path@1.1.4";
export { format as formatBytes } from "jsr:@std/fmt@1.0.9/bytes";
export { decodeBase64, encodeBase64 } from "jsr:@std/encoding@1.0.10/base64";
export { contentType } from "jsr:@std/media-types@1.1.0/content-type";
export * as logger from "jsr:@std/log@0.224.14";
const YAML_DATE = /^\d{4}-\d{2}-\d{2}$/;
const YAML_DATETIME = /^\d{4}-\d{2}-\d{2}[Tt\s]\d{2}:\d{2}:\d{2}$/;
const date: ImplicitType = {
tag: "tag:cms:date",
kind: "scalar",
resolve: (data): boolean => typeof data === "string" && YAML_DATE.test(data),
construct: (data: string): Temporal.PlainDate =>
Temporal.PlainDate.from(data),
predicate: (data): data is Temporal.PlainDate =>
data instanceof Temporal.PlainDate,
represent: (data): string => data.toString(),
};
const datetime: ImplicitType = {
tag: "tag:cms:datetime",
kind: "scalar",
resolve: (data): boolean =>
typeof data === "string" && YAML_DATETIME.test(data),
construct: (data: string): Temporal.PlainDateTime =>
Temporal.PlainDateTime.from(data),
predicate: (data): data is Temporal.PlainDateTime =>
data instanceof Temporal.PlainDateTime,
represent: (data): string => data.toString().replace("T", " "),
};
export function parseYaml(yaml: string) {
return parse(yaml, {
extraTypes: [date, datetime],
});
}
export function stringifyYaml(yaml: Record) {
return stringify(yaml, {
extraTypes: [date, datetime],
});
}