# The implement of responses for mocking out the requests **马克飞象**是一款专为印象笔记(Evernote)打造的Markdown编辑器,通过精心的设计与技术实现,配合印象笔记强大的存储和同步功能,带来前所未有的书写体验。特点概述: - **功能丰富** :支持高亮代码块、*LaTeX* 公式、流程图,本地图片以及附件上传,甚至截图粘贴,工作学习好帮手;- **得心应手** :简洁高效的编辑器,提供[桌面客户端][1]以及[离线Chrome App][2],支持移动端 Web;- **深度整合** :支持选择笔记本和添加标签,支持从印象笔记跳转编辑,轻松管理。-------------------[TOC]## > Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面。 —— [维基百科](https://zh.wikipedia.org/wiki/Markdown)正如您在阅读的这份文档,它使用简单的符号标识不同的标题,将某些文字标记为**粗体**或者*斜体*,创建一个[链接](http://www.example.com)或一个脚注[^demo]。下面列举了几个高级功能,更多语法请按`Ctrl + /`查看帮助。 ### Utility of responses#### Basic``` pythonimport responsesimport requests responses.add(responses.GET, 'http://twitter.com/api/1/foobar', json={'error': 'not found'}, status=404) @responses.activatedef test_sample(): resp = requests.get('http://twitter.com/api/1/foobar') assert resp.json() == {"error": "not found"} assert resp.status_code = 404... '''```#### Multiple responses``` pythonimport responsesimport requestsresponses.add(responses.GET, 'http://twitter.com/api/1/foobar', status=500)responses.add(responses.GET, 'http://twitter.com/api/1/foobar', body='{}', status=200, content_type='application/json')@responses.activatedef test_multiple(): resp = requests.get('http://twitter.com/api/1/foobar') assert resp.status_code == 500 resp = requests.get('http://twitter.com/api/1/foobar') assert resp.status_code == 200... '''```#### Using a callback to modify the response``` pythonimport responsesimport requestsdef response_callback(resp): resp.callback_processed = True return respwith responses.RequestsMock(response_callback=response_callback) as m: m.add(responses.GET, 'http://example.com', body=b'test') resp = requests.get('http://example.com') assert resp.text == "test" assert hasattr(resp, 'callback_processed') assert resp.callback_processed is True... '''```### Structure of responses### LaTeX 公式可以创建行内公式,例如 $\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N$。或者块级公式:$$x = \dfrac{-b \pm \sqrt{b^2 - 4ac}}{2a} $$### 表格| Item | Value | Qty || :-------- | --------:| :--: || Computer | 1600 USD | 5 || Phone | 12 USD | 12 || Pipe | 1 USD | 234 |### 流程图```flowst=>start: Starte=>endop=>operation: My Operationcond=>condition: Yes or No?st->op->condcond(yes)->econd(no)->op```以及时序图:```sequenceAlice->Bob: Hello Bob, how are you?Note right of Bob: Bob thinksBob-->Alice: I am good thanks!```> **提示:**想了解更多,请查看**流程图**[语法][3]以及**时序图**[语法][4]。### 复选框使用 `- [ ]` 和 `- [x]` 语法可以创建复选框,实现 todo-list 等功能。例如:- [x] 已完成事项- [ ] 待办事项1- [ ] 待办事项2> **注意:**目前支持尚不完全,在印象笔记中勾选复选框是无效、不能同步的,所以必须在**马克飞象**中修改 Markdown 原文才可生效。下个版本将会全面支持。## 印象笔记相关### 笔记本和标签**马克飞象**增加了`@(笔记本)[标签A|标签B]`语法, 以选择笔记本和添加标签。 **绑定账号后**, 输入`(`自动会出现笔记本列表,请从中选择。### 笔记标题**马克飞象**会自动使用文档内出现的第一个标题作为笔记标题。例如本文,就是第一行的 `欢迎使用马克飞象`。### 快捷编辑保存在印象笔记中的笔记,右上角会有一个红色的编辑按钮,点击后会回到**马克飞象**中打开并编辑该笔记。>**注意:**目前用户在印象笔记中单方面做的任何修改,马克飞象是无法自动感知和更新的。所以请务必回到马克飞象编辑。### 数据同步**马克飞象**通过**将Markdown原文以隐藏内容保存在笔记中**的精妙设计,实现了对Markdown的存储和再次编辑。既解决了其他产品只是单向导出HTML的单薄,又规避了服务端存储Markdown带来的隐私安全问题。这样,服务端仅作为对印象笔记 API调用和数据转换之用。 >**隐私声明:用户所有的笔记数据,均保存在印象笔记中。马克飞象不存储用户的任何笔记数据。**### 离线存储**马克飞象**使用浏览器离线存储将内容实时保存在本地,不必担心网络断掉或浏览器崩溃。为了节省空间和避免冲突,已同步至印象笔记并且不再修改的笔记将删除部分本地缓存,不过依然可以随时通过`文档管理`打开。> **注意:**虽然浏览器存储大部分时候都比较可靠,但印象笔记作为专业云存储,更值得信赖。以防万一,**请务必经常及时同步到印象笔记**。## 编辑器相关### 设置右侧系统菜单(快捷键`Ctrl + M`)的`设置`中,提供了界面字体、字号、自定义CSS、vim/emacs 键盘模式等高级选项。### 快捷键帮助 `Ctrl + /`同步文档 `Ctrl + S`创建文档 `Ctrl + Alt + N`最大化编辑器 `Ctrl + Enter`预览文档 `Ctrl + Alt + Enter`文档管理 `Ctrl + O`系统菜单 `Ctrl + M` 加粗 `Ctrl + B`插入图片 `Ctrl + G`插入链接 `Ctrl + L`提升标题 `Ctrl + H`## 关于收费**马克飞象**为新用户提供 10 天的试用期,试用期过后需要[续费](maxiang.info/vip.html)才能继续使用。未购买或者未及时续费,将不能同步新的笔记。之前保存过的笔记依然可以编辑。## 反馈与建议- 微博:[@马克飞象](http://weibo.com/u/2788354117),[@GGock](http://weibo.com/ggock "开发者个人账号")- 邮箱:---------
感谢阅读这份帮助文档。请点击右上角,绑定印象笔记账号,开启全新的记录与分享体验吧。
[^demo]: 这是一个示例脚注。请查阅 [MultiMarkdown 文档](https://github.com/fletcher/MultiMarkdown/wiki/MultiMarkdown-Syntax-Guide#footnotes) 关于脚注的说明。 **限制:** 印象笔记的笔记内容使用 [ENML][5] 格式,基于 HTML,但是不支持某些标签和属性,例如id,这就导致`脚注`和`TOC`无法正常点击。
[1]: http://maxiang.info/client_zh
[2]: https://chrome.google.com/webstore/detail/kidnkfckhbdkfgbicccmdggmpgogehop
[3]: http://adrai.github.io/flowchart.js/
[4]: http://bramp.github.io/js-sequence-diagrams/
[5]: https://dev.yinxiang.com/doc/articles/enml.php