Skip to content

Commit fda8225

Browse files
committed
ADD: test markdown output and doc
1 parent 3a3ea87 commit fda8225

6 files changed

Lines changed: 63 additions & 16 deletions

File tree

README.md

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,25 @@
11
simditor-markdown
22
=============
33

4-
Add markdown editing mode for simditor.
4+
Add a markdown editing button for Simditor. Use [marked](https://github.com/chjj/marked) as markdown parser and [to-markdown](https://github.com/domchristie/to-markdown) as HTML to markdown converter.
5+
6+
###Usage
7+
8+
Reference button and dependency script on your page with Simditor:
9+
10+
```html
11+
<script type="text/javascript" src="[path]/marked.js"></script>
12+
<script type="text/javascript" src="[path]/to-markdown.js"></script>
13+
<script type="text/javascript" src="[path]/simditor-markdown.js"></script>
14+
15+
<link rel="stylesheet" href="[path]/simditor-markdown.css" media="screen" charset="utf-8" />
16+
```
17+
18+
Add markdown button config when you initialize Simditor:
19+
20+
```js
21+
var editor = new Simditor({
22+
textarea: $('#txt-editor'),
23+
toolbar: ['bold', 'italic', 'underline', 'color', '|', 'ol', 'ul', '|', 'markdown']
24+
});
25+
```

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "simditor-markdown",
3-
"version": "0.0.1",
3+
"version": "1.0.0",
44
"homepage": "https://github.com/farthinker/simditor-markdown",
55
"authors": [
66
"farthinker <farthinker@gmail.com>"

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "simditor-markdown",
33
"description": "Add markdown editing mode for simditor.",
4-
"version": "0.0.1",
4+
"version": "1.0.0",
55
"homepage": "https://github.com/farthinker/simditor-markdown",
66
"author": {
77
"name": "farthinker",

spec/simditor-markdown-spec.coffee

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ describe 'Simple markdown', ->
2424
.appendTo 'body'
2525
editor = new Simditor
2626
textarea: $textarea
27-
toolbar: ['markdown']
27+
toolbar: ['markdown', 'table']
2828

2929
afterEach ->
3030
editor?.destroy()
@@ -41,10 +41,36 @@ describe 'Simple markdown', ->
4141
expect(editor.el.hasClass('simditor-markdown')).toBe(true)
4242
expect(editor.body.is('[contenteditable]')).toBe(false)
4343

44+
expect(button.textarea.val()).toBe('''
45+
Simditor 是团队协作工具 [Tower](http://tower.im) 使用的富文本编辑器。
46+
47+
相比传统的编辑器它的特点是:
48+
49+
* 功能精简,加载快速
50+
* 输出格式化的标准 HTML
51+
* 每一个功能都有非常优秀的使用体验
52+
53+
兼容的浏览器:IE10+、Chrome、Firefox、Safari。
54+
55+
<pre>this is a code snippet</pre>
56+
57+
> First line
58+
59+
* * *
60+
''')
61+
4462
it 'should convert markdown input to html output', ->
4563
button = editor.toolbar.findButton 'markdown'
4664
button.el.mousedown()
4765

4866
button.textarea.val '[Tower](http://tower.im)'
49-
button.markdownChange()
67+
button._convert()
5068
expect(editor.getValue()).toBe('<p><a href="http://tower.im">Tower</a></p>')
69+
70+
button.textarea.val '```\nvar test = 1;\n```'
71+
button._convert()
72+
expect(editor.getValue()).toBe('<pre><code>var test = 1;\n</code></pre>')
73+
74+
button.textarea.val '|123|456|789|\n|---|---|---|\n|987|654|321|'
75+
button._convert()
76+
expect(editor.body.find('table').length).toBe(1)

spec/simditor-markdown-spec.js

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
$textarea = $('<textarea id="editor"></textarea>').val(content).appendTo('body');
1010
return editor = new Simditor({
1111
textarea: $textarea,
12-
toolbar: ['markdown']
12+
toolbar: ['markdown', 'table']
1313
});
1414
});
1515
afterEach(function() {
@@ -29,15 +29,22 @@
2929
button.el.mousedown();
3030
expect(editor.wrapper.find('.markdown-editor').length).toBe(1);
3131
expect(editor.el.hasClass('simditor-markdown')).toBe(true);
32-
return expect(editor.body.is('[contenteditable]')).toBe(false);
32+
expect(editor.body.is('[contenteditable]')).toBe(false);
33+
return expect(button.textarea.val()).toBe('Simditor 是团队协作工具 [Tower](http://tower.im) 使用的富文本编辑器。\n\n相比传统的编辑器它的特点是:\n\n* 功能精简,加载快速\n* 输出格式化的标准 HTML\n* 每一个功能都有非常优秀的使用体验\n\n兼容的浏览器:IE10+、Chrome、Firefox、Safari。\n\n<pre>this is a code snippet</pre>\n\n> First line\n\n* * *');
3334
});
3435
return it('should convert markdown input to html output', function() {
3536
var button;
3637
button = editor.toolbar.findButton('markdown');
3738
button.el.mousedown();
3839
button.textarea.val('[Tower](http://tower.im)');
39-
button.markdownChange();
40-
return expect(editor.getValue()).toBe('<p><a href="http://tower.im">Tower</a></p>');
40+
button._convert();
41+
expect(editor.getValue()).toBe('<p><a href="http://tower.im">Tower</a></p>');
42+
button.textarea.val('```\nvar test = 1;\n```');
43+
button._convert();
44+
expect(editor.getValue()).toBe('<pre><code>var test = 1;\n</code></pre>');
45+
button.textarea.val('|123|456|789|\n|---|---|---|\n|987|654|321|');
46+
button._convert();
47+
return expect(editor.body.find('table').length).toBe(1);
4148
});
4249
});
4350

src/simditor-markdown.coffee

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,6 @@ class SimditorMarkdown extends Simditor.Button
2727
@textarea.on 'keyup', (e) =>
2828
@markdownChange()
2929

30-
# markedRenderer = new marked.Renderer()
31-
# markedRenderer.table = (header, body) =>
32-
# console.log header
33-
# console.log body
34-
# marked.setOptions
35-
# renderer: markedRenderer
36-
3730
status: ($node) ->
3831
true
3932

0 commit comments

Comments
 (0)