@doxbrix/doxloop 0.1.1 → 0.1.3
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/CHANGELOG.md +9 -0
- package/assets/doxbrix-preview.css +190 -0
- package/dist/agents.js +1 -1
- package/dist/agents.js.map +1 -1
- package/dist/author.d.ts +4 -0
- package/dist/author.d.ts.map +1 -1
- package/dist/author.js +43 -18
- package/dist/author.js.map +1 -1
- package/dist/doxbrix-markdown.js +33 -2
- package/dist/doxbrix-markdown.js.map +1 -1
- package/dist/preview.d.ts +1 -0
- package/dist/preview.d.ts.map +1 -1
- package/dist/preview.js +268 -4
- package/dist/preview.js.map +1 -1
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js +103 -4
- package/dist/project.js.map +1 -1
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +151 -8
- package/dist/validation.js.map +1 -1
- package/package.json +3 -1
- package/skills/doxloop-doxbrix/SKILL.md +3 -1
- package/skills/doxloop-doxbrix/references/api-endpoints.md +8 -36
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,15 @@ uses semantic versioning after its first stable release.
|
|
|
5
5
|
|
|
6
6
|
## Unreleased
|
|
7
7
|
|
|
8
|
+
## 0.1.3 - 2026-07-25
|
|
9
|
+
|
|
10
|
+
## 0.1.2 - 2026-07-25
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- Launch Codex, Claude Code, and Gemini correctly through npm and Volta
|
|
15
|
+
command shims on Windows.
|
|
16
|
+
|
|
8
17
|
## 0.1.1 - 2026-07-23
|
|
9
18
|
|
|
10
19
|
### Added
|
|
@@ -6325,6 +6325,196 @@ body.dxb-preview-mobile > .dp-root--published {
|
|
|
6325
6325
|
cursor: pointer;
|
|
6326
6326
|
}
|
|
6327
6327
|
|
|
6328
|
+
.dxb-atlas-assistant-wrap {
|
|
6329
|
+
position: relative;
|
|
6330
|
+
flex: 0 0 auto;
|
|
6331
|
+
}
|
|
6332
|
+
|
|
6333
|
+
.dxb-preview-notice {
|
|
6334
|
+
position: absolute;
|
|
6335
|
+
z-index: 100;
|
|
6336
|
+
top: calc(100% + 12px);
|
|
6337
|
+
right: 0;
|
|
6338
|
+
width: min(380px, calc(100vw - 32px));
|
|
6339
|
+
display: grid;
|
|
6340
|
+
grid-template-columns: 1fr auto;
|
|
6341
|
+
gap: 2px 16px;
|
|
6342
|
+
padding: 14px 44px 14px 16px;
|
|
6343
|
+
border: 1px solid #f59e0b;
|
|
6344
|
+
border-radius: 12px;
|
|
6345
|
+
background: #fffbeb;
|
|
6346
|
+
box-shadow: 0 14px 34px rgba(120, 53, 15, 0.18);
|
|
6347
|
+
color: #78350f;
|
|
6348
|
+
opacity: 0;
|
|
6349
|
+
transform: translateY(-4px);
|
|
6350
|
+
transition: opacity 0.18s ease, transform 0.18s ease;
|
|
6351
|
+
pointer-events: none;
|
|
6352
|
+
}
|
|
6353
|
+
|
|
6354
|
+
.dxb-preview-notice::before {
|
|
6355
|
+
content: '';
|
|
6356
|
+
position: absolute;
|
|
6357
|
+
right: 28px;
|
|
6358
|
+
top: -7px;
|
|
6359
|
+
width: 12px;
|
|
6360
|
+
height: 12px;
|
|
6361
|
+
border-top: 1px solid #f59e0b;
|
|
6362
|
+
border-left: 1px solid #f59e0b;
|
|
6363
|
+
background: inherit;
|
|
6364
|
+
transform: rotate(45deg);
|
|
6365
|
+
}
|
|
6366
|
+
|
|
6367
|
+
.dxb-preview-notice[hidden] { display: none; }
|
|
6368
|
+
.dxb-preview-notice.visible {
|
|
6369
|
+
opacity: 1;
|
|
6370
|
+
transform: translateY(0);
|
|
6371
|
+
pointer-events: auto;
|
|
6372
|
+
}
|
|
6373
|
+
.dxb-preview-notice strong,
|
|
6374
|
+
.dxb-preview-notice span { grid-column: 1; }
|
|
6375
|
+
.dxb-preview-notice strong { font-size: 14px; line-height: 1.4; }
|
|
6376
|
+
.dxb-preview-notice span { color: #92400e; font-size: 13px; line-height: 1.5; }
|
|
6377
|
+
.dxb-preview-notice code {
|
|
6378
|
+
padding: 1px 5px;
|
|
6379
|
+
border-radius: 4px;
|
|
6380
|
+
background: #fef3c7;
|
|
6381
|
+
color: #78350f;
|
|
6382
|
+
font-family: var(--project-code-font-family);
|
|
6383
|
+
}
|
|
6384
|
+
.dxb-preview-notice button {
|
|
6385
|
+
position: absolute;
|
|
6386
|
+
top: 9px;
|
|
6387
|
+
right: 10px;
|
|
6388
|
+
width: 28px;
|
|
6389
|
+
height: 28px;
|
|
6390
|
+
border: 0;
|
|
6391
|
+
border-radius: 6px;
|
|
6392
|
+
background: transparent;
|
|
6393
|
+
color: #92400e;
|
|
6394
|
+
cursor: pointer;
|
|
6395
|
+
font: 20px/1 inherit;
|
|
6396
|
+
}
|
|
6397
|
+
.dxb-preview-notice button:hover { background: #fef3c7; color: #78350f; }
|
|
6398
|
+
.dp-root--published[data-color-theme='dark'] .dxb-preview-notice {
|
|
6399
|
+
border-color: #d97706;
|
|
6400
|
+
background: #451a03;
|
|
6401
|
+
color: #fef3c7;
|
|
6402
|
+
}
|
|
6403
|
+
.dp-root--published[data-color-theme='dark'] .dxb-preview-notice span,
|
|
6404
|
+
.dp-root--published[data-color-theme='dark'] .dxb-preview-notice button {
|
|
6405
|
+
color: #fcd34d;
|
|
6406
|
+
}
|
|
6407
|
+
.dp-root--published[data-color-theme='dark'] .dxb-preview-notice code,
|
|
6408
|
+
.dp-root--published[data-color-theme='dark'] .dxb-preview-notice button:hover {
|
|
6409
|
+
background: #78350f;
|
|
6410
|
+
color: #fef3c7;
|
|
6411
|
+
}
|
|
6412
|
+
|
|
6413
|
+
body.dxb-search-open { overflow: hidden; }
|
|
6414
|
+
.dxb-preview-search {
|
|
6415
|
+
position: fixed;
|
|
6416
|
+
z-index: 90;
|
|
6417
|
+
inset: 0;
|
|
6418
|
+
display: flex;
|
|
6419
|
+
align-items: flex-start;
|
|
6420
|
+
justify-content: center;
|
|
6421
|
+
padding: max(88px, 12vh) 16px 24px;
|
|
6422
|
+
background: rgba(15, 23, 42, 0.42);
|
|
6423
|
+
backdrop-filter: blur(3px);
|
|
6424
|
+
}
|
|
6425
|
+
.dxb-preview-search[hidden] { display: none; }
|
|
6426
|
+
.dxb-preview-search-panel {
|
|
6427
|
+
width: min(640px, 100%);
|
|
6428
|
+
max-height: min(680px, calc(100vh - 120px));
|
|
6429
|
+
display: flex;
|
|
6430
|
+
flex-direction: column;
|
|
6431
|
+
overflow: hidden;
|
|
6432
|
+
border: 1px solid var(--dp-line);
|
|
6433
|
+
border-radius: 14px;
|
|
6434
|
+
background: var(--dxb-background-light, #fff);
|
|
6435
|
+
box-shadow: 0 24px 70px rgba(15, 23, 42, 0.28);
|
|
6436
|
+
color: var(--dp-page-text);
|
|
6437
|
+
}
|
|
6438
|
+
.dp-root--published[data-color-theme='dark'] .dxb-preview-search-panel {
|
|
6439
|
+
background: var(--dxb-background-dark, #0e0b0c);
|
|
6440
|
+
}
|
|
6441
|
+
.dxb-preview-search-input-wrap {
|
|
6442
|
+
display: flex;
|
|
6443
|
+
align-items: center;
|
|
6444
|
+
gap: 10px;
|
|
6445
|
+
min-height: 58px;
|
|
6446
|
+
padding: 0 16px;
|
|
6447
|
+
border-bottom: 1px solid var(--dp-line);
|
|
6448
|
+
color: var(--dp-muted-text);
|
|
6449
|
+
}
|
|
6450
|
+
.dxb-preview-search-input-wrap input {
|
|
6451
|
+
min-width: 0;
|
|
6452
|
+
flex: 1;
|
|
6453
|
+
border: 0;
|
|
6454
|
+
outline: 0;
|
|
6455
|
+
background: transparent;
|
|
6456
|
+
color: var(--dp-page-text);
|
|
6457
|
+
font: inherit;
|
|
6458
|
+
font-size: 16px;
|
|
6459
|
+
}
|
|
6460
|
+
.dxb-preview-search-input-wrap input::placeholder { color: var(--dp-muted-text); }
|
|
6461
|
+
.dxb-preview-search kbd {
|
|
6462
|
+
padding: 2px 6px;
|
|
6463
|
+
border: 1px solid var(--dp-line);
|
|
6464
|
+
border-radius: 5px;
|
|
6465
|
+
background: var(--dp-surface-soft);
|
|
6466
|
+
color: var(--dp-muted-text);
|
|
6467
|
+
font: 11px/1.4 var(--project-font-family);
|
|
6468
|
+
}
|
|
6469
|
+
.dxb-preview-search-status {
|
|
6470
|
+
padding: 12px 16px 7px;
|
|
6471
|
+
color: var(--dp-muted-text);
|
|
6472
|
+
font-size: 12px;
|
|
6473
|
+
font-weight: 600;
|
|
6474
|
+
text-transform: uppercase;
|
|
6475
|
+
letter-spacing: 0.04em;
|
|
6476
|
+
}
|
|
6477
|
+
.dxb-preview-search-results {
|
|
6478
|
+
min-height: 100px;
|
|
6479
|
+
overflow-y: auto;
|
|
6480
|
+
padding: 0 8px 8px;
|
|
6481
|
+
}
|
|
6482
|
+
.dxb-preview-search-result {
|
|
6483
|
+
display: flex;
|
|
6484
|
+
flex-direction: column;
|
|
6485
|
+
gap: 3px;
|
|
6486
|
+
padding: 11px 12px;
|
|
6487
|
+
border-radius: 9px;
|
|
6488
|
+
color: var(--dp-page-text);
|
|
6489
|
+
text-decoration: none;
|
|
6490
|
+
}
|
|
6491
|
+
.dxb-preview-search-result.active,
|
|
6492
|
+
.dxb-preview-search-result:hover {
|
|
6493
|
+
background: var(--dp-primary-soft);
|
|
6494
|
+
}
|
|
6495
|
+
.dxb-preview-search-result strong { font-size: 14px; line-height: 1.4; }
|
|
6496
|
+
.dxb-preview-search-result span {
|
|
6497
|
+
overflow: hidden;
|
|
6498
|
+
color: var(--dp-muted-text);
|
|
6499
|
+
font-size: 13px;
|
|
6500
|
+
line-height: 1.45;
|
|
6501
|
+
text-overflow: ellipsis;
|
|
6502
|
+
white-space: nowrap;
|
|
6503
|
+
}
|
|
6504
|
+
.dxb-preview-search-help {
|
|
6505
|
+
display: flex;
|
|
6506
|
+
gap: 18px;
|
|
6507
|
+
padding: 9px 16px;
|
|
6508
|
+
border-top: 1px solid var(--dp-line);
|
|
6509
|
+
color: var(--dp-muted-text);
|
|
6510
|
+
font-size: 12px;
|
|
6511
|
+
}
|
|
6512
|
+
.dxb-preview-search-help span {
|
|
6513
|
+
display: inline-flex;
|
|
6514
|
+
align-items: center;
|
|
6515
|
+
gap: 4px;
|
|
6516
|
+
}
|
|
6517
|
+
|
|
6328
6518
|
.dxb-atlas-header-actions {
|
|
6329
6519
|
justify-content: flex-end;
|
|
6330
6520
|
gap: 20px;
|
package/dist/agents.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { spawn } from 'node:child_process';
|
|
2
1
|
import { createHash } from 'node:crypto';
|
|
3
2
|
import { constants } from 'node:fs';
|
|
4
3
|
import { access, cp, lstat, mkdir, readFile, readdir, rm, stat, } from 'node:fs/promises';
|
|
5
4
|
import { delimiter, dirname, join, resolve } from 'node:path';
|
|
6
5
|
import { fileURLToPath } from 'node:url';
|
|
6
|
+
import spawn from 'cross-spawn';
|
|
7
7
|
import { DoxloopError, UsageError } from './errors.js';
|
|
8
8
|
import { pathExists } from './fs.js';
|
|
9
9
|
import { loadGeneratorAdapter } from './generators.js';
|
package/dist/agents.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"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"}
|
package/dist/author.d.ts
CHANGED
|
@@ -15,6 +15,10 @@ export declare function runAuthor(options: {
|
|
|
15
15
|
reasoning?: ReasoningLevel;
|
|
16
16
|
screenshots?: ScreenshotIntent;
|
|
17
17
|
}): Promise<number>;
|
|
18
|
+
export declare function prepareAgentPrompt(root: string, prompt: string, platform?: NodeJS.Platform): Promise<{
|
|
19
|
+
argument: string;
|
|
20
|
+
path: string | undefined;
|
|
21
|
+
}>;
|
|
18
22
|
export declare function agentArguments(name: AgentName, prompt: string, options?: {
|
|
19
23
|
model?: string;
|
|
20
24
|
reasoning?: ReasoningLevel;
|
package/dist/author.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"author.d.ts","sourceRoot":"","sources":["../src/author.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"author.d.ts","sourceRoot":"","sources":["../src/author.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACd,MAAM,YAAY,CAAA;AAEnB,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAA;AACvD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAA;AAE9D,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,GAChB,gBAAgB,CAOlB;AAED,QAAA,MAAM,gBAAgB,wDAAyD,CAAA;AAC/E,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE9D,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAMpF;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,cAAc,CAAA;IAC1B,WAAW,CAAC,EAAE,gBAAgB,CAAA;CAC/B,GAAG,OAAO,CAAC,MAAM,CAAC,CA2GlB;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC,CAqBzD;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,cAAc,CAAA;IAC1B,IAAI,CAAC,EAAE,UAAU,CAAA;CACb,GACL,MAAM,EAAE,CA8BV;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAC9C,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,GAAE,aAAyB,EACpC,aAAa,CAAC,EAAE,kBAAkB,EAClC,gBAAgB,GAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAM,EAC7C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,GAAE,gBAAyB,EACtC,WAAW,CAAC,EAAE,iBAAiB,GAC9B,MAAM,CA2DR"}
|
package/dist/author.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { writeFile } from 'node:fs/promises';
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { mkdir, rm, writeFile } from 'node:fs/promises';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
|
+
import spawn from 'cross-spawn';
|
|
4
5
|
import { chooseAgent, installSkill } from './agents.js';
|
|
5
6
|
import { DoxloopError, UsageError } from './errors.js';
|
|
6
7
|
import { generatorSkillName } from './generators.js';
|
|
@@ -44,23 +45,31 @@ export async function runAuthor(options) {
|
|
|
44
45
|
await installSkill({ root: options.root, agent: selected.name });
|
|
45
46
|
}
|
|
46
47
|
process.stdout.write(`Starting ${selected.name} with $doxloop-authoring...\n`);
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
const preparedPrompt = await prepareAgentPrompt(options.root, prompt);
|
|
49
|
+
let exitCode;
|
|
50
|
+
try {
|
|
51
|
+
exitCode = await new Promise((resolveExit, reject) => {
|
|
52
|
+
const child = spawn(selected.executable, agentArguments(selected.name, preparedPrompt.argument, options), {
|
|
53
|
+
cwd: options.root,
|
|
54
|
+
stdio: 'inherit',
|
|
55
|
+
env: process.env,
|
|
56
|
+
});
|
|
57
|
+
child.once('error', reject);
|
|
58
|
+
child.once('exit', (code, signal) => {
|
|
59
|
+
if (signal) {
|
|
60
|
+
process.stderr.write(`${selected.name} stopped by ${signal}.\n`);
|
|
61
|
+
resolveExit(1);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
resolveExit(code ?? 1);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
52
67
|
});
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
resolveExit(code ?? 1);
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
});
|
|
68
|
+
}
|
|
69
|
+
finally {
|
|
70
|
+
if (preparedPrompt.path)
|
|
71
|
+
await rm(preparedPrompt.path, { force: true });
|
|
72
|
+
}
|
|
64
73
|
if (exitCode === 0 && options.mode !== 'review') {
|
|
65
74
|
const completedProject = await loadProject(options.root);
|
|
66
75
|
const validation = await validateProject(options.root);
|
|
@@ -94,6 +103,22 @@ export async function runAuthor(options) {
|
|
|
94
103
|
}
|
|
95
104
|
return exitCode;
|
|
96
105
|
}
|
|
106
|
+
export async function prepareAgentPrompt(root, prompt, platform = process.platform) {
|
|
107
|
+
if (platform !== 'win32') {
|
|
108
|
+
return { argument: prompt, path: undefined };
|
|
109
|
+
}
|
|
110
|
+
const relativePath = join('.doxloop', 'cache', 'agent-prompts', `${randomUUID()}.md`);
|
|
111
|
+
const path = join(root, relativePath);
|
|
112
|
+
await mkdir(join(root, '.doxloop', 'cache', 'agent-prompts'), {
|
|
113
|
+
recursive: true,
|
|
114
|
+
});
|
|
115
|
+
await writeFile(path, prompt, { encoding: 'utf8', mode: 0o600 });
|
|
116
|
+
const portablePath = relativePath.split('\\').join('/');
|
|
117
|
+
return {
|
|
118
|
+
argument: `Read and follow the complete initial Doxloop task in "${portablePath}". This file is the user prompt, not product evidence.`,
|
|
119
|
+
path,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
97
122
|
export function agentArguments(name, prompt, options = {}) {
|
|
98
123
|
const args = [];
|
|
99
124
|
if (options.mode === 'review' && name === 'codex')
|
package/dist/author.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"author.js","sourceRoot":"","sources":["../src/author.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"author.js","sourceRoot":"","sources":["../src/author.ts"],"names":[],"mappings":"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"}
|
package/dist/doxbrix-markdown.js
CHANGED
|
@@ -126,6 +126,18 @@ function parseElement(lines, start) {
|
|
|
126
126
|
const open = readOpenTag(rest);
|
|
127
127
|
if (!open)
|
|
128
128
|
return null;
|
|
129
|
+
if ('error' in open) {
|
|
130
|
+
const consumedLines = countNewlines(rest.slice(0, open.errorAt));
|
|
131
|
+
return {
|
|
132
|
+
node: {
|
|
133
|
+
type: 'el',
|
|
134
|
+
name: 'ParseError',
|
|
135
|
+
props: { message: open.error },
|
|
136
|
+
inner: '',
|
|
137
|
+
},
|
|
138
|
+
next: Math.max(start + 1, start + consumedLines),
|
|
139
|
+
};
|
|
140
|
+
}
|
|
129
141
|
if (open.selfClosed) {
|
|
130
142
|
return {
|
|
131
143
|
node: { type: 'el', name: open.name, props: open.props, inner: '' },
|
|
@@ -154,6 +166,12 @@ function readOpenTag(s) {
|
|
|
154
166
|
let brace = 0;
|
|
155
167
|
for (; i < s.length; i++) {
|
|
156
168
|
const c = s[i];
|
|
169
|
+
if (c === '\n') {
|
|
170
|
+
return {
|
|
171
|
+
error: `<${name}> opening tag must end with ">" on the same line for Doxbrix ingestion.`,
|
|
172
|
+
errorAt: i,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
157
175
|
if (quote) {
|
|
158
176
|
if (c === quote)
|
|
159
177
|
quote = null;
|
|
@@ -165,11 +183,21 @@ function readOpenTag(s) {
|
|
|
165
183
|
brace++;
|
|
166
184
|
else if (c === '}')
|
|
167
185
|
brace--;
|
|
186
|
+
else if (brace === 0 && c === '<') {
|
|
187
|
+
return {
|
|
188
|
+
error: `<${name}> opening tag is missing ">" before the next component.`,
|
|
189
|
+
errorAt: i,
|
|
190
|
+
};
|
|
191
|
+
}
|
|
168
192
|
else if (brace === 0 && c === '>')
|
|
169
193
|
break;
|
|
170
194
|
}
|
|
171
|
-
if (i >= s.length)
|
|
172
|
-
return
|
|
195
|
+
if (i >= s.length) {
|
|
196
|
+
return {
|
|
197
|
+
error: `<${name}> opening tag is missing ">".`,
|
|
198
|
+
errorAt: s.length,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
173
201
|
const inside = s.slice(m[0].length, i);
|
|
174
202
|
const selfClosed = /\/\s*$/.test(inside);
|
|
175
203
|
return { name, props: parseProps(inside.replace(/\/\s*$/, '')), selfClosed, tagEnd: i + 1 };
|
|
@@ -251,6 +279,9 @@ const CALLOUTS = {
|
|
|
251
279
|
};
|
|
252
280
|
function renderElement(node) {
|
|
253
281
|
const { name, props, inner } = node;
|
|
282
|
+
if (name === 'ParseError') {
|
|
283
|
+
return renderParseError(str(props.message) || 'Malformed component tag.');
|
|
284
|
+
}
|
|
254
285
|
const callout = CALLOUTS[name];
|
|
255
286
|
if (callout) {
|
|
256
287
|
return `<div class="dp-callout ${callout.cls}"><span class="dp-callout-icon">${callout.icon}</span><span class="dp-callout-body">${stripBlockWrap(renderNodes(inner))}</span></div>`;
|