0.0.4 • Published 3 years ago
compromise-html v0.0.4
Demo
const nlp = require('compromise')
nlp.extend(require('compromise-html'))
let doc = nlp('The Children are right to laugh at you, Ralph')
// create a html rendering of the document
doc.html({ '#Person+': 'red', '#Money+': 'blue' })
/*
<pre>
<span>The Children are right to laugh at you, </span><span class="red">Ralph</span>
</pre>
*/
.html({segments}, {options})
this turns the document into easily-to-display html html.
Special html characters within the document get escaped, in a simple way. Be extra careful when rendering untrusted input, against XSS and other forms of sneaky-html. This library is not considered a battle-tested guard against these security vulnerabilities.
let doc = nlp('i <3 you')
doc.html()
// <div>i <3 you</div>
you can pass-in a mapping of tags to html classes, so that document metadata can be styled by css.
let doc = nlp('made by Spencer Kelly')
doc.html({
'#Person+': 'red',
})
// <pre><span>made by </span><span class="red">Spencer Kelly</span></pre>
The library uses .segment()
method, which is documented here.
by default, whitespace and punctuation are outside the html tag. This is sometimes awkward, and not-ideal.
the method returns html-strings by default, but the library uses Jason Miller's htm library so you can return React Components, or anything:
doc.html(
{},
{
bind: React.createElement,
}
)
See also:
MIT