7575 - [ HTML 内容字数统计 API] ( #html-内容字数统计-api )
7676 - [ 渲染 API] ( #渲染-api )
7777 - [ 中英文混排格式化 API] ( #中英文混排格式化-api )
78+ - [ 渲染 API(需要 JS 运行时)] ( #渲染-api需要-js-运行时 )
7879 - [ 代码高亮 API] ( #代码高亮-api )
7980 - [ 处理器文档] ( #处理器文档 )
8081 - [ 中英文混排格式化处理器] ( #中英文混排格式化处理器 )
@@ -402,9 +403,11 @@ extraApiStatsFinder.getContentWordCount({
402403
403404### 渲染 API
404405
405- #### 中英文混排格式化 API
406+ 此功能在轻量版和全量版中均可用。
407+
408+ ** Finder 名称:** ` extraApiRenderFinder `
406409
407- ** Finder 名称: ** ` extraApiPanguFinder `
410+ #### 中英文混排格式化 API
408411
409412** 描述**
410413
@@ -413,46 +416,42 @@ extraApiStatsFinder.getContentWordCount({
413416** API 方法**
414417
415418``` javascript
416- // 对 HTML 内容中的指定标签应用 Pangu 空格处理
417- extraApiPanguFinder .spacingElementByTagName (htmlContent, tagName)
418-
419- // 对 HTML 内容中具有指定 ID 的元素应用 Pangu 空格处理
420- extraApiPanguFinder .spacingElementById (htmlContent, id)
419+ // 对整个 HTML 内容应用 Pangu 空格处理
420+ extraApiRenderFinder .applySpacingInHtml (htmlContent)
421421
422- // 对 HTML 内容中具有指定 class 的元素应用 Pangu 空格处理
423- extraApiPanguFinder .spacingElementByClassName (htmlContent, className)
422+ // 使用灵活参数对 HTML 内容应用 Pangu 空格处理
423+ extraApiRenderFinder .applySpacingInHtml ({
424+ htmlContent: ' <p>HTML 内容</p>' , // 必需
425+ selector: ' p' // 可选,CSS 选择器
426+ })
424427
425428// 对纯文本应用 Pangu 空格处理
426- extraApiPanguFinder . spacingText (text)
429+ extraApiRenderFinder . applySpacingInText (text)
427430```
428431
429432** 参数**
430433
431- - ` spacingElementByTagName (htmlContent, tagName )`
434+ - ` applySpacingInHtml (htmlContent)`
432435 - ` htmlContent `
433436 - 类型:` string `
434437 - 解释:包含 HTML 标签的内容
435- - ` tagName `
436- - 类型:` string `
437- - 解释:要处理的 HTML 标签名称(如 "p"、"div"、"span" 等)
438-
439- - ` spacingElementById(htmlContent, id) `
440- - ` htmlContent `
441- - 类型:` string `
442- - 解释:包含 HTML 标签的内容
443- - ` id `
444- - 类型:` string `
445- - 解释:要处理的元素 ID(如 "main"、"content" 等)
446-
447- - ` spacingElementByClassName(htmlContent, className) `
448- - ` htmlContent `
449- - 类型:` string `
450- - 解释:包含 HTML 标签的内容
451- - ` className `
452- - 类型:` string `
453- - 解释:要处理的 class 名称(如 "comment"、"article" 等)
454-
455- - ` spacingText(text) `
438+ - ` applySpacingInHtml(params) `
439+ - ` params ` - 映射形式参数
440+ - ` htmlContent `
441+ - 类型:` string `
442+ - 解释:包含 HTML 标签的内容(必需)
443+ - ` selector `
444+ - 类型:` string `
445+ - 解释:CSS 选择器,用于定位特定元素(可选)
446+ - 支持所有 JSoup CSS 选择器,包括:
447+ - 标签选择器:` p ` , ` div ` , ` span `
448+ - ID 选择器:` #main ` , ` #content `
449+ - Class 选择器:` .article ` , ` .comment `
450+ - 属性选择器:` [attr] ` , ` [attr=value] `
451+ - 后代选择器:` div p ` , ` .article .content `
452+ - 子选择器:` div > p `
453+ - 伪类选择器:` :first-child ` , ` :nth-child(n) `
454+ - ` applySpacingInText(text) `
456455 - ` text `
457456 - 类型:` string `
458457 - 解释:要处理的纯文本内容
@@ -472,24 +471,32 @@ extraApiPanguFinder.spacingText(text)
472471** 使用示例**
473472
474473``` html
475- <!-- /* 对文章内容中的段落标签应用 Pangu 处理,下面这段代码可直接用于 /templates/post.html */-->
476- <div th:utext =" ${extraApiPanguFinder.spacingElementByTagName (post.content?.content, 'p' )}" ></div >
474+ <!-- /* 处理整个 HTML 内容(自动跳过 code、pre 等标签) */-->
475+ <div th:utext =" ${extraApiRenderFinder.applySpacingInHtml (post.content?.content)}" ></div >
477476
478- <!-- /* 对整个 HTML 内容的所有 div 标签应用 Pangu 处理 */-->
479- <div th:utext =" ${extraApiPanguFinder.spacingElementByTagName( content, 'div' )}" ></div >
477+ <!-- /* 使用 CSS 选择器仅处理段落标签 */-->
478+ <div th:utext =" ${extraApiRenderFinder.applySpacingInHtml({htmlContent: post. content?.content, selector: 'p'} )}" ></div >
480479
481- <!-- /* 对指定 ID 的元素应用 Pangu 处理 */-->
482- <div th:utext =" ${extraApiPanguFinder.spacingElementById( content, 'main' )}" ></div >
480+ <!-- /* 使用 class 选择器处理指定 class 的元素 */-->
481+ <div th:utext =" ${extraApiRenderFinder.applySpacingInHtml({htmlContent: content, selector: '.article-content'} )}" ></div >
483482
484- <!-- /* 对指定 class 的元素应用 Pangu 处理 */-->
485- <div th:utext =" ${extraApiPanguFinder.spacingElementByClassName(content, 'comment')}" ></div >
483+ <!-- /* 使用 ID 选择器处理指定 ID 的元素 */-->
484+ <div th:utext =" ${extraApiRenderFinder.applySpacingInHtml({htmlContent: content, selector: '#main'})}" ></div >
485+
486+ <!-- /* 使用复合选择器处理 */-->
487+ <div th:utext =" ${extraApiRenderFinder.applySpacingInHtml({htmlContent: content, selector: 'div.article > p'})}" ></div >
486488
487489<!-- /* 对纯文本应用 Pangu 处理 */-->
488- <span th:text =" ${extraApiPanguFinder.spacingText ('请问Jackie的鼻子有几个?123个!')}" ></span >
490+ <span th:text =" ${extraApiRenderFinder.applySpacingInText ('请问Jackie的鼻子有几个?123个!')}" ></span >
489491<!-- /* 输出:请问 Jackie 的鼻子有几个?123 个! */-->
490492
491493<!-- /* 在变量中使用 */-->
492- <div th:with =" processedContent=${extraApiPanguFinder.spacingElementByTagName(moment.spec.content?.html, 'p')}" >
494+ <div th:with =" processedContent=${extraApiRenderFinder.applySpacingInHtml(moment.spec.content?.html)}" >
495+ <div th:utext =" ${processedContent}" ></div >
496+ </div >
497+
498+ <!-- /* 处理瞬间内容中的特定元素 */-->
499+ <div th:with =" processedContent=${extraApiRenderFinder.applySpacingInHtml({htmlContent: moment.spec.content?.html, selector: '.moment-text'})}" >
493500 <div th:utext =" ${processedContent}" ></div >
494501</div >
495502```
@@ -506,12 +513,16 @@ extraApiPanguFinder.spacingText(text)
506513- HTML 解析失败时返回原始内容
507514- 不会抛出异常,保证页面渲染稳定性
508515
509- #### 代码高亮 API
516+ ### 渲染 API(需要 JS 运行时)
510517
511- ** Finder 名称:** ` extraApiRenderFinder `
518+ 此功能仅在全量版中可用。
519+
520+ ** Finder 名称:** ` extraApiJsRenderFinder `
521+
522+ #### 代码高亮 API
512523
513524``` javascript
514- extraApiRenderFinder . renderCodeHtml (htmlContent)
525+ extraApiJsRenderFinder . highlightCodeInHtml (htmlContent)
515526```
516527
517528** 参数**
@@ -534,15 +545,14 @@ extraApiRenderFinder.renderCodeHtml(htmlContent)
534545
535546``` html
536547<!-- /* 渲染文章内容中的代码块,下面这段代码可直接用于 /templates/post.html */-->
537- <div th:utext =" ${extraApiRenderFinder.renderCodeHtml (post.content?.content)}" ></div >
548+ <div th:utext =" ${extraApiJsRenderFinder.highlightCodeInHtml (post.content?.content)}" ></div >
538549
539550<!-- /* 在模板中使用,下面这段代码可直接用于 /templates/moment.html */-->
540- <div th:with =" renderedContent=${extraApiRenderFinder.renderCodeHtml (moment.spec.content?.html)}" >
551+ <div th:with =" renderedContent=${extraApiJsRenderFinder.highlightCodeInHtml (moment.spec.content?.html)}" >
541552 <div th:utext =" ${renderedContent}" ></div >
542553</div >
543554```
544555
545-
546556## 处理器文档
547557
548558### 中英文混排格式化处理器
0 commit comments