@nuasite/cms-marker 0.0.91 → 0.0.93
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/types/html-processor.d.ts +2 -0
- package/dist/types/html-processor.d.ts.map +1 -1
- package/dist/types/manifest-writer.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/types/types.d.ts +2 -0
- package/dist/types/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/build-processor.ts +1 -1
- package/src/dev-middleware.ts +1 -1
- package/src/html-processor.ts +79 -20
- package/src/manifest-writer.ts +21 -0
- package/src/types.ts +2 -0
package/dist/types/types.d.ts
CHANGED
|
@@ -205,6 +205,8 @@ export interface CollectionEntryInfo {
|
|
|
205
205
|
title?: string;
|
|
206
206
|
sourcePath: string;
|
|
207
207
|
draft?: boolean;
|
|
208
|
+
/** URL pathname of the rendered page for this entry */
|
|
209
|
+
pathname?: string;
|
|
208
210
|
}
|
|
209
211
|
/** Definition of a content collection with inferred schema */
|
|
210
212
|
export interface CollectionDefinition {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/build-processor.ts
CHANGED
|
@@ -99,7 +99,7 @@ async function processFile(
|
|
|
99
99
|
skipMarkdownContent: isCollectionPage,
|
|
100
100
|
// Pass collection info for wrapper element marking
|
|
101
101
|
collectionInfo: collectionInfo
|
|
102
|
-
? { name: collectionInfo.name, slug: collectionInfo.slug, bodyFirstLine, contentPath: collectionInfo.file }
|
|
102
|
+
? { name: collectionInfo.name, slug: collectionInfo.slug, bodyFirstLine, bodyText: mdContent?.body, contentPath: collectionInfo.file }
|
|
103
103
|
: undefined,
|
|
104
104
|
// Pass SEO options
|
|
105
105
|
seo: config.seo,
|
package/src/dev-middleware.ts
CHANGED
|
@@ -203,7 +203,7 @@ async function processHtmlForDev(
|
|
|
203
203
|
skipMarkdownContent: isCollectionPage,
|
|
204
204
|
// Pass collection info for wrapper element marking
|
|
205
205
|
collectionInfo: collectionInfo
|
|
206
|
-
? { name: collectionInfo.name, slug: collectionInfo.slug, bodyFirstLine, contentPath: collectionInfo.file }
|
|
206
|
+
? { name: collectionInfo.name, slug: collectionInfo.slug, bodyFirstLine, bodyText: mdContent?.body, contentPath: collectionInfo.file }
|
|
207
207
|
: undefined,
|
|
208
208
|
// Pass SEO options
|
|
209
209
|
seo: config.seo,
|
package/src/html-processor.ts
CHANGED
|
@@ -62,6 +62,8 @@ export interface ProcessHtmlOptions {
|
|
|
62
62
|
slug: string
|
|
63
63
|
/** First line of the markdown body (used to find wrapper element in build mode) */
|
|
64
64
|
bodyFirstLine?: string
|
|
65
|
+
/** Full markdown body text (used for robust wrapper detection in build mode) */
|
|
66
|
+
bodyText?: string
|
|
65
67
|
/** Path to the markdown file (e.g., 'src/content/blog/my-post.md') */
|
|
66
68
|
contentPath?: string
|
|
67
69
|
}
|
|
@@ -366,30 +368,92 @@ export async function processHtml(
|
|
|
366
368
|
}
|
|
367
369
|
}
|
|
368
370
|
|
|
369
|
-
// Strategy 2: Build mode - find element
|
|
371
|
+
// Strategy 2: Build mode - find the deepest element containing all markdown body text
|
|
372
|
+
if (!foundWrapper && collectionInfo.bodyText) {
|
|
373
|
+
// Strip markdown syntax to get plain text for comparison
|
|
374
|
+
const bodyPlain = collectionInfo.bodyText
|
|
375
|
+
.replace(/^---[\s\S]*?---\n*/m, '') // Remove frontmatter
|
|
376
|
+
.replace(/!\[[^\]]*\]\([^)]+\)/g, '') // Remove images
|
|
377
|
+
.replace(/\[([^\]]*)\]\([^)]+\)/g, '$1') // Extract link text
|
|
378
|
+
.replace(/^#+\s+/gm, '') // Remove heading markers
|
|
379
|
+
.replace(/^\s*[-*+]\s+/gm, '') // Remove list markers
|
|
380
|
+
.replace(/^\s*\d+\.\s+/gm, '') // Remove ordered list markers
|
|
381
|
+
.replace(/^\s*>\s+/gm, '') // Remove blockquote markers
|
|
382
|
+
.replace(/`{1,3}[^`]*`{1,3}/g, (m) => m.replace(/`/g, '')) // Remove code backticks
|
|
383
|
+
.replace(/\*{1,2}([^*]+)\*{1,2}/g, '$1') // Remove bold/italic markers
|
|
384
|
+
.replace(/~{2}([^~]+)~{2}/g, '$1') // Remove strikethrough markers
|
|
385
|
+
.replace(/\n{2,}/g, '\n') // Collapse multiple newlines
|
|
386
|
+
.trim()
|
|
387
|
+
|
|
388
|
+
// Extract a few unique text snippets from different parts of the body
|
|
389
|
+
const lines = bodyPlain.split('\n').map(l => l.trim()).filter(l => l.length > 3)
|
|
390
|
+
const snippets: string[] = []
|
|
391
|
+
if (lines.length > 0) snippets.push(lines[0]!.substring(0, 60))
|
|
392
|
+
if (lines.length > 1) snippets.push(lines[lines.length - 1]!.substring(0, 60))
|
|
393
|
+
if (lines.length > 2) snippets.push(lines[Math.floor(lines.length / 2)]!.substring(0, 60))
|
|
394
|
+
|
|
395
|
+
if (snippets.length > 0) {
|
|
396
|
+
// Find the deepest element that contains all snippets
|
|
397
|
+
let bestWrapper: HTMLNode | null = null
|
|
398
|
+
let bestDepth = -1
|
|
399
|
+
|
|
400
|
+
const measureDepth = (node: HTMLNode): number => {
|
|
401
|
+
let depth = 0
|
|
402
|
+
let current = node.parentNode as HTMLNode | null
|
|
403
|
+
while (current) {
|
|
404
|
+
depth++
|
|
405
|
+
current = current.parentNode as HTMLNode | null
|
|
406
|
+
}
|
|
407
|
+
return depth
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
for (const node of allElements) {
|
|
411
|
+
const tag = node.tagName?.toLowerCase?.() ?? ''
|
|
412
|
+
if (['script', 'style', 'head', 'meta', 'link', 'html'].includes(tag)) continue
|
|
413
|
+
// Skip already-marked elements
|
|
414
|
+
if (node.getAttribute(attributeName)) continue
|
|
415
|
+
|
|
416
|
+
const nodeText = getTextContent(node).trim()
|
|
417
|
+
const containsAll = snippets.every(s => nodeText.includes(s))
|
|
418
|
+
if (containsAll) {
|
|
419
|
+
const depth = measureDepth(node)
|
|
420
|
+
if (depth > bestDepth) {
|
|
421
|
+
bestDepth = depth
|
|
422
|
+
bestWrapper = node
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
if (bestWrapper) {
|
|
428
|
+
const id = getNextId()
|
|
429
|
+
bestWrapper.setAttribute(attributeName, id)
|
|
430
|
+
bestWrapper.setAttribute('data-cms-markdown', 'true')
|
|
431
|
+
collectionWrapperId = id
|
|
432
|
+
markdownWrapperNode = bestWrapper
|
|
433
|
+
foundWrapper = true
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
// Strategy 3: Legacy fallback - match first line only (for when bodyText is not available)
|
|
370
439
|
if (!foundWrapper && collectionInfo.bodyFirstLine) {
|
|
371
|
-
// Normalize the first line of markdown body for comparison
|
|
372
|
-
// Strip markdown syntax to compare with rendered HTML text
|
|
373
440
|
const bodyStart = collectionInfo.bodyFirstLine
|
|
374
|
-
.replace(/^\*\*|\*\*$/g, '')
|
|
375
|
-
.replace(/\*\*/g, '')
|
|
376
|
-
.replace(/\*/g, '')
|
|
377
|
-
.replace(/^#+ /, '')
|
|
378
|
-
.replace(/^\s*[-*+]\s+/, '')
|
|
379
|
-
.replace(/\[([^\]]+)\]\([^)]+\)/g, '$1')
|
|
441
|
+
.replace(/^\*\*|\*\*$/g, '')
|
|
442
|
+
.replace(/\*\*/g, '')
|
|
443
|
+
.replace(/\*/g, '')
|
|
444
|
+
.replace(/^#+ /, '')
|
|
445
|
+
.replace(/^\s*[-*+]\s+/, '')
|
|
446
|
+
.replace(/\[([^\]]+)\]\([^)]+\)/g, '$1')
|
|
380
447
|
.trim()
|
|
381
|
-
.substring(0, 50)
|
|
448
|
+
.substring(0, 50)
|
|
382
449
|
|
|
383
|
-
if (bodyStart.length >
|
|
384
|
-
// Store all candidates that match the body start
|
|
450
|
+
if (bodyStart.length > 3) {
|
|
385
451
|
const candidates: Array<{ node: HTMLNode; blockChildCount: number }> = []
|
|
386
452
|
|
|
387
453
|
for (const node of allElements) {
|
|
388
454
|
const tag = node.tagName?.toLowerCase?.() ?? ''
|
|
389
|
-
// Skip script, style, etc.
|
|
390
455
|
if (['script', 'style', 'head', 'meta', 'link'].includes(tag)) continue
|
|
391
456
|
|
|
392
|
-
// Check if this element's first text content starts with the markdown body
|
|
393
457
|
const firstChild = node.childNodes.find(
|
|
394
458
|
(child): child is HTMLNode => child.nodeType === 1 && 'tagName' in child,
|
|
395
459
|
)
|
|
@@ -397,8 +461,6 @@ export async function processHtml(
|
|
|
397
461
|
if (firstChild) {
|
|
398
462
|
const firstChildText = getTextContent(firstChild).trim().substring(0, 80)
|
|
399
463
|
if (firstChildText.includes(bodyStart)) {
|
|
400
|
-
// Count block-level child elements
|
|
401
|
-
// Markdown typically renders to multiple block elements (p, h2, h3, ul, ol, etc.)
|
|
402
464
|
const blockTags = ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'blockquote', 'pre', 'table', 'hr']
|
|
403
465
|
const blockChildCount = node.childNodes.filter(
|
|
404
466
|
(child): child is HTMLNode =>
|
|
@@ -410,13 +472,10 @@ export async function processHtml(
|
|
|
410
472
|
}
|
|
411
473
|
}
|
|
412
474
|
|
|
413
|
-
// Pick the candidate with the most block children (likely the markdown wrapper)
|
|
414
|
-
// Filter out already-marked elements
|
|
415
475
|
const unmarkedCandidates = candidates.filter(c => !c.node.getAttribute(attributeName))
|
|
416
476
|
if (unmarkedCandidates.length > 0) {
|
|
417
477
|
const best = unmarkedCandidates.reduce((a, b) => (b.blockChildCount > a.blockChildCount ? b : a))
|
|
418
|
-
if (best.blockChildCount >=
|
|
419
|
-
// Markdown body should have at least 2 block children
|
|
478
|
+
if (best.blockChildCount >= 1) {
|
|
420
479
|
const id = getNextId()
|
|
421
480
|
best.node.setAttribute(attributeName, id)
|
|
422
481
|
best.node.setAttribute('data-cms-markdown', 'true')
|
package/src/manifest-writer.ts
CHANGED
|
@@ -221,6 +221,27 @@ export class ManifestWriter {
|
|
|
221
221
|
})
|
|
222
222
|
.sort((a, b) => a.pathname.localeCompare(b.pathname))
|
|
223
223
|
|
|
224
|
+
// Build a map from "collectionName/slug" → pagePath using page collections
|
|
225
|
+
const collectionPathMap = new Map<string, string>()
|
|
226
|
+
for (const [pagePath, data] of this.pageManifests) {
|
|
227
|
+
if (data.collection) {
|
|
228
|
+
const key = `${data.collection.collectionName}/${data.collection.collectionSlug}`
|
|
229
|
+
collectionPathMap.set(key, pagePath)
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
// Populate pathname on collection definition entries
|
|
234
|
+
for (const def of Object.values(this.collectionDefinitions)) {
|
|
235
|
+
if (def.entries) {
|
|
236
|
+
for (const entry of def.entries) {
|
|
237
|
+
const pathname = collectionPathMap.get(`${def.name}/${entry.slug}`)
|
|
238
|
+
if (pathname) {
|
|
239
|
+
entry.pathname = pathname
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
|
|
224
245
|
// Write global manifest with settings (component definitions, colors, text styles, collection definitions, and pages)
|
|
225
246
|
if (this.outDir) {
|
|
226
247
|
const globalManifestPath = path.join(this.outDir, this.manifestFile)
|
package/src/types.ts
CHANGED
|
@@ -229,6 +229,8 @@ export interface CollectionEntryInfo {
|
|
|
229
229
|
title?: string
|
|
230
230
|
sourcePath: string
|
|
231
231
|
draft?: boolean
|
|
232
|
+
/** URL pathname of the rendered page for this entry */
|
|
233
|
+
pathname?: string
|
|
232
234
|
}
|
|
233
235
|
|
|
234
236
|
/** Definition of a content collection with inferred schema */
|