| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
upgrade parser api | 2 个月前 | |
!28 merge feat/strict-asterisk-emphasis into develop feat: add strict asterisk emphasis option Created-by: longlivey Commit-by: longlivey Merged-by: CangjiePL Description: ### 相关的Issue https://gitcode.com/Cangjie-TPC/commonmark4cj/issues/37 ### 原因(目的、解决的问题等) commonmark4cj 默认遵循 CommonMark 0.31.2 的 left/right flanking delimiter run 规则: https://spec.commonmark.org/0.31.2/#left-flanking-delimiter-run 该规则是 CommonMark 强调语法的标准行为,默认不应修改。 但在部分聊天、文档展示等实际场景中,调用方可能需要不同的 delimiter 判定策略,例如: - 只按 ASCII 标点参与 flanking 判定,忽略非英文标点 - 对特定 delimiter 放宽 leftFlanking / rightFlanking 限制 - 兼容 ** 内容 **、alpha**《beta》**.、alpha**(beta)**. 等非标准但用户直觉上期望加粗的写法 因此本次改动不再增加某个符号专用开关,而是提供 Parser 实例级的 delimiter open/close 扩展点。默认行为仍保持 CommonMark 严格规则不变。 ### 描述(做了什么,变更了什么) 新增通用 delimiter open/close 扩展能力: - 新增 DelimiterOpenCloseProcessor - 新增 DelimiterOpenCloseContext - 新增 DelimiterOpenCloseResult - 新增 CharacterPredicate - 新增 ParserBuilder.delimiterOpenCloseProcessor(...) DelimiterOpenCloseProcessor 可返回: - None:继续使用内置 CommonMark flanking 判定 - DelimiterOpenCloseResult:覆盖当前 delimiter run 的 canOpen / canClose DelimiterOpenCloseContext 提供: - 当前 delimiter 字符 - delimiter 数量 - 前后字符 - 当前 DelimiterProcessor - defaultResult() - defaultResultWith(...) 调用方可以通过 defaultResultWith(...) 复用 CommonMark 算法,只替换 punctuation / whitespace 判定;也可以直接返回自定义 canOpen / canClose 结果。 该扩展点是 Parser 实例级配置,不使用全局静态状态,避免影响其他 Parser 实例或并发解析。 默认未配置 processor 时仍直接使用内置 CommonMark 判定,默认行为不变。 ### 测试用例(新增、改动、可能影响的功能) 新增 delimiter open/close processor 相关测试: - DelimitedTest.delimiterOpenCloseProcessorCanUseCustomPunctuation() - DelimitedTest.delimiterOpenCloseProcessorCanRelaxFlanking() 覆盖场景包括: - 默认严格模式保持原行为 - 使用自定义 punctuation 判定时,可只调整非 ASCII 标点相关行为 - 使用自定义 open/close 结果时,可放宽指定 ** / *** 的 flanking 限制 - ** spaced ** - *** spaced *** - prefix**bold content**suffix - 多个加粗片段 - 加粗内容包含标点 - 未闭合加粗语法不被误处理 - 行内代码中的 **...** 不被误处理 - fenced code block 中的 **...** 不被误处理 - 单星号 * 和下划线 _ / __ 可由调用方按需保持默认规则 已验证: - cjpm build - delimited_test LLT - git diff --check See merge request: Cangjie-TPC/commonmark4cj!28 | 20 天前 | |
upgrade parser api | 2 个月前 | |
upgrade parser api | 2 个月前 | |
upgrade parser api | 2 个月前 |