You've already forked obsidian-visualiser
Adding prestyled base tags and testing admin dashboard
This commit is contained in:
42
utils/general.utils.ts
Normal file
42
utils/general.utils.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
export function unifySlug(slug: string | string[]): string
|
||||
{
|
||||
return (Array.isArray(slug) ? slug.join('/') : slug);
|
||||
}
|
||||
export function parseId(id: string | undefined): string |undefined
|
||||
{
|
||||
return id?.normalize('NFD')?.replace(/[\u0300-\u036f]/g, '')?.replace(/^\d\. */g, '')?.replace(/\s/g, "-")?.replace(/%/g, "-percent")?.replace(/\?/g, "-q")?.toLowerCase();
|
||||
}
|
||||
export function padLeft(text: string, pad: string, length: number): string
|
||||
{
|
||||
return text.concat(pad.repeat(length - text.length));
|
||||
}
|
||||
export function padRight(text: string, pad: string, length: number): string
|
||||
{
|
||||
return pad.repeat(length - text.length).concat(text);
|
||||
}
|
||||
export function format(date: Date, template: string): string
|
||||
{
|
||||
const transforms: Record<string, (date: Date) => string> = {
|
||||
"yyyy": (date: Date) => date.getUTCFullYear().toString(),
|
||||
"MM": (date: Date) => padRight((date.getUTCMonth() + 1).toString(), '0', 2),
|
||||
"dd": (date: Date) => padRight(date.getUTCDate().toString(), '0', 2),
|
||||
"mm": (date: Date) => padRight(date.getFullYear().toString(), '0', 2),
|
||||
"HH": (date: Date) => padRight(date.getFullYear().toString(), '0', 2),
|
||||
"ss": (date: Date) => padRight(date.getFullYear().toString(), '0', 2),
|
||||
};
|
||||
const keys = Object.keys(transforms);
|
||||
|
||||
for(const key of keys)
|
||||
{
|
||||
template = template.replaceAll(key, () => transforms[key](date));
|
||||
}
|
||||
|
||||
return template;
|
||||
}
|
||||
export function clamp(x: number, min: number, max: number): number {
|
||||
if (x > max)
|
||||
return max;
|
||||
if (x < min)
|
||||
return min;
|
||||
return x;
|
||||
}
|
||||
Reference in New Issue
Block a user