提交 e5682d5c 编写于 作者: M Mars Liu

support $ in content

上级 cf447881
......@@ -20,3 +20,6 @@ CSDN 技能树结构(章节、元信息、习题)解释器,支持技能树
### 0.0.7
- 为 config.json 添加默认的 `keywords_must``keywords_forbid` 空列表
### 0.0.8
- 补充对 $ 符号的宽容处理
\ No newline at end of file
......@@ -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',
......
......@@ -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")
......
......@@ -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)
......
......@@ -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 的集成变得容易。有两种有效的使用连接器的方法:
......@@ -305,3 +306,52 @@ class MarkdownBlockTestCase(unittest.TestCase):
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)
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
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册