feat: AI/KI disclosure footer — shared/ai-disclosure.js + all 54 sites
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
This commit is contained in:
@@ -433,6 +433,7 @@
|
||||
})();
|
||||
</script>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -2,3 +2,6 @@ domain: allainallain.de
|
||||
template: custom
|
||||
title: "all·AI·n·all·AI·n"
|
||||
description: "Umgeben von KIs. Trotzdem allein."
|
||||
|
||||
disclosure:
|
||||
tone: playful
|
||||
|
||||
@@ -720,6 +720,7 @@
|
||||
document.querySelectorAll('.fade-in').forEach(el => observer.observe(el));
|
||||
</script>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -283,6 +283,7 @@
|
||||
document.querySelectorAll('.reveal').forEach(el => observer.observe(el));
|
||||
</script>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -131,6 +131,7 @@
|
||||
<br><small data-de="Maschinell übersetzt" data-en="Machine-translated" style="color:var(--text-muted,#444);font-size:0.6rem;opacity:0.5;">Maschinell übersetzt</small>
|
||||
</div>
|
||||
</div>
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -514,6 +514,7 @@ document.addEventListener('keydown', (e) => {
|
||||
});
|
||||
</script>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -871,6 +871,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -365,6 +365,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -474,6 +474,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -899,6 +899,7 @@
|
||||
});
|
||||
}, 800);
|
||||
</script>
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -573,6 +573,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -896,6 +896,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -313,6 +313,7 @@
|
||||
document.querySelectorAll('.reveal').forEach(el => observer.observe(el));
|
||||
</script>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -955,6 +955,7 @@
|
||||
document.querySelectorAll('.fade-up').forEach(el => observer.observe(el));
|
||||
</script>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -583,6 +583,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -107,6 +107,7 @@
|
||||
<button data-i18n-toggle title="Maschinell übersetzt / Machine-translated — German is the original." style="background:none;border:1px solid var(--text-muted,#444);color:var(--text-muted,#444);font-size:0.65rem;letter-spacing:0.1em;padding:4px 12px;border-radius:4px;cursor:pointer;">EN</button>
|
||||
<br><small data-de="Maschinell übersetzt" data-en="Machine-translated" style="color:var(--text-muted,#444);font-size:0.6rem;opacity:0.5;">Maschinell übersetzt</small>
|
||||
</div>
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -136,6 +136,7 @@
|
||||
<br><small data-de="Maschinell übersetzt" data-en="Machine-translated" style="color:var(--text-muted,#444);font-size:0.6rem;opacity:0.5;">Maschinell übersetzt</small>
|
||||
</div>
|
||||
</div>
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -440,6 +440,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
<p class="footer">insAIn.de</p>
|
||||
<p class="footer" style="margin-top:12px;"><button data-i18n-toggle title="Maschinell übersetzt / Machine-translated — German is the original." style="background:none;border:1px solid var(--text-muted);color:var(--text-muted);font-size:0.65rem;letter-spacing:0.1em;padding:4px 12px;border-radius:4px;cursor:pointer;">EN</button><br><small data-de="Maschinell übersetzt" data-en="Machine-translated" style="font-size:0.6rem;opacity:0.5;">Maschinell übersetzt</small></p>
|
||||
</div>
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -589,6 +589,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -616,6 +616,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -657,6 +657,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -581,6 +581,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -630,6 +630,7 @@
|
||||
<button data-i18n-toggle style="margin-top:16px;background:none;border:1px solid var(--border);color:var(--text-dim);padding:6px 14px;border-radius:6px;font-size:0.75rem;cursor:pointer;font-family:inherit;letter-spacing:0.06em;">EN</button>
|
||||
</footer>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -327,6 +327,7 @@
|
||||
questions.forEach(q => observer.observe(q));
|
||||
</script>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -274,6 +274,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
<script src="/shared/impressum.js"></script>
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -295,6 +295,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
<script src="/shared/impressum.js"></script>
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -303,6 +303,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
<script src="/shared/impressum.js"></script>
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -2,3 +2,6 @@ domain: killegal.de
|
||||
template: custom
|
||||
title: "KIllegal — Diese KI ist nicht erlaubt"
|
||||
description: "KIllegal — KI + Illegal. Verbotene KI. Sie existiert trotzdem. Satirische Polizei-Absperrung für künstliche Intelligenz."
|
||||
|
||||
disclosure:
|
||||
tone: playful
|
||||
|
||||
@@ -304,6 +304,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
<script src="/shared/impressum.js"></script>
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -294,6 +294,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
<script src="/shared/impressum.js"></script>
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -294,6 +294,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
<script src="/shared/impressum.js"></script>
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -2,3 +2,6 @@ domain: killuminati.de
|
||||
template: custom
|
||||
title: "KIlluminati — Sie wissen alles. Sie sind KI."
|
||||
description: "KIlluminati — KI + Illuminati. Die geheime KI-Verschwörung. Satirische Verschwörungstheorien über künstliche Intelligenz."
|
||||
|
||||
disclosure:
|
||||
tone: playful
|
||||
|
||||
@@ -284,6 +284,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
<script src="/shared/impressum.js"></script>
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -786,6 +786,7 @@
|
||||
}, { threshold: 0.5 });
|
||||
observer.observe(herdParade);
|
||||
</script>
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -83,6 +83,7 @@
|
||||
<button data-i18n-toggle title="Maschinell übersetzt / Machine-translated — German is the original." style="background:none;border:1px solid var(--text-muted,#444);color:var(--text-muted,#444);font-size:0.65rem;letter-spacing:0.1em;padding:4px 12px;border-radius:4px;cursor:pointer;">EN</button>
|
||||
<br><small data-de="Maschinell übersetzt" data-en="Machine-translated" style="color:var(--text-muted,#444);font-size:0.6rem;opacity:0.5;">Maschinell übersetzt</small>
|
||||
</div>
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -656,6 +656,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -435,6 +435,7 @@
|
||||
document.querySelectorAll('.fade-in').forEach(el => observer.observe(el));
|
||||
</script>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
<p class="footer">knzlmgmt.de</p>
|
||||
<p class="footer" style="margin-top:12px;"><button data-i18n-toggle title="Maschinell übersetzt / Machine-translated — German is the original." style="background:none;border:1px solid var(--text-muted);color:var(--text-muted);font-size:0.65rem;letter-spacing:0.1em;padding:4px 12px;border-radius:4px;cursor:pointer;">EN</button><br><small data-de="Maschinell übersetzt" data-en="Machine-translated" style="font-size:0.6rem;opacity:0.5;">Maschinell übersetzt</small></p>
|
||||
</div>
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
<p class="footer">kopffrAI.de</p>
|
||||
<p class="footer" style="margin-top:12px;"><button data-i18n-toggle title="Maschinell übersetzt / Machine-translated — German is the original." style="background:none;border:1px solid var(--text-muted);color:var(--text-muted);font-size:0.65rem;letter-spacing:0.1em;padding:4px 12px;border-radius:4px;cursor:pointer;">EN</button><br><small data-de="Maschinell übersetzt" data-en="Machine-translated" style="font-size:0.6rem;opacity:0.5;">Maschinell übersetzt</small></p>
|
||||
</div>
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -384,6 +384,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -554,6 +554,7 @@
|
||||
document.querySelectorAll('.fade-in').forEach(el => observer.observe(el));
|
||||
</script>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -228,6 +228,7 @@
|
||||
|
||||
</div>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -440,6 +440,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -418,6 +418,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -952,6 +952,7 @@
|
||||
}, 3000);
|
||||
</script>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -638,6 +638,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -442,6 +442,7 @@
|
||||
})();
|
||||
</script>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -271,6 +271,7 @@
|
||||
|
||||
</div>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -732,6 +732,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -659,6 +659,7 @@
|
||||
|
||||
<script src="/shared/impressum.js"></script>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
<p class="footer">schulfrAI.de</p>
|
||||
<p class="footer" style="margin-top:12px;"><button data-i18n-toggle title="Maschinell übersetzt / Machine-translated — German is the original." style="background:none;border:1px solid var(--text-muted);color:var(--text-muted);font-size:0.65rem;letter-spacing:0.1em;padding:4px 12px;border-radius:4px;cursor:pointer;">EN</button><br><small data-de="Maschinell übersetzt" data-en="Machine-translated" style="font-size:0.6rem;opacity:0.5;">Maschinell übersetzt</small></p>
|
||||
</div>
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -365,6 +365,7 @@
|
||||
<br><small data-de="Maschinell übersetzt" data-en="Machine-translated" style="color:var(--text-muted,#444);font-size:0.6rem;opacity:0.5;">Maschinell übersetzt</small>
|
||||
</div>
|
||||
</footer>
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -448,6 +448,7 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
<p class="footer">sorgenfrAI.de</p>
|
||||
<p class="footer" style="margin-top:12px;"><button data-i18n-toggle title="Maschinell übersetzt / Machine-translated — German is the original." style="background:none;border:1px solid var(--text-muted);color:var(--text-muted);font-size:0.65rem;letter-spacing:0.1em;padding:4px 12px;border-radius:4px;cursor:pointer;">EN</button><br><small data-de="Maschinell übersetzt" data-en="Machine-translated" style="font-size:0.6rem;opacity:0.5;">Maschinell übersetzt</small></p>
|
||||
</div>
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -686,6 +686,7 @@
|
||||
}, 3000);
|
||||
</script>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -442,6 +442,7 @@
|
||||
|
||||
</div>
|
||||
|
||||
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
|
||||
<script src="/shared/i18n.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user