docula 0.41.1 → 0.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +110 -0
- package/dist/docula.d.ts +19 -1
- package/dist/docula.js +559 -126
- package/package.json +6 -2
- package/{template → templates/classic}/css/base.css +10 -0
- package/{template → templates/classic}/css/multipage.css +7 -0
- package/{template → templates/classic}/docs.hbs +1 -1
- package/{template/index.hbs → templates/classic/home.hbs} +7 -1
- package/templates/classic/includes/multipage/api-reference.hbs +1 -0
- package/templates/classic/includes/multipage/documentation.hbs +1 -0
- package/{template → templates/classic}/includes/multipage/hero.hbs +1 -2
- package/{template → templates/classic}/includes/multipage/home.hbs +3 -3
- package/{template → templates/classic}/includes/singlepage/content.hbs +3 -3
- package/templates/modern/api.hbs +30 -0
- package/templates/modern/changelog-entry.hbs +36 -0
- package/templates/modern/changelog.hbs +38 -0
- package/templates/modern/css/highlight/highlight.min.js +1433 -0
- package/templates/modern/css/highlight/styles/base16/docula.css +123 -0
- package/templates/modern/css/home.css +96 -0
- package/templates/modern/css/styles.css +697 -0
- package/templates/modern/docs.hbs +30 -0
- package/templates/modern/home.hbs +51 -0
- package/templates/modern/includes/api-reference.hbs +1 -0
- package/templates/modern/includes/doc.hbs +18 -0
- package/templates/modern/includes/documentation.hbs +1 -0
- package/templates/modern/includes/footer.hbs +6 -0
- package/templates/modern/includes/header-bar.hbs +57 -0
- package/templates/modern/includes/header.hbs +15 -0
- package/templates/modern/includes/hero.hbs +11 -0
- package/templates/modern/includes/home.hbs +46 -0
- package/templates/modern/includes/scripts.hbs +161 -0
- package/templates/modern/includes/sidebar.hbs +22 -0
- package/templates/modern/includes/theme-toggle.hbs +5 -0
- package/template/releases.hbs +0 -86
- /package/{template → templates/classic}/api.hbs +0 -0
- /package/{template → templates/classic}/changelog-entry.hbs +0 -0
- /package/{template → templates/classic}/changelog.hbs +0 -0
- /package/{template → templates/classic}/css/highlight/highlight.min.js +0 -0
- /package/{template → templates/classic}/css/highlight/styles/base16/dracula.min.css +0 -0
- /package/{template → templates/classic}/css/landing.css +0 -0
- /package/{template → templates/classic}/css/singlepage.css +0 -0
- /package/{template → templates/classic}/includes/footer.hbs +0 -0
- /package/{template → templates/classic}/includes/header.hbs +0 -0
- /package/{template → templates/classic}/includes/multipage/doc.hbs +0 -0
- /package/{template → templates/classic}/includes/multipage/header.hbs +0 -0
- /package/{template → templates/classic}/includes/multipage/scripts.hbs +0 -0
- /package/{template → templates/classic}/includes/multipage/sidebar.hbs +0 -0
- /package/{template → templates/classic}/includes/scripts.hbs +0 -0
- /package/{template → templates/classic}/includes/singlepage/hero.hbs +0 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
{{> header }}
|
|
6
|
+
<link rel="stylesheet" href="/css/home.css">
|
|
7
|
+
<title>{{ siteTitle }}</title>
|
|
8
|
+
</head>
|
|
9
|
+
|
|
10
|
+
<body>
|
|
11
|
+
<a href="https://github.com/{{ githubPath }}" class="github-corner" aria-label="View source on GitHub">
|
|
12
|
+
<svg width="80" height="80" viewBox="0 0 250 250" aria-hidden="true">
|
|
13
|
+
<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path>
|
|
14
|
+
<path
|
|
15
|
+
d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2"
|
|
16
|
+
fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path>
|
|
17
|
+
<path
|
|
18
|
+
d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z"
|
|
19
|
+
fill="currentColor" class="octo-body"></path>
|
|
20
|
+
</svg>
|
|
21
|
+
</a>
|
|
22
|
+
|
|
23
|
+
{{#if content}}
|
|
24
|
+
<header class="home-hero">
|
|
25
|
+
<img src="/logo.svg" alt="logo" />
|
|
26
|
+
{{#if announcement}}
|
|
27
|
+
<div class="announcement">{{{announcement}}}</div>
|
|
28
|
+
{{/if}}
|
|
29
|
+
</header>
|
|
30
|
+
<div class="home-content">{{{content}}}</div>
|
|
31
|
+
{{> home }}
|
|
32
|
+
{{else}}
|
|
33
|
+
<main class="home">
|
|
34
|
+
{{> hero }}
|
|
35
|
+
<div class="home-actions">
|
|
36
|
+
{{> documentation }}
|
|
37
|
+
{{#if hasApi}}
|
|
38
|
+
{{> api-reference }}
|
|
39
|
+
{{/if}}
|
|
40
|
+
</div>
|
|
41
|
+
{{> home }}
|
|
42
|
+
</main>
|
|
43
|
+
{{/if}}
|
|
44
|
+
|
|
45
|
+
{{> theme-toggle fixed=true }}
|
|
46
|
+
|
|
47
|
+
{{> footer }}
|
|
48
|
+
{{> scripts }}
|
|
49
|
+
</body>
|
|
50
|
+
|
|
51
|
+
</html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<a href="/api" class="home-docs-button">API Reference</a>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<article class="article">
|
|
2
|
+
<header class="article__header">
|
|
3
|
+
<h1 class="article__title">{{title}}</h1>
|
|
4
|
+
{{#if description}}
|
|
5
|
+
<p class="article__description">{{description}}</p>
|
|
6
|
+
{{/if}}
|
|
7
|
+
</header>
|
|
8
|
+
<div class="article__body">
|
|
9
|
+
<main class="article__main">
|
|
10
|
+
{{{generatedHtml}}}
|
|
11
|
+
</main>
|
|
12
|
+
<aside class="content-aside">
|
|
13
|
+
<h2 class="content-aside__title">TABLE OF CONTENTS</h2>
|
|
14
|
+
<ul class="content-aside__list" id="toc-list">
|
|
15
|
+
</ul>
|
|
16
|
+
</aside>
|
|
17
|
+
</div>
|
|
18
|
+
</article>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<a href="/docs" class="home-docs-button">Documentation</a>
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<header class="header">
|
|
2
|
+
<div class="header-top">
|
|
3
|
+
<div class="header-top__content">
|
|
4
|
+
<button class="mobile-menu-toggle" id="mobile-menu-toggle" aria-label="Toggle navigation menu">
|
|
5
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="4" x2="20" y1="12" y2="12"/><line x1="4" x2="20" y1="6" y2="6"/><line x1="4" x2="20" y1="18" y2="18"/></svg>
|
|
6
|
+
</button>
|
|
7
|
+
<a href="/">
|
|
8
|
+
<img alt="{{siteTitle}}" class="logo__img" src="/logo.svg">
|
|
9
|
+
</a>
|
|
10
|
+
<nav class="header-bottom__nav">
|
|
11
|
+
{{#if hasDocuments}}
|
|
12
|
+
<a class="header-bottom__item" href="/docs/" id="nav-guides">
|
|
13
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 7v14"/><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/></svg>
|
|
14
|
+
<span>Guides</span>
|
|
15
|
+
</a>
|
|
16
|
+
{{/if}}
|
|
17
|
+
{{#if openApiUrl}}
|
|
18
|
+
<a class="header-bottom__item" href="/api" id="nav-api">
|
|
19
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m16 18 6-6-6-6"/><path d="m8 6-6 6 6 6"/></svg>
|
|
20
|
+
<span>API Reference</span>
|
|
21
|
+
</a>
|
|
22
|
+
{{/if}}
|
|
23
|
+
{{#if hasChangelog}}
|
|
24
|
+
<a class="header-bottom__item" href="/changelog" id="nav-changelog">
|
|
25
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z"/><path d="M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14"/><path d="M8 6v8"/></svg>
|
|
26
|
+
<span>Changelog</span>
|
|
27
|
+
</a>
|
|
28
|
+
{{/if}}
|
|
29
|
+
</nav>
|
|
30
|
+
{{> theme-toggle }}
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
</header>
|
|
34
|
+
<aside class="mobile-sidebar" id="mobile-sidebar">
|
|
35
|
+
<nav class="mobile-nav">
|
|
36
|
+
{{#if hasDocuments}}
|
|
37
|
+
<a class="mobile-nav__item" href="/docs/">
|
|
38
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 7v14"/><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/></svg>
|
|
39
|
+
<span>Guides</span>
|
|
40
|
+
</a>
|
|
41
|
+
{{/if}}
|
|
42
|
+
{{#if openApiUrl}}
|
|
43
|
+
<a class="mobile-nav__item" href="/api">
|
|
44
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m16 18 6-6-6-6"/><path d="m8 6-6 6 6 6"/></svg>
|
|
45
|
+
<span>API Reference</span>
|
|
46
|
+
</a>
|
|
47
|
+
{{/if}}
|
|
48
|
+
{{#if hasChangelog}}
|
|
49
|
+
<a class="mobile-nav__item" href="/changelog">
|
|
50
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z"/><path d="M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14"/><path d="M8 6v8"/></svg>
|
|
51
|
+
<span>Changelog</span>
|
|
52
|
+
</a>
|
|
53
|
+
{{/if}}
|
|
54
|
+
</nav>
|
|
55
|
+
<div class="mobile-sidebar__docs" id="mobile-sidebar-docs"></div>
|
|
56
|
+
</aside>
|
|
57
|
+
<div class="sidebar-backdrop" id="sidebar-backdrop"></div>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<meta charset="UTF-8">
|
|
2
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
3
|
+
<meta name="description" content="{{siteDescription}}">
|
|
4
|
+
<link rel="stylesheet" href="/css/styles.css">
|
|
5
|
+
<link rel="stylesheet" href="/css/highlight/styles/base16/docula.css">
|
|
6
|
+
<link rel="icon" href="/favicon.ico">
|
|
7
|
+
<script>
|
|
8
|
+
(function(){
|
|
9
|
+
var mode = localStorage.getItem('theme') || 'auto';
|
|
10
|
+
var resolved = mode === 'auto'
|
|
11
|
+
? (window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark')
|
|
12
|
+
: mode;
|
|
13
|
+
if (resolved === 'light') document.documentElement.setAttribute('data-theme', 'light');
|
|
14
|
+
})();
|
|
15
|
+
</script>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<div class="home-content">
|
|
2
|
+
{{#if github}}
|
|
3
|
+
{{#if github.contributors}}
|
|
4
|
+
<section>
|
|
5
|
+
<h2 class="home-title">Contributors</h2>
|
|
6
|
+
<div class="facepile">
|
|
7
|
+
{{#each github.contributors}}
|
|
8
|
+
<a href="{{html_url}}" target="_blank" title="{{login}}" rel="noopener noreferrer">
|
|
9
|
+
<img src="{{avatar_url}}" alt="{{login}}">
|
|
10
|
+
</a>
|
|
11
|
+
{{/each}}
|
|
12
|
+
</div>
|
|
13
|
+
</section>
|
|
14
|
+
{{/if}}
|
|
15
|
+
|
|
16
|
+
{{#if github.releases}}
|
|
17
|
+
<section>
|
|
18
|
+
<h2 class="home-title">Changelog</h2>
|
|
19
|
+
{{#each github.releases as |release|}}
|
|
20
|
+
{{#if (lt @index 3)}}
|
|
21
|
+
<div class="release">
|
|
22
|
+
<div class="release-header">
|
|
23
|
+
<a class="release-title" href="{{release.html_url}}" target="_blank" rel="noopener noreferrer">{{release.name}}</a>
|
|
24
|
+
<span class="release-date">{{#moment release.published_at "MMMM DD, YYYY"}}{{/moment}}</span>
|
|
25
|
+
</div>
|
|
26
|
+
<div class="release-body">
|
|
27
|
+
{{#if release.body}}
|
|
28
|
+
{{#markdown}}{{release.body}}{{/markdown}}
|
|
29
|
+
{{/if}}
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
{{/if}}
|
|
33
|
+
{{/each}}
|
|
34
|
+
|
|
35
|
+
{{#if (gt github.releases.length 6)}}
|
|
36
|
+
<div>
|
|
37
|
+
<a class="release-btn" href="/changelog">
|
|
38
|
+
Full Changelog
|
|
39
|
+
<span>→</span>
|
|
40
|
+
</a>
|
|
41
|
+
</div>
|
|
42
|
+
{{/if}}
|
|
43
|
+
</section>
|
|
44
|
+
{{/if}}
|
|
45
|
+
{{/if}}
|
|
46
|
+
</div>
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
<script src="/css/highlight/highlight.min.js"></script>
|
|
2
|
+
<script>
|
|
3
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
4
|
+
document.querySelectorAll('pre code').forEach(el => { el.textContent = el.textContent.trimEnd(); });
|
|
5
|
+
hljs.highlightAll();
|
|
6
|
+
var kbd = document.querySelector('.search-button__shortcut');
|
|
7
|
+
if (kbd) kbd.textContent = navigator.platform.indexOf('Mac') > -1 ? '⌘K' : 'Ctrl K';
|
|
8
|
+
});
|
|
9
|
+
</script>
|
|
10
|
+
<script>
|
|
11
|
+
(function() {
|
|
12
|
+
function getMode() {
|
|
13
|
+
return localStorage.getItem('theme') || 'auto';
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function resolveTheme(mode) {
|
|
17
|
+
if (mode === 'auto') {
|
|
18
|
+
return window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark';
|
|
19
|
+
}
|
|
20
|
+
return mode;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
var cachedEls = null;
|
|
24
|
+
function getThemeEls() {
|
|
25
|
+
if (!cachedEls) {
|
|
26
|
+
cachedEls = {
|
|
27
|
+
autoIcon: document.querySelector('.theme-button__icon--auto'),
|
|
28
|
+
sunIcon: document.querySelector('.theme-button__icon--sun'),
|
|
29
|
+
moonIcon: document.querySelector('.theme-button__icon--moon'),
|
|
30
|
+
toggle: document.getElementById('theme-toggle')
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
return cachedEls;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function applyTheme(mode) {
|
|
37
|
+
var resolved = resolveTheme(mode);
|
|
38
|
+
if (resolved === 'light') {
|
|
39
|
+
document.documentElement.setAttribute('data-theme', 'light');
|
|
40
|
+
} else {
|
|
41
|
+
document.documentElement.removeAttribute('data-theme');
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
var els = getThemeEls();
|
|
45
|
+
if (els.autoIcon && els.sunIcon && els.moonIcon) {
|
|
46
|
+
els.autoIcon.classList.add('theme-button__icon--hidden');
|
|
47
|
+
els.sunIcon.classList.add('theme-button__icon--hidden');
|
|
48
|
+
els.moonIcon.classList.add('theme-button__icon--hidden');
|
|
49
|
+
if (mode === 'auto') {
|
|
50
|
+
els.autoIcon.classList.remove('theme-button__icon--hidden');
|
|
51
|
+
} else if (mode === 'light') {
|
|
52
|
+
els.sunIcon.classList.remove('theme-button__icon--hidden');
|
|
53
|
+
} else {
|
|
54
|
+
els.moonIcon.classList.remove('theme-button__icon--hidden');
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (els.toggle) {
|
|
59
|
+
var labels = { auto: 'Theme: auto (following system)', light: 'Theme: light', dark: 'Theme: dark' };
|
|
60
|
+
els.toggle.setAttribute('aria-label', labels[mode] || 'Toggle theme');
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function nextMode(current) {
|
|
65
|
+
var cycle = { auto: 'light', light: 'dark', dark: 'auto' };
|
|
66
|
+
return cycle[current] || 'auto';
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
var currentMode = getMode();
|
|
70
|
+
|
|
71
|
+
document.addEventListener('DOMContentLoaded', function() {
|
|
72
|
+
applyTheme(currentMode);
|
|
73
|
+
|
|
74
|
+
var els = getThemeEls();
|
|
75
|
+
if (els.toggle) {
|
|
76
|
+
els.toggle.addEventListener('click', function() {
|
|
77
|
+
currentMode = nextMode(currentMode);
|
|
78
|
+
if (currentMode === 'auto') {
|
|
79
|
+
localStorage.removeItem('theme');
|
|
80
|
+
} else {
|
|
81
|
+
localStorage.setItem('theme', currentMode);
|
|
82
|
+
}
|
|
83
|
+
applyTheme(currentMode);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
window.matchMedia('(prefers-color-scheme: light)').addEventListener('change', function() {
|
|
89
|
+
if (getMode() === 'auto') {
|
|
90
|
+
applyTheme('auto');
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
})();
|
|
94
|
+
</script>
|
|
95
|
+
<script defer>
|
|
96
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
97
|
+
const menuToggle = document.getElementById('mobile-menu-toggle');
|
|
98
|
+
const mobileSidebar = document.getElementById('mobile-sidebar');
|
|
99
|
+
const backdrop = document.getElementById('sidebar-backdrop');
|
|
100
|
+
if (menuToggle && mobileSidebar) {
|
|
101
|
+
menuToggle.addEventListener('click', () => {
|
|
102
|
+
mobileSidebar.classList.toggle('mobile-sidebar--open');
|
|
103
|
+
if (backdrop) backdrop.classList.toggle('sidebar-backdrop--visible');
|
|
104
|
+
});
|
|
105
|
+
if (backdrop) {
|
|
106
|
+
backdrop.addEventListener('click', () => {
|
|
107
|
+
mobileSidebar.classList.remove('mobile-sidebar--open');
|
|
108
|
+
backdrop.classList.remove('sidebar-backdrop--visible');
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Page dropdown toggle (docs pages)
|
|
114
|
+
const dropdownToggle = document.getElementById('page-dropdown-toggle');
|
|
115
|
+
const dropdownList = document.getElementById('page-dropdown-list');
|
|
116
|
+
if (dropdownToggle && dropdownList) {
|
|
117
|
+
dropdownToggle.addEventListener('click', () => {
|
|
118
|
+
dropdownList.classList.toggle('page-dropdown__list--open');
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// Active sidebar link highlighting
|
|
123
|
+
const sidebarLinks = document.querySelectorAll('.nav-sidebar__item');
|
|
124
|
+
const currentPath = window.location.pathname;
|
|
125
|
+
sidebarLinks.forEach((link) => {
|
|
126
|
+
if (link.getAttribute('href') === currentPath || link.getAttribute('href') === currentPath.replace(/\/$/, '')) {
|
|
127
|
+
link.classList.add('nav-sidebar__item--active');
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
// Active header nav link highlighting
|
|
132
|
+
const navLinks = document.querySelectorAll('.header-bottom__item');
|
|
133
|
+
navLinks.forEach((link) => {
|
|
134
|
+
const href = link.getAttribute('href');
|
|
135
|
+
if (currentPath.startsWith(href)) {
|
|
136
|
+
link.classList.add('header-bottom__item--active');
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
// Active mobile nav link highlighting
|
|
141
|
+
const mobileNavLinks = document.querySelectorAll('.mobile-nav__item');
|
|
142
|
+
mobileNavLinks.forEach((link) => {
|
|
143
|
+
const href = link.getAttribute('href');
|
|
144
|
+
if (currentPath.startsWith(href)) {
|
|
145
|
+
link.classList.add('mobile-nav__item--active');
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
// TOC extraction: move the inline TOC into the right sidebar and hide the original
|
|
150
|
+
const tocHeading = document.getElementById('table-of-contents');
|
|
151
|
+
if (tocHeading) {
|
|
152
|
+
const tocList = tocHeading.nextElementSibling;
|
|
153
|
+
const tocTarget = document.getElementById('toc-list');
|
|
154
|
+
if (tocList && tocList.tagName === 'UL' && tocTarget) {
|
|
155
|
+
tocTarget.innerHTML = tocList.innerHTML;
|
|
156
|
+
tocHeading.style.display = 'none';
|
|
157
|
+
tocList.style.display = 'none';
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
</script>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{{#forEach sidebarItems}}
|
|
2
|
+
{{#if children}}
|
|
3
|
+
<section class="nav-sidebar__section">
|
|
4
|
+
<h2 class="nav-sidebar__title">{{name}}</h2>
|
|
5
|
+
<ul class="nav-sidebar__list">
|
|
6
|
+
{{#forEach children}}
|
|
7
|
+
<li>
|
|
8
|
+
<a href="{{path}}" class="nav-sidebar__item">{{name}}</a>
|
|
9
|
+
</li>
|
|
10
|
+
{{/forEach}}
|
|
11
|
+
</ul>
|
|
12
|
+
</section>
|
|
13
|
+
{{else}}
|
|
14
|
+
<section class="nav-sidebar__section">
|
|
15
|
+
<ul class="nav-sidebar__list">
|
|
16
|
+
<li>
|
|
17
|
+
<a href="{{path}}" class="nav-sidebar__item">{{name}}</a>
|
|
18
|
+
</li>
|
|
19
|
+
</ul>
|
|
20
|
+
</section>
|
|
21
|
+
{{/if}}
|
|
22
|
+
{{/forEach}}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<button class="theme-button{{#if fixed}} theme-button--fixed{{/if}}" id="theme-toggle" aria-label="Theme: auto (following system)">
|
|
2
|
+
<svg class="theme-button__icon theme-button__icon--auto" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="3" width="20" height="14" rx="2"/><line x1="8" x2="16" y1="21" y2="21"/><line x1="12" x2="12" y1="17" y2="21"/></svg>
|
|
3
|
+
<svg class="theme-button__icon theme-button__icon--sun theme-button__icon--hidden" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4"/><path d="M12 2v2"/><path d="M12 20v2"/><path d="m4.93 4.93 1.41 1.41"/><path d="m17.66 17.66 1.41 1.41"/><path d="M2 12h2"/><path d="M20 12h2"/><path d="m6.34 17.66-1.41 1.41"/><path d="m19.07 4.93-1.41 1.41"/></svg>
|
|
4
|
+
<svg class="theme-button__icon theme-button__icon--moon theme-button__icon--hidden" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"/></svg>
|
|
5
|
+
</button>
|
package/template/releases.hbs
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
|
|
4
|
-
<head>
|
|
5
|
-
{{> header }}
|
|
6
|
-
<title>{{siteTitle}} Releases</title>
|
|
7
|
-
</head>
|
|
8
|
-
|
|
9
|
-
<body>
|
|
10
|
-
{{> singlepage/hero }}
|
|
11
|
-
<a href="https://github.com/{{ githubPath }}" class="github-corner" aria-label="View source on GitHub"><svg width="80"
|
|
12
|
-
height="80" viewBox="0 0 250 250" style="color:#fff; position: absolute; top: 0; border: 0; right: 0;"
|
|
13
|
-
aria-hidden="true">
|
|
14
|
-
<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path>
|
|
15
|
-
<path
|
|
16
|
-
d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2"
|
|
17
|
-
fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path>
|
|
18
|
-
<path
|
|
19
|
-
d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z"
|
|
20
|
-
fill="currentColor" class="octo-body"></path>
|
|
21
|
-
</svg></a>
|
|
22
|
-
<style>
|
|
23
|
-
.github-corner:hover .octo-arm {
|
|
24
|
-
animation: octocat-wave 560ms ease-in-out
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
@keyframes octocat-wave {
|
|
28
|
-
|
|
29
|
-
0%,
|
|
30
|
-
100% {
|
|
31
|
-
transform: rotate(0)
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
20%,
|
|
35
|
-
60% {
|
|
36
|
-
transform: rotate(-25deg)
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
40%,
|
|
40
|
-
80% {
|
|
41
|
-
transform: rotate(10deg)
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
@media (max-width:500px) {
|
|
46
|
-
.github-corner:hover .octo-arm {
|
|
47
|
-
animation: none
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
.github-corner .octo-arm {
|
|
51
|
-
animation: octocat-wave 560ms ease-in-out
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
</style>
|
|
55
|
-
<main class="versions-container">
|
|
56
|
-
<div class="versions-content">
|
|
57
|
-
<h2 class="home-title">Releases</h2>
|
|
58
|
-
{{#if github}}
|
|
59
|
-
{{#if github.releases}}
|
|
60
|
-
{{#each github.releases as |release|}}
|
|
61
|
-
<div class="release">
|
|
62
|
-
<div class="release-header">
|
|
63
|
-
<a class="release-title" href="{{release.html_url}}" target="_blank"
|
|
64
|
-
rel="noopener noreferrer">{{release.name}}</a>
|
|
65
|
-
<span class="release-date">{{#moment
|
|
66
|
-
release.published_at "MMMM DD, YYYY"
|
|
67
|
-
}}{{/moment}}
|
|
68
|
-
</span>
|
|
69
|
-
</div>
|
|
70
|
-
<div class="release-body">
|
|
71
|
-
{{#if release.body}}
|
|
72
|
-
{{#markdown}}{{release.body}}{{/markdown}}
|
|
73
|
-
{{/if}}
|
|
74
|
-
</div>
|
|
75
|
-
</div>
|
|
76
|
-
{{/each}}
|
|
77
|
-
{{/if}}
|
|
78
|
-
{{/if}}
|
|
79
|
-
</div>
|
|
80
|
-
</main>
|
|
81
|
-
{{> footer}}
|
|
82
|
-
|
|
83
|
-
{{> scripts }}
|
|
84
|
-
</body>
|
|
85
|
-
|
|
86
|
-
</html>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|