Центр документации
Attachments
History
Blame
View Source
A - Z
Changelog
Documentation
About An Otter Wiki
Toggle dark mode
Login
Page Index
Что такое Агро-модуль
Как Начать Работу В Агро-Модуле
Как подключить компанию к Агро-модулю
Как устроены Поля
Как создать поле
Как редактировать поле
Как удалить поле
Как устроен раздел Регистрации обработок
Как найти обработки
Как редактировать обработку
Как удалить обработку
Как устроен раздел Отчёт
Виды отчётов в Агро
Как создать отчёт
Описание отчёта в Агро
Как устроены Справочники
Что такое культуры
Как создать культуру
Как редактировать культуру
Как удалить культуру
Что такое агрегаты
Как создать агрегат
Как редактировать агрегат
Как удалить агрегат
Что такое операции
Как создать операцию
Как удалить операцию
Как Изменить Операцию
Как Изменить Настройки Skif Agro
Роли доступа
Landing.Html
04398a
Commit
04398a
2026-03-20 08:07:54
GitLab Deploy
: update: landing page
landing.html
..
@@ 3,8 3,8 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
-
<title>SKIF.PRO — База знаний</title>
-
<meta name="description" content="SKIF Wiki — база знаний на платформе OtterWiki">
+
<title>SKIF.PRO — Центр документации</title>
+
<meta name="description" content="Документация, руководства и инструкции по работе с платформой мониторинга транспорта SKIF.PRO">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Onest:wght@400;500;600;700&display=swap" rel="stylesheet">
<script>(function(){var t=localStorage.getItem('theme');if(!t)t=matchMedia('(prefers-color-scheme:dark)').matches?'dark':'light';document.documentElement.dataset.theme=t})()</script>
@@ 32,7 32,6 @@
--hero-glow-1: rgba(56,142,255,0.06);
--hero-glow-2: rgba(56,142,255,0.03);
--hero-grid: rgba(56,142,255,0.03);
-
--search-focus-shadow: 0 0 0 3px rgba(56,142,255,0.12), 0 8px 24px rgba(0,0,0,0.08);
}
[data-theme="dark"] {
@@ 55,7 54,6 @@
--hero-glow-1: rgba(56,142,255,0.07);
--hero-glow-2: rgba(56,142,255,0.04);
--hero-grid: rgba(56,142,255,0.025);
-
--search-focus-shadow: 0 0 0 3px rgba(56,142,255,0.15), 0 8px 24px rgba(0,0,0,0.3);
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
@@ 172,209 170,97 @@
margin: 0 auto 36px;
}
-
/* ═══ SEARCH ═══ */
-
.search-box {
-
position: relative;
-
max-width: 520px;
+
/* ═══ CONTENT ═══ */
+
.content {
+
max-width: 720px;
margin: 0 auto;
+
padding: 0 40px 80px;
}
-
.search-box svg {
-
position: absolute;
-
left: 20px;
-
top: 50%;
-
transform: translateY(-50%);
-
width: 18px;
-
height: 18px;
-
stroke: var(--text-muted);
-
fill: none;
-
stroke-width: 2;
-
stroke-linecap: round;
-
pointer-events: none;
-
}
-
.search-box input {
-
width: 100%;
-
height: 52px;
-
padding: 0 20px 0 52px;
+
+
/* ═══ MODULE BLOCK ═══ */
+
.module-block {
background: var(--bg-card);
border: 1px solid var(--border);
-
border-radius: 26px;
-
color: var(--text);
-
font-size: 14px;
-
font-family: inherit;
-
outline: none;
-
transition: all 0.2s;
-
}
-
.search-box input::placeholder { color: var(--text-muted); }
-
.search-box input:focus {
-
border-color: var(--accent);
-
box-shadow: var(--search-focus-shadow);
-
}
-
.search-hint {
-
margin-top: 10px;
-
font-size: 12px;
-
color: var(--text-muted);
+
border-radius: var(--radius);
+
padding: 40px 36px;
+
box-shadow: var(--card-shadow);
}
-
-
/* ═══ QUICK LINKS ═══ */
-
.quick-bar {
+
.module-header {
display: flex;
-
gap: 10px;
-
flex-wrap: wrap;
-
justify-content: center;
-
padding: 0 40px;
-
margin-bottom: 40px;
-
}
-
.quick-bar a {
-
display: inline-flex;
align-items: center;
-
gap: 7px;
-
padding: 9px 18px;
-
font-size: 13px;
-
font-weight: 500;
-
color: var(--text-dim);
-
background: var(--bg-card);
-
border: 1px solid var(--border);
-
border-radius: 100px;
-
text-decoration: none;
-
transition: all 0.2s;
+
gap: 12px;
+
margin-bottom: 8px;
}
-
.quick-bar a:hover {
-
color: var(--text);
-
border-color: var(--border-hover);
-
background: var(--bg-card-hover);
-
box-shadow: 0 0 0 3px var(--accent-glow);
-
}
-
.quick-bar a svg {
-
width: 14px; height: 14px;
-
stroke: currentColor; fill: none;
-
stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
-
}
-
-
/* ═══ CONTENT ═══ */
-
.content {
-
max-width: 1120px;
-
margin: 0 auto;
-
padding: 0 40px 80px;
-
}
-
-
/* ═══ SECTION LABEL ═══ */
-
.section-label {
-
font-size: 11px;
-
font-weight: 600;
-
text-transform: uppercase;
-
letter-spacing: 1.8px;
-
color: var(--text-muted);
-
margin-bottom: 16px;
-
padding-left: 2px;
+
.module-header svg {
+
color: var(--accent);
+
flex-shrink: 0;
}
-
.section-label .planned {
-
color: var(--orange);
+
.module-header h2 {
+
font-size: 22px;
font-weight: 700;
-
letter-spacing: 1px;
-
margin-left: 6px;
+
letter-spacing: -0.3px;
+
}
+
.module-desc {
+
font-size: 14px;
+
line-height: 1.6;
+
color: var(--text-dim);
+
margin-bottom: 28px;
}
-
/* ═══ CARD GRID ═══ */
-
.card-grid {
+
/* ═══ AUDIENCE CARDS ═══ */
+
.audience-grid {
display: grid;
grid-template-columns: 1fr 1fr;
-
gap: 14px;
-
margin-bottom: 40px;
-
}
-
.card-grid.cols-3 {
-
grid-template-columns: 1fr 1fr 1fr;
+
gap: 16px;
}
-
-
.card {
-
background: var(--bg-card);
+
.audience-card {
+
background: var(--bg-raised);
border: 1px solid var(--border);
-
border-radius: var(--radius);
-
padding: 32px 28px 26px;
-
text-align: center;
-
box-shadow: var(--card-shadow);
-
transition: all 0.22s ease;
-
position: relative;
-
overflow: hidden;
-
}
-
.card::after {
-
content: '';
-
position: absolute;
-
top: 0; left: 50%;
-
transform: translateX(-50%) scaleX(0);
-
width: 40px; height: 2.5px;
-
background: var(--accent);
-
border-radius: 0 0 3px 3px;
-
transition: transform 0.22s ease;
-
}
-
.card:hover {
-
border-color: var(--border-hover);
-
background: var(--bg-card-hover);
-
transform: translateY(-2px);
-
box-shadow: var(--card-hover-shadow);
-
}
-
.card:hover::after { transform: translateX(-50%) scaleX(1); }
-
-
.card.planned { opacity: 0.55; }
-
.card.planned:hover { opacity: 0.75; }
-
-
.card-icon {
-
width: 46px; height: 46px;
border-radius: var(--radius-sm);
-
background: var(--accent-soft);
-
display: inline-flex;
-
align-items: center; justify-content: center;
-
margin-bottom: 16px;
+
padding: 24px;
transition: all 0.2s;
}
-
.card-icon svg {
-
width: 21px; height: 21px;
-
stroke: var(--accent); fill: none;
-
stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
+
.audience-card:hover {
+
border-color: var(--border-hover);
+
box-shadow: var(--card-hover-shadow);
}
-
.card:hover .card-icon { background: var(--accent); }
-
.card:hover .card-icon svg { stroke: #fff; }
-
-
.card h3 {
-
font-size: 16px;
+
.audience-label {
+
display: flex;
+
align-items: center;
+
gap: 8px;
+
font-size: 14px;
font-weight: 600;
-
margin-bottom: 6px;
-
letter-spacing: -0.1px;
+
margin-bottom: 8px;
+
}
+
.audience-label svg {
+
stroke: var(--accent);
+
fill: none;
+
stroke-width: 2;
+
stroke-linecap: round;
+
stroke-linejoin: round;
}
-
.card p {
+
.audience-desc {
font-size: 13px;
-
line-height: 1.55;
+
line-height: 1.5;
color: var(--text-dim);
-
margin-bottom: 18px;
-
}
-
.card-links {
-
display: flex;
-
justify-content: center;
-
gap: 16px;
-
flex-wrap: wrap;
-
align-items: center;
+
margin-bottom: 16px;
}
-
.card-links a {
-
font-size: 12.5px;
+
.audience-link {
+
font-size: 13px;
font-weight: 500;
color: var(--accent);
text-decoration: none;
transition: color 0.15s;
}
-
.card-links a:hover {
+
.audience-link:hover {
color: var(--accent-light);
text-decoration: underline;
text-underline-offset: 3px;
}
-
.badge {
-
display: inline-block;
-
font-size: 9px;
-
font-weight: 700;
-
color: #fff;
-
background: var(--orange);
-
border-radius: 4px;
-
padding: 2px 6px;
-
letter-spacing: 0.5px;
-
vertical-align: middle;
+
+
@media (max-width: 600px) {
+
.audience-grid { grid-template-columns: 1fr; }
+
.module-block { padding: 28px 20px; }
}
/* ═══ FOOTER ═══ */
@@ 452,13 338,13 @@
<!-- ═══════ HEADER ═══════ -->
<header class="header">
<div class="header-left">
-
<img src="/logo.webp" alt="SKIF.PRO" class="logo-img">
+
<img src="logo.webp" alt="SKIF.PRO" class="logo-img">
<div class="header-divider"></div>
-
<span class="header-label">SKIF Wiki</span>
+
<span class="header-label">Центр документации</span>
</div>
<div class="header-right">
<a class="header-link" href="https://skif.pro" target="_blank">Платформа</a>
-
<a class="header-link" href="/-/view/home">Wiki</a>
+
<a class="header-link" href="/ru/home">Wiki</a>
<button class="theme-toggle" id="themeToggle" aria-label="Переключить тему">
<svg class="icon-moon" viewBox="0 0 24 24"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></svg>
<svg class="icon-sun" viewBox="0 0 24 24"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg>
@@ 469,161 355,53 @@
<!-- ═══════ HERO ═══════ -->
<section class="hero">
<div class="hero-inner">
-
<h1>SKIF Wiki</h1>
-
<p>Добро пожаловать в базу знаний SKIF.PRO. Документация, руководства и инструкции на платформе OtterWiki.</p>
-
<div class="search-box">
-
<svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
-
<input type="text" id="searchInput" placeholder="Поиск по wiki..." autocomplete="off">
-
</div>
+
<h1>Документация SKIF.PRO</h1>
+
<p>Руководства, инструкции и экспертные статьи — всё, что нужно для эффективной работы с платформой мониторинга.</p>
</div>
</section>
-
<!-- ═══════ QUICK LINKS ═══════ -->
-
<div class="quick-bar">
-
<a href="/-/view/home">
-
<svg viewBox="0 0 24 24"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/></svg>
-
Главная страница Wiki
-
</a>
-
<a href="/-/allpages">
-
<svg viewBox="0 0 24 24"><line x1="8" y1="6" x2="21" y2="6"/><line x1="8" y1="12" x2="21" y2="12"/><line x1="8" y1="18" x2="21" y2="18"/><line x1="3" y1="6" x2="3.01" y2="6"/><line x1="3" y1="12" x2="3.01" y2="12"/><line x1="3" y1="18" x2="3.01" y2="18"/></svg>
-
Все страницы
-
</a>
-
<a href="/-/register">
-
<svg viewBox="0 0 24 24"><path d="M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="8.5" cy="7" r="4"/><line x1="20" y1="8" x2="20" y2="14"/><line x1="23" y1="11" x2="17" y2="11"/></svg>
-
Регистрация
-
</a>
-
<a href="/-/admin" style="color: var(--orange);">
-
<svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 8.82a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"/></svg>
-
Админ-панель
-
</a>
-
</div>
-
-
<!-- ═══════ CARDS ═══════ -->
+
<!-- ═══════ AGRO MODULE ═══════ -->
<div class="content">
-
<!-- ── Разделы Wiki ── -->
-
<div class="section-label">Разделы базы знаний</div>
-
<div class="card-grid">
-
-
<a href="/-/view/Начинающим" class="card" style="text-decoration: none; color: inherit;">
-
<div class="card-icon">
-
<svg viewBox="0 0 24 24"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/></svg>
-
</div>
-
<h3>Начинающим</h3>
-
<p>Основы работы с системой. Первые шаги и руководства для новичков.</p>
-
<div class="card-links">Открыть раздел →</div>
-
</a>
-
-
<a href="/-/view/Установка" class="card" style="text-decoration: none; color: inherit;">
-
<div class="card-icon">
-
<svg viewBox="0 0 24 24"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg>
-
</div>
-
<h3>Установка</h3>
-
<p>Инструкции по установке и настройке всех компонентов системы.</p>
-
<div class="card-links">Открыть раздел →</div>
-
</a>
-
-
<a href="/-/view/Конфигурация" class="card" style="text-decoration: none; color: inherit;">
-
<div class="card-icon">
-
<svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 8.82a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"/></svg>
-
</div>
-
<h3>Конфигурация</h3>
-
<p>Подробное описание всех настроек и параметров конфигурации.</p>
-
<div class="card-links">Открыть раздел →</div>
-
</a>
-
-
<a href="/-/view/API" class="card" style="text-decoration: none; color: inherit;">
-
<div class="card-icon">
-
<svg viewBox="0 0 24 24"><polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/></svg>
-
</div>
-
<h3>API</h3>
-
<p>Документация по API, примеры запросов и интеграции.</p>
-
<div class="card-links">Открыть раздел →</div>
-
</a>
-
-
<a href="/-/view/Траблшутинг" class="card" style="text-decoration: none; color: inherit;">
-
<div class="card-icon">
-
<svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg>
-
</div>
-
<h3>Траблшутинг</h3>
-
<p>Решение проблем и frequently asked questions.</p>
-
<div class="card-links">Открыть раздел →</div>
-
</a>
-
-
<a href="/-/view/Глоссарий" class="card" style="text-decoration: none; color: inherit;">
-
<div class="card-icon">
-
<svg viewBox="0 0 24 24"><path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"/><path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"/></svg>
-
</div>
-
<h3>Глоссарий</h3>
-
<p>Словарь терминов и сокращений, используемых в проекте.</p>
-
<div class="card-links">Открыть раздел →</div>
-
</a>
-
-
</div>
-
-
<!-- ── Быстрый старт ── -->
-
<div class="section-label">Быстрый старт</div>
-
<div class="card-grid cols-3">
+
<div class="module-block">
+
<div class="module-header">
+
<svg viewBox="0 0 24 24" width="28" height="28"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z" fill="none" stroke="currentColor" stroke-width="1.5"/><path d="M7 12.5c1.5-3 3-5 5-6.5 1.5 2 3 4.5 3.5 7s-.5 5-3.5 6c-2-1-4-3-5-6.5z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/><path d="M12 6v12" stroke="currentColor" stroke-width="1" opacity="0.5"/></svg>
+
<h2>Агро-модуль</h2>
+
</div>
+
<p class="module-desc">Мониторинг сельскохозяйственной техники, учёт обработок полей, отчёты и справочники.</p>
-
<a href="/-/register" class="card" style="text-decoration: none; color: inherit;">
-
<div class="card-icon">
-
<svg viewBox="0 0 24 24"><path d="M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="8.5" cy="7" r="4"/><line x1="20" y1="8" x2="20" y2="14"/><line x1="23" y1="11" x2="17" y2="11"/></svg>
-
</div>
-
<h3>Регистрация</h3>
-
<p>Создайте аккаунт для редактирования страниц.</p>
-
<div class="card-links">Зарегистрироваться →</div>
-
</a>
+
<div class="audience-grid">
-
<a href="/-/view/Начинающим" class="card" style="text-decoration: none; color: inherit;">
-
<div class="card-icon">
-
<svg viewBox="0 0 24 24"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/></svg>
+
<div class="audience-card">
+
<div class="audience-label">
+
<svg viewBox="0 0 24 24" width="18" height="18"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>
+
Для пользователей
+
</div>
+
<p class="audience-desc">Руководства по работе с модулем: поля, обработки, отчёты, настройки.</p>
+
<a href="/Руководство пользователя/Агро-модуль" class="audience-link">Перейти к статьям</a>
</div>
-
<h3>Руководства</h3>
-
<p>Пошаговые инструкции для начинающих.</p>
-
<div class="card-links">Читать →</div>
-
</a>
-
<a href="/-/allpages" class="card" style="text-decoration: none; color: inherit;">
-
<div class="card-icon">
-
<svg viewBox="0 0 24 24"><line x1="8" y1="6" x2="21" y2="6"/><line x1="8" y1="12" x2="21" y2="12"/><line x1="8" y1="18" x2="21" y2="18"/><line x1="3" y1="6" x2="3.01" y2="6"/><line x1="3" y1="12" x2="3.01" y2="12"/><line x1="3" y1="18" x2="3.01" y2="18"/></svg>
+
<div class="audience-card">
+
<div class="audience-label">
+
<svg viewBox="0 0 24 24" width="18" height="18"><polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/></svg>
+
Для интеграторов
+
</div>
+
<p class="audience-desc">Техническая документация: настройка, подключение оборудования, интеграция.</p>
+
<a href="/Документация для интеграторов" class="audience-link">Перейти к статьям</a>
</div>
-
<h3>Все страницы</h3>
-
<p>Просмотр всех страниц в базе знаний.</p>
-
<div class="card-links">Открыть →</div>
-
</a>
+
</div>
</div>
</div>
<!-- ═══════ FOOTER ═══════ -->
<footer class="footer">
-
© 2025 SKIF.PRO · <a href="https://skif.pro" target="_blank">Платформа</a> · <a href="/-/view/home">Wiki Home</a>
+
© 2026 SKIF.PRO · <a href="https://skif.pro" target="_blank">Платформа</a>
</footer>
-
<!-- ═══════ SEARCH → OTTERWIKI ═══════ -->
+
<!-- ═══════ SCRIPTS ═══════ -->
<script>
-
const searchInput = document.getElementById('searchInput');
-
-
// Redirect search to OtterWiki search
-
searchInput.addEventListener('keydown', (e) => {
-
if (e.key === 'Enter') {
-
const q = searchInput.value.trim();
-
if (q) {
-
window.location.href = '/-/search?q=' + encodeURIComponent(q);
-
}
-
}
-
});
-
-
// Cmd/Ctrl+K focus
-
document.addEventListener('keydown', (e) => {
-
if ((e.metaKey || e.ctrlKey) && e.key === 'k') {
-
e.preventDefault();
-
searchInput.focus();
-
searchInput.select();
-
}
-
});
-
// Theme toggle
document.getElementById('themeToggle').addEventListener('click', () => {
const current = document.documentElement.dataset.theme;
@@ 632,7 410,7 @@
localStorage.setItem('theme', next);
});
-
// Cross-tab sync
+
// Cross-tab sync: if theme changes in another tab (e.g. Wiki.js), update here
window.addEventListener('storage', (e) => {
if (e.key === 'theme' && e.newValue) {
document.documentElement.dataset.theme = e.newValue;
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9