首页
/ Khan Academy Perseus 核心库11.0.0版本发布:安全性与功能增强

Khan Academy Perseus 核心库11.0.0版本发布:安全性与功能增强

2025-07-02 17:51:46作者:裴麒琰

Perseus是Khan Academy开发的一个开源数学题目渲染引擎,主要用于教育领域。它能够处理各种复杂的数学表达式和交互式题目类型,为在线学习平台提供强大的题目展示和交互能力。本次发布的11.0.0版本带来了多项重要改进,特别是在安全性、稳定性和功能完善方面。

主要变更:防止未授权组件使用

本次发布的一个重大改进是解决了组件授权机制的安全性问题。在之前的版本中,存在一个潜在风险:系统可能在没有任何组件被正确授权的情况下就尝试使用组件注册表。这可能导致运行时错误或不可预期的行为。

新版本通过强制检查组件授权状态,确保了组件系统的稳定性。这种防御性编程的改进使得整个系统更加健壮,特别是在复杂的教育应用场景中,能够避免因组件加载顺序或初始化问题导致的意外错误。

功能增强

匹配器组件改进

  1. 确定性公共选项生成:对匹配器组件的公共选项生成算法进行了改进,确保每次生成的选项都是确定性的。这意味着相同的输入总是会产生相同的输出,提高了系统的可预测性。

  2. 答案隐藏机制:改进了匹配器组件的初始状态处理,确保正确答案不会在初始状态下意外显示给学习者。这对于保持测试的公平性和安全性至关重要。

  3. 类型支持与故事书示例:新增了类型定义和Storybook示例,确保匹配器组件能够处理不含答案的数据。这使得组件更加灵活,可以适应更多使用场景。

排序器组件安全改进

排序器组件也获得了类似的安全增强。通过修改公共选项生成逻辑,移除了其中包含的答案信息。现在,卡片排序是在获取公共选项时完成的,而不是依赖于可能暴露答案的内部状态。

JSON解析功能扩展

parseAndMigratePerseusItem函数现在变得更加灵活。除了接受JSON字符串外,现在还可以直接处理JavaScript对象。当传入对象时,函数会跳过JSON解析步骤,提高了处理效率并减少了潜在的错误点。

内部优化

  1. 依赖项更新:更新了Wonder Blocks相关依赖的版本,确保使用最新的稳定组件库。

  2. 代码质量工具调整:移除了eslint-plugin-functional检查器,简化了开发流程,同时保持了代码质量。

  3. 相关包同步更新:与核心库配套的@khanacademy/kas@khanacademy/perseus-utils也进行了相应更新,确保整个生态系统的兼容性。

总结

Perseus 11.0.0版本的发布标志着这个教育渲染引擎在安全性和稳定性方面迈出了重要一步。通过防止未授权组件的使用、改进匹配器和排序器组件的答案处理机制,以及扩展JSON处理能力,这个版本为教育应用开发者提供了更加可靠和安全的工具。这些改进不仅提升了系统的整体质量,也为未来的功能扩展奠定了更坚实的基础。

登录后查看全文
热门项目推荐
相关项目推荐