1
0
Fork 0
mirror of https://github.com/MillironX/Kelpie.jl.git synced 2024-11-14 21:43:10 +00:00

Add lazy linking function

Signed-off-by: Thomas A. Christensen II <25492070+MillironX@users.noreply.github.com>
This commit is contained in:
Thomas A. Christensen II 2022-03-31 18:58:15 -05:00
parent f9f1bed651
commit f7ee3e379a
Signed by: millironx
GPG key ID: 139C07724802BC5D

View file

@ -1,5 +1,44 @@
module Kelpie
# Write your package code here.
import EzXML: link!, EzXML
end
"""
link_or_text!(node, content)
Converts `content` to an `EzXML.TextNode` if it isn't already an `EzXML.Node` and links it
to `node`. Will link all nodes in `content` if content is a vector.
```jldoctest
julia> import EzXML: ElementNode, prettyprint; import Kelpie: link_or_text!
julia> prettyprint(link_or_text!(ElementNode("div"), ElementNode("br")))
<div>
<br/>
</div>
julia> prettyprint(link_or_text!(ElementNode("h1"), "Kelpie.jl"))
<h1>Kelpie.jl</h1>
julia> prettyprint(link_or_text!(ElementNode("div"), ["The end", ElementNode("hr")]))
<div>The end<hr/></div>
```
"""
function link_or_text!(node, content)
if typeof(content) <: EzXML.Node
link!(node, content)
else
link!(node, EzXML.TextNode(string(content)))
end #if
return node
end #function
function link_or_text!(node, content::AbstractArray)
for con in content
link_or_text!(node, con)
end #for
return node
end #function
end #module