@bvdm/delano 0.2.0 → 0.2.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/.delano/viewer/public/explorer.svg +2 -2
- package/.delano/viewer/public/index.html +21 -21
- package/.delano/viewer/public/markdown.svg +5 -5
- package/.delano/viewer/public/styles.css +1042 -1042
- package/.delano/viewer/public/vscode.svg +23 -23
- package/LICENSE +21 -0
- package/README.md +68 -5
- package/assets/payload/.agents/hooks/bash-worktree-fix.sh +0 -0
- package/assets/payload/.agents/hooks/post-tool-logger.js +0 -0
- package/assets/payload/.agents/hooks/session-tracker.js +0 -0
- package/assets/payload/.agents/hooks/user-prompt-logger.js +0 -0
- package/assets/payload/.agents/scripts/check-log-safety.sh +0 -0
- package/assets/payload/.agents/scripts/check-path-standards.sh +0 -0
- package/assets/payload/.agents/scripts/fix-path-standards.sh +0 -0
- package/assets/payload/.agents/scripts/git-sparse-download.sh +0 -0
- package/assets/payload/.agents/scripts/log-event.js +0 -0
- package/assets/payload/.agents/scripts/log-event.sh +0 -0
- package/assets/payload/.agents/scripts/pm/blocked.sh +0 -0
- package/assets/payload/.agents/scripts/pm/epic-list.sh +0 -0
- package/assets/payload/.agents/scripts/pm/in-progress.sh +0 -0
- package/assets/payload/.agents/scripts/pm/init.sh +0 -0
- package/assets/payload/.agents/scripts/pm/next.sh +0 -0
- package/assets/payload/.agents/scripts/pm/prd-list.sh +0 -0
- package/assets/payload/.agents/scripts/pm/search.sh +0 -0
- package/assets/payload/.agents/scripts/pm/standup.sh +0 -0
- package/assets/payload/.agents/scripts/pm/status.sh +0 -0
- package/assets/payload/.agents/scripts/pm/validate.sh +0 -0
- package/assets/payload/.agents/scripts/query-log.sh +0 -0
- package/assets/payload/.agents/scripts/test-and-log.sh +0 -0
- package/assets/payload/.delano/viewer/public/explorer.svg +2 -2
- package/assets/payload/.delano/viewer/public/index.html +21 -21
- package/assets/payload/.delano/viewer/public/markdown.svg +5 -5
- package/assets/payload/.delano/viewer/public/styles.css +1042 -1042
- package/assets/payload/.delano/viewer/public/vscode.svg +23 -23
- package/assets/payload/install-delano.sh +0 -0
- package/install-delano.sh +0 -0
- package/package.json +10 -2
- package/src/cli/commands/install.js +21 -1
- package/src/cli/lib/install.js +389 -8
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
2
|
-
<svg width="800px" height="800px" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
-
<path d="M21.0016 3.11679C21.0016 2.23783 20.0175 2.23782 19.5801 2.34769C20.1924 1.86426 20.9105 1.98147 21.1656 2.12796L27.079 5.02747C27.6424 5.30375 27.9998 5.8786 27.9998 6.50857V25.5831C27.9998 26.2215 27.6329 26.8025 27.058 27.0743L21.4937 29.7054C21.1109 29.8701 20.2799 30.2767 19.5801 29.7053C20.4549 29.8702 20.9287 29.2476 21.0016 28.8264V3.11679Z" fill="url(#paint0_linear_87_8101)"/>
|
|
4
|
-
<path d="M19.6512 2.3319C20.1154 2.24017 21.0018 2.28271 21.0018 3.11685V9.68254L3.07359 23.2453C2.76022 23.4824 2.3192 23.443 2.05229 23.1542L0.204532 21.1548C-0.0849358 20.8416 -0.0646824 20.3513 0.249624 20.0633L19.5802 2.34775L19.6512 2.3319Z" fill="url(#paint1_linear_87_8101)"/>
|
|
5
|
-
<path d="M21.0018 22.3708L3.07359 8.80801C2.76022 8.57094 2.3192 8.61028 2.05229 8.8991L0.204532 10.8985C-0.0849358 11.2117 -0.0646824 11.702 0.249624 11.9901L19.5802 29.7056C20.455 29.8704 20.9289 29.2478 21.0018 28.8266V22.3708Z" fill="url(#paint2_linear_87_8101)"/>
|
|
6
|
-
<defs>
|
|
7
|
-
<linearGradient id="paint0_linear_87_8101" x1="23.79" y1="2" x2="23.79" y2="30" gradientUnits="userSpaceOnUse">
|
|
8
|
-
<stop stop-color="#32B5F1"/>
|
|
9
|
-
<stop offset="1" stop-color="#2B9FED"/>
|
|
10
|
-
</linearGradient>
|
|
11
|
-
<linearGradient id="paint1_linear_87_8101" x1="21.0018" y1="5.53398" x2="1.0217" y2="22.3051" gradientUnits="userSpaceOnUse">
|
|
12
|
-
<stop stop-color="#0F6FB3"/>
|
|
13
|
-
<stop offset="0.270551" stop-color="#1279B7"/>
|
|
14
|
-
<stop offset="0.421376" stop-color="#1176B5"/>
|
|
15
|
-
<stop offset="0.618197" stop-color="#0E69AC"/>
|
|
16
|
-
<stop offset="0.855344" stop-color="#0F70AF"/>
|
|
17
|
-
<stop offset="1" stop-color="#0F6DAD"/>
|
|
18
|
-
</linearGradient>
|
|
19
|
-
<linearGradient id="paint2_linear_87_8101" x1="1.15522" y1="9.98389" x2="21.0791" y2="26.4808" gradientUnits="userSpaceOnUse">
|
|
20
|
-
<stop stop-color="#1791D2"/>
|
|
21
|
-
<stop offset="1" stop-color="#1173C5"/>
|
|
22
|
-
</linearGradient>
|
|
23
|
-
</defs>
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
2
|
+
<svg width="800px" height="800px" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<path d="M21.0016 3.11679C21.0016 2.23783 20.0175 2.23782 19.5801 2.34769C20.1924 1.86426 20.9105 1.98147 21.1656 2.12796L27.079 5.02747C27.6424 5.30375 27.9998 5.8786 27.9998 6.50857V25.5831C27.9998 26.2215 27.6329 26.8025 27.058 27.0743L21.4937 29.7054C21.1109 29.8701 20.2799 30.2767 19.5801 29.7053C20.4549 29.8702 20.9287 29.2476 21.0016 28.8264V3.11679Z" fill="url(#paint0_linear_87_8101)"/>
|
|
4
|
+
<path d="M19.6512 2.3319C20.1154 2.24017 21.0018 2.28271 21.0018 3.11685V9.68254L3.07359 23.2453C2.76022 23.4824 2.3192 23.443 2.05229 23.1542L0.204532 21.1548C-0.0849358 20.8416 -0.0646824 20.3513 0.249624 20.0633L19.5802 2.34775L19.6512 2.3319Z" fill="url(#paint1_linear_87_8101)"/>
|
|
5
|
+
<path d="M21.0018 22.3708L3.07359 8.80801C2.76022 8.57094 2.3192 8.61028 2.05229 8.8991L0.204532 10.8985C-0.0849358 11.2117 -0.0646824 11.702 0.249624 11.9901L19.5802 29.7056C20.455 29.8704 20.9289 29.2478 21.0018 28.8266V22.3708Z" fill="url(#paint2_linear_87_8101)"/>
|
|
6
|
+
<defs>
|
|
7
|
+
<linearGradient id="paint0_linear_87_8101" x1="23.79" y1="2" x2="23.79" y2="30" gradientUnits="userSpaceOnUse">
|
|
8
|
+
<stop stop-color="#32B5F1"/>
|
|
9
|
+
<stop offset="1" stop-color="#2B9FED"/>
|
|
10
|
+
</linearGradient>
|
|
11
|
+
<linearGradient id="paint1_linear_87_8101" x1="21.0018" y1="5.53398" x2="1.0217" y2="22.3051" gradientUnits="userSpaceOnUse">
|
|
12
|
+
<stop stop-color="#0F6FB3"/>
|
|
13
|
+
<stop offset="0.270551" stop-color="#1279B7"/>
|
|
14
|
+
<stop offset="0.421376" stop-color="#1176B5"/>
|
|
15
|
+
<stop offset="0.618197" stop-color="#0E69AC"/>
|
|
16
|
+
<stop offset="0.855344" stop-color="#0F70AF"/>
|
|
17
|
+
<stop offset="1" stop-color="#0F6DAD"/>
|
|
18
|
+
</linearGradient>
|
|
19
|
+
<linearGradient id="paint2_linear_87_8101" x1="1.15522" y1="9.98389" x2="21.0791" y2="26.4808" gradientUnits="userSpaceOnUse">
|
|
20
|
+
<stop stop-color="#1791D2"/>
|
|
21
|
+
<stop offset="1" stop-color="#1173C5"/>
|
|
22
|
+
</linearGradient>
|
|
23
|
+
</defs>
|
|
24
24
|
</svg>
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Bart van der Meeren
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -15,9 +15,19 @@ The npm package is intentionally thin. It distributes the approved runtime paylo
|
|
|
15
15
|
## Delano CLI
|
|
16
16
|
|
|
17
17
|
- Package: `@bvdm/delano`
|
|
18
|
+
- Current package version: `0.2.2`
|
|
18
19
|
- Binary: `delano`
|
|
19
20
|
- Commands: `onboarding`, `install`, `viewer`, `init`, `validate`, `status`, `next`
|
|
20
|
-
- Primary
|
|
21
|
+
- Primary goal: bootstrap a repo safely, expose local delivery state clearly, and keep runtime gates verifiable
|
|
22
|
+
|
|
23
|
+
## Recent main changes
|
|
24
|
+
|
|
25
|
+
The latest main merges moved Delano beyond a thin install wrapper:
|
|
26
|
+
|
|
27
|
+
- PR #4, `feat/delano-vnext-runtime-upgrade`, merged on 2026-05-04. This added the v0.2 runtime layer: schema-backed `.project` artifact validation, operating-mode and status-transition checks, evidence mapping, strict validation fixtures, privacy-safe logging defaults, package/payload drift checks, dry-run sync inspection, apply-gated repair planning, lease-based multi-agent coordination, worktree health checks, delivery metrics, context audits, skill-output eval fixtures, and compact root/adapter agent instructions.
|
|
28
|
+
- PR #3, `delano-viewer-design-overhaul`, merged on 2026-04-29. This added the packaged read-only Delano viewer under `.delano/viewer`, including the local Node server, static UI, `.project` indexing APIs, project outlines, workstream/task navigation, rendered markdown, context-aware filters, guarded open actions, and visual/browser smoke evidence.
|
|
29
|
+
|
|
30
|
+
The current runtime still treats `HANDBOOK.md` and `.project/` as the source of truth. The new pieces make that model easier to inspect and harder to bypass accidentally.
|
|
21
31
|
|
|
22
32
|
## One-command bootstrap
|
|
23
33
|
|
|
@@ -123,11 +133,11 @@ bash .agents/scripts/pm/status.sh
|
|
|
123
133
|
bash .agents/scripts/pm/next.sh --all
|
|
124
134
|
```
|
|
125
135
|
|
|
126
|
-
The viewer is packaged with `@bvdm/delano` and serves the selected repository's `.project` files read-only. It defaults to `http://127.0.0.1:3977`; set `DELANO_VIEWER_PORT` or `PORT` to use another port.
|
|
136
|
+
The viewer is packaged with `@bvdm/delano` and serves the selected repository's `.project` files read-only. It defaults to `http://127.0.0.1:3977`; set `DELANO_VIEWER_PORT` or `PORT` to use another port. It indexes `.project/context`, `.project/templates`, and `.project/projects`, then derives artifact roles, statuses, project outlines, task/workstream relationships, snippets, and rendered markdown for local inspection.
|
|
127
137
|
|
|
128
138
|
## Required dependencies
|
|
129
139
|
|
|
130
|
-
Delano
|
|
140
|
+
Delano assumes these tools are available:
|
|
131
141
|
|
|
132
142
|
- `node` 18 or newer
|
|
133
143
|
- `bash`
|
|
@@ -144,6 +154,7 @@ The CLI does not bundle its own shell or Python runtime.
|
|
|
144
154
|
- it aborts if an approved target path already exists
|
|
145
155
|
- it reports each conflict as file, directory, or symlink
|
|
146
156
|
- it only overwrites approved allowlist paths when `--force` is used
|
|
157
|
+
- it can narrow updates with `--only`, `--exclude`, `--no-project-context`, and `--no-project-state`
|
|
147
158
|
- it does not touch unrelated files outside the allowlist
|
|
148
159
|
- it does not install or overwrite repo-root Git config files such as `.gitignore` or `.gitattributes`
|
|
149
160
|
|
|
@@ -152,6 +163,19 @@ The base install payload includes `.delano/`, including the read-only viewer UI.
|
|
|
152
163
|
The installable `.project/context/` pack is seeded from generic templates during packaging; it does not ship Delano's own repo-specific context files into consumer repositories.
|
|
153
164
|
After install, the recommended first step is `delano onboarding`, which requires explicit approval before it reviews `AGENTS.md`.
|
|
154
165
|
|
|
166
|
+
For an update-safe refresh that avoids repo-owned project state, narrow the plan before forcing overwrites:
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
delano install --interactive
|
|
170
|
+
delano install --only skills,project-templates --force --yes
|
|
171
|
+
delano install --exclude project-context,project-projects,project-registry --force --yes
|
|
172
|
+
delano install --no-project-state --force --yes
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
The interactive installer presents presets for updating the runtime while preserving project state, updating only skills and project templates, full install or repair, and custom category selection.
|
|
176
|
+
|
|
177
|
+
Install categories are `agent-runtime`, `skills`, `viewer`, `project-context`, `project-templates`, `project-registry`, `project-projects`, `handbook`, and `legacy-installer`. The `--no-project-state` shortcut excludes `.project/context`, `.project/projects`, and `.project/registry`.
|
|
178
|
+
|
|
155
179
|
## Optional AGENTS.md / CLAUDE.md snippet
|
|
156
180
|
|
|
157
181
|
If you want explicit Delano instructions in a repo-root `AGENTS.md` or `CLAUDE.md`, copy and paste this yourself:
|
|
@@ -174,16 +198,38 @@ When working in this repository:
|
|
|
174
198
|
- use `delano viewer` to inspect `.project/` through the read-only local UI
|
|
175
199
|
```
|
|
176
200
|
|
|
177
|
-
##
|
|
201
|
+
## Runtime boundaries
|
|
178
202
|
|
|
179
203
|
This package is deliberately narrow:
|
|
180
204
|
|
|
181
205
|
- npm is the distribution surface
|
|
182
206
|
- `.project` remains repo-owned after install
|
|
183
207
|
- `.project/context/` installs as generic starter context that the target repo must replace with its own reality
|
|
208
|
+
- `.project/projects/` and `.project/registry/` are repo-owned state and should normally be excluded from forced refreshes
|
|
184
209
|
- `.agents` remains the runtime surface
|
|
185
|
-
- wrapper commands stay thin
|
|
210
|
+
- wrapper commands stay thin
|
|
186
211
|
- `install-delano.sh` remains available as the legacy bridge installer
|
|
212
|
+
- remote GitHub/Linear writes remain outside the default flow; current sync tooling is dry-run and repair-plan oriented unless an operator explicitly approves an apply-capable workflow
|
|
213
|
+
|
|
214
|
+
## Runtime validation
|
|
215
|
+
|
|
216
|
+
The v0.2 runtime upgrade expanded `delano validate` and `bash .agents/scripts/pm/validate.sh` with local gates for:
|
|
217
|
+
|
|
218
|
+
- artifact schemas, artifact scope, operating modes, status transitions, dependencies, blockers, and acceptance/evidence mapping
|
|
219
|
+
- privacy-safe prompt/log defaults and path-output safety
|
|
220
|
+
- package manifest and install payload drift
|
|
221
|
+
- local/GitHub/Linear sync inspection, drift reporting, and apply-gated repair planning
|
|
222
|
+
- lease contracts, conflict zones, stream-aware next-task selection, handoff summaries, and worktree health
|
|
223
|
+
- delivery metrics, project metrics summaries, context audit scoring, skill-output eval fixtures, and closeout learning proposals
|
|
224
|
+
|
|
225
|
+
For release readiness, run:
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
npm run build:assets
|
|
229
|
+
npm run check:package-manifest
|
|
230
|
+
bash .agents/scripts/pm/validate.sh
|
|
231
|
+
npm test
|
|
232
|
+
```
|
|
187
233
|
|
|
188
234
|
## Local development
|
|
189
235
|
|
|
@@ -195,6 +241,23 @@ node bin/delano.js --help
|
|
|
195
241
|
node bin/delano.js --yes --target ./tmp/cli-install-smoke
|
|
196
242
|
```
|
|
197
243
|
|
|
244
|
+
## Publishing
|
|
245
|
+
|
|
246
|
+
Publishing is handled by the GitHub Actions workflow `.github/workflows/publish-npm.yml`.
|
|
247
|
+
|
|
248
|
+
Before the first Actions publish, configure npm trusted publishing for `@bvdm/delano` with:
|
|
249
|
+
|
|
250
|
+
- Publisher: GitHub Actions
|
|
251
|
+
- Organization or user: `MajesteitBart`
|
|
252
|
+
- Repository: `delano`
|
|
253
|
+
- Workflow filename: `publish-npm.yml`
|
|
254
|
+
|
|
255
|
+
The package metadata must keep `repository.url` set to `https://github.com/MajesteitBart/delano`; npm validates that value against the GitHub Actions provenance bundle.
|
|
256
|
+
|
|
257
|
+
After trusted publishing is configured, publish by pushing a matching version tag such as `v0.2.2`, or run the `Publish package to npm` workflow manually from `main`. The workflow rebuilds the package payload, checks manifest drift, runs tests, dry-runs the package contents, verifies the version is not already published, and then runs `npm publish --access public` from GitHub Actions using OIDC. A manual `dry_run` input is available to run the same checks without publishing.
|
|
258
|
+
|
|
259
|
+
If npm publish fails after the package checks pass, verify that the npm trusted publisher settings match the repository and workflow filename exactly, and that the workflow has `id-token: write`.
|
|
260
|
+
|
|
198
261
|
## Read next
|
|
199
262
|
|
|
200
263
|
- `docs/user-guide.md` for the practical user flow
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
3
3
|
<svg width="800px" height="800px" viewBox="0 0 1024 1024" class="icon" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M853.333333 256H469.333333l-85.333333-85.333333H170.666667c-46.933333 0-85.333333 38.4-85.333334 85.333333v170.666667h853.333334v-85.333334c0-46.933333-38.4-85.333333-85.333334-85.333333z" fill="#FFA000" /><path d="M853.333333 256H170.666667c-46.933333 0-85.333333 38.4-85.333334 85.333333v426.666667c0 46.933333 38.4 85.333333 85.333334 85.333333h682.666666c46.933333 0 85.333333-38.4 85.333334-85.333333V341.333333c0-46.933333-38.4-85.333333-85.333334-85.333333z" fill="#FFCA28" /></svg>
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8" />
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
-
<title>Delano Viewer</title>
|
|
7
|
-
<link rel="preconnect" href="https://fonts.googleapis.com" crossorigin />
|
|
8
|
-
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
9
|
-
<link
|
|
10
|
-
rel="stylesheet"
|
|
11
|
-
href="https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;0,6..72,600;1,6..72,400&family=Instrument+Serif:ital@0;1&display=swap"
|
|
12
|
-
/>
|
|
13
|
-
<link rel="stylesheet" href="/styles.css" />
|
|
14
|
-
</head>
|
|
15
|
-
<body>
|
|
16
|
-
<div class="ambient" aria-hidden="true"></div>
|
|
17
|
-
<div id="app">Loading Delano viewer...</div>
|
|
18
|
-
<div id="copy-live" class="visually-hidden" aria-live="polite" aria-atomic="true"></div>
|
|
19
|
-
<script src="/app.js"></script>
|
|
20
|
-
</body>
|
|
21
|
-
</html>
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>Delano Viewer</title>
|
|
7
|
+
<link rel="preconnect" href="https://fonts.googleapis.com" crossorigin />
|
|
8
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
9
|
+
<link
|
|
10
|
+
rel="stylesheet"
|
|
11
|
+
href="https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;0,6..72,600;1,6..72,400&family=Instrument+Serif:ital@0;1&display=swap"
|
|
12
|
+
/>
|
|
13
|
+
<link rel="stylesheet" href="/styles.css" />
|
|
14
|
+
</head>
|
|
15
|
+
<body>
|
|
16
|
+
<div class="ambient" aria-hidden="true"></div>
|
|
17
|
+
<div id="app">Loading Delano viewer...</div>
|
|
18
|
+
<div id="copy-live" class="visually-hidden" aria-live="polite" aria-atomic="true"></div>
|
|
19
|
+
<script src="/app.js"></script>
|
|
20
|
+
</body>
|
|
21
|
+
</html>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
2
|
-
<svg width="800px" height="800px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
-
<title>markdown</title>
|
|
4
|
-
<rect width="24" height="24" fill="none"/>
|
|
5
|
-
<path d="M2,16V8H4l3,3,3-3h2v8H10V10.83l-3,3-3-3V16H2M16,8h3v4h2.5l-4,4.5-4-4.5H16Z"/>
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
2
|
+
<svg width="800px" height="800px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<title>markdown</title>
|
|
4
|
+
<rect width="24" height="24" fill="none"/>
|
|
5
|
+
<path d="M2,16V8H4l3,3,3-3h2v8H10V10.83l-3,3-3-3V16H2M16,8h3v4h2.5l-4,4.5-4-4.5H16Z"/>
|
|
6
6
|
</svg>
|