workshopper-exercise
包是一个用于创作Node.js的workshoppers的工具包。这个包使得我们可以通过创建一个类来自定义用户如何交互与代码以及事件的触发,以及代码的执行。这里我们将介绍如何使用workshopper-exercise
包以及如何创建属于自己的workshopper教程。
安装
workshopper-exercise
是一个npm包,你可以通过以下命令进行安装:
npm install -g workshopper-exercise
使用
1. 配置
在创建workshopper时,我们需要定义许多的内容,包括:
- 与练习相关的描述
- 安装依赖
- 运行通过的检测
- 运行未通过时的检测
- 交互信息
- 代码执行流程
这些内容是通过定义一个workshop
类以及其方法和属性来完成的。我们可以新建一个文件,在这个文件中定义我们的workshop
类。
-- -------------------- ---- ------- ---- ------- ----- ----------- - ---------------------- ----- ---- - --------------- -------- ----- --- - ------ -------------------- -- - ------------- ----- ---------------------- ------ --- ----------- ------- --------- --- ----------- ---------- ------- ---------- ------------ --------------------- ---------- - - ----- ----- ---- ------ ---------- ------- -- ---- -- ------ - -- --------- ------------------ ------------------ -------------------------- --
2. 创建练习
接下来我们来创建我们的 workshopper 中的一个 exercise。
-- -------------------- ---- ------- -------------- - -------- ---------- - -- -------------------------------------- --- -------- - --------------------------------- -- --------- -------------------------- ------ --------- - -- ------------ --------------------- - -------------------- -------------- -- --------- ------------------- - -------------------- --------------- --------------- --- ------------------------------ ------ --------- - -- ---- ----- -------- - ----------------------- -- ------ ----- ---------- - ------------------------- -- ---- -- ------------------ -- ----------- - ----------------- ---- -------- ------ -------------- ------ -- ----- - ---- - ----------------- ---- ------ --- --- --------- ------ -------------- ------- - --- ------------------------------------ ------ --------- - ------------------- --------- ------- --- ------ --------- -
这些方法和属性都是用来在题目中添加各种检测方法、执行代码的方法等等。 workshopper-exercise
还提供了在代码执行前的准备工作的API,例如获取提交代码或题目代码的路径以及设置该路径的监听器等等。
3. 运行练习
在完成练习的书写之后,你可以通过以下命令运行它。
$ workshopper-exercise
示例代码
-- -------------------- ---- ------- ----- ---- - --------------- ----- -- - ------------- ----- ----------- - ---------------------- -------- ----- --- - ------ -------------------- -- - -------- ----------------------- - ----- ----- - ------------------------- ------ ----------------- -- -------------------------------- --------------------- - ------------- ----- ------------------------- ------ --- -------- -------- -- ---- ------- --------- ----- -- ------- --------- ---- ---- --- --------- -------- ------------ --------------------- --------- ------------------ ------------------ --------------------------- ----------- ------------------------- ------- ---------- ---------- ------------------------ ---------- - - ----- ----- ---- ------ ---------- ------- -- ---- -- ------ - - --
module.exports = require('workshopper-exercise')()
上那个例子是一个workshopper 的例子,可以从中阅读挑战议题并为其提供答案。
我们先定义了一个辅助函数以 getAvailableLanguages() 获取目录中的子目录,我们还定义了一些元数据-名字,子标题,exerciseDir,帮助文本,先决条件和 脚注的文件.
详解
当我们开始考虑 exercise 时,我们先需要设置元数据,例如workshopper的名称,副标题,子标题,练习的目录,帮助文档以及先决条件。
-- -------------------- ---- ------- ------------- ----- ----------------- ------ --- ----------- ------- --------- --- ----------- ---------- ------- ---------- ------------ --------------------- ---------- - - ----- ----- ---- ------ ---------- ------- -- ---- -- ------ - -- --------- ------------------ ------------------ --------------------------- ----------- ------------------------ --
workshopper 的代码大致如下:
appDir
这是启动工作流程序的目录,也就是运行’workshopper’命令所在的目录。
exerciseDir
这是我们的exercise目录--您可以将其设置为任何您想要的名称。
menuItems
如果我们想为应用程序添加自己的自定义导航元素,则可以使用此属性。您可以设置名称和顺序。
helpFile
改代码指定帮助文档的位置。
prerequisitesFile
先决条件文件提供了练习的先决条件的一般描述和介绍。
footerFile
底部文件将出现在工作流程的结尾处,类似于帮助文件。 在设置元数据后,您可以开始编写您的练习。
-- -------------------- ---- ------- -------------- - -------- -------- -- - --- --- -------- - --------------------------------- --- ------- - ------------------ --- -------------- --- -------------------------- ------ --------- - --------- ---- ------------------------ ----- ---- -- -------- ----- ---- ----- - -- ----- - ------------------ ---- ------ ------------- - -------------- - ----------- ---------- ------------- -- --- --- - - --- ------------------------------ ------ --------- - -- ----- --- --------- - ------ ---------------------- - --- --------------- - -------------------------- --- ------- - ----- --- - ------- - -------------- - -------------- --- --------------- ----- -- --------- - ----------------- ----- --------- - ---- - ----------------- ---- - ----- ---- ---- ---- ------ -- --- - --------------- - --------------- - ------ - ----- ------ -- --- - --------------- - ----- - - ----- --- - ----------------- ------- - - ------------- - -------------- -------- -- --- ------------------------------------ ------ --------- - ----------------- ------ ------ ---------- -- ------ -------- -
- 首先定义了一个’workshopper-exercise’函数对象。
- 在addSetup函数中,请求一个服务器并获取要提交的目标。我们将其保存在originalTarget变量中。
- 添加了一个处理程序,其中包含对提交的目标的处理。我们验证目标是否等于原始目标+数字。每次正确的提交会自增一个数字。
- 添加了一个验证处理程序,此处理程序告诉用户是否已将所有练习解决方案。
结论
在做这个任务的时候,最重要的是理解每一个概念,以及如何将它应用到workshopper中。总的来说,您需要熟悉许多不同的API,以及它们是如何相互作用的。一旦您理解了这些概念并开始使用它们开发您自己的内容,您将可以创造出令人惊喜的workshopper来。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/74095