### Import :
```js
const HTMLSimpleDOM = brackets.getModule("language/HTMLSimpleDOM")
```
## SimpleNode
**Kind**: global class
* [SimpleNode](#SimpleNode)
* [new SimpleNode(properties)](#new_SimpleNode_new)
* [.update()](#SimpleNode+update)
* [.updateAttributeSignature()](#SimpleNode+updateAttributeSignature)
* [.isElement()](#SimpleNode+isElement) ⇒ bool
* [.isText()](#SimpleNode+isText) ⇒ bool
### new SimpleNode(properties)
A SimpleNode represents one node in a SimpleDOM tree. Each node can have
any set of properties on it, though there are a couple of assumptions made.
Elements will have `children` and `attributes` properties. Text nodes will have a `content`
property. All Elements will have a `tagID` and text nodes *can* have one.
| Param | Type | Description |
| --- | --- | --- |
| properties | Object | the properties provided will be set on the new object. |
### simpleNode.update()
Updates signatures used to optimize the number of comparisons done during
diffing. This is important to call if you change:
* children
* child node attributes
* text content of a text node
* child node text
**Kind**: instance method of [SimpleNode](#SimpleNode)
### simpleNode.updateAttributeSignature()
Updates the signature of this node's attributes. Call this after making attribute changes.
**Kind**: instance method of [SimpleNode](#SimpleNode)
### simpleNode.isElement() ⇒ bool
Is this node an element node?
**Kind**: instance method of [SimpleNode](#SimpleNode)
**Returns**: bool - true if it is an element
### simpleNode.isText() ⇒ bool
Is this node a text node?
**Kind**: instance method of [SimpleNode](#SimpleNode)
**Returns**: bool - true if it is text
## Builder
**Kind**: global class
* [Builder](#Builder)
* [new Builder(text, startOffset, startOffsetPos)](#new_Builder_new)
* [.getID](#Builder+getID) ⇒ int
* [.build(strict, markCache)](#Builder+build) ⇒ [SimpleNode](#SimpleNode)
* [.getNewID()](#Builder+getNewID) ⇒ int
### new Builder(text, startOffset, startOffsetPos)
A Builder creates a SimpleDOM tree of SimpleNode objects representing the
"important" contents of an HTML document. It does not include things like comments.
The nodes include information about their position in the text provided.
| Param | Type | Description |
| --- | --- | --- |
| text | string | The text to parse |
| startOffset | int | starting offset in the text |
| startOffsetPos | Object | line/ch position in the text |
### builder.getID ⇒ int
Returns the best tag ID for the new tag object given.
The default implementation just calls `getNewID`
and returns a unique ID.
**Kind**: instance property of [Builder](#Builder)
**Returns**: int - unique tag ID
| Param | Type | Description |
| --- | --- | --- |
| newTag | Object | tag object to potentially inspect to choose an ID |
### builder.build(strict, markCache) ⇒ [SimpleNode](#SimpleNode)
Builds the SimpleDOM.
**Kind**: instance method of [Builder](#Builder)
**Returns**: [SimpleNode](#SimpleNode) - root of tree or null if parsing failed
| Param | Type | Description |
| --- | --- | --- |
| strict | bool | if errors are detected, halt and return null |
| markCache | Object | a cache that can be used in ID generation (is passed to `getID`) |
### builder.getNewID() ⇒ int
Returns a new tag ID.
**Kind**: instance method of [Builder](#Builder)
**Returns**: int - unique tag ID
## build(text, strict) ⇒ [SimpleNode](#SimpleNode)
Builds a SimpleDOM from the text provided. If `strict` mode is true, parsing
will halt as soon as any error is seen and null will be returned.
**Kind**: global function
**Returns**: [SimpleNode](#SimpleNode) - root of tree or null if strict failed
| Param | Type | Description |
| --- | --- | --- |
| text | string | Text of document to parse |
| strict | bool | True for strict parsing |