starlight-llms-txt
Version:
Generate llms.txt files to train large language models on your Starlight documentation website
26 lines (20 loc) • 1.07 kB
text/typescript
import type { CollectionEntry } from 'astro:content';
import { starlightLllmsTxtContext } from 'virtual:starlight-llms-txt/context';
const { defaultLocale, locales, title } = starlightLllmsTxtContext;
export const defaultLang = (defaultLocale === 'root' ? locales?.root?.lang : defaultLocale) || 'en';
/** Get the site title from the Starlight config. */
export function getSiteTitle(): string {
return typeof title === 'string' ? title : (title[defaultLang] as string);
}
const localeKeys = Object.keys(locales || {}).filter(
(key) => key !== 'root' && key !== defaultLang
);
const startsWithLocaleRE = new RegExp(`^(${localeKeys.join('|')})\/`);
/** Check if a content collection entry is part of the default locale or not. */
export function isDefaultLocale(doc: CollectionEntry<'docs'>): boolean {
return !(localeKeys.includes(doc.id) || startsWithLocaleRE.test(doc.id));
}
/** Append a `/` to the passed string if it doesn’t already end with one. */
export function ensureTrailingSlash(path: string) {
return path.at(-1) === '/' ? path : path + '/';
}