diff --git a/src/Kelpie.jl b/src/Kelpie.jl index 530609a..1a6469f 100644 --- a/src/Kelpie.jl +++ b/src/Kelpie.jl @@ -61,10 +61,10 @@ const HTML_ELEMENTS = [ ] """ - link_or_text!(node, content) + 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. +Converts each `content` to an `EzXML.TextNode` if it isn't already an `EzXML.Node` and links +it to `node`. ```jldoctest julia> import EzXML: ElementNode, prettyprint; import Kelpie: link_or_text! @@ -77,30 +77,24 @@ julia> prettyprint(link_or_text!(ElementNode("div"), ElementNode("br"))) julia> prettyprint(link_or_text!(ElementNode("h1"), "Kelpie.jl"))

Kelpie.jl

-julia> prettyprint(link_or_text!(ElementNode("div"), ["The end", ElementNode("hr")])) +julia> prettyprint(link_or_text!(ElementNode("div"), "The end", ElementNode("hr")))
The end
``` """ -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) +function link_or_text!(node, content...) for con in content - link_or_text!(node, con) + if typeof(con) <: EzXML.Node + link!(node, con) + else + link!(node, EzXML.TextNode(string(con))) + end #if end #for return node end #function """ - html_element(name, content=nothing; kwargs...) + html_element(name, content...=nothing; kwargs...) Creates a new `EzXML.Node` with name `name`, containing `content`, and with attributes specified by `kwargs`. @@ -117,7 +111,7 @@ julia> prettyprint(html_element("span", "MillironX"; class="label-primary")) MillironX ``` """ -function html_element(name::AbstractString, content=nothing; kwargs...) +function html_element(name::AbstractString, content...=nothing; kwargs...) el = EzXML.ElementNode(name) for (key, value) in kwargs @@ -125,34 +119,34 @@ function html_element(name::AbstractString, content=nothing; kwargs...) end #for if !isnothing(content) - link_or_text!(el, content) + link_or_text!(el, content...) end #if return el end #function """ - html(content) + html(content...) Creates a new HTML document filled with `content`. """ -function html(content) +function html(content...) doc = EzXML.HTMLDocumentNode(nothing, nothing) - link_or_text!(doc, content) + link_or_text!(doc, content...) return doc end #function for symbol in HTML_ELEMENTS name = string(symbol) - @eval function $symbol(content=nothing; kwargs...) - return html_element($name, content; kwargs...) + @eval function $symbol(content...=nothing; kwargs...) + return html_element($name, content...; kwargs...) end #function @eval export $symbol end -function html_div(content=nothing; kwargs...) +function html_div(content...=nothing; kwargs...) return html_element("div", content; kwargs...) end #function