Центр документации
Attachments
History
Blame
View Source
A - Z
Changelog
Documentation
About An Otter Wiki
Toggle dark mode
Login
Page Index
Changelog-Test
Test 2
Test 3
Test 4
Документация Для Интеграторов
Агро-Модуль
Как подключить компанию к Агро-модулю
Руководство Пользователя
Агро-Модуль
Как Начать Работу В Агро-Модуле
Настройки Агро-Модуля
Отчёты
Виды отчётов в Агро
Как сформировать отчёт
Поля
Как редактировать поле
Как создать поле
Как удалить поле
Регистрации Обработок
Как найти обработки
Как редактировать обработку
Как удалить обработку
Справочники
Как редактировать агрегат
Как редактировать культуру
Как редактировать операцию
Как создать агрегат
Как создать культуру
Как создать операцию
Как удалить агрегат
Как удалить культуру
Как удалить операцию
Что такое агрегаты
Что такое культуры
Что такое операции
Что такое Агро-модуль
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