From 6c2817e63aae44118820c99168946bad792035c3 Mon Sep 17 00:00:00 2001
From: Mars Liu <mars.liu@outlook.com>
Date: Thu, 2 Dec 2021 19:07:26 +0800
Subject: [PATCH] document

---
 README.md | 65 ++++++++++++++++++++++++++++++-------------------------
 1 file changed, 35 insertions(+), 30 deletions(-)

diff --git a/README.md b/README.md
index 7278115..8c25f49 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,27 @@
 # skill_tree_java
 
+## 环境准备
+
+技能树仓库提供了辅助的工具脚本和 git hook 程序,在开始编辑工作之前,需要初始化环境依赖,我们推荐使用 python 3.8 或更高版本的 python。
+
+首先,请确认系统中已经安装 python 和 git,然后执行下列命令克隆仓库:
+
+```shell
+git clone git@codechina.csdn.net:csdn/skill_tree_java.git
+```
+
+然后进入 skill_tree_java 目录,执行下列命令安装依赖:
+
+```shell
+pip install -r requrirements.txt
+```
+
+然后执行下列命令安装钩子:
+
+```shell
+pre-commit install
+```
+
 ## 目录结构说明
 
 * 技能树`骨架文件`:
@@ -44,36 +66,14 @@
 
 
 
-## `知识节点` 的导出习题编辑
-
-例如 `data/1.Java初阶/1.Java概述/1.什么是Java/config.json` 里配置对该知识节点导出的习题
-
-```json
-{
-    // ...
-    "export": [
-        "HellowWorld.json"
-    ]
-}
-```
-
-在 export 字段中,我们列出习题定义 json ,下面我们了解如何编写习题。
-
-## `知识节点` 的导出习题选项配置编辑
-
-目前我们支持使用 markdown 语法直接编辑习题和各选项。
+## 习题编辑
 
-如前文内容,我们在知识节点下增加习题 `HelloWord`的定义文件,即在`data/1.Java初阶/1.Java概述/1.什么是Java` 目录增加一个`HelloWorld.json`文件:
+编辑者需要关注两个重点问题
+ - 根据需要编辑技能树的目录,每个目录应该由`序号.标题`组成,序号的数字不需要精确的保持连续,只要是整数即可
+ - 在知识点的目录下编写习题,目前推荐使用 markdown 格式,我们仅就这个格式的习题编辑进行介绍
 
-```json
-{
-    "type": "code_options",
-    "author": "ccat",
-    "source": "HelloWorld.md",
-    "notebook_enable": true
-}
-```
-其中 type 字段目前都固定是 `code_options`,notebook_enable 字段决定这个习题是否生成对应的 notebook 。根据具体情况写好其它字段,注意这里 source 的文件名,我们指定了一个 markdwon 文件。现在我们新建一个 HelloWorld.md 并编辑为:
+如前文内容,我们在知识节点下增加习题 `HelloWord`的定义文件,即在`data/1.Java初阶/1.Java概述/1.什么是Java` 
+目录新建一个名为 `HelloWorld.md` 的文本文件,并编辑为:
 
 ````markdown
 # Hello World
@@ -179,6 +179,11 @@ public class App {
 
 ## 技能树合成
 
-在`src`目录下执行 `python main.py -a tree` 会合成技能树文件,合成的技能树文件: `data/tree.json`
+在`src`目录下执行 `python main.py -a tree` 会合成技能树文件,合成的技能树文件为: `data/tree.json`
 * 合成过程中,会自动检查每个目录下 `config.json` 里的 `node_id` 是否存在,不存在则生成
-* 合成过程中,会自动检查每个知识点目录下 `config.json` 里的 `export` 里导出的习题配置,检查是否存在`exercise_id` 字段,如果不存在则生成
+* 合成过程中,会自动检查每个知识点目录下的 markdown 文件,是否有对应的配置信息,如果不存在则生成
+  * 生成的习题配置信息中,author是根据git环境信息填写的,如果这个作者名不是您的csdn账户名,您可以手工编辑修改
+  * config.json 的 export 字段定义了同一个知识点下习题的顺序,如果需要定义不同的顺序,您可以手工调整
+  * 技能树仓库钩子和辅助工具都会检查信息完整性,并尝试做必要的修补,因此可能在提交时发现有一些新文件
+    生成,请在后续的提交中将它们也发送到服务器仓库
+
-- 
GitLab