25 lines
1.1 KiB
TypeScript
25 lines
1.1 KiB
TypeScript
import type { StyleGroup } from '../lib/style-presets';
|
|
import { site } from './site';
|
|
|
|
export type ContentType = 'text' | 'html' | 'image';
|
|
export interface SeedEntry { tag: string; type: ContentType; value: string; styleOptions?: StyleGroup[] }
|
|
|
|
const T = (tag: string, value: string, styleOptions: StyleGroup[] = ['size', 'color', 'weight', 'style']): SeedEntry =>
|
|
({ tag, type: 'text', value, styleOptions });
|
|
const H = (tag: string, value: string, styleOptions: StyleGroup[] = ['size', 'color']): SeedEntry =>
|
|
({ tag, type: 'html', value, styleOptions });
|
|
const I = (tag: string): SeedEntry => ({ tag, type: 'image', value: '' });
|
|
|
|
export const contentSeed: SeedEntry[] = [
|
|
// --- Globali (site.ts) ---
|
|
T('global.contact.phone', site.phone, []),
|
|
T('global.contact.email', site.email, []),
|
|
T('global.contact.address', site.address, []),
|
|
T('global.contact.city-line', site.cityLine, []),
|
|
T('global.hours.1', site.hours[0], []),
|
|
T('global.hours.2', site.hours[1], []),
|
|
// I task di estrazione aggiungono qui le entry di header/footer/pagine/data file.
|
|
];
|
|
|
|
export const seedByTag = new Map(contentSeed.map((e) => [e.tag, e]));
|