Skip to content

leefurong/mde-specification

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

缘起

Mark Down for Education.

21世纪的学习, 不再只是吸收知识, 更要学会思考。 学生在阅读文字时,如果能够同时做答题, 这无疑能促进学生思考。

今天的文字系统(博客、微信公众号文章、电子书)大都注重呈现, 研究如何显示文字。 因此老师缺乏一种工具,能够创作“激发思考”的教材。

因此,我们在markdown的基础上, 加以扩展, 设计出mde(mark down for education)。 运用mde, 书籍的作者可以在文字中加入“互动”的部分。

这种新型的学习材料, 使用者将不仅是“阅读”, 而是“学习”。(学+习) 鉴于此种转变, 以下将不再称使用材料者为“读者”,而是“学习者”。

本仓库的主旨, 在于介绍这种规范(以下简称mde), 并且(在未来)提供一个参考实现。

基础架构

所有的markdown文档都是合法的mde文档, 反之亦然。 那如何实现“互动答题”呢?我们采用markdown的“代码”来表示。

如何在mde中添加题目?

以选择题为例

2020年流行的病毒叫什么?
[ ] 新型冠状病毒
[ ] ncov2019
[ ] 以上都不是
----
0 1

react参考实现方案

把代码分为三部分, 一是解析器, 负责把字符串结构化, 二是组件代码, 只负责把结构化的数据渲染成互动的组件, 三是应用代码, 负责整体的方案(例如石墨文档、简书等)。

应用代码只需要负责把这段字符串传给组件代码即可。

组件代码

以下从三个不同角度介绍组件代码:

  1. 作者的界面(可以先仅仅实现为纯文本编辑, 此处暂不详述)
  2. 学习者的界面(又分为未答题和已答题两种状态)
  3. 应用开发者的界面
  • 作者的界面
    对于书籍的作者, 组件代码可以提供一种“编辑”模式, 比纯文本更友好。
    例如, 如果是选择题, 可以“编辑题面”, “添加选项”, “设置答案”。
    如此一来,书籍作者便不需要去记忆mde的语法。

  • 学习者的界面
    学习者将看到一道可以点的选择题。 做题时, 组件能够自动判题。 如果已经做过了, 就可以看到“已完成”。 学习者可以点“加载历史”, 看到上次自己的答题。(为何如此设计? 因为如果每次都显示出来, 学习者将没有机会重新思考)。 如果学习者通过了这道题, 还可以点“显示榜单”, 看到所有做过此题的人的答题。

学习者的界面是组件代码的核心。 以下是一个参考思路:
组件代码负责把这段字符串传送给解析器(parse函数), 解析器生成一个结构化的数据。
组件代码便可利用这个结构化的数据, 来渲染成一个交互的react widget。
对于已答题的状态, 组件代码可以通过storage.read()得到这位学习者的答题信息。

  • 应用开发者的界面
    应用开发者调用组件时, 需要传递描述这个题目的字符串。
    如果希望把答题数据记录在云端, 或者做个性化处理, 可以传递一个storage对象。这个对象应该实现两个方法: storage.write(k, v)和storage.read(k)

项目计划

2月份将完成两个参考实现, 并同步完善文档。

  1. 选择题
  2. 编程题

3月份将基于参考实现, 实现一个互动书生成工具。(作者将可以用mde写文档, 用这个工具生成一个网站)

相关项目

项目 用途
mde-parser 将mde的文本转换为结构化数据

期望更多的老师们一起完善这个标准, 从而为实现真正的学+习创造坚实的基础设施。

About

Mark Down for Education.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published