Self-injecting script following impressum.js pattern: - data-tone attribute: playful | serious | minimal | none - Reads document.documentElement.lang for KI (de) vs AI (en) - MutationObserver on lang attr for i18n toggle compat - All tones link to msbls.de/ki - Injected into all 54 custom sites with data-tone="playful" - Template infra: base.html includes script, render.sh reads disclosure.tone - disclosure.tone added to 3 example site.yaml files Implements m/onepager#2
25 lines
794 B
HTML
25 lines
794 B
HTML
<!DOCTYPE html>
|
|
<html lang="{{lang}}">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title{{title_i18n}}>{{title}}</title>
|
|
<meta name="description" content="{{description}}"{{description_i18n}}>
|
|
<meta name="robots" content="index, follow">
|
|
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>{{favicon}}</text></svg>">
|
|
{{fonts}}
|
|
<style>
|
|
{{css_variables}}
|
|
{{css_responsive}}
|
|
{{css_animations}}
|
|
{{css_noise}}
|
|
{{template_css}}
|
|
</style>
|
|
</head>
|
|
<body class="noise-overlay">
|
|
{{body}}
|
|
<script src="/shared/ai-disclosure.js" data-tone="{{disclosure_tone}}"></script>
|
|
<script src="/shared/i18n.js"></script>
|
|
</body>
|
|
</html>
|