@iwonz/ywtc 3.5.0 → 4.0.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.
@@ -208,8 +208,9 @@ export class DataCenterConfluenceClient {
208
208
  }
209
209
  async updatePage(input) {
210
210
  return this.writeLimit(async () => {
211
- const current = await this.getPage(input.pageId);
212
- if (!current.version?.number)
211
+ const current = input.version ? undefined : await this.getPage(input.pageId);
212
+ const version = input.version ?? current?.version?.number;
213
+ if (!version)
213
214
  throw new Error(`Confluence page ${input.pageId} has no version information`);
214
215
  const response = await this.http.request({
215
216
  method: 'PUT',
@@ -220,7 +221,7 @@ export class DataCenterConfluenceClient {
220
221
  type: 'page',
221
222
  title: input.title,
222
223
  version: {
223
- number: current.version.number + 1,
224
+ number: version + 1,
224
225
  minorEdit: true,
225
226
  message: 'Transferred by ywtc',
226
227
  },
@@ -1 +1 @@
1
- {"version":3,"file":"confluence.js","sourceRoot":"","sources":["../../src/clients/confluence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"confluence.js","sourceRoot":"","sources":["../../src/clients/confluence.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ import remarkStringify from 'remark-stringify';
12
12
  import { unified } from 'unified';
13
13
  import { convertYfmToStorage } from './conversion.js';
14
14
  import { normalizeWikiSlug, resolveRelativeWikiSlug } from './input.js';
15
+ import { hasYfmLayouts, parseYfmDocumentSegments } from './layout.js';
15
16
  const linkifier = new LinkifyIt();
16
17
  function sha256(value) {
17
18
  return createHash('sha256').update(value).digest('hex');
@@ -201,31 +202,76 @@ export function extractPageReferences(content, format) {
201
202
  }
202
203
  return uniqueReferences(references);
203
204
  }
205
+ const confluenceLayoutCellCounts = new Map([
206
+ ['single', 1],
207
+ ['two_equal', 2],
208
+ ['two_left_sidebar', 2],
209
+ ['two_right_sidebar', 2],
210
+ ['three_equal', 3],
211
+ ['three_with_sidebars', 3],
212
+ ]);
204
213
  function storageToSemanticHtml(storage, warnings) {
205
214
  const $ = load(`<main data-ywtc-root>${storage}</main>`, { xmlMode: false }, false);
206
215
  $('script, iframe, object, embed, form').each((_index, element) => {
207
216
  warnings.push(`Active or embedded element <${element.tagName}> was replaced by a safe fallback`);
208
217
  $(element).replaceWith(`<pre data-ywtc-fallback>${escapeHtml($.html(element))}</pre>`);
209
218
  });
219
+ $('ac\\:layout').toArray().reverse().forEach((element) => {
220
+ const layout = $(element);
221
+ if (layout.parents('ac\\:layout').length > 0)
222
+ warnings.push('Nested Confluence layout was preserved as a readable layout fallback');
223
+ const sections = layout.children('ac\\:layout-section').toArray().map((section) => {
224
+ const item = $(section);
225
+ const requestedType = item.attr('ac:type') ?? 'unsupported';
226
+ const expectedCells = confluenceLayoutCellCounts.get(requestedType);
227
+ const cells = item.children('ac\\:layout-cell').toArray();
228
+ const sectionType = expectedCells === cells.length ? requestedType : 'unsupported';
229
+ if (sectionType === 'unsupported') {
230
+ warnings.push(`Confluence layout section "${requestedType}" with ${cells.length} cells was preserved as an unsupported-width layout fallback`);
231
+ }
232
+ const body = cells.map((cell) => `<div class="ywtc-layout-cell">${$(cell).html() ?? ''}</div>`).join('');
233
+ return `<section class="ywtc-layout-section ywtc-layout-${escapeHtml(sectionType)} ywtc-layout-columns-${cells.length}" data-ywtc-layout-type="${escapeHtml(sectionType)}">${body}</section>`;
234
+ }).join('');
235
+ layout.replaceWith(`<section class="ywtc-layout" data-ywtc-layout-source="confluence">${sections}</section>`);
236
+ });
210
237
  $('ac\\:structured-macro').toArray().reverse().forEach((element) => {
211
238
  const macro = $(element);
212
239
  const name = macro.attr('ac:name') ?? 'unknown';
213
240
  const richBody = macro.children('ac\\:rich-text-body').html() ?? '';
214
241
  const plainBody = macro.children('ac\\:plain-text-body').text();
215
- const title = macro.children('ac\\:parameter').filter((_index, item) => $(item).attr('ac:name') === 'title').text().trim();
216
- if (name === 'code')
217
- macro.replaceWith(`<pre><code>${escapeHtml(plainBody)}</code></pre>`);
218
- else if (name === 'expand')
219
- macro.replaceWith(`<details open><summary>${escapeHtml(title || 'Details')}</summary>${richBody}</details>`);
220
- else if (['info', 'tip', 'warning', 'note'].includes(name))
221
- macro.replaceWith(`<aside class="ywtc-${name}"><strong>${escapeHtml(title || name)}</strong>${richBody}</aside>`);
222
- else if (name === 'anchor')
223
- macro.replaceWith(`<span id="${escapeHtml(macro.children('ac\\:parameter').first().text())}"></span>`);
242
+ const parameters = new Map(macro.children('ac\\:parameter').toArray().map((item) => [$(item).attr('ac:name') ?? '', $(item).text().trim()]));
243
+ const title = parameters.get('title') ?? '';
244
+ if (name === 'code') {
245
+ const language = parameters.get('language');
246
+ macro.replaceWith(`<pre><code${language ? ` class="language-${escapeHtml(language)}"` : ''}>${escapeHtml(plainBody)}</code></pre>`);
247
+ }
248
+ else if (name === 'expand') {
249
+ macro.replaceWith(`<details class="ywtc-expand" data-ywtc-title="${escapeHtml(title || 'Details')}" open><summary>${escapeHtml(title || 'Details')}</summary>${richBody}</details>`);
250
+ }
251
+ else if (['info', 'tip', 'warning', 'note'].includes(name)) {
252
+ macro.replaceWith(`<aside class="ywtc-note ywtc-${name}" data-ywtc-note-type="${name}" data-ywtc-title="${escapeHtml(title)}">${richBody}</aside>`);
253
+ }
254
+ else if (name === 'anchor') {
255
+ macro.replaceWith(`<span class="ywtc-anchor" id="${escapeHtml(macro.children('ac\\:parameter').first().text())}"></span>`);
256
+ }
257
+ else if (name === 'children' && !parameters.get('page')) {
258
+ const depth = Number(parameters.get('depth'));
259
+ macro.replaceWith(`<nav class="ywtc-children" data-ywtc-depth="${Number.isInteger(depth) && depth > 0 ? depth : ''}" data-ywtc-sort="${escapeHtml(parameters.get('sort') ?? '')}" data-ywtc-reverse="${parameters.get('reverse') === 'true' ? 'true' : 'false'}"></nav>`);
260
+ }
224
261
  else {
225
262
  warnings.push(`Confluence macro "${name}" was converted to a static fallback`);
226
263
  macro.replaceWith(`<aside class="ywtc-fallback"><strong>${escapeHtml(name)}</strong>${richBody || `<pre>${escapeHtml(plainBody)}</pre>`}</aside>`);
227
264
  }
228
265
  });
266
+ $('ac\\:task-list').toArray().reverse().forEach((element) => {
267
+ const tasks = $(element).children('ac\\:task').toArray().map((task) => {
268
+ const item = $(task);
269
+ const status = item.children('ac\\:task-status').text().trim() === 'complete' ? 'complete' : 'incomplete';
270
+ const body = item.children('ac\\:task-body').html() ?? '';
271
+ return `<li class="ywtc-task" data-ywtc-task-status="${status}">${body}</li>`;
272
+ }).join('');
273
+ $(element).replaceWith(`<ul class="ywtc-task-list">${tasks}</ul>`);
274
+ });
229
275
  $('ac\\:image').each((_index, element) => {
230
276
  const image = $(element);
231
277
  const attachment = image.children('ri\\:attachment').attr('ri:filename');
@@ -319,7 +365,7 @@ function extractTreeDirectives(content) {
319
365
  function containsEmptyYfmHeading(content) {
320
366
  return /^\s{0,3}#{1,6}\s*$/m.test(content);
321
367
  }
322
- function yfmToHtml(content, warnings, normalizations = []) {
368
+ function yfmFragmentToHtml(content, warnings, normalizations) {
323
369
  try {
324
370
  const result = transform(content || '', {
325
371
  allowHTML: true,
@@ -361,10 +407,65 @@ function yfmToHtml(content, warnings, normalizations = []) {
361
407
  return `<pre data-ywtc-fallback><code>${escapeHtml(content)}</code></pre>`;
362
408
  }
363
409
  }
410
+ function yfmToHtml(content, warnings, normalizations = []) {
411
+ const segments = parseYfmDocumentSegments(content);
412
+ if (!hasYfmLayouts(segments))
413
+ return yfmFragmentToHtml(content, warnings, normalizations);
414
+ return segments.map((segment) => {
415
+ if (segment.type === 'content') {
416
+ return segment.raw.trim() ? yfmFragmentToHtml(segment.raw, warnings, normalizations) : '';
417
+ }
418
+ const gap = segment.gap?.replace(/[^a-z0-9_-]/gi, '') || 'default';
419
+ const cells = segment.cells.map((cell) => `<div class="ywtc-layout-cell">${yfmFragmentToHtml(cell, warnings, normalizations)}</div>`).join('');
420
+ return `<section class="ywtc-layout" data-ywtc-layout-source="yandex-wiki"><section class="ywtc-layout-section ywtc-layout-columns-${segment.cells.length} ywtc-layout-gap-${gap}" data-ywtc-layout-type="${segment.cells.length === 1 ? 'single' : segment.cells.length === 2 ? 'two_equal' : segment.cells.length === 3 ? 'three_equal' : 'unsupported'}">${cells}</section></section>`;
421
+ }).join('');
422
+ }
364
423
  function metrics(html) {
365
424
  const $ = load(html, null, false);
366
425
  return { links: $('a').length, images: $('img').length, tables: $('table').length, codeBlocks: $('pre').length };
367
426
  }
427
+ function normalizedNodesFromHtml(html, provider) {
428
+ const $ = load(`<main data-ywtc-nodes>${html}</main>`, null, false);
429
+ const nodes = [];
430
+ let pending = '';
431
+ const flush = () => {
432
+ if (!pending)
433
+ return;
434
+ nodes.push({ type: 'html', value: pending });
435
+ pending = '';
436
+ };
437
+ for (const element of $('main[data-ywtc-nodes]').contents().toArray()) {
438
+ const item = $(element);
439
+ if (!item.is('section.ywtc-layout')) {
440
+ pending += $.html(element);
441
+ continue;
442
+ }
443
+ flush();
444
+ const sections = item.children('section.ywtc-layout-section').toArray().map((section) => {
445
+ const sectionItem = $(section);
446
+ const rawType = sectionItem.attr('data-ywtc-layout-type') ?? 'unsupported';
447
+ const sectionType = confluenceLayoutCellCounts.has(rawType) || rawType === 'unsupported'
448
+ ? rawType
449
+ : 'unsupported';
450
+ const gap = String(sectionItem.attr('class') ?? '').split(/\s+/).find((value) => value.startsWith('ywtc-layout-gap-'))?.slice('ywtc-layout-gap-'.length);
451
+ const cells = sectionItem.children('.ywtc-layout-cell').toArray().map((cell) => ({
452
+ type: 'layout-cell',
453
+ children: [{ type: 'html', value: $(cell).html() ?? '' }],
454
+ }));
455
+ return { type: 'layout-section', layout: { source: provider, sectionType, ...(gap ? { gap } : {}) }, children: cells };
456
+ });
457
+ nodes.push({ type: 'layout', layout: { source: provider }, children: sections });
458
+ }
459
+ flush();
460
+ return nodes.length > 0 ? nodes : [{ type: 'html', value: '<p></p>' }];
461
+ }
462
+ function semanticallyEmptyHtml(html) {
463
+ const $ = load(html, null, false);
464
+ $('script,style').remove();
465
+ if (semanticText($.root().text()))
466
+ return false;
467
+ return $('a[href],a[name],[id],img,video,audio,table,pre,code,hr,blockquote,ul,ol,.ywtc-note,.ywtc-expand,.ywtc-children,.ywtc-task-list,.ywtc-fallback').length === 0;
468
+ }
368
469
  export function normalizePageContent(page) {
369
470
  const warnings = [];
370
471
  const normalizations = [];
@@ -378,7 +479,7 @@ export function normalizePageContent(page) {
378
479
  label: reference.pageTitle ?? reference.href ?? reference.raw,
379
480
  ...(reference.anchor ? { anchor: reference.anchor } : {}),
380
481
  }));
381
- const children = [{ type: 'html', value: html }];
482
+ const children = normalizedNodesFromHtml(html, page.provider);
382
483
  children.push(...tree.directives.map((directive) => ({
383
484
  type: 'tree-directive',
384
485
  value: directive.raw,
@@ -398,6 +499,7 @@ export function normalizePageContent(page) {
398
499
  warnings,
399
500
  normalizations,
400
501
  degraded: warnings.length > 0,
502
+ semanticallyEmpty: tree.directives.length === 0 && semanticallyEmptyHtml(html),
401
503
  metrics: metrics(html),
402
504
  };
403
505
  }
@@ -429,10 +531,13 @@ export function appendGridSnapshots(document, resources) {
429
531
  const htmlNode = document.root.children?.find((node) => node.type === 'html');
430
532
  if (htmlNode)
431
533
  htmlNode.value = `${htmlNode.value ?? ''}${html}`;
534
+ else
535
+ document.root.children?.push({ type: 'html', value: html });
432
536
  return {
433
537
  ...document,
434
538
  warnings: [...document.warnings, ...grids.map((resource) => `Dynamic table "${resource.name}" was converted to a static table`)],
435
539
  degraded: true,
540
+ semanticallyEmpty: false,
436
541
  metrics: { ...document.metrics, tables: document.metrics.tables + grids.length },
437
542
  };
438
543
  }
@@ -445,20 +550,138 @@ async function htmlToMarkdown(html) {
445
550
  .process(html);
446
551
  return `${String(result).trimEnd()}\n`;
447
552
  }
553
+ function linearizeLayoutsForMarkdown(html) {
554
+ const $ = load(html, null, false);
555
+ let layouts = 0;
556
+ $('section.ywtc-layout').toArray().reverse().forEach((layout) => {
557
+ const sourceSections = $(layout).children('section.ywtc-layout-section').toArray();
558
+ if (sourceSections.some((section) => $(section).children('.ywtc-layout-cell').length > 1))
559
+ layouts += 1;
560
+ const sections = sourceSections.map((section) => {
561
+ const cells = $(section).children('.ywtc-layout-cell').toArray();
562
+ if (cells.length <= 1)
563
+ return cells.map((cell) => $(cell).html() ?? '').join('');
564
+ return cells.map((cell, index) => `<section class="ywtc-layout-linear-cell"><h3>Column ${index + 1}</h3>${$(cell).html() ?? ''}</section>`).join('');
565
+ }).join('');
566
+ $(layout).replaceWith(sections);
567
+ });
568
+ return { html: $.html(), layouts };
569
+ }
570
+ async function semanticHtmlToYfm(html) {
571
+ const warnings = new Set();
572
+ let tokenSequence = 0;
573
+ const convert = async (fragment) => {
574
+ const $ = load(fragment, null, false);
575
+ const tokens = new Map();
576
+ const selector = 'section.ywtc-layout,details.ywtc-expand,aside.ywtc-note,nav.ywtc-children,ul.ywtc-task-list,span.ywtc-anchor';
577
+ const elements = $(selector).filter((_index, element) => $(element).parents(selector).length === 0).toArray().reverse();
578
+ for (const element of elements) {
579
+ const item = $(element);
580
+ let rendered = '';
581
+ if (item.is('section.ywtc-layout')) {
582
+ const sections = [];
583
+ for (const section of item.children('section.ywtc-layout-section').toArray()) {
584
+ const sectionItem = $(section);
585
+ const sectionType = sectionItem.attr('data-ywtc-layout-type') ?? 'unsupported';
586
+ if (['two_left_sidebar', 'two_right_sidebar', 'three_with_sidebars', 'unsupported'].includes(sectionType)) {
587
+ warnings.add(`Confluence ${sectionType} layout widths were converted to equal YFM columns`);
588
+ }
589
+ const blocks = [];
590
+ for (const cell of sectionItem.children('.ywtc-layout-cell').toArray()) {
591
+ const body = (await convert($(cell).html() ?? '')).trim();
592
+ blocks.push(`{% block %}\n\n${body}\n\n{% endblock %}`);
593
+ }
594
+ sections.push(`{% layout %}\n\n${blocks.join('\n\n')}\n\n{% endlayout %}`);
595
+ }
596
+ rendered = sections.join('\n\n');
597
+ }
598
+ else if (item.is('details.ywtc-expand')) {
599
+ const title = item.attr('data-ywtc-title') ?? (item.children('summary').first().text().trim() || 'Details');
600
+ const clone = item.clone();
601
+ clone.children('summary').first().remove();
602
+ rendered = `{% cut "${title.replaceAll('"', '\\"')}" %}\n\n${(await convert(clone.html() ?? '')).trim()}\n\n{% endcut %}`;
603
+ }
604
+ else if (item.is('aside.ywtc-note')) {
605
+ const rawType = item.attr('data-ywtc-note-type') ?? 'info';
606
+ const type = rawType === 'note' ? 'info' : rawType;
607
+ const title = item.attr('data-ywtc-title')?.trim();
608
+ rendered = `{% note ${type}${title ? ` "${title.replaceAll('"', '\\"')}"` : ''} %}\n\n${(await convert(item.html() ?? '')).trim()}\n\n{% endnote %}`;
609
+ }
610
+ else if (item.is('nav.ywtc-children')) {
611
+ const depth = item.attr('data-ywtc-depth');
612
+ const sort = item.attr('data-ywtc-sort');
613
+ const reverse = item.attr('data-ywtc-reverse') === 'true';
614
+ const attributes = [
615
+ depth ? `depth="${depth}"` : '',
616
+ sort === 'title' ? 'sort_by="title"' : '',
617
+ sort === 'title' ? `sort="${reverse ? 'desc' : 'asc'}"` : '',
618
+ ].filter(Boolean).join(' ');
619
+ rendered = `{% tree${attributes ? ` ${attributes}` : ''} %}`;
620
+ }
621
+ else if (item.is('ul.ywtc-task-list')) {
622
+ const tasks = [];
623
+ for (const task of item.children('li.ywtc-task').toArray()) {
624
+ const marker = $(task).attr('data-ywtc-task-status') === 'complete' ? 'x' : ' ';
625
+ const body = (await convert($(task).html() ?? '')).trim().replace(/\n/g, '\n ');
626
+ tasks.push(`- [${marker}] ${body}`);
627
+ }
628
+ rendered = tasks.join('\n');
629
+ }
630
+ else if (item.is('span.ywtc-anchor')) {
631
+ const id = item.attr('id');
632
+ rendered = id ? `<a id="${escapeHtml(id)}"></a>` : '';
633
+ }
634
+ const token = `YWTCBLOCKTOKEN${tokenSequence++}END`;
635
+ tokens.set(token, rendered);
636
+ item.replaceWith(`<p>${token}</p>`);
637
+ }
638
+ let markdown = await htmlToMarkdown($.html());
639
+ for (const [token, rendered] of tokens)
640
+ markdown = markdown.replaceAll(token, rendered);
641
+ return markdown.trim();
642
+ };
643
+ return { body: `${await convert(html)}\n`, warnings: [...warnings] };
644
+ }
448
645
  async function sanitizeHtml(html) {
646
+ const parsed = load(html, null, false);
647
+ parsed('[class]').each((_index, element) => {
648
+ const safeClasses = String(parsed(element).attr('class') ?? '').split(/\s+/).filter((value) => /^ywtc-[\w-]+$/.test(value));
649
+ if (safeClasses.length > 0)
650
+ parsed(element).attr('class', safeClasses.join(' '));
651
+ else
652
+ parsed(element).removeAttr('class');
653
+ });
449
654
  const schema = {
450
655
  ...defaultSchema,
451
656
  tagNames: [...(defaultSchema.tagNames ?? []), 'aside', 'details', 'summary'],
452
657
  attributes: {
453
658
  ...defaultSchema.attributes,
454
- '*': [...(defaultSchema.attributes?.['*'] ?? []), ['className', /^ywtc-[\w-]+$/]],
659
+ '*': [...(defaultSchema.attributes?.['*'] ?? []), 'className'],
660
+ section: [...(defaultSchema.attributes?.section ?? []).filter((attribute) => !(Array.isArray(attribute) && attribute[0] === 'className')), 'className'],
455
661
  },
456
662
  };
457
- const result = await unified().use(rehypeParse, { fragment: true }).use(rehypeSanitize, schema).use(rehypeStringify).process(html);
663
+ const result = await unified().use(rehypeParse, { fragment: true }).use(rehypeSanitize, schema).use(rehypeStringify).process(parsed.html());
458
664
  return String(result);
459
665
  }
666
+ function normalizedNodeHtml(node) {
667
+ if (node.type === 'html')
668
+ return node.value ?? '';
669
+ if (node.type === 'layout-cell')
670
+ return `<div class="ywtc-layout-cell">${(node.children ?? []).map(normalizedNodeHtml).join('')}</div>`;
671
+ if (node.type === 'layout-section') {
672
+ const cells = node.children ?? [];
673
+ const type = node.layout?.sectionType ?? 'unsupported';
674
+ const gap = node.layout?.gap ? ` ywtc-layout-gap-${node.layout.gap.replace(/[^a-z0-9_-]/gi, '')}` : '';
675
+ return `<section class="ywtc-layout-section ywtc-layout-${type} ywtc-layout-columns-${cells.length}${gap}" data-ywtc-layout-type="${type}">${cells.map(normalizedNodeHtml).join('')}</section>`;
676
+ }
677
+ if (node.type === 'layout') {
678
+ return `<section class="ywtc-layout" data-ywtc-layout-source="${node.layout?.source ?? 'yandex-wiki'}">${(node.children ?? []).map(normalizedNodeHtml).join('')}</section>`;
679
+ }
680
+ return '';
681
+ }
460
682
  function htmlFromDocument(document) {
461
- return document.root.children?.find((node) => node.type === 'html')?.value ?? '<p></p>';
683
+ const html = document.root.children?.map(normalizedNodeHtml).join('') ?? '';
684
+ return html || '<p></p>';
462
685
  }
463
686
  export function normalizedPreviewHtml(document) {
464
687
  return htmlFromDocument(document);
@@ -526,7 +749,7 @@ function semanticContent(body, provider) {
526
749
  $('script,style').remove();
527
750
  $('h1,h2,h3,h4,h5,h6,p,div,span').each((_index, element) => {
528
751
  const node = $(element);
529
- if (!semanticText(node.text()) && node.find('img,table,pre,code,a[href]').length === 0)
752
+ if (!semanticText(node.text()) && node.find('img,table,pre,code,a[href],[id],a[name]').length === 0 && !node.is('[id],a[name]'))
530
753
  node.remove();
531
754
  });
532
755
  const textValues = (selector) => $(selector).toArray().map((element) => semanticText($(element).text()));
@@ -540,6 +763,24 @@ function semanticContent(body, provider) {
540
763
  macroNames.push(`${name}[${parameters.join(',')}]`);
541
764
  });
542
765
  }
766
+ const layouts = $('.ywtc-layout').toArray().flatMap((layout, layoutIndex) => $(layout).children('.ywtc-layout-section').toArray().flatMap((section, sectionIndex) => {
767
+ const item = $(section);
768
+ const cells = item.children('.ywtc-layout-cell').toArray().map((cell) => {
769
+ const value = $(cell);
770
+ const signature = [
771
+ semanticText(value.text()),
772
+ `links=${value.find('a[href]').length}`,
773
+ `images=${value.find('img').length}`,
774
+ `tables=${value.find('table').length}`,
775
+ `code=${value.find('pre,code').length}`,
776
+ `anchors=${value.find('[id],a[name]').length}`,
777
+ ].join('|');
778
+ return signature === '|links=0|images=0|tables=0|code=0|anchors=0' ? '' : signature;
779
+ });
780
+ if (cells.every((cell) => !cell))
781
+ return [];
782
+ return [`${layoutIndex}:${sectionIndex}:${item.attr('data-ywtc-layout-type') ?? 'unsupported'}:${cells.join('::')}`];
783
+ }));
543
784
  return {
544
785
  text: semanticText($.root().text()),
545
786
  headings: $('h1,h2,h3,h4,h5,h6').toArray().map((element) => `${element.tagName}:${semanticText($(element).text())}`),
@@ -558,21 +799,42 @@ function semanticContent(body, provider) {
558
799
  codeBlocks: $('pre').length,
559
800
  },
560
801
  macros: macroNames.sort(),
802
+ layouts,
561
803
  };
562
804
  }
805
+ function semanticContentIsEmpty(content) {
806
+ return !content.text
807
+ && content.headings.length === 0
808
+ && content.listItems.length === 0
809
+ && content.tableCells.length === 0
810
+ && content.code.length === 0
811
+ && content.links.length === 0
812
+ && content.images.length === 0
813
+ && content.anchors.length === 0
814
+ && content.macros.length === 0
815
+ && content.layouts.length === 0
816
+ && Object.values(content.structure).every((count) => count === 0);
817
+ }
563
818
  export function semanticContentFingerprint(body, provider) {
564
819
  return sha256(JSON.stringify(semanticContent(body, provider)));
565
820
  }
566
821
  export function verifyDestinationContent(expectedBody, actualBody, provider, page) {
567
822
  if (actualBody === undefined)
568
823
  return { status: 'failed', differences: [`Verification could not read destination content for ${page.title}`] };
569
- if (actualBody.trim().length === 0)
570
- return { status: 'failed', differences: [`Verification found empty destination content for ${page.title}`] };
571
824
  if (isLegacyTransferPlaceholder(actualBody, provider, page)) {
572
825
  return { status: 'failed', differences: [`Verification found a transfer placeholder instead of source content for ${page.title}`] };
573
826
  }
574
827
  const expected = semanticContent(expectedBody, provider);
575
828
  const actual = semanticContent(actualBody, provider);
829
+ const expectedEmpty = semanticContentIsEmpty(expected);
830
+ const actualEmpty = semanticContentIsEmpty(actual);
831
+ if (expectedEmpty && actualEmpty)
832
+ return { status: 'complete', differences: [] };
833
+ if (!expectedEmpty && actualEmpty)
834
+ return { status: 'failed', differences: [`Verification found empty destination content for ${page.title}`] };
835
+ if (expectedEmpty && !actualEmpty) {
836
+ return { status: 'failed', differences: [`Verification found unexpected destination content for semantically empty source page ${page.title}`] };
837
+ }
576
838
  const differs = (key) => JSON.stringify(expected[key]) !== JSON.stringify(actual[key]);
577
839
  const missingData = ['text', 'tableCells', 'code', 'links', 'images', 'anchors', 'macros'].filter(differs);
578
840
  if (missingData.length > 0) {
@@ -581,7 +843,7 @@ export function verifyDestinationContent(expectedBody, actualBody, provider, pag
581
843
  differences: [`Verification found destination content that differs from the rendered source for ${page.title}: ${missingData.join(', ')}`],
582
844
  };
583
845
  }
584
- const simplifiedFormatting = ['headings', 'listItems', 'imageLabels', 'structure'].filter(differs);
846
+ const simplifiedFormatting = ['headings', 'listItems', 'imageLabels', 'structure', 'layouts'].filter(differs);
585
847
  if (simplifiedFormatting.length > 0) {
586
848
  return {
587
849
  status: 'partial',
@@ -681,20 +943,40 @@ function renderTreeHtml(context, directive) {
681
943
  return tree ? `<nav class="ywtc-tree" aria-label="Child pages">${tree}</nav>` : '';
682
944
  }
683
945
  export async function renderMarkdown(document, context) {
684
- const html = rewritePortableHtml(htmlFromDocument(document), context);
946
+ if (document.semanticallyEmpty) {
947
+ return { body: '', warnings: [...document.warnings], normalizations: [...document.normalizations], degraded: document.degraded, representedReferences: document.references.length };
948
+ }
949
+ const portable = rewritePortableHtml(htmlFromDocument(document), context);
950
+ const linearized = linearizeLayoutsForMarkdown(portable);
685
951
  const tree = treeDirectiveNodes(document).map((node) => renderTreeMarkdown(context, node.tree ?? {})).filter(Boolean).join('\n\n');
686
- const content = await htmlToMarkdown(html);
952
+ const content = await htmlToMarkdown(linearized.html);
687
953
  const body = tree ? `${content.trimEnd()}\n\n${tree}\n` : content;
688
- return { body, warnings: [...document.warnings], normalizations: [...(document.normalizations ?? [])], degraded: document.degraded, representedReferences: document.references.length };
954
+ const layoutWarnings = linearized.layouts > 0 ? [`${linearized.layouts} column layout${linearized.layouts === 1 ? ' was' : 's were'} linearized for portable Markdown`] : [];
955
+ return { body, warnings: [...document.warnings, ...layoutWarnings], normalizations: [...(document.normalizations ?? [])], degraded: document.degraded || layoutWarnings.length > 0, representedReferences: document.references.length };
689
956
  }
690
957
  export async function renderStaticHtml(document, context) {
958
+ if (document.semanticallyEmpty) {
959
+ return { body: '', warnings: [...document.warnings], normalizations: [...document.normalizations], degraded: document.degraded, representedReferences: document.references.length };
960
+ }
691
961
  const rewritten = rewritePortableHtml(htmlFromDocument(document), context);
692
962
  const content = await sanitizeHtml(rewritten);
693
963
  const tree = treeDirectiveNodes(document).map((node) => renderTreeHtml(context, node.tree ?? {})).filter(Boolean).join('');
694
964
  const body = `${content}${tree}`;
695
- return { body, warnings: [...document.warnings], normalizations: [...(document.normalizations ?? [])], degraded: document.degraded, representedReferences: document.references.length };
965
+ const unsupportedLayouts = [];
966
+ const visit = (node) => {
967
+ if (node.type === 'layout-section' && node.layout?.sectionType === 'unsupported')
968
+ unsupportedLayouts.push(node.children?.length ?? 0);
969
+ for (const child of node.children ?? [])
970
+ visit(child);
971
+ };
972
+ visit(document.root);
973
+ const layoutWarnings = unsupportedLayouts.map((cells) => `Unsupported ${cells}-cell layout was stacked in static HTML without losing cell content`);
974
+ return { body, warnings: [...document.warnings, ...layoutWarnings], normalizations: [...(document.normalizations ?? [])], degraded: document.degraded || layoutWarnings.length > 0, representedReferences: document.references.length };
696
975
  }
697
976
  export async function renderYfm(document, context) {
977
+ if (document.semanticallyEmpty) {
978
+ return { body: '', warnings: [...document.warnings], normalizations: [...document.normalizations], degraded: document.degraded, representedReferences: document.references.length };
979
+ }
698
980
  if (document.rawFormat === 'yfm') {
699
981
  let body = document.raw;
700
982
  const resourceWarnings = new Set();
@@ -739,10 +1021,19 @@ export async function renderYfm(document, context) {
739
1021
  representedReferences: document.references.length,
740
1022
  };
741
1023
  }
742
- const body = await htmlToMarkdown(rewritePortableHtml(htmlFromDocument(document), context));
743
- return { body, warnings: [...document.warnings, 'Confluence Storage Format was converted to YFM-compatible Markdown'], normalizations: [...(document.normalizations ?? [])], degraded: document.degraded, representedReferences: document.references.length };
1024
+ const converted = await semanticHtmlToYfm(rewritePortableHtml(htmlFromDocument(document), context));
1025
+ return {
1026
+ body: converted.body,
1027
+ warnings: [...document.warnings, ...converted.warnings],
1028
+ normalizations: [...(document.normalizations ?? []), 'Converted supported Confluence Storage Format constructs to native YFM equivalents'],
1029
+ degraded: document.degraded || converted.warnings.length > 0,
1030
+ representedReferences: document.references.length,
1031
+ };
744
1032
  }
745
1033
  export async function renderConfluenceStorage(document, page, context, spaceKey) {
1034
+ if (document.semanticallyEmpty) {
1035
+ return { body: '<p></p>', warnings: [...document.warnings], normalizations: [...document.normalizations], degraded: document.degraded, representedReferences: document.references.length };
1036
+ }
746
1037
  if (document.rawFormat === 'confluence-storage') {
747
1038
  const $ = load(`<main data-root>${document.raw}</main>`, { xmlMode: true }, false);
748
1039
  const warnings = [...document.warnings];