@doxbrix/doxloop 0.1.1 → 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/dist/preview.js CHANGED
@@ -80,6 +80,19 @@ async function startDoxbrixPreview(options, project) {
80
80
  loadSiteConfig(options.root, project),
81
81
  ]);
82
82
  const pagesById = new Map(pages.map((path) => [pageId(contentRoot, path), path]));
83
+ if (url.pathname === '/__doxloop/search-index') {
84
+ const entries = await Promise.all([...pagesById].map(async ([id, path]) => {
85
+ const page = await readPage(path);
86
+ return {
87
+ title: page.title || labelFromId(id),
88
+ description: page.description ?? '',
89
+ href: `/${id}`,
90
+ text: markdownSearchText(page.body),
91
+ };
92
+ }));
93
+ send(response, 200, 'application/json; charset=utf-8', JSON.stringify(entries));
94
+ return;
95
+ }
83
96
  const requested = requestedPage(url.pathname, site, pagesById);
84
97
  if (requested === undefined || !pagesById.has(requested)) {
85
98
  send(response, 404, 'text/html; charset=utf-8', errorPage(requested ?? '', site));
@@ -235,8 +248,15 @@ export function doxbrixDocument(input) {
235
248
  <div class="dxb-atlas-header-main"><div class="dxb-atlas-header-inner">
236
249
  <a class="dp-topnav-logo" href="${escapeAttr(logoHref)}">${logo}</a>
237
250
  <div class="dxb-atlas-search-cluster">
238
- <button class="dp-topnav-search" type="button" aria-disabled="true">${icon('search', 17)}<span>Search...</span><kbd>⌘K</kbd></button>
239
- <button class="dxb-atlas-assistant" type="button" aria-disabled="true">${icon('sparkle', 16)}<span>Ask Assistant</span></button>
251
+ <button class="dp-topnav-search" type="button" aria-label="Search documentation" aria-haspopup="dialog" data-preview-search>${icon('search', 17)}<span>Search...</span><kbd>⌘K</kbd></button>
252
+ <div class="dxb-atlas-assistant-wrap">
253
+ <button class="dxb-atlas-assistant" type="button" aria-disabled="true" aria-expanded="false" data-preview-assistant>${icon('sparkle', 16)}<span>Ask Assistant</span></button>
254
+ <div class="dxb-preview-notice" role="status" aria-live="polite" data-preview-notice hidden>
255
+ <strong>Ask Assistant isn’t available in preview.</strong>
256
+ <span>Run <code>doxloop deploy</code> to use it on your deployed site — deployment is free.</span>
257
+ <button type="button" aria-label="Dismiss notice" data-preview-notice-dismiss>×</button>
258
+ </div>
259
+ </div>
240
260
  </div>
241
261
  <div class="dxb-atlas-header-actions">
242
262
  <button class="dp-theme-toggle" type="button" aria-label="Switch color theme" aria-pressed="${resolvedMode === 'dark'}" data-theme-toggle>${icon(resolvedMode === 'dark' ? 'sun' : 'moon', 17)}</button>
@@ -255,6 +275,18 @@ export function doxbrixDocument(input) {
255
275
  </div></main>
256
276
  ${toc}
257
277
  </div>
278
+ <div class="dxb-preview-search" role="dialog" aria-modal="true" aria-label="Search documentation" data-preview-search-dialog hidden>
279
+ <div class="dxb-preview-search-panel">
280
+ <div class="dxb-preview-search-input-wrap">
281
+ ${icon('search', 18)}
282
+ <input type="search" placeholder="Search documentation..." autocomplete="off" aria-label="Search documentation" data-preview-search-input>
283
+ <kbd>Esc</kbd>
284
+ </div>
285
+ <div class="dxb-preview-search-status" data-preview-search-status>Loading pages…</div>
286
+ <div class="dxb-preview-search-results" role="listbox" data-preview-search-results></div>
287
+ <div class="dxb-preview-search-help"><span><kbd>↑</kbd><kbd>↓</kbd> Navigate</span><span><kbd>↵</kbd> Open</span></div>
288
+ </div>
289
+ </div>
258
290
  </div>
259
291
  <script>
260
292
  const root = document.querySelector('.dp-root--published');
@@ -276,9 +308,159 @@ export function doxbrixDocument(input) {
276
308
  themeToggle.innerHTML = dark ? '${icon('sun', 17)}' : '${icon('moon', 17)}';
277
309
  }
278
310
  updateThemeToggle();
311
+ const tocLinks = Array.from(document.querySelectorAll('.dp-toc-entry'));
312
+ const tocHeadings = tocLinks
313
+ .map((link) => {
314
+ const id = decodeURIComponent(link.hash.slice(1));
315
+ const heading = document.getElementById(id);
316
+ return heading ? { link, heading } : null;
317
+ })
318
+ .filter(Boolean);
319
+ let tocFrame = 0;
320
+ function updateActiveToc() {
321
+ tocFrame = 0;
322
+ if (!tocHeadings.length) return;
323
+ const header = document.querySelector('.dxb-atlas-header');
324
+ const activationLine = (header?.getBoundingClientRect().bottom || 0) + 32;
325
+ let activeIndex = 0;
326
+ for (let index = 0; index < tocHeadings.length; index += 1) {
327
+ if (tocHeadings[index].heading.getBoundingClientRect().top <= activationLine) {
328
+ activeIndex = index;
329
+ } else {
330
+ break;
331
+ }
332
+ }
333
+ if (window.innerHeight + window.scrollY >= document.documentElement.scrollHeight - 2) {
334
+ activeIndex = tocHeadings.length - 1;
335
+ }
336
+ tocHeadings.forEach(({ link }, index) => {
337
+ const active = index === activeIndex;
338
+ link.classList.toggle('active', active);
339
+ if (active) link.setAttribute('aria-current', 'location');
340
+ else link.removeAttribute('aria-current');
341
+ });
342
+ }
343
+ function scheduleTocUpdate() {
344
+ if (!tocFrame) tocFrame = requestAnimationFrame(updateActiveToc);
345
+ }
346
+ updateActiveToc();
347
+ addEventListener('scroll', scheduleTocUpdate, { passive: true });
348
+ addEventListener('resize', scheduleTocUpdate);
279
349
  const events = new EventSource('/__doxloop/events');
280
350
  events.addEventListener('reload', () => location.reload());
351
+ const previewNotice = document.querySelector('[data-preview-notice]');
352
+ const previewAssistant = document.querySelector('[data-preview-assistant]');
353
+ let previewNoticeTimer;
354
+ function showPreviewNotice() {
355
+ if (!previewNotice) return;
356
+ previewNotice.hidden = false;
357
+ previewAssistant?.setAttribute('aria-expanded', 'true');
358
+ requestAnimationFrame(() => previewNotice.classList.add('visible'));
359
+ clearTimeout(previewNoticeTimer);
360
+ previewNoticeTimer = setTimeout(() => {
361
+ previewNotice.classList.remove('visible');
362
+ previewAssistant?.setAttribute('aria-expanded', 'false');
363
+ setTimeout(() => { previewNotice.hidden = true; }, 180);
364
+ }, 7000);
365
+ }
366
+ const searchButton = document.querySelector('[data-preview-search]');
367
+ const searchDialog = document.querySelector('[data-preview-search-dialog]');
368
+ const searchInput = document.querySelector('[data-preview-search-input]');
369
+ const searchResults = document.querySelector('[data-preview-search-results]');
370
+ const searchStatus = document.querySelector('[data-preview-search-status]');
371
+ let searchPages;
372
+ let activeSearchResult = 0;
373
+ function searchSnippet(page, query) {
374
+ const source = page.description || page.text;
375
+ if (!query) return source.slice(0, 150);
376
+ const index = source.toLocaleLowerCase().indexOf(query.toLocaleLowerCase());
377
+ const start = Math.max(0, index < 0 ? 0 : index - 55);
378
+ return (start > 0 ? '…' : '') + source.slice(start, start + 150) + (source.length > start + 150 ? '…' : '');
379
+ }
380
+ function selectSearchResult(index) {
381
+ const links = Array.from(searchResults?.querySelectorAll('.dxb-preview-search-result') || []);
382
+ if (!links.length) return;
383
+ activeSearchResult = (index + links.length) % links.length;
384
+ links.forEach((link, itemIndex) => {
385
+ const active = itemIndex === activeSearchResult;
386
+ link.classList.toggle('active', active);
387
+ link.setAttribute('aria-selected', String(active));
388
+ });
389
+ links[activeSearchResult]?.scrollIntoView({ block: 'nearest' });
390
+ }
391
+ function renderSearchResults() {
392
+ if (!searchResults || !searchStatus || !searchPages) return;
393
+ const query = searchInput?.value.trim() || '';
394
+ const tokens = query.toLocaleLowerCase().split(/\\s+/).filter(Boolean);
395
+ const matches = searchPages
396
+ .map((page) => {
397
+ const title = page.title.toLocaleLowerCase();
398
+ const description = page.description.toLocaleLowerCase();
399
+ const text = page.text.toLocaleLowerCase();
400
+ if (!tokens.every((token) => title.includes(token) || description.includes(token) || text.includes(token))) return null;
401
+ const score = tokens.reduce((total, token) => total + (title.includes(token) ? 6 : 0) + (description.includes(token) ? 3 : 0) + (text.includes(token) ? 1 : 0), 0);
402
+ return { page, score };
403
+ })
404
+ .filter(Boolean)
405
+ .sort((left, right) => right.score - left.score || left.page.title.localeCompare(right.page.title))
406
+ .slice(0, 10);
407
+ searchResults.replaceChildren();
408
+ searchStatus.textContent = matches.length
409
+ ? (query ? matches.length + (matches.length === 1 ? ' result' : ' results') : 'Browse documentation')
410
+ : 'No matching pages';
411
+ matches.forEach(({ page }, index) => {
412
+ const link = document.createElement('a');
413
+ link.className = 'dxb-preview-search-result' + (index === 0 ? ' active' : '');
414
+ link.href = page.href;
415
+ link.setAttribute('role', 'option');
416
+ link.setAttribute('aria-selected', String(index === 0));
417
+ const title = document.createElement('strong');
418
+ title.textContent = page.title;
419
+ const snippet = document.createElement('span');
420
+ snippet.textContent = searchSnippet(page, query);
421
+ link.append(title, snippet);
422
+ searchResults.append(link);
423
+ });
424
+ activeSearchResult = 0;
425
+ }
426
+ async function loadSearchPages() {
427
+ if (searchPages) return;
428
+ searchStatus.textContent = 'Loading pages…';
429
+ try {
430
+ const response = await fetch('/__doxloop/search-index');
431
+ if (!response.ok) throw new Error('Search index request failed');
432
+ searchPages = await response.json();
433
+ renderSearchResults();
434
+ } catch {
435
+ searchStatus.textContent = 'Search is unavailable. Reload the preview and try again.';
436
+ }
437
+ }
438
+ function openSearch() {
439
+ if (!searchDialog) return;
440
+ searchDialog.hidden = false;
441
+ document.body.classList.add('dxb-search-open');
442
+ searchInput?.focus();
443
+ void loadSearchPages();
444
+ if (searchPages) renderSearchResults();
445
+ }
446
+ function closeSearch() {
447
+ if (!searchDialog) return;
448
+ searchDialog.hidden = true;
449
+ document.body.classList.remove('dxb-search-open');
450
+ searchButton?.focus();
451
+ }
281
452
  document.addEventListener('click', (event) => {
453
+ if (event.target.closest('[data-preview-search]')) openSearch();
454
+ if (event.target === searchDialog) closeSearch();
455
+ if (event.target.closest('[data-preview-assistant]')) {
456
+ showPreviewNotice();
457
+ }
458
+ if (event.target.closest('[data-preview-notice-dismiss]') && previewNotice) {
459
+ clearTimeout(previewNoticeTimer);
460
+ previewNotice.classList.remove('visible');
461
+ previewNotice.hidden = true;
462
+ previewAssistant?.setAttribute('aria-expanded', 'false');
463
+ }
282
464
  const toggle = event.target.closest('[data-theme-toggle]');
283
465
  if (toggle && root) {
284
466
  root.dataset.colorTheme = root.dataset.colorTheme === 'dark' ? 'light' : 'dark';
@@ -336,6 +518,31 @@ export function doxbrixDocument(input) {
336
518
  }
337
519
  }
338
520
  });
521
+ searchInput?.addEventListener('input', renderSearchResults);
522
+ document.addEventListener('keydown', (event) => {
523
+ if ((event.metaKey || event.ctrlKey) && event.key.toLocaleLowerCase() === 'k') {
524
+ event.preventDefault();
525
+ searchDialog?.hidden ? openSearch() : closeSearch();
526
+ return;
527
+ }
528
+ if (searchDialog?.hidden) return;
529
+ if (event.key === 'Escape') {
530
+ event.preventDefault();
531
+ closeSearch();
532
+ } else if (event.key === 'ArrowDown') {
533
+ event.preventDefault();
534
+ selectSearchResult(activeSearchResult + 1);
535
+ } else if (event.key === 'ArrowUp') {
536
+ event.preventDefault();
537
+ selectSearchResult(activeSearchResult - 1);
538
+ } else if (event.key === 'Enter') {
539
+ const active = searchResults?.querySelector('.dxb-preview-search-result.active');
540
+ if (active) {
541
+ event.preventDefault();
542
+ location.href = active.href;
543
+ }
544
+ }
545
+ });
339
546
  </script>
340
547
  </body>
341
548
  </html>`;
@@ -377,6 +584,18 @@ function tocHtml(entries) {
377
584
  .map((entry, index) => `<a class="dp-toc-entry level-${entry.level}${index === 0 ? ' active' : ''}" href="#${escapeAttr(entry.id)}">${escapeHtml(entry.title)}</a>`)
378
585
  .join('')}</aside>`;
379
586
  }
587
+ function markdownSearchText(markdown) {
588
+ return markdown
589
+ .replace(/```[\s\S]*?```/g, ' ')
590
+ .replace(/`([^`]+)`/g, '$1')
591
+ .replace(/!\[[^\]]*\]\([^)]+\)/g, ' ')
592
+ .replace(/\[([^\]]+)\]\([^)]+\)/g, '$1')
593
+ .replace(/<[^>]+>/g, ' ')
594
+ .replace(/[#>*_~|=-]+/g, ' ')
595
+ .replace(/\s+/g, ' ')
596
+ .trim()
597
+ .slice(0, 12_000);
598
+ }
380
599
  function firstPage(nodes) {
381
600
  for (const node of nodes) {
382
601
  if ('hidden' in node && node.hidden)
@@ -657,7 +876,9 @@ function errorPage(requested, site) {
657
876
  function send(response, status, type, body) {
658
877
  response.writeHead(status, {
659
878
  'Content-Type': type,
660
- 'Cache-Control': type.startsWith('text/html') ? 'no-store' : 'public, max-age=60',
879
+ 'Cache-Control': type.startsWith('text/html') || type.startsWith('application/json')
880
+ ? 'no-store'
881
+ : 'public, max-age=60',
661
882
  });
662
883
  response.end(body);
663
884
  }
@@ -1 +1 @@
1
- {"version":3,"file":"preview.js","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preview.js","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAGV,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAEnB,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAqE7E;AAqqBD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CASjE"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAGV,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAEnB,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAqE7E;AA41BD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CASjE"}
@@ -229,18 +229,161 @@ const DOXBRIX_CONTAINER_COMPONENTS = [
229
229
  'ResponseExample',
230
230
  ];
231
231
  function validateDoxbrixComponents(content, file) {
232
- const issues = [];
233
- const withoutFences = content.replace(/```[\s\S]*?```/g, '');
234
- for (const name of DOXBRIX_CONTAINER_COMPONENTS) {
235
- const openings = withoutFences.match(new RegExp(`<${name}(?:\\s[^>]*)?(?<!/)>`, 'g'))?.length ?? 0;
236
- const closings = withoutFences.match(new RegExp(`</${name}>`, 'g'))?.length ?? 0;
237
- if (openings !== closings) {
238
- issues.push(error('component-tag', `<${name}> tags are not balanced (${openings} opening, ${closings} closing).`, file));
232
+ const masked = maskDoxbrixCode(content);
233
+ const scanned = scanDoxbrixComponentTags(masked, file);
234
+ const issues = [...scanned.issues];
235
+ const stack = [];
236
+ for (const tag of scanned.tags) {
237
+ if (tag.kind === 'self-close')
238
+ continue;
239
+ if (tag.kind === 'open') {
240
+ stack.push(tag);
241
+ continue;
239
242
  }
243
+ const opening = stack.at(-1);
244
+ if (!opening) {
245
+ issues.push(error('component-tag', `Line ${tag.line}: unexpected closing </${tag.name}> tag.`, file));
246
+ continue;
247
+ }
248
+ if (opening.name !== tag.name) {
249
+ issues.push(error('component-tag', `Line ${tag.line}: </${tag.name}> closes before <${opening.name}> opened on line ${opening.line}.`, file));
250
+ continue;
251
+ }
252
+ stack.pop();
253
+ }
254
+ for (const opening of stack) {
255
+ issues.push(error('component-tag', `Line ${opening.line}: <${opening.name}> does not have a matching closing tag.`, file));
256
+ }
257
+ if (issues.length === 0) {
258
+ issues.push(...validateDoxbrixApiEndpoints(masked, file));
240
259
  }
241
- issues.push(...validateDoxbrixApiEndpoints(withoutFences, file));
242
260
  return issues;
243
261
  }
262
+ function scanDoxbrixComponentTags(content, file) {
263
+ const names = new Set(DOXBRIX_CONTAINER_COMPONENTS);
264
+ const tags = [];
265
+ const issues = [];
266
+ let index = 0;
267
+ let line = 1;
268
+ while (index < content.length) {
269
+ if (content[index] === '\n') {
270
+ line += 1;
271
+ index += 1;
272
+ continue;
273
+ }
274
+ if (content[index] !== '<') {
275
+ index += 1;
276
+ continue;
277
+ }
278
+ const start = index;
279
+ const startLine = line;
280
+ const closing = content[index + 1] === '/';
281
+ const nameStart = index + (closing ? 2 : 1);
282
+ let nameEnd = nameStart;
283
+ while (/[A-Za-z0-9]/.test(content[nameEnd] ?? ''))
284
+ nameEnd += 1;
285
+ const name = content.slice(nameStart, nameEnd);
286
+ if (!names.has(name)) {
287
+ index += 1;
288
+ continue;
289
+ }
290
+ let quote = null;
291
+ let braces = 0;
292
+ let cursor = nameEnd;
293
+ let endLine = line;
294
+ let malformed = false;
295
+ for (; cursor < content.length; cursor += 1) {
296
+ const character = content[cursor];
297
+ if (character === '\n')
298
+ endLine += 1;
299
+ if (quote) {
300
+ if (character === quote && content[cursor - 1] !== '\\')
301
+ quote = null;
302
+ continue;
303
+ }
304
+ if (character === '"' || character === "'") {
305
+ quote = character;
306
+ }
307
+ else if (character === '{') {
308
+ braces += 1;
309
+ }
310
+ else if (character === '}') {
311
+ braces = Math.max(0, braces - 1);
312
+ }
313
+ else if (braces === 0 && character === '<') {
314
+ issues.push(error('component-tag', `Line ${startLine}: <${name}> opening tag is missing ">" before the component beginning on line ${endLine}.`, file));
315
+ malformed = true;
316
+ break;
317
+ }
318
+ else if (braces === 0 && character === '>') {
319
+ break;
320
+ }
321
+ }
322
+ if (malformed) {
323
+ index = cursor;
324
+ line = endLine;
325
+ continue;
326
+ }
327
+ if (cursor >= content.length) {
328
+ issues.push(error('component-tag', `Line ${startLine}: <${name}> opening tag is missing ">".`, file));
329
+ break;
330
+ }
331
+ if (endLine !== startLine) {
332
+ issues.push(error('component-tag', `Line ${startLine}: <${name}> opening tag must end with ">" on the same line for Doxbrix ingestion.`, file));
333
+ }
334
+ const beforeClose = content.slice(start, cursor).trimEnd();
335
+ tags.push({
336
+ name: name,
337
+ kind: closing ? 'close' : beforeClose.endsWith('/') ? 'self-close' : 'open',
338
+ line: startLine,
339
+ endLine,
340
+ });
341
+ index = cursor + 1;
342
+ line = endLine;
343
+ }
344
+ return { tags, issues };
345
+ }
346
+ function maskDoxbrixCode(content) {
347
+ const lines = content.split('\n');
348
+ let fence;
349
+ const masked = lines.map((line) => {
350
+ const match = /^\s*(`{3,}|~{3,})/.exec(line);
351
+ if (match) {
352
+ const marker = match[1][0];
353
+ const length = match[1].length;
354
+ if (!fence)
355
+ fence = { marker, length };
356
+ else if (fence.marker === marker && length >= fence.length)
357
+ fence = undefined;
358
+ return ' '.repeat(line.length);
359
+ }
360
+ if (fence)
361
+ return ' '.repeat(line.length);
362
+ const characters = [...line];
363
+ let index = 0;
364
+ while (index < characters.length) {
365
+ if (characters[index] !== '`') {
366
+ index += 1;
367
+ continue;
368
+ }
369
+ let ticks = 1;
370
+ while (characters[index + ticks] === '`')
371
+ ticks += 1;
372
+ const closing = '`'.repeat(ticks);
373
+ const end = line.indexOf(closing, index + ticks);
374
+ if (end === -1) {
375
+ index += ticks;
376
+ continue;
377
+ }
378
+ for (let cursor = index; cursor < end + ticks; cursor += 1) {
379
+ characters[cursor] = ' ';
380
+ }
381
+ index = end + ticks;
382
+ }
383
+ return characters.join('');
384
+ });
385
+ return masked.join('\n');
386
+ }
244
387
  function validateDoxbrixApiEndpoints(content, file) {
245
388
  const issues = [];
246
389
  for (const [index, match] of [