mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-20 05:28:15 +02:00
Rebaptise AJEAN en Loki (fork, lignée conservée)
- module github.com/R0m1k3/Loki, cmd/loki, internal/loki (package loki) - LOKI_HOME, LOKI_MODEL_DIRS, LOKI_SERVICE, LOKI_DL_CONNS ; /etc/loki ; units loki-engine / loki-ui ; binaire et aide CLI - updateRepo pointe sur R0m1k3/Loki (l'auto-update ne tirera plus les binaires AJEAN amont) Conservé à l'identique : le domaine ajean.link (service de tunnel amont), les littéraux de migration 0.7.x (migrate_07.go), RELEASE_NOTES.md et LICENSE (historique et licence de l'amont). go build/vet/test : verts.
This commit is contained in:
157 files changed
+928
-928
No files matched your search
@@ -0,0 +1,52 @@
|
||||
// ===== Apparence =============================================================
|
||||
// Un seul thème, en deux variantes : claire (par défaut) et sombre. La variante
|
||||
// est portée par l'attribut data-theme de <html> ('' ou 'dark') ; tout le reste
|
||||
// est du CSS (voir la section « Palette »). Persistée dans localStorage pour
|
||||
// être appliquée sans clignotement au chargement, puis alignée sur le serveur
|
||||
// par loadPrefs() — voir 02-prefs.js.
|
||||
function applyTheme(id){
|
||||
// Tolère les anciens identifiants (loki, gpt-dark, soft…) : seule compte
|
||||
// désormais la variante, déduite du suffixe.
|
||||
const dark = id==='dark' || (typeof id==='string' && id.endsWith('-dark'));
|
||||
document.documentElement.setAttribute('data-theme', dark?'dark':'light');
|
||||
try{ localStorage.setItem('loki-theme', dark?'dark':'light'); }catch(e){}
|
||||
const sw=document.getElementById('theme-dark'); if(sw) sw.checked=dark;
|
||||
}
|
||||
function toggleThemeDark(){
|
||||
applyTheme(document.getElementById('theme-dark').checked?'dark':'light');
|
||||
savePrefs();
|
||||
}
|
||||
function initTheme(){
|
||||
let id='light'; try{ id=localStorage.getItem('loki-theme')||'light'; }catch(e){}
|
||||
applyTheme(id);
|
||||
}
|
||||
// ===== Affichage ============================================================
|
||||
// Quatre interrupteurs indépendants. Chacun pose un attribut sur <html> ; le CSS
|
||||
// fait le reste, sauf « replier les bulles » qui est un comportement (voir
|
||||
// 08-chat-render).
|
||||
const VIEW_OPTS=[
|
||||
{id:'hide-reasoning', label:'masquer le raisonnement'},
|
||||
{id:'hide-tools', label:"masquer les appels d'outils"},
|
||||
{id:'fold-tools', label:'garder les bulles repliées'},
|
||||
{id:'hide-side', label:'barre latérale escamotable'},
|
||||
{id:'hide-stats', label:'masquer la vitesse de génération'},
|
||||
];
|
||||
function viewOn(id){ return document.documentElement.getAttribute('data-'+id)==='1'; }
|
||||
function applyView(id, on){
|
||||
document.documentElement.setAttribute('data-'+id, on?'1':'0');
|
||||
try{ localStorage.setItem('loki-'+id, on?'1':'0'); }catch(e){}
|
||||
const box=document.getElementById('view-'+id); if(box) box.checked=!!on;
|
||||
// La barre latérale peut rester ouverte quand on repasse en mode fixe.
|
||||
if(id==='hide-side' && !on){
|
||||
document.getElementById('side').classList.remove('open');
|
||||
document.getElementById('backdrop').classList.remove('open');
|
||||
document.body.classList.remove('drawer-open');
|
||||
}
|
||||
}
|
||||
function toggleView(id){ applyView(id, document.getElementById('view-'+id).checked); savePrefs(); }
|
||||
function initView(){
|
||||
VIEW_OPTS.forEach(o=>{
|
||||
let v=null; try{ v=localStorage.getItem('loki-'+o.id); }catch(e){}
|
||||
applyView(o.id, v==='1');
|
||||
});
|
||||
}
|
||||
Reference in new issue
Block a user