defuss-markdown 1.0.2 → 1.0.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/dist/index.d.ts.map +1 -1
- package/dist/index.js +60 -5
- package/package.json +1 -1
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sources":["../../src/index.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sources":["../../src/index.ts"],"mappings":"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","names":[]}
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,7 @@ const FALL_THROUGH = Symbol("defuss-markdown:fallback-renderer");
|
|
|
2
2
|
const DEFAULT_PARSER_OPTIONS = Object.freeze({
|
|
3
3
|
gfm: true,
|
|
4
4
|
math: true,
|
|
5
|
+
table: true,
|
|
5
6
|
htmlTree: true,
|
|
6
7
|
containers: true
|
|
7
8
|
});
|
|
@@ -235,13 +236,13 @@ function renderUnknownNode(node, context) {
|
|
|
235
236
|
function renderTable(node, context) {
|
|
236
237
|
const rows = Array.isArray(node.children) ? node.children : [];
|
|
237
238
|
if (rows.length === 0) {
|
|
238
|
-
return h("table", {});
|
|
239
|
+
return h("table", { class: "table" });
|
|
239
240
|
}
|
|
240
241
|
const [headerRow, ...bodyRows] = rows;
|
|
241
242
|
const alignments = Array.isArray(node.align) ? node.align : [];
|
|
242
243
|
return h(
|
|
243
244
|
"table",
|
|
244
|
-
{},
|
|
245
|
+
{ class: "table" },
|
|
245
246
|
h(
|
|
246
247
|
"thead",
|
|
247
248
|
{},
|
|
@@ -308,45 +309,99 @@ function createBlockState() {
|
|
|
308
309
|
};
|
|
309
310
|
}
|
|
310
311
|
function hydrateStateFromParserOrUpdate(parser, update, state) {
|
|
312
|
+
const updateKeys = update && typeof update === "object" ? Object.keys(update) : [];
|
|
313
|
+
console.log("[defuss-markdown] hydrateState: updateKeys =", updateKeys, "isIncremental =", isIncrementalUpdate(update));
|
|
314
|
+
if (isIncrementalUpdate(update)) {
|
|
315
|
+
const value = update;
|
|
316
|
+
const completed = pickBlockArray(value.completed);
|
|
317
|
+
const updated = pickBlockArray(value.updated);
|
|
318
|
+
const pending = pickBlockArray(value.pending);
|
|
319
|
+
const removed = pickBlockArray(value.removed);
|
|
320
|
+
console.log("[defuss-markdown] Incremark INCREMENTAL path:", {
|
|
321
|
+
completed: completed.map((b) => `${b.id}(${b.status})`),
|
|
322
|
+
updated: updated.map((b) => `${b.id}(${b.status})`),
|
|
323
|
+
pending: pending.map((b) => `${b.id}(${b.status})`),
|
|
324
|
+
removed: removed.map((b) => b.id)
|
|
325
|
+
});
|
|
326
|
+
applyIncrementalCollections(state, update);
|
|
327
|
+
const parserCompleted = pickBlockArray(parser.getCompletedBlocks?.());
|
|
328
|
+
if (parserCompleted.length > 0) {
|
|
329
|
+
for (const block of parserCompleted) {
|
|
330
|
+
upsertBlock(state, block);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
const parserPending = pickBlockArray(parser.pendingBlocks ?? parser.pendingBlock);
|
|
334
|
+
for (const block of parserPending) {
|
|
335
|
+
upsertBlock(state, block);
|
|
336
|
+
}
|
|
337
|
+
return;
|
|
338
|
+
}
|
|
311
339
|
const directSnapshot = extractSnapshotBlocksFromUpdate(update);
|
|
312
340
|
if (directSnapshot) {
|
|
341
|
+
console.log("[defuss-markdown] DIRECT SNAPSHOT path, blocks =", directSnapshot.map((b) => b.id));
|
|
313
342
|
replaceState(state, directSnapshot);
|
|
314
343
|
return;
|
|
315
344
|
}
|
|
316
345
|
const parserSnapshot = extractBlocksFromParser(parser);
|
|
317
346
|
if (parserSnapshot) {
|
|
347
|
+
console.log("[defuss-markdown] PARSER SNAPSHOT path, blocks =", parserSnapshot.map((b) => b.id));
|
|
318
348
|
replaceState(state, parserSnapshot);
|
|
319
349
|
return;
|
|
320
350
|
}
|
|
351
|
+
console.log("[defuss-markdown] FALLBACK to applyIncrementalCollections");
|
|
321
352
|
applyIncrementalCollections(state, update);
|
|
322
353
|
}
|
|
354
|
+
function isIncrementalUpdate(update) {
|
|
355
|
+
if (!update || typeof update !== "object") {
|
|
356
|
+
return false;
|
|
357
|
+
}
|
|
358
|
+
const value = update;
|
|
359
|
+
return Array.isArray(value.completed) || Array.isArray(value.updated) || Array.isArray(value.pending);
|
|
360
|
+
}
|
|
323
361
|
function extractSnapshotBlocksFromUpdate(update) {
|
|
324
362
|
if (!update || typeof update !== "object") {
|
|
325
363
|
return null;
|
|
326
364
|
}
|
|
327
365
|
const value = update;
|
|
328
366
|
const direct = pickBlockArray(value.blocks);
|
|
329
|
-
|
|
367
|
+
const pending = pickBlockArray(value.pendingBlocks ?? value.pendingBlock);
|
|
368
|
+
if (direct.length > 0) {
|
|
369
|
+
if (pending.length > 0) {
|
|
370
|
+
return mergeCompletedAndPending(direct, pending);
|
|
371
|
+
}
|
|
372
|
+
return direct;
|
|
373
|
+
}
|
|
374
|
+
if (pending.length > 0) {
|
|
375
|
+
return pending;
|
|
376
|
+
}
|
|
377
|
+
return null;
|
|
330
378
|
}
|
|
331
379
|
function extractBlocksFromParser(parser) {
|
|
380
|
+
const pending = pickBlockArray(parser.pendingBlocks ?? parser.pendingBlock);
|
|
332
381
|
const methodBlocks = pickBlockArray(parser.getBlocks?.());
|
|
333
382
|
if (methodBlocks.length > 0) {
|
|
383
|
+
if (pending.length > 0) {
|
|
384
|
+
return mergeCompletedAndPending(methodBlocks, pending);
|
|
385
|
+
}
|
|
334
386
|
return methodBlocks;
|
|
335
387
|
}
|
|
336
388
|
const methodMerged = mergeCompletedAndPending(
|
|
337
389
|
pickBlockArray(parser.getCompletedBlocks?.()),
|
|
338
|
-
|
|
390
|
+
pending
|
|
339
391
|
);
|
|
340
392
|
if (methodMerged.length > 0) {
|
|
341
393
|
return methodMerged;
|
|
342
394
|
}
|
|
343
395
|
const propBlocks = pickBlockArray(parser.blocks);
|
|
344
396
|
if (propBlocks.length > 0) {
|
|
397
|
+
if (pending.length > 0) {
|
|
398
|
+
return mergeCompletedAndPending(propBlocks, pending);
|
|
399
|
+
}
|
|
345
400
|
return propBlocks;
|
|
346
401
|
}
|
|
347
402
|
const propMerged = mergeCompletedAndPending(
|
|
348
403
|
pickBlockArray(parser.completedBlocks),
|
|
349
|
-
|
|
404
|
+
pending
|
|
350
405
|
);
|
|
351
406
|
return propMerged.length > 0 ? propMerged : null;
|
|
352
407
|
}
|