From 48f471e11eb676222ee0303a56e9876829a0c5a2 Mon Sep 17 00:00:00 2001 From: Juan Carlos Date: Tue, 7 Apr 2020 22:36:51 -0300 Subject: [PATCH 1/8] Add jsdomparser --- changelog.md | 1 + lib/js/jsdomparser.nim | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 lib/js/jsdomparser.nim diff --git a/changelog.md b/changelog.md index b960f52135643..0e4694e0ec224 100644 --- a/changelog.md +++ b/changelog.md @@ -4,6 +4,7 @@ ## Standard library additions and changes +- Add `jsdomparser` the [DOM Parser](https://developer.mozilla.org/en-US/docs/Web/API/DOMParser) for JavaScript target. ## Language changes diff --git a/lib/js/jsdomparser.nim b/lib/js/jsdomparser.nim new file mode 100644 index 0000000000000..d5097c3d2c582 --- /dev/null +++ b/lib/js/jsdomparser.nim @@ -0,0 +1,23 @@ +## DOM Parser for JavaScript target +## ================================ +## +## * https://developer.mozilla.org/en-US/docs/Web/API/DOMParser +## +## .. code-block:: nim +## let prsr = newDOMParser() +## discard prsr.parseFromString("Hello World".cstring) + +include "system/inclrtl" + +since (1, 3): + from dom import Document + export Document + + type DOMParser* = ref object ## \ + ## DOM Parser object (defined on browser only, may not be on NodeJS). + + func newDOMParser*(): DOMParser {.importcpp: "(new DOMParser()​​)".} + ## DOM Parser constructor. + + func parseFromString*(this: DOMParser; str: cstring, mimeType = "text/html".cstring): Document {.importcpp.} + ## Parse from string to Document. From 87f87383c7506f829c912a65caa901b3d341dbd7 Mon Sep 17 00:00:00 2001 From: Juan Carlos Date: Tue, 7 Apr 2020 22:39:42 -0300 Subject: [PATCH 2/8] Add jsdomparser --- lib/js/jsdomparser.nim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/js/jsdomparser.nim b/lib/js/jsdomparser.nim index d5097c3d2c582..2e456054812a7 100644 --- a/lib/js/jsdomparser.nim +++ b/lib/js/jsdomparser.nim @@ -19,5 +19,5 @@ since (1, 3): func newDOMParser*(): DOMParser {.importcpp: "(new DOMParser()​​)".} ## DOM Parser constructor. - func parseFromString*(this: DOMParser; str: cstring, mimeType = "text/html".cstring): Document {.importcpp.} + func parseFromString*(this: DOMParser; str: cstring; mimeType = "text/html".cstring): Document {.importcpp.} ## Parse from string to Document. From 6f89c3d45a42dabc6b7dc5d4129d46f2960a2061 Mon Sep 17 00:00:00 2001 From: Juan Carlos Date: Tue, 7 Apr 2020 22:44:49 -0300 Subject: [PATCH 3/8] Add jsdomparser --- lib/js/jsdomparser.nim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/js/jsdomparser.nim b/lib/js/jsdomparser.nim index 2e456054812a7..eba942587e8b9 100644 --- a/lib/js/jsdomparser.nim +++ b/lib/js/jsdomparser.nim @@ -10,8 +10,8 @@ include "system/inclrtl" since (1, 3): - from dom import Document - export Document + import dom + export dom type DOMParser* = ref object ## \ ## DOM Parser object (defined on browser only, may not be on NodeJS). From d3812561ed1128c036975f84f01f0f1e56078289 Mon Sep 17 00:00:00 2001 From: Juan Carlos Date: Wed, 8 Apr 2020 18:17:15 -0300 Subject: [PATCH 4/8] https://github.com/nim-lang/Nim/pull/13920#issuecomment-610727142 --- lib/js/dom.nim | 18 +++++++++++++++++- lib/js/jsdomparser.nim | 23 ----------------------- 2 files changed, 17 insertions(+), 24 deletions(-) delete mode 100644 lib/js/jsdomparser.nim diff --git a/lib/js/dom.nim b/lib/js/dom.nim index 92cc038c9b9ba..989cd9b8186f4 100644 --- a/lib/js/dom.nim +++ b/lib/js/dom.nim @@ -9,7 +9,7 @@ ## Declaration of the Document Object Model for the `JavaScript backend ## `_. - +include "system/inclrtl" when not defined(js) and not defined(Nimdoc): {.error: "This module only works on the JavaScript platform".} @@ -1297,3 +1297,19 @@ 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): + 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("Hello World".cstring) + + func newDOMParser*(): DOMParser {.importcpp: "(new DOMParser()​​)".} + ## DOM Parser constructor. + + func parseFromString*(this: DOMParser; str: cstring; mimeType = "text/html".cstring): Document {.importcpp.} + ## Parse from string to Document. diff --git a/lib/js/jsdomparser.nim b/lib/js/jsdomparser.nim deleted file mode 100644 index eba942587e8b9..0000000000000 --- a/lib/js/jsdomparser.nim +++ /dev/null @@ -1,23 +0,0 @@ -## DOM Parser for JavaScript target -## ================================ -## -## * https://developer.mozilla.org/en-US/docs/Web/API/DOMParser -## -## .. code-block:: nim -## let prsr = newDOMParser() -## discard prsr.parseFromString("Hello World".cstring) - -include "system/inclrtl" - -since (1, 3): - import dom - export dom - - type DOMParser* = ref object ## \ - ## DOM Parser object (defined on browser only, may not be on NodeJS). - - func newDOMParser*(): DOMParser {.importcpp: "(new DOMParser()​​)".} - ## DOM Parser constructor. - - func parseFromString*(this: DOMParser; str: cstring; mimeType = "text/html".cstring): Document {.importcpp.} - ## Parse from string to Document. From ea65e27ddd53357c4a281f1480d692f48e065a46 Mon Sep 17 00:00:00 2001 From: Juan Carlos Date: Wed, 8 Apr 2020 18:19:48 -0300 Subject: [PATCH 5/8] https://github.com/nim-lang/Nim/pull/13920#issuecomment-610727142 --- changelog.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/changelog.md b/changelog.md index 0e4694e0ec224..62db91622857f 100644 --- a/changelog.md +++ b/changelog.md @@ -4,7 +4,8 @@ ## Standard library additions and changes -- Add `jsdomparser` the [DOM Parser](https://developer.mozilla.org/en-US/docs/Web/API/DOMParser) for JavaScript target. +- Add [DOM Parser](https://developer.mozilla.org/en-US/docs/Web/API/DOMParser) + to the `dom` module for the JavaScript target. ## Language changes From bb044795c2eea1731e044fe53775144d5c5630f2 Mon Sep 17 00:00:00 2001 From: Juan Carlos Date: Wed, 8 Apr 2020 18:21:49 -0300 Subject: [PATCH 6/8] https://github.com/nim-lang/Nim/pull/13920#issuecomment-610727142 --- lib/js/dom.nim | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/lib/js/dom.nim b/lib/js/dom.nim index 989cd9b8186f4..05e826416909c 100644 --- a/lib/js/dom.nim +++ b/lib/js/dom.nim @@ -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("Hello World".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.} @@ -1300,14 +1310,6 @@ proc offsetLeft*(e: Node): int {.importcpp: "#.offsetLeft", nodecl.} 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("Hello World".cstring) - func newDOMParser*(): DOMParser {.importcpp: "(new DOMParser()​​)".} ## DOM Parser constructor. From 4f3e290d2e7018c9fa815d10a1f3cb2b08bd72c7 Mon Sep 17 00:00:00 2001 From: Juan Carlos Date: Thu, 9 Apr 2020 07:21:10 -0300 Subject: [PATCH 7/8] https://github.com/nim-lang/Nim/pull/13920#discussion_r405932909 --- lib/js/dom.nim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/js/dom.nim b/lib/js/dom.nim index 05e826416909c..ae4426b1bc526 100644 --- a/lib/js/dom.nim +++ b/lib/js/dom.nim @@ -1313,5 +1313,5 @@ since (1, 3): func newDOMParser*(): DOMParser {.importcpp: "(new DOMParser()​​)".} ## DOM Parser constructor. - func parseFromString*(this: DOMParser; str: cstring; mimeType = "text/html".cstring): Document {.importcpp.} - ## Parse from string to Document. + func parseFromString*(this: DOMParser; str: cstring; mimeType: cstring): Document {.importcpp.} + ## Parse from string to `Document`. From 2c2739eb63c9a6dfd783127ae95d1d7d30004642 Mon Sep 17 00:00:00 2001 From: Juan Carlos Date: Fri, 10 Apr 2020 05:38:50 -0300 Subject: [PATCH 8/8] https://github.com/nim-lang/Nim/pull/13920#discussion_r406502592 --- lib/js/dom.nim | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/js/dom.nim b/lib/js/dom.nim index ae4426b1bc526..280e47d8240ff 100644 --- a/lib/js/dom.nim +++ b/lib/js/dom.nim @@ -986,13 +986,13 @@ type passive*: bool since (1, 3): - type DOMParser* = ref object ## \ + 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("Hello World".cstring) + ## let prsr = newDomParser() + ## discard prsr.parseFromString("Hello World".cstring, "text/html".cstring) proc id*(n: Node): cstring {.importcpp: "#.id", nodecl.} @@ -1308,9 +1308,8 @@ 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()​​)".} + func newDomParser*(): DOMParser {.importcpp: "(new DOMParser()​​)".} ## DOM Parser constructor. func parseFromString*(this: DOMParser; str: cstring; mimeType: cstring): Document {.importcpp.}