From 976b5bf7c587deee9d685261909378cb62fae7d8 Mon Sep 17 00:00:00 2001
From: flywind <43030857+xflywind@users.noreply.github.com>
Date: Mon, 23 Nov 2020 18:36:05 +0800
Subject: [PATCH] correct errors in xmltree docs (#16104)
(cherry picked from commit 79ec1bdcbb6a9d957def958bc9eff3b4c4a7f1d4)
---
lib/pure/xmltree.nim | 153 ++++++++++++++++++++-----------------------
1 file changed, 72 insertions(+), 81 deletions(-)
diff --git a/lib/pure/xmltree.nim b/lib/pure/xmltree.nim
index 6ad90b0423..62a62eb4b7 100644
--- a/lib/pure/xmltree.nim
+++ b/lib/pure/xmltree.nim
@@ -9,26 +9,22 @@
## A simple XML tree generator.
##
-## .. code-block::
-## import xmltree
-##
-## var g = newElement("myTag")
-## g.add newText("some text")
-## g.add newComment("this is comment")
-##
-## var h = newElement("secondTag")
-## h.add newEntity("some entity")
-##
-## let att = {"key1": "first value", "key2": "second value"}.toXmlAttributes
-## let k = newXmlTree("treeTag", [g, h], att)
-##
-## echo k
-## #
-## # some text
-## # &some entity;
-## #
-##
-##
+runnableExamples:
+ var g = newElement("myTag")
+ g.add newText("some text")
+ g.add newComment("this is comment")
+
+ var h = newElement("secondTag")
+ h.add newEntity("some entity")
+
+ let att = {"key1": "first value", "key2": "second value"}.toXmlAttributes
+ let k = newXmlTree("treeTag", [g, h], att)
+
+ doAssert $k == """
+ some text
+ &some entity;
+"""
+
## **See also:**
## * `xmlparser module `_ for high-level XML parsing
## * `parsexml module `_ for low-level XML parsing
@@ -146,21 +142,20 @@ proc newXmlTree*(tag: string, children: openArray[XmlNode],
## See also:
## * `newElement proc <#newElement,string>`_
## * [<> macro](#<>.m,untyped)
- ##
- ## .. code-block::
- ## var g = newElement("myTag")
- ## g.add newText("some text")
- ## g.add newComment("this is comment")
- ## var h = newElement("secondTag")
- ## h.add newEntity("some entity")
- ## let att = {"key1": "first value", "key2": "second value"}.toXmlAttributes
- ## let k = newXmlTree("treeTag", [g, h], att)
- ##
- ## echo k
- ## ##
- ## ## some text
- ## ## &some entity;
- ## ##
+
+ runnableExamples:
+ var g = newElement("myTag")
+ g.add newText("some text")
+ g.add newComment("this is comment")
+ var h = newElement("secondTag")
+ h.add newEntity("some entity")
+ let att = {"key1": "first value", "key2": "second value"}.toXmlAttributes
+ let k = newXmlTree("treeTag", [g, h], att)
+
+ doAssert $k == """
+ some text
+ &some entity;
+"""
result = newXmlNode(xnElement)
result.fTag = tag
@@ -390,26 +385,24 @@ proc `[]`*(n: var XmlNode, i: int): var XmlNode {.inline.} =
proc clear*(n: var XmlNode) =
## Recursively clears all children of an XmlNode.
##
- ## .. code-block::
- ## var g = newElement("myTag")
- ## g.add newText("some text")
- ## g.add newComment("this is comment")
- ##
- ## var h = newElement("secondTag")
- ## h.add newEntity("some entity")
- ##
- ## let att = {"key1": "first value", "key2": "second value"}.toXmlAttributes
- ## var k = newXmlTree("treeTag", [g, h], att)
- ##
- ## echo k
- ## ##
- ## ## some text
- ## ## &some entity;
- ## ##
- ##
- ## clear(k)
- ## echo k
- ## ##
+ runnableExamples:
+ var g = newElement("myTag")
+ g.add newText("some text")
+ g.add newComment("this is comment")
+
+ var h = newElement("secondTag")
+ h.add newEntity("some entity")
+
+ let att = {"key1": "first value", "key2": "second value"}.toXmlAttributes
+ var k = newXmlTree("treeTag", [g, h], att)
+
+ doAssert $k == """
+ some text
+ &some entity;
+"""
+
+ clear(k)
+ doAssert $k == """"""
for i in 0 ..< n.len:
clear(n[i])
@@ -419,25 +412,24 @@ proc clear*(n: var XmlNode) =
iterator items*(n: XmlNode): XmlNode {.inline.} =
## Iterates over all direct children of `n`.
- ##
- ## **Examples:**
- ##
- ## .. code-block::
- ## var g = newElement("myTag")
- ## g.add newText("some text")
- ## g.add newComment("this is comment")
- ##
- ## var h = newElement("secondTag")
- ## h.add newEntity("some entity")
- ## g.add h
- ##
- ## assert $g == "some text&some entity;"
- ## for x in g: # the same as `for x in items(g):`
- ## echo x
- ##
- ## # some text
- ## #
- ## # &some entity;
+
+ runnableExamples:
+ var g = newElement("myTag")
+ g.add newText("some text")
+ g.add newComment("this is comment")
+
+ var h = newElement("secondTag")
+ h.add newEntity("some entity")
+ g.add h
+
+ assert $g == "some text&some entity;"
+
+ # for x in g: # the same as `for x in items(g):`
+ # echo x
+
+ # some text
+ #
+ # &some entity;
assert n.k == xnElement
for i in 0 .. n.len-1: yield n[i]
@@ -451,13 +443,12 @@ proc toXmlAttributes*(keyValuePairs: varargs[tuple[key,
val: string]]): XmlAttributes =
## Converts `{key: value}` pairs into `XmlAttributes`.
##
- ## .. code-block::
- ## let att = {"key1": "first value", "key2": "second value"}.toXmlAttributes
- ## var j = newElement("myTag")
- ## j.attrs = att
- ##
- ## echo j
- ## ##
+ runnableExamples:
+ let att = {"key1": "first value", "key2": "second value"}.toXmlAttributes
+ var j = newElement("myTag")
+ j.attrs = att
+
+ doAssert $j == """"""
newStringTable(keyValuePairs)