@growthbeaker/vscode-help-docs 0.1.0 → 0.1.2
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 +2 -2
- package/package.json +1 -1
- package/src/webview/main.js +8 -3
- package/src/webview/styles.css +4 -4
package/README.md
CHANGED
|
@@ -9,13 +9,13 @@ VS Code extensions that ship user-facing docs have three unsatisfying options: o
|
|
|
9
9
|
## Install
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
npm install vscode-help-docs
|
|
12
|
+
npm install @growthbeaker/vscode-help-docs
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
## Quick Start
|
|
16
16
|
|
|
17
17
|
```typescript
|
|
18
|
-
import { createHelpPanel } from "vscode-help-docs";
|
|
18
|
+
import { createHelpPanel } from "@growthbeaker/vscode-help-docs";
|
|
19
19
|
|
|
20
20
|
// In your extension's activate()
|
|
21
21
|
const cmd = vscode.commands.registerCommand("myExtension.openHelp", () => {
|
package/package.json
CHANGED
package/src/webview/main.js
CHANGED
|
@@ -139,14 +139,17 @@
|
|
|
139
139
|
const fragment = document.createDocumentFragment();
|
|
140
140
|
|
|
141
141
|
for (const node of tree) {
|
|
142
|
-
fragment.appendChild(createNavNode(node));
|
|
142
|
+
fragment.appendChild(createNavNode(node, 0));
|
|
143
143
|
}
|
|
144
144
|
|
|
145
145
|
sidebar.appendChild(fragment);
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
/** Create a DOM element for a nav tree node */
|
|
149
|
-
function createNavNode(node) {
|
|
149
|
+
function createNavNode(node, depth) {
|
|
150
|
+
var basePadding = 16;
|
|
151
|
+
var depthIndent = depth * 16;
|
|
152
|
+
|
|
150
153
|
if (node.type === 'folder') {
|
|
151
154
|
const details = document.createElement('details');
|
|
152
155
|
details.className = 'nav-folder';
|
|
@@ -156,6 +159,7 @@
|
|
|
156
159
|
|
|
157
160
|
const summary = document.createElement('summary');
|
|
158
161
|
summary.className = 'nav-folder-header';
|
|
162
|
+
summary.style.paddingLeft = (basePadding + depthIndent) + 'px';
|
|
159
163
|
summary.textContent = node.title;
|
|
160
164
|
details.appendChild(summary);
|
|
161
165
|
|
|
@@ -175,7 +179,7 @@
|
|
|
175
179
|
|
|
176
180
|
if (node.children) {
|
|
177
181
|
for (const child of node.children) {
|
|
178
|
-
details.appendChild(createNavNode(child));
|
|
182
|
+
details.appendChild(createNavNode(child, depth + 1));
|
|
179
183
|
}
|
|
180
184
|
}
|
|
181
185
|
|
|
@@ -183,6 +187,7 @@
|
|
|
183
187
|
} else {
|
|
184
188
|
const link = document.createElement('a');
|
|
185
189
|
link.className = 'nav-item';
|
|
190
|
+
link.style.paddingLeft = (basePadding + depthIndent + 16) + 'px';
|
|
186
191
|
link.textContent = node.title;
|
|
187
192
|
link.href = '#';
|
|
188
193
|
link.dataset.path = node.path;
|
package/src/webview/styles.css
CHANGED
|
@@ -24,8 +24,8 @@ body {
|
|
|
24
24
|
/* --- Navigation Sidebar --- */
|
|
25
25
|
|
|
26
26
|
.nav-sidebar {
|
|
27
|
-
width:
|
|
28
|
-
min-width:
|
|
27
|
+
width: 320px;
|
|
28
|
+
min-width: 220px;
|
|
29
29
|
background: var(--vscode-sideBar-background);
|
|
30
30
|
border-right: 1px solid var(--vscode-panel-border);
|
|
31
31
|
overflow-y: auto;
|
|
@@ -39,7 +39,7 @@ body {
|
|
|
39
39
|
|
|
40
40
|
.nav-folder-header {
|
|
41
41
|
display: block;
|
|
42
|
-
padding: 6px 16px;
|
|
42
|
+
padding: 6px 16px 6px 16px;
|
|
43
43
|
cursor: pointer;
|
|
44
44
|
font-weight: 600;
|
|
45
45
|
font-size: 0.85em;
|
|
@@ -72,7 +72,7 @@ details[open] > .nav-folder-header::before {
|
|
|
72
72
|
|
|
73
73
|
.nav-item {
|
|
74
74
|
display: block;
|
|
75
|
-
padding: 4px 16px 4px 32px;
|
|
75
|
+
padding: 4px 16px 4px 32px; /* padding-left overridden dynamically by main.js */
|
|
76
76
|
color: var(--vscode-foreground);
|
|
77
77
|
text-decoration: none;
|
|
78
78
|
font-size: 0.9em;
|