Skip to content

Commit 0ee90fe

Browse files
committed
feat: upgrade docsify runtime to v5
1 parent cf4c2f8 commit 0ee90fe

7 files changed

Lines changed: 118 additions & 2543 deletions

File tree

index.html

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@
7777
<link id="prism-light-theme" rel="stylesheet" href="lib/css/prism-light.css">
7878
<link id="prism-dark-theme" rel="stylesheet" href="lib/css/prism-dark.css">
7979
<link rel="stylesheet" href="lib/css/docsify-tabs.css">
80-
<link rel="stylesheet" href="lib/css/docs-app.css?v=59">
80+
<link rel="stylesheet" href="lib/css/docs-app.css?v=60">
8181
<link rel="stylesheet" href="lib/components/last-modified.css?v=1">
8282

8383
<script>
@@ -210,7 +210,6 @@
210210
},
211211
maxLevel: 0,
212212
subMaxLevel: 0,
213-
topMargin: 76,
214213
notFoundPage: {
215214
'/': '/404',
216215
'/en/': '/en/404'
@@ -255,7 +254,7 @@
255254

256255
<script src="lib/docsify.min.js"></script>
257256
<script src="lib/navigation-scope.js?v=2"></script>
258-
<script src="lib/navigation.js?v=56"></script>
257+
<script src="lib/navigation.js?v=60"></script>
259258
<script src="lib/footer-hook.js"></script>
260259
<script src="lib/markdown-components.js?v=1"></script>
261260
<script src="lib/components/last-modified.js?v=2"></script>

lib/css/docs-app.css

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
:root {
22
--docs-header-height: 64px;
3+
--scroll-padding-top: calc(var(--docs-header-height) + 1rem);
34
--docs-sidebar-width: 19rem;
45
--docs-accent: #2c9cff;
56
--docs-accent-strong: #147fd6;
@@ -154,7 +155,7 @@
154155
}
155156

156157
html {
157-
scroll-padding-top: calc(var(--docs-header-height) + 1rem);
158+
scroll-padding-top: var(--scroll-padding-top);
158159
}
159160

160161
body {
@@ -174,6 +175,29 @@ body,
174175
outline-offset: 2px;
175176
}
176177

178+
#skip-to-content {
179+
position: fixed;
180+
z-index: 1000;
181+
inset-block-start: 0;
182+
inset-inline-start: 50%;
183+
padding: 0.65rem 1rem;
184+
border: 0;
185+
border-radius: 0 0 var(--docs-radius) var(--docs-radius);
186+
background: var(--docs-accent-strong);
187+
color: #ffffff;
188+
font: 650 0.875rem/1.35 var(--base-font-family);
189+
transform: translate(-50%, calc(-100% - 0.5rem));
190+
transition: transform var(--duration-fast) var(--ease-out);
191+
}
192+
193+
#skip-to-content:focus-visible {
194+
transform: translate(-50%, 0);
195+
}
196+
197+
.search .kbd-group {
198+
display: none !important;
199+
}
200+
177201
.docs-header {
178202
position: fixed;
179203
z-index: 100;

lib/docsify.min.js

Lines changed: 8 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/navigation.js

Lines changed: 58 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -819,6 +819,15 @@
819819
}
820820

821821
function setupResponsiveTableCells() {
822+
document.querySelectorAll('.markdown-section table').forEach(function (table) {
823+
if (table.parentElement && table.parentElement.classList.contains('table-wrapper')) return;
824+
825+
var wrapper = document.createElement('div');
826+
wrapper.className = 'table-wrapper';
827+
table.parentNode.insertBefore(wrapper, table);
828+
wrapper.appendChild(table);
829+
});
830+
822831
document.querySelectorAll('.markdown-section .table-wrapper td').forEach(function (cell) {
823832
if (directChild(cell, '.responsive-table-value')) return;
824833
var value = document.createElement('div');
@@ -1320,13 +1329,31 @@
13201329
if (breadcrumb) heading.insertAdjacentElement('beforebegin', breadcrumb);
13211330
}
13221331

1332+
function usesDocsifyV5SidebarState(sidebar) {
1333+
return Boolean(
1334+
sidebar &&
1335+
window.Docsify &&
1336+
/^5\./.test(String(window.Docsify.version || ''))
1337+
);
1338+
}
1339+
13231340
function syncSidebarToggleState() {
13241341
var toggle = document.querySelector('.docs-header > .sidebar-toggle');
13251342
if (!toggle) return;
13261343
var mobile = window.matchMedia('(max-width: 47.99em)').matches;
1327-
var expanded = mobile
1328-
? document.body.classList.contains('close')
1329-
: !document.body.classList.contains('close');
1344+
var sidebar = document.querySelector('.sidebar');
1345+
var usesV5State = usesDocsifyV5SidebarState(sidebar);
1346+
var expanded;
1347+
1348+
if (usesV5State) {
1349+
expanded = sidebar.classList.contains('show');
1350+
document.body.classList.toggle('close', mobile ? expanded : !expanded);
1351+
} else {
1352+
expanded = mobile
1353+
? document.body.classList.contains('close')
1354+
: !document.body.classList.contains('close');
1355+
}
1356+
13301357
toggle.setAttribute('aria-expanded', String(expanded));
13311358
toggle.setAttribute('aria-label', uiText(expanded ? 'sidebar_hide' : 'sidebar_show'));
13321359
toggle.title = toggle.getAttribute('aria-label');
@@ -1581,9 +1608,26 @@
15811608
var header = document.querySelector('.docs-header');
15821609
var brand = document.getElementById('docs-brand');
15831610
var toggle = document.querySelector('.sidebar-toggle');
1611+
var sidebar = document.querySelector('.sidebar');
15841612
if (!header || !brand || !toggle) return;
15851613

15861614
if (toggle.parentElement !== header) header.insertBefore(toggle, brand);
1615+
if (
1616+
usesDocsifyV5SidebarState(sidebar) &&
1617+
window.matchMedia('(max-width: 47.99em)').matches &&
1618+
toggle.dataset.docsV5MobileInitialized !== 'true'
1619+
) {
1620+
toggle.dataset.docsV5MobileInitialized = 'true';
1621+
sidebar.classList.remove('show');
1622+
document.querySelectorAll('body > *:not(main, script), main > .content').forEach(function (element) {
1623+
element.removeAttribute('inert');
1624+
});
1625+
var innerToggle = toggle.querySelector('[aria-controls="__sidebar"]');
1626+
if (innerToggle) {
1627+
innerToggle.setAttribute('aria-expanded', 'false');
1628+
innerToggle.setAttribute('aria-label', uiText('sidebar_show'));
1629+
}
1630+
}
15871631
if (!toggle.dataset.docsHeaderToggle) {
15881632
toggle.dataset.docsHeaderToggle = 'true';
15891633
toggle.addEventListener('click', function () {
@@ -1594,6 +1638,17 @@
15941638
setupPageOutlinePanel();
15951639
});
15961640
}
1641+
if (
1642+
usesDocsifyV5SidebarState(sidebar) &&
1643+
sidebar.dataset.docsSidebarStateBound !== 'true'
1644+
) {
1645+
sidebar.dataset.docsSidebarStateBound = 'true';
1646+
sidebar.addEventListener('click', function (event) {
1647+
if (event.target.closest && event.target.closest('a')) {
1648+
window.setTimeout(syncSidebarToggleState, 0);
1649+
}
1650+
});
1651+
}
15971652
syncSidebarToggleState();
15981653
}
15991654

0 commit comments

Comments
 (0)