wysihtml5_with_ps 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Makefile +98 -0
- data/Rakefile +38 -0
- data/lib/base/base.js +139 -0
- data/lib/rangy/rangy-core.js +3211 -0
- data/lib/wysihtml5_with_ps/version.rb +3 -0
- data/test/assert/html_equal_test.js +32 -0
- data/test/browser_test.js +85 -0
- data/test/dom/auto_link_test.js +105 -0
- data/test/dom/contains_test.js +18 -0
- data/test/dom/convert_to_list_test.js +101 -0
- data/test/dom/copy_attributes_test.js +51 -0
- data/test/dom/copy_styles_test.js +110 -0
- data/test/dom/delegate_test.js +62 -0
- data/test/dom/get_as_dom_test.js +55 -0
- data/test/dom/get_parent_element_test.js +161 -0
- data/test/dom/get_style_test.js +54 -0
- data/test/dom/has_element_with_class_name_test.js +29 -0
- data/test/dom/has_element_with_tag_name_test.js +25 -0
- data/test/dom/insert_css_test.js +31 -0
- data/test/dom/observe_test.js +83 -0
- data/test/dom/parse_test.js +614 -0
- data/test/dom/rename_element_test.js +28 -0
- data/test/dom/resolve_list_test.js +46 -0
- data/test/dom/sandbox_test.js +184 -0
- data/test/dom/set_attributes_test.js +15 -0
- data/test/dom/set_styles_test.js +19 -0
- data/test/editor_test.js +547 -0
- data/test/incompatible_test.js +60 -0
- data/test/index.html +126 -0
- data/test/lang/array_test.js +22 -0
- data/test/lang/object_test.js +22 -0
- data/test/lang/string_test.js +19 -0
- data/test/quirks/clean_pasted_html_test.js +11 -0
- data/test/undo_manager_test.js +94 -0
- metadata +116 -0
@@ -0,0 +1,60 @@
|
|
1
|
+
module("wysihtml5 - Incompatible", {
|
2
|
+
setup: function() {
|
3
|
+
this.originalSupportCheck = wysihtml5.browser.supported;
|
4
|
+
wysihtml5.browser.supported = function() { return false; };
|
5
|
+
|
6
|
+
this.textareaElement = document.createElement("textarea");
|
7
|
+
document.body.appendChild(this.textareaElement);
|
8
|
+
},
|
9
|
+
|
10
|
+
teardown: function() {
|
11
|
+
wysihtml5.browser.supported = this.originalSupportCheck;
|
12
|
+
this.textareaElement.parentNode.removeChild(this.textareaElement);
|
13
|
+
}
|
14
|
+
});
|
15
|
+
|
16
|
+
|
17
|
+
asyncTest("Basic test", function() {
|
18
|
+
expect(12);
|
19
|
+
|
20
|
+
var that = this;
|
21
|
+
|
22
|
+
var oldIframesLength = document.getElementsByTagName("iframe").length;
|
23
|
+
|
24
|
+
var oldInputsLength = document.getElementsByTagName("input").length;
|
25
|
+
|
26
|
+
var editor = new wysihtml5.Editor(this.textareaElement);
|
27
|
+
editor.observe("load", function() {
|
28
|
+
ok(true, "'load' event correctly triggered");
|
29
|
+
ok(!wysihtml5.dom.hasClass(document.body, "wysihtml5-supported"), "<body> didn't receive the 'wysihtml5-supported' class");
|
30
|
+
ok(!editor.isCompatible(), "isCompatible returns false when rich text editing is not correctly supported in the current browser");
|
31
|
+
equal(that.textareaElement.style.display, "", "Textarea is visible");
|
32
|
+
ok(!editor.composer, "Composer not initialized");
|
33
|
+
|
34
|
+
equal(document.getElementsByTagName("iframe").length, oldIframesLength, "No hidden field has been inserted into the dom");
|
35
|
+
equal(document.getElementsByTagName("input").length, oldInputsLength, "Composer not initialized");
|
36
|
+
|
37
|
+
var html = "foobar<br>";
|
38
|
+
editor.setValue(html);
|
39
|
+
equal(that.textareaElement.value, html);
|
40
|
+
equal(editor.getValue(), html);
|
41
|
+
editor.clear();
|
42
|
+
equal(that.textareaElement.value, "");
|
43
|
+
|
44
|
+
editor.observe("focus", function() {
|
45
|
+
ok(true, "Generic 'focus' event fired");
|
46
|
+
});
|
47
|
+
|
48
|
+
editor.observe("focus:textarea", function() {
|
49
|
+
ok(true, "Specific 'focus:textarea' event fired");
|
50
|
+
});
|
51
|
+
|
52
|
+
editor.observe("focus:composer", function() {
|
53
|
+
ok(false, "Specific 'focus:composer' event fired, and that's wrong, there shouldn't be a composer element/view");
|
54
|
+
});
|
55
|
+
|
56
|
+
QUnit.triggerEvent(that.textareaElement, wysihtml5.browser.supportsEvent("focusin") ? "focusin" : "focus");
|
57
|
+
|
58
|
+
start();
|
59
|
+
});
|
60
|
+
});
|
data/test/index.html
ADDED
@@ -0,0 +1,126 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
|
3
|
+
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
|
4
|
+
<meta charset="utf-8">
|
5
|
+
|
6
|
+
<title>wysihtml5 - Test Suite</title>
|
7
|
+
|
8
|
+
<link rel="stylesheet" href="http://code.jquery.com/qunit/qunit-git.css">
|
9
|
+
|
10
|
+
<script src="http://code.jquery.com/qunit/qunit-git.js"></script>
|
11
|
+
|
12
|
+
<script src="../src/wysihtml5.js"></script>
|
13
|
+
<script src="../lib/rangy/rangy-core.js"></script>
|
14
|
+
<script src="../lib/base/base.js"></script>
|
15
|
+
<script src="../src/browser.js"></script>
|
16
|
+
<script src="../src/lang/array.js"></script>
|
17
|
+
<script src="../src/lang/dispatcher.js"></script>
|
18
|
+
<script src="../src/lang/object.js"></script>
|
19
|
+
<script src="../src/lang/string.js"></script>
|
20
|
+
<script src="../src/dom/auto_link.js"></script>
|
21
|
+
<script src="../src/dom/class.js"></script>
|
22
|
+
<script src="../src/dom/contains.js"></script>
|
23
|
+
<script src="../src/dom/convert_to_list.js"></script>
|
24
|
+
<script src="../src/dom/copy_attributes.js"></script>
|
25
|
+
<script src="../src/dom/copy_styles.js"></script>
|
26
|
+
<script src="../src/dom/delegate.js"></script>
|
27
|
+
<script src="../src/dom/get_as_dom.js"></script>
|
28
|
+
<script src="../src/dom/get_parent_element.js"></script>
|
29
|
+
<script src="../src/dom/get_style.js"></script>
|
30
|
+
<script src="../src/dom/has_element_with_tag_name.js"></script>
|
31
|
+
<script src="../src/dom/has_element_with_class_name.js"></script>
|
32
|
+
<script src="../src/dom/insert.js"></script>
|
33
|
+
<script src="../src/dom/insert_css.js"></script>
|
34
|
+
<script src="../src/dom/observe.js"></script>
|
35
|
+
<script src="../src/dom/parse.js"></script>
|
36
|
+
<script src="../src/dom/remove_empty_text_nodes.js"></script>
|
37
|
+
<script src="../src/dom/rename_element.js"></script>
|
38
|
+
<script src="../src/dom/replace_with_child_nodes.js"></script>
|
39
|
+
<script src="../src/dom/resolve_list.js"></script>
|
40
|
+
<script src="../src/dom/sandbox.js"></script>
|
41
|
+
<script src="../src/dom/set_attributes.js"></script>
|
42
|
+
<script src="../src/dom/set_styles.js"></script>
|
43
|
+
<script src="../src/dom/simulate_placeholder.js"></script>
|
44
|
+
<script src="../src/dom/text_content.js"></script>
|
45
|
+
<script src="../src/quirks/clean_pasted_html.js"></script>
|
46
|
+
<script src="../src/quirks/ensure_proper_clearing.js"></script>
|
47
|
+
<script src="../src/quirks/get_correct_inner_html.js"></script>
|
48
|
+
<script src="../src/quirks/insert_line_break_on_return.js"></script>
|
49
|
+
<script src="../src/quirks/redraw.js"></script>
|
50
|
+
<script src="../src/selection/selection.js"></script>
|
51
|
+
<script src="../src/selection/html_applier.js"></script>
|
52
|
+
<script src="../src/commands.js"></script>
|
53
|
+
<script src="../src/commands/bold.js"></script>
|
54
|
+
<script src="../src/commands/createLink.js"></script>
|
55
|
+
<script src="../src/commands/fontSize.js"></script>
|
56
|
+
<script src="../src/commands/foreColor.js"></script>
|
57
|
+
<script src="../src/commands/formatBlock.js"></script>
|
58
|
+
<script src="../src/commands/formatInline.js"></script>
|
59
|
+
<script src="../src/commands/insertHTML.js"></script>
|
60
|
+
<script src="../src/commands/insertImage.js"></script>
|
61
|
+
<script src="../src/commands/insertLineBreak.js"></script>
|
62
|
+
<script src="../src/commands/insertOrderedList.js"></script>
|
63
|
+
<script src="../src/commands/insertUnorderedList.js"></script>
|
64
|
+
<script src="../src/commands/italic.js"></script>
|
65
|
+
<script src="../src/commands/justifyCenter.js"></script>
|
66
|
+
<script src="../src/commands/justifyLeft.js"></script>
|
67
|
+
<script src="../src/commands/justifyRight.js"></script>
|
68
|
+
<script src="../src/commands/justifyFull.js"></script>
|
69
|
+
<script src="../src/commands/redo.js"></script>
|
70
|
+
<script src="../src/commands/underline.js"></script>
|
71
|
+
<script src="../src/commands/undo.js"></script>
|
72
|
+
<script src="../src/undo_manager.js"></script>
|
73
|
+
<script src="../src/views/view.js"></script>
|
74
|
+
<script src="../src/views/composer.js"></script>
|
75
|
+
<script src="../src/views/composer.style.js"></script>
|
76
|
+
<script src="../src/views/composer.observe.js"></script>
|
77
|
+
<script src="../src/views/synchronizer.js"></script>
|
78
|
+
<script src="../src/views/textarea.js"></script>
|
79
|
+
<script src="../src/toolbar/dialog.js"></script>
|
80
|
+
<script src="../src/toolbar/speech.js"></script>
|
81
|
+
<script src="../src/toolbar/toolbar.js"></script>
|
82
|
+
<script src="../src/editor.js"></script>
|
83
|
+
|
84
|
+
<script src="../src/assert/html_equal.js"></script>
|
85
|
+
|
86
|
+
<script src="browser_test.js"></script>
|
87
|
+
<script src="incompatible_test.js"></script>
|
88
|
+
|
89
|
+
<script>
|
90
|
+
if (wysihtml5.browser.supported()) {
|
91
|
+
document.write(
|
92
|
+
'<script src="assert/html_equal_test.js"><\/script>' +
|
93
|
+
'<script src="lang/array_test.js"><\/script>' +
|
94
|
+
'<script src="lang/object_test.js"><\/script>' +
|
95
|
+
'<script src="lang/string_test.js"><\/script>' +
|
96
|
+
'<script src="dom/auto_link_test.js"><\/script>' +
|
97
|
+
'<script src="dom/contains_test.js"><\/script>' +
|
98
|
+
'<script src="dom/convert_to_list_test.js"><\/script>' +
|
99
|
+
'<script src="dom/copy_styles_test.js"><\/script>' +
|
100
|
+
'<script src="dom/copy_attributes_test.js"><\/script>' +
|
101
|
+
'<script src="dom/delegate_test.js"><\/script>' +
|
102
|
+
'<script src="dom/sandbox_test.js"><\/script>' +
|
103
|
+
'<script src="dom/observe_test.js"><\/script>' +
|
104
|
+
'<script src="dom/get_as_dom_test.js"><\/script>' +
|
105
|
+
'<script src="dom/get_parent_element_test.js"><\/script>' +
|
106
|
+
'<script src="dom/get_style_test.js"><\/script>' +
|
107
|
+
'<script src="dom/has_element_with_tag_name_test.js"><\/script>' +
|
108
|
+
'<script src="dom/has_element_with_class_name_test.js"><\/script>' +
|
109
|
+
'<script src="dom/insert_css_test.js"><\/script>' +
|
110
|
+
'<script src="dom/resolve_list_test.js"><\/script>' +
|
111
|
+
'<script src="dom/rename_element_test.js"><\/script>' +
|
112
|
+
'<script src="dom/set_styles_test.js"><\/script>' +
|
113
|
+
'<script src="dom/set_attributes_test.js"><\/script>' +
|
114
|
+
'<script src="dom/parse_test.js"><\/script>' +
|
115
|
+
'<script src="quirks/clean_pasted_html_test.js"><\/script>' +
|
116
|
+
'<script src="undo_manager_test.js"><\/script>' +
|
117
|
+
'<script src="editor_test.js"><\/script>'
|
118
|
+
);
|
119
|
+
}
|
120
|
+
</script>
|
121
|
+
|
122
|
+
<h1 id="qunit-header">wysihtml5 - Test Suite</h1>
|
123
|
+
<h2 id="qunit-banner"></h2>
|
124
|
+
<div id="qunit-testrunner-toolbar"></div>
|
125
|
+
<h2 id="qunit-userAgent"></h2>
|
126
|
+
<ol id="qunit-tests"></ol>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module("wysihtml5.lang.array");
|
2
|
+
|
3
|
+
test("contains()", function() {
|
4
|
+
var arr = [1, "2", "foo"];
|
5
|
+
ok(wysihtml5.lang.array(arr).contains(1));
|
6
|
+
ok(!wysihtml5.lang.array(arr).contains(2));
|
7
|
+
ok(wysihtml5.lang.array(arr).contains("2"));
|
8
|
+
ok(wysihtml5.lang.array(arr).contains("foo"));
|
9
|
+
});
|
10
|
+
|
11
|
+
test("without()", function() {
|
12
|
+
var arr = [1, 2, 3];
|
13
|
+
deepEqual(wysihtml5.lang.array(arr).without([1]), [2, 3]);
|
14
|
+
deepEqual(wysihtml5.lang.array(arr).without([4]), [1, 2, 3]);
|
15
|
+
});
|
16
|
+
|
17
|
+
test("get()", function() {
|
18
|
+
var nodeList = document.getElementsByTagName("*"),
|
19
|
+
arr = wysihtml5.lang.array(nodeList).get();
|
20
|
+
equal(arr.length, nodeList.length);
|
21
|
+
ok(arr instanceof Array);
|
22
|
+
});
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module("wysihtml5.lang.object");
|
2
|
+
|
3
|
+
test("merge()", function() {
|
4
|
+
var obj = { foo: 1, bar: 1 },
|
5
|
+
returnValue = wysihtml5.lang.object(obj).merge({ bar: 2, baz: 3 }).get();
|
6
|
+
equal(returnValue, obj);
|
7
|
+
deepEqual(obj, { foo: 1, bar: 2, baz: 3 });
|
8
|
+
});
|
9
|
+
|
10
|
+
test("clone()", function() {
|
11
|
+
var obj = { foo: true },
|
12
|
+
returnValue = wysihtml5.lang.object(obj).clone();
|
13
|
+
ok(obj != returnValue);
|
14
|
+
deepEqual(obj, returnValue);
|
15
|
+
});
|
16
|
+
|
17
|
+
test("isArray()", function() {
|
18
|
+
ok(wysihtml5.lang.object([]).isArray());
|
19
|
+
ok(!wysihtml5.lang.object({}).isArray());
|
20
|
+
ok(!wysihtml5.lang.object(document.body.childNodes).isArray());
|
21
|
+
ok(!wysihtml5.lang.object("1,2,3").isArray());
|
22
|
+
});
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module("wysihtml5.lang.string");
|
2
|
+
|
3
|
+
test("trim()", function() {
|
4
|
+
equal(wysihtml5.lang.string(" foo \n").trim(), "foo");
|
5
|
+
});
|
6
|
+
|
7
|
+
test("interpolate()", function() {
|
8
|
+
equal(
|
9
|
+
wysihtml5.lang.string("Hello #{name}, I LOVE YOUR NAME. IT'S VERY GERMAN AND SOUNDS STRONG.").interpolate({ name: "Reinhold" }),
|
10
|
+
"Hello Reinhold, I LOVE YOUR NAME. IT'S VERY GERMAN AND SOUNDS STRONG."
|
11
|
+
);
|
12
|
+
});
|
13
|
+
|
14
|
+
test("replace()", function() {
|
15
|
+
equal(
|
16
|
+
wysihtml5.lang.string("I LOVE CAKE").replace("CAKE").by("BOOBS"),
|
17
|
+
"I LOVE BOOBS"
|
18
|
+
);
|
19
|
+
});
|
@@ -0,0 +1,11 @@
|
|
1
|
+
if (wysihtml5.browser.supported()) {
|
2
|
+
module("wysihtml5.quirks.cleanPastedHTML");
|
3
|
+
|
4
|
+
test("Basic test", function() {
|
5
|
+
wysihtml5.assert.htmlEqual(
|
6
|
+
wysihtml5.quirks.cleanPastedHTML("<u>See: </u><a href=\"http://www.google.com\"><u><b>best search engine</b></u></a>"),
|
7
|
+
"<u>See: </u><a href=\"http://www.google.com\"><b>best search engine</b></a>",
|
8
|
+
"Correctly removed <u> within <a>"
|
9
|
+
);
|
10
|
+
});
|
11
|
+
}
|
@@ -0,0 +1,94 @@
|
|
1
|
+
if (wysihtml5.browser.supportsCommand(document, "insertHTML")) {
|
2
|
+
|
3
|
+
module("wysihtml5.UndoManager", {
|
4
|
+
setup: function() {
|
5
|
+
this.textareaElement = document.createElement("textarea");
|
6
|
+
this.textareaElement.value = "1";
|
7
|
+
|
8
|
+
document.body.appendChild(this.textareaElement);
|
9
|
+
},
|
10
|
+
|
11
|
+
teardown: function() {
|
12
|
+
var leftover;
|
13
|
+
while (leftover = document.querySelector("iframe.wysihtml5-sandbox, input[name='_wysihtml5_mode']")) {
|
14
|
+
leftover.parentNode.removeChild(leftover);
|
15
|
+
}
|
16
|
+
document.body.removeChild(this.textareaElement);
|
17
|
+
},
|
18
|
+
|
19
|
+
triggerUndo: function(editor) {
|
20
|
+
this.triggerKey(editor, 90);
|
21
|
+
},
|
22
|
+
|
23
|
+
triggerRedo: function(editor) {
|
24
|
+
this.triggerKey(editor, 89);
|
25
|
+
},
|
26
|
+
|
27
|
+
triggerKey: function(editor, keyCode) {
|
28
|
+
var event;
|
29
|
+
try {
|
30
|
+
event = editor.composer.sandbox.getDocument().createEvent("KeyEvents");
|
31
|
+
event.initKeyEvent("keydown", true, true, editor.composer.sandbox.getWindow(), true, false, false, false, keyCode, keyCode);
|
32
|
+
} catch(e) {
|
33
|
+
event = editor.composer.sandbox.getDocument().createEvent("Events");
|
34
|
+
event.initEvent("keydown", true, true);
|
35
|
+
event.ctrlKey = true;
|
36
|
+
event.keyCode = keyCode;
|
37
|
+
}
|
38
|
+
editor.composer.element.dispatchEvent(event);
|
39
|
+
}
|
40
|
+
});
|
41
|
+
|
42
|
+
|
43
|
+
asyncTest("Basic test", function() {
|
44
|
+
expect(5);
|
45
|
+
|
46
|
+
var that = this,
|
47
|
+
editor = new wysihtml5.Editor(this.textareaElement);
|
48
|
+
editor.on("load", function() {
|
49
|
+
editor.setValue("1 2").fire("newword:composer");
|
50
|
+
editor.setValue("1 2 3").fire("newword:composer");
|
51
|
+
editor.setValue("1 2 3 4").fire("newword:composer");
|
52
|
+
editor.setValue("1 2 3 4 5");
|
53
|
+
|
54
|
+
that.triggerUndo(editor);
|
55
|
+
equal(editor.getValue(), "1 2 3 4");
|
56
|
+
that.triggerRedo(editor);
|
57
|
+
that.triggerRedo(editor);
|
58
|
+
equal(editor.getValue(), "1 2 3 4 5");
|
59
|
+
that.triggerUndo(editor);
|
60
|
+
that.triggerUndo(editor);
|
61
|
+
equal(editor.getValue(), "1 2 3");
|
62
|
+
that.triggerUndo(editor);
|
63
|
+
that.triggerUndo(editor);
|
64
|
+
equal(editor.getValue(), "1");
|
65
|
+
that.triggerUndo(editor);
|
66
|
+
that.triggerUndo(editor);
|
67
|
+
equal(editor.getValue(), "1");
|
68
|
+
|
69
|
+
start();
|
70
|
+
});
|
71
|
+
});
|
72
|
+
|
73
|
+
|
74
|
+
asyncTest("Test commands", function() {
|
75
|
+
expect(3);
|
76
|
+
|
77
|
+
var that = this,
|
78
|
+
editor = new wysihtml5.Editor(this.textareaElement);
|
79
|
+
editor.on("load", function() {
|
80
|
+
editor.setValue("<b>1</b>").fire("beforecommand:composer");
|
81
|
+
editor.setValue("<i><b>1</b></i>").fire("beforecommand:composer");
|
82
|
+
|
83
|
+
that.triggerUndo(editor);
|
84
|
+
equal(editor.getValue(), "<b>1</b>");
|
85
|
+
that.triggerRedo(editor);
|
86
|
+
equal(editor.getValue(), "<i><b>1</b></i>");
|
87
|
+
that.triggerUndo(editor);
|
88
|
+
that.triggerUndo(editor);
|
89
|
+
equal(editor.getValue(), "1");
|
90
|
+
|
91
|
+
start();
|
92
|
+
});
|
93
|
+
});
|
94
|
+
}
|
metadata
ADDED
@@ -0,0 +1,116 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: wysihtml5_with_ps
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Swami Atma
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-09-18 00:00:00.000000000 Z
|
13
|
+
dependencies: []
|
14
|
+
description: Temporary clone of wysihtml5. I need a published version supporting p
|
15
|
+
tags to include in my gem so I'll use this until wysihtml5 0.4 is published.
|
16
|
+
email:
|
17
|
+
- swami@TenThousandHours.eu
|
18
|
+
executables: []
|
19
|
+
extensions: []
|
20
|
+
extra_rdoc_files: []
|
21
|
+
files:
|
22
|
+
- lib/base/base.js
|
23
|
+
- lib/rangy/rangy-core.js
|
24
|
+
- lib/wysihtml5_with_ps/version.rb
|
25
|
+
- Rakefile
|
26
|
+
- Makefile
|
27
|
+
- test/assert/html_equal_test.js
|
28
|
+
- test/browser_test.js
|
29
|
+
- test/dom/auto_link_test.js
|
30
|
+
- test/dom/contains_test.js
|
31
|
+
- test/dom/convert_to_list_test.js
|
32
|
+
- test/dom/copy_attributes_test.js
|
33
|
+
- test/dom/copy_styles_test.js
|
34
|
+
- test/dom/delegate_test.js
|
35
|
+
- test/dom/get_as_dom_test.js
|
36
|
+
- test/dom/get_parent_element_test.js
|
37
|
+
- test/dom/get_style_test.js
|
38
|
+
- test/dom/has_element_with_class_name_test.js
|
39
|
+
- test/dom/has_element_with_tag_name_test.js
|
40
|
+
- test/dom/insert_css_test.js
|
41
|
+
- test/dom/observe_test.js
|
42
|
+
- test/dom/parse_test.js
|
43
|
+
- test/dom/rename_element_test.js
|
44
|
+
- test/dom/resolve_list_test.js
|
45
|
+
- test/dom/sandbox_test.js
|
46
|
+
- test/dom/set_attributes_test.js
|
47
|
+
- test/dom/set_styles_test.js
|
48
|
+
- test/editor_test.js
|
49
|
+
- test/incompatible_test.js
|
50
|
+
- test/index.html
|
51
|
+
- test/lang/array_test.js
|
52
|
+
- test/lang/object_test.js
|
53
|
+
- test/lang/string_test.js
|
54
|
+
- test/quirks/clean_pasted_html_test.js
|
55
|
+
- test/undo_manager_test.js
|
56
|
+
homepage: https://github.com/allesklar/wysihtml5_with_ps
|
57
|
+
licenses: []
|
58
|
+
post_install_message:
|
59
|
+
rdoc_options: []
|
60
|
+
require_paths:
|
61
|
+
- lib
|
62
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
64
|
+
requirements:
|
65
|
+
- - ! '>='
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
68
|
+
segments:
|
69
|
+
- 0
|
70
|
+
hash: -2162486776215135411
|
71
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
segments:
|
78
|
+
- 0
|
79
|
+
hash: -2162486776215135411
|
80
|
+
requirements: []
|
81
|
+
rubyforge_project:
|
82
|
+
rubygems_version: 1.8.23
|
83
|
+
signing_key:
|
84
|
+
specification_version: 3
|
85
|
+
summary: Temporary clone of wysihtml5. I need a published version supporting p tags
|
86
|
+
to include in my gem so I'll use this until wysihtml5 0.4 is published.
|
87
|
+
test_files:
|
88
|
+
- test/assert/html_equal_test.js
|
89
|
+
- test/browser_test.js
|
90
|
+
- test/dom/auto_link_test.js
|
91
|
+
- test/dom/contains_test.js
|
92
|
+
- test/dom/convert_to_list_test.js
|
93
|
+
- test/dom/copy_attributes_test.js
|
94
|
+
- test/dom/copy_styles_test.js
|
95
|
+
- test/dom/delegate_test.js
|
96
|
+
- test/dom/get_as_dom_test.js
|
97
|
+
- test/dom/get_parent_element_test.js
|
98
|
+
- test/dom/get_style_test.js
|
99
|
+
- test/dom/has_element_with_class_name_test.js
|
100
|
+
- test/dom/has_element_with_tag_name_test.js
|
101
|
+
- test/dom/insert_css_test.js
|
102
|
+
- test/dom/observe_test.js
|
103
|
+
- test/dom/parse_test.js
|
104
|
+
- test/dom/rename_element_test.js
|
105
|
+
- test/dom/resolve_list_test.js
|
106
|
+
- test/dom/sandbox_test.js
|
107
|
+
- test/dom/set_attributes_test.js
|
108
|
+
- test/dom/set_styles_test.js
|
109
|
+
- test/editor_test.js
|
110
|
+
- test/incompatible_test.js
|
111
|
+
- test/index.html
|
112
|
+
- test/lang/array_test.js
|
113
|
+
- test/lang/object_test.js
|
114
|
+
- test/lang/string_test.js
|
115
|
+
- test/quirks/clean_pasted_html_test.js
|
116
|
+
- test/undo_manager_test.js
|