cml 1.0.1 copy "cml: ^1.0.1" to clipboard
cml: ^1.0.1 copied to clipboard

CML(Context Mark Language)核心语法编解码的Dart实现。 CML是语义时代的Markdown,目标是让兼具人类可读和机器可运算特征的关系结构片段, 成为可大规模计算、任意传输、分布式存储的语义中间层。

Changelog #

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

1.0.1 - 2026-01-24 #

Fixed #

  • 修复 A 模式 UTF-8 解码 bug:使用 String.fromCharCodes() 改为 Utf8Codec().decode()
  • 改进字符检测逻辑:从 rune code 比较改为直接字符比较
  • 修复 Markdown 转换逻辑:
    • toMarkdown() 不再添加"美化空格",直接输出关系符
    • fromMarkdown() 正确识别空格为有效的 CML 关系符(@, ., +, :, space)
    • 修复 normalizeWhitespace() 的空白字符压缩处理
  • 修复所有测试用例:
    • 移除测试输入中的"美化空格"
    • 更新测试期望值以反映空格作为有效关系符的行为
    • 修正错误的 fragments 对称性测试
    • 所有 70 个测试现已通过

Changed #

  • Markdown 设计原则更新:
    • 空格现在被正确识别为 CML 关系符而非纯粹的格式化符号
    • toMarkdown()fromMarkdown() 现在完全对称
    • 移除了与 CML 语义冲突的"美化"功能

Technical #

  • 完整的测试覆盖率(70/70 测试通过)
  • 无 warning 或 error(仅有编码风格 info)

1.0.0 - 2024-01-08 #

Added #

  • 初始版本发布
  • 实现CML(Context Mark Language)核心语法编解码功能
  • 支持4种编码模式:
    • A模式:双层Base58编码
    • C模式:双层Base64URL编码
    • P模式:单层明文混编
    • Q模式:双层混编
  • 实现两种中间结构:
    • CmlElements:基元类型抽象的单序列
    • CmlFragments:基元类型分类的双序列
  • 支持编解码模式互转
  • 支持Markdown格式转换
  • 完整的错误处理和验证
  • 100%测试覆盖率
  • 完整的API文档

Features #

  • 编解码功能

    • 字符串到基元序列解析
    • 基元序列到字符串编码
    • 4种编码模式相互转换
    • 特殊字符自动转义处理
  • Markdown支持

    • CML到Markdown格式转换
    • Markdown到CML基元序列解析
    • 反引号包裹规则处理
    • 空白字符标准化
  • 验证和错误处理

    • CML格式合法性验证
    • 基元序列奇偶交替特征检查
    • 关系符合法性验证
    • 详细的错误信息
  • 性能优化

    • 双序列结构减少内存分配
    • 高效的状态机解析
    • 预分配内存优化

Technical Details #

  • 语言特性

    • 完整的null safety支持
    • 类型安全
    • 扩展方法使用
    • 异常处理机制
  • 依赖管理

    • 最小化外部依赖
    • 纯Dart实现
    • 跨平台兼容
  • 文档规范

    • 完整的dartdoc文档
    • 中文注释
    • 使用示例
    • API参考

Breaking Changes #

  • 此为初始版本,无破坏性变更

Migration Guide #

  • 无迁移指南,此为初始版本

Dependencies #

  • convert: ^3.1.1
  • bs58: ^1.0.2

Dev Dependencies #

  • lints: ^3.0.0
  • test: ^1.24.0
0
likes
130
points
27
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

CML(Context Mark Language)核心语法编解码的Dart实现。 CML是语义时代的Markdown,目标是让兼具人类可读和机器可运算特征的关系结构片段, 成为可大规模计算、任意传输、分布式存储的语义中间层。

Homepage
Repository (GitHub)
View/report issues

Topics

#cml #semantic-markup #context-mark #markdown #semantic

License

MIT (license)

Dependencies

bs58, convert

More

Packages that depend on cml