convert-rich-text
Advanced tools
Comparing version 1.2.1 to 2.0.0
11
index.js
@@ -1,9 +0,8 @@ | ||
var Doc = require('./lib/doc'); | ||
var jsdom = require('jsdom').jsdom; | ||
var convert = require('./lib/convert'); | ||
module.exports = function(delta, formats, options) { | ||
var doc = new Doc(formats, options); | ||
for (var i = 0; i < delta.ops.length; i++) { | ||
doc.writeOp(delta.ops[i]); | ||
} | ||
return doc.getHTML(); | ||
options.document = jsdom(); | ||
return convert(delta, formats, options); | ||
}; | ||
@@ -7,5 +7,6 @@ var dom = require('./dom'); | ||
this.formats = formats; | ||
this.document = options.document; | ||
this.blockTag = options && options.blockTag || 'div'; | ||
this.inlineTag = options && options.inlineTag || 'span'; | ||
this.root = document.createElement('div'); | ||
this.root = this.document.createElement('div'); | ||
} | ||
@@ -44,3 +45,3 @@ | ||
if (!this.line) { | ||
this.line = document.createElement(this.blockTag); | ||
this.line = this.document.createElement(this.blockTag); | ||
this.root.appendChild(this.line); | ||
@@ -51,3 +52,3 @@ } | ||
var node = document.createTextNode(text); | ||
var node = this.document.createTextNode(text); | ||
@@ -76,3 +77,3 @@ this.line.appendChild(node); | ||
if (dom.VOID_TAGS[format.tag]) { | ||
node = dom(node).replaceWith(document.createElement(format.tag)).get(); | ||
node = dom(node).replaceWith(this.document.createElement(format.tag)).get(); | ||
} else { | ||
@@ -102,3 +103,9 @@ node = dom(node).wrap(format.tag).get(); | ||
if (format.class) { | ||
node.classList.add(format.class + value); | ||
if (typeof node.classList === 'undefined') { | ||
var newClass = format.class + value; | ||
var className = node.className; | ||
node.className = className.length ? (className + ' ' + newClass) : (className + newClass); | ||
} else { | ||
node.classList.add(format.class + value); | ||
} | ||
} | ||
@@ -111,3 +118,3 @@ if (format.style && value !== format.default) { | ||
if (typeof format.add === 'function') { | ||
node = format.add(node, value); | ||
node = format.add(node, value, dom); | ||
} | ||
@@ -114,0 +121,0 @@ |
@@ -7,2 +7,3 @@ var dom = module.exports = function(node) { | ||
this.node = node; | ||
this.document = node.ownerDocument; | ||
}; | ||
@@ -124,3 +125,3 @@ | ||
if (this.node.tagName === newTag) { return this.node; } | ||
var newNode = document.createElement(newTag); | ||
var newNode = this.document.createElement(newTag); | ||
var attributes = this.attributes(); | ||
@@ -166,3 +167,3 @@ if (!dom.VOID_TAGS[newTag]) { this.moveChildren(newNode); } | ||
dom.prototype.wrap = function(tag) { | ||
var wrapper = document.createElement(tag); | ||
var wrapper = this.document.createElement(tag); | ||
if (this.node.parentNode) { | ||
@@ -169,0 +170,0 @@ this.node.parentNode.insertBefore(wrapper, this.node); |
{ | ||
"name": "convert-rich-text", | ||
"version": "1.2.1", | ||
"version": "2.0.0", | ||
"description": "Convert an insert-only rich-text delta into HTML", | ||
"main": "index.js", | ||
"browser": "browser.js", | ||
"scripts": { | ||
@@ -10,3 +11,3 @@ "info": "make info", | ||
"start": "make start", | ||
"test": "make test" | ||
"test": "NODE_ENV=test karma start && mocha test/server/server.js -R spec" | ||
}, | ||
@@ -30,3 +31,5 @@ "repository": { | ||
"homepage": "https://github.com/thomsbg/convert-rich-text", | ||
"dependencies": {}, | ||
"dependencies": { | ||
"jsdom": "^3.1.2" | ||
}, | ||
"devDependencies": { | ||
@@ -37,5 +40,17 @@ "browserify": "^9.0.8", | ||
"jshint": "^2.7.0", | ||
"karma": "^0.13.22", | ||
"karma-chai": "^0.1.0", | ||
"karma-mocha": "^0.2.2", | ||
"karma-phantomjs-launcher": "^1.0.0", | ||
"karma-phantomjs-shim": "^1.2.0", | ||
"karma-source-map-support": "^1.1.0", | ||
"karma-webpack": "^1.7.0", | ||
"mocha-phantomjs": "^3.5.3", | ||
"watchify": "^3.2.0" | ||
"phantomjs-prebuilt": "^2.1.7", | ||
"watchify": "^3.2.0", | ||
"webpack": "^1.12.15" | ||
}, | ||
"engines": { | ||
"node": "<=0.12" | ||
} | ||
} |
@@ -5,2 +5,4 @@ # convert-rich-text | ||
[](https://travis-ci.org/thomsbg/convert-rich-text) | ||
## Install | ||
@@ -69,3 +71,3 @@ | ||
`add: function(node, value)` -- a hook for custom behavior, runs after logic for other options. e.g. | ||
`add: function(node, value[, dom])` -- a hook for custom behavior, runs after logic for other options. e.g. | ||
@@ -107,2 +109,7 @@ ```javascript | ||
## Changelog | ||
- `2.0.0` [Server-side support via jsdom](https://github.com/thomsbg/convert-rich-text/pull/2), node version locked to <=0.12 | ||
- `1.2.1` Beginning of changelog | ||
## Development | ||
@@ -109,0 +116,0 @@ |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
29008
18
542
120
1
15
1
+ Addedjsdom@^3.1.2
+ Addedacorn@0.11.02.7.0(transitive)
+ Addedacorn-globals@1.0.9(transitive)
+ Addedajv@6.12.6(transitive)
+ Addedasn1@0.2.6(transitive)
+ Addedassert-plus@1.0.0(transitive)
+ Addedasynckit@0.4.0(transitive)
+ Addedaws-sign2@0.7.0(transitive)
+ Addedaws4@1.13.2(transitive)
+ Addedbcrypt-pbkdf@1.0.2(transitive)
+ Addedbindings@1.5.0(transitive)
+ Addedbrowser-request@0.3.3(transitive)
+ Addedcaseless@0.12.0(transitive)
+ Addedcombined-stream@1.0.8(transitive)
+ Addedcontextify@0.1.15(transitive)
+ Addedcore-util-is@1.0.2(transitive)
+ Addedcssom@0.3.8(transitive)
+ Addedcssstyle@0.2.37(transitive)
+ Addeddashdash@1.14.1(transitive)
+ Addeddeep-is@0.1.4(transitive)
+ Addeddelayed-stream@1.0.0(transitive)
+ Addeddom-serializer@0.2.2(transitive)
+ Addeddomelementtype@1.3.12.3.0(transitive)
+ Addeddomhandler@2.4.2(transitive)
+ Addeddomutils@1.7.0(transitive)
+ Addedecc-jsbn@0.1.2(transitive)
+ Addedentities@1.1.22.2.0(transitive)
+ Addedescodegen@1.14.3(transitive)
+ Addedesprima@4.0.1(transitive)
+ Addedestraverse@4.3.0(transitive)
+ Addedesutils@2.0.3(transitive)
+ Addedextend@3.0.2(transitive)
+ Addedextsprintf@1.3.0(transitive)
+ Addedfast-deep-equal@3.1.3(transitive)
+ Addedfast-json-stable-stringify@2.1.0(transitive)
+ Addedfast-levenshtein@2.0.6(transitive)
+ Addedfile-uri-to-path@1.0.0(transitive)
+ Addedforever-agent@0.6.1(transitive)
+ Addedform-data@2.3.3(transitive)
+ Addedgetpass@0.1.7(transitive)
+ Addedhar-schema@2.0.0(transitive)
+ Addedhar-validator@5.1.5(transitive)
+ Addedhtmlparser2@3.10.1(transitive)
+ Addedhttp-signature@1.2.0(transitive)
+ Addedinherits@2.0.4(transitive)
+ Addedis-typedarray@1.0.0(transitive)
+ Addedisstream@0.1.2(transitive)
+ Addedjsbn@0.1.1(transitive)
+ Addedjsdom@3.1.2(transitive)
+ Addedjson-schema@0.4.0(transitive)
+ Addedjson-schema-traverse@0.4.1(transitive)
+ Addedjson-stringify-safe@5.0.1(transitive)
+ Addedjsprim@1.4.2(transitive)
+ Addedlevn@0.3.0(transitive)
+ Addedmime-db@1.52.0(transitive)
+ Addedmime-types@2.1.35(transitive)
+ Addednan@2.22.2(transitive)
+ Addednwmatcher@1.4.4(transitive)
+ Addedoauth-sign@0.9.0(transitive)
+ Addedoptionator@0.8.3(transitive)
+ Addedparse5@1.5.1(transitive)
+ Addedperformance-now@2.1.0(transitive)
+ Addedprelude-ls@1.1.2(transitive)
+ Addedpsl@1.15.0(transitive)
+ Addedpunycode@2.3.1(transitive)
+ Addedqs@6.5.3(transitive)
+ Addedreadable-stream@3.6.2(transitive)
+ Addedrequest@2.88.2(transitive)
+ Addedsafe-buffer@5.2.1(transitive)
+ Addedsafer-buffer@2.1.2(transitive)
+ Addedsource-map@0.6.1(transitive)
+ Addedsshpk@1.18.0(transitive)
+ Addedstring_decoder@1.3.0(transitive)
+ Addedtough-cookie@2.5.0(transitive)
+ Addedtunnel-agent@0.6.0(transitive)
+ Addedtweetnacl@0.14.5(transitive)
+ Addedtype-check@0.3.2(transitive)
+ Addeduri-js@4.4.1(transitive)
+ Addedutil-deprecate@1.0.2(transitive)
+ Addeduuid@3.4.0(transitive)
+ Addedverror@1.10.0(transitive)
+ Addedword-wrap@1.2.5(transitive)
+ Addedxml-name-validator@1.0.0(transitive)
+ Addedxmlhttprequest@1.8.0(transitive)