diff --git a/README.md b/README.md index 6fd4b7f3f99835a5cf8edab48810faf821339f2a..269a9b527113e525373036fb64eace11cdb9d2c0 100644 --- a/README.md +++ b/README.md @@ -19,4 +19,7 @@ CSDN 技能树结构(章节、元信息、习题)解释器,支持技能树 - 为 `keywords_must` 和 `keywords_forbid` 的读取操作添加默认值 ### 0.0.7 - - 为 config.json 添加默认的 `keywords_must` 和 `keywords_forbid` 空列表 \ No newline at end of file + - 为 config.json 添加默认的 `keywords_must` 和 `keywords_forbid` 空列表 + +### 0.0.8 + - 补充对 $ 符号的宽容处理 \ No newline at end of file diff --git a/setup.py b/setup.py index c76ae576d45c18e799971d3b894a2c9b7efcd275..b52896e61a7031971c9cdc768170ac9ddcf936da 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ this_directory = Path(__file__).parent long_description = (this_directory / "README.md").read_text() setup(name="skill-tree-parser", - version="0.0.7", + version="0.0.8", description="CSDN Skill Tree Parser", long_description=long_description, long_description_content_type='text/markdown', diff --git a/src/skill_tree/exercises/markdown.py b/src/skill_tree/exercises/markdown.py index d3a7148cf79fd545f4a863916638e869b80fd352..a4a56f7771c24d210df589e5bb58fe695c6c1ae2 100644 --- a/src/skill_tree/exercises/markdown.py +++ b/src/skill_tree/exercises/markdown.py @@ -185,7 +185,7 @@ def paragraph(state): continue finally: state.rollback(tran) - return Paragraph(processor(buffer), "markdown") + return Paragraph(processor(buffer).strip(), "markdown") return Paragraph(processor(buffer), "markdown") diff --git a/src/skill_tree/exercises/market_math.py b/src/skill_tree/exercises/market_math.py index f93df5db1e6a062d020abfb8ba5e1f3ff8367f8b..7e79caf057841717f8aa88749e2af647770a7fc8 100644 --- a/src/skill_tree/exercises/market_math.py +++ b/src/skill_tree/exercises/market_math.py @@ -110,7 +110,7 @@ def processor(plain): buffer += c except ParsecError as err: st.commit(tran) - buffer += st.data[index:st.index] + buffer += "$"+st.data[index:st.index] else: st.commit(tran) diff --git a/src/test/exercises/markdown_test.py b/src/test/exercises/markdown_test.py index dceddc3ac4971f81cb0b60353b137fef0aa30280..85c58da66a83958dec92046a8bdf9769ab7208c4 100644 --- a/src/test/exercises/markdown_test.py +++ b/src/test/exercises/markdown_test.py @@ -212,7 +212,8 @@ class MathTestCase(unittest.TestCase): result = processor(data) self.assertEqual(result, math_processor(data)) -spark = """# Neo4j的Apache Spark连接器 +spark = """ +# Neo4j的Apache Spark连接器 Apache Spark 的 Neo4j 连接器旨在使图与 Spark 的集成变得容易。有两种有效的使用连接器的方法: @@ -304,4 +305,53 @@ class MarkdownBlockTestCase(unittest.TestCase): state = BasicState(learn.strip()) doc = mk.parse(state) self.assertEqual("```diff\nvar foo = 'bar';\n+ var x = 200;\n* var x = 100;\n```", - doc.options[1].paras[0].source) \ No newline at end of file + doc.options[1].paras[0].source) + + +shell = """ +# SHELL 的变量 + +下面说法中不正确的是 + +## 答案 + +下面的代码扩展了系统变量 $PATH + +``` +export $PATH=$PATH:$HOME/bin +``` + +## 选项 + +### A + +Shell 通常使用 `$abc` 的形式引用变量 + +### B + +下面的代码扩展了系统变量 $PATH + +``` +export PATH=$PATH:$HOME/bin +``` + +### C + +通过下列命令可以查看 PATH + +``` +echo $PATH +``` +""" + +class DollarTestCase(unittest.TestCase): + def test_parse(self): + state = BasicState(shell.strip()) + doc = mk.parse(state) + self.assertEqual("Shell 通常使用 `$abc` 的形式引用变量", + doc.options[0].paras[0].source) + self.assertEqual("""下面的代码扩展了系统变量 $PATH""", + doc.options[1].paras[0].source) + self.assertEqual("""export PATH=$PATH:$HOME/bin""", + doc.options[1].paras[1].source) + self.assertEqual(3, len(doc.options)) \ No newline at end of file