Skip to content

Commit

Permalink
Add jsdomparser (#13920)
Browse files Browse the repository at this point in the history
* Add jsdomparser

* Add jsdomparser

* Add jsdomparser

* #13920 (comment)

* #13920 (comment)

* #13920 (comment)

* #13920 (comment)

* #13920 (comment)
  • Loading branch information
juancarlospaco authored Apr 13, 2020
1 parent 255698d commit 0a84219
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 1 deletion.
2 changes: 2 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

## Standard library additions and changes

- Add [DOM Parser](https://developer.mozilla.org/en-US/docs/Web/API/DOMParser)
to the `dom` module for the JavaScript target.

## Language changes

Expand Down
19 changes: 18 additions & 1 deletion lib/js/dom.nim
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

## Declaration of the Document Object Model for the `JavaScript backend
## <backends.html#backends-the-javascript-target>`_.

include "system/inclrtl"
when not defined(js) and not defined(Nimdoc):
{.error: "This module only works on the JavaScript platform".}

Expand Down Expand Up @@ -985,6 +985,16 @@ type
once*: bool
passive*: bool

since (1, 3):
type DomParser* = ref object ## \
## DOM Parser object (defined on browser only, may not be on NodeJS).
## * https://developer.mozilla.org/en-US/docs/Web/API/DOMParser
##
## .. code-block:: nim
## let prsr = newDomParser()
## discard prsr.parseFromString("<html><marquee>Hello World</marquee></html>".cstring, "text/html".cstring)


proc id*(n: Node): cstring {.importcpp: "#.id", nodecl.}
proc `id=`*(n: Node; x: cstring) {.importcpp: "#.id = #", nodecl.}
proc class*(n: Node): cstring {.importcpp: "#.className", nodecl.}
Expand Down Expand Up @@ -1297,3 +1307,10 @@ proc offsetHeight*(e: Node): int {.importcpp: "#.offsetHeight", nodecl.}
proc offsetWidth*(e: Node): int {.importcpp: "#.offsetWidth", nodecl.}
proc offsetTop*(e: Node): int {.importcpp: "#.offsetTop", nodecl.}
proc offsetLeft*(e: Node): int {.importcpp: "#.offsetLeft", nodecl.}

since (1, 3):
func newDomParser*(): DOMParser {.importcpp: "(new DOMParser()​​)".}
## DOM Parser constructor.

func parseFromString*(this: DOMParser; str: cstring; mimeType: cstring): Document {.importcpp.}
## Parse from string to `Document`.

0 comments on commit 0a84219

Please sign in to comment.