版本 | 项目地址 |
---|---|
稳定版 | lifeInZUCC/Exercises-Manager |
开发版 | nonlinearthink/Exercises-Manager |
这是一套把题库制作工具,主要用来爬取网页上的习题,制作成 Markdown 的工具链。
最初是 nonlinearthink 自己的一个小工具。后来迁移到了 lifeInZUCC 旗下。使用这个项目制作的一些题库样本,可以在 ZUCC 课程补全计划 或者 我的 CSDN 博客 中找到。
基本工作模式:
- 使用 chrome 插件在特定的页面爬取题目,保存成 JSON 文件。
- 使用命令行工具处理 JSON 文件,转换成 Markdown 的格式。
目前支持的网页:
网站 | 题目类型 |
---|---|
中国大学 MOOC | 单选、多选、判断、填空 |
BB 教学平台 | 单选、判断 |
PTA | 单选、判断 |
可以到github issue提供你的建议。
你可能需要了解一点 Node 和 npm 。
- 下载Node.js,注意同时安装 npm。
- 克隆 exercises-manager 到本地:
git clone https://github.com/nonlinearthink/exercises-manager --depth=1
- 如果已经安装了 npm,运行
npm install
安装项目依赖。
- 在浏览器中打开chrome://extensions/。
- 开启开发者模式。
使用网页 chrome 插件爬取下来的网页只是一个 JSON 文件。
之所以不在插件里面处理,而在本地的命令行环境中处理,是为了更好的扩展性。
提供了一个强大的命令行工具来帮助你处理 JSON 数据,让他们可以在 Markdown 显示出来。
两个 npm script:
命令 | 功能 |
---|---|
npm install | 初始化 |
npm start | 运行命令行 |
随着程序的多次运行,你可能会对文件的杂乱感到不舒服,clean.js 的作用就在于此。它有三个参数。
参数 | 作用 |
---|---|
-o | 删除 origin 文件 |
-d | 删除 data 文件 |
-v | 删除 view 文件 |
使用 node clean.js
,默认情况下会删除所有的内容,也就是和node clean.js -dov
等价。
-
打开项目,运行
npm install
,安装项目依赖。 -
创建文本,找到
data/origin
目录,然后创建一个test.txt
的文件。内容为:A.PHP B.Java C.Javascript D.C++ A 2.世界上最好的语言是什么? A.PHP B.Java C.Javascript D.C++ A B C D 3.世界上最好的语言是什么? PHP ``` 分别对应了,单选题、多选题、填空题。第一项是题目,中间的是选项,最后一项是答案。
-
运行
npm start
,观察输出。data/data/test.json
[ { "title": "世界上最好的语言是什么?", "choice": [ { "option": "A", "content": "PHP" }, { "option": "B", "content": "Java" }, { "option": "C", "content": "Javascript" }, { "option": "D", "content": "C++" } ], "answer": "A" }, { "title": "世界上最好的语言是什么?", "choice": [ { "option": "A", "content": "PHP" }, { "option": "B", "content": "Java" }, { "option": "C", "content": "Javascript" }, { "option": "D", "content": "C++" } ], "answer": "A B C D" }, { "title": "世界上最好的语言是什么?", "answer": "PHP" } ]
data/view/test.md
编号 选项 A PHP B Java C Javascript D C++ 编号 选项 A PHP B Java C Javascript D C++ PHP
工具的作者 nonlinearthink,在个人博客里写过两篇教程,可以作为使用的参考。
参考链接 |
---|
题库制作工具: Exercises-Manager |
深入了解 exercises-manager |