\ No newline at end of file
diff --git a/samples/StaticWebsite/_homepage.html b/samples/StaticWebsite/_homepage.html
new file mode 100644
index 0000000..f0a3dd5
--- /dev/null
+++ b/samples/StaticWebsite/_homepage.html
@@ -0,0 +1 @@
+Sample App
Homepage
Lorem ipsum dolor sit amet.
\ No newline at end of file
diff --git a/src/Falco.Markup/Attr.fs b/src/Falco.Markup/Attr.fs
index d373348..547d75e 100644
--- a/src/Falco.Markup/Attr.fs
+++ b/src/Falco.Markup/Attr.fs
@@ -18,7 +18,7 @@ module Attr =
"class", " "
"style", "; "
"accept", ", " ]
-
+
/// Merge two XmlAttribute lists
let merge (attrs1 : XmlAttribute list) (attrs2 : XmlAttribute list) =
@@ -446,7 +446,7 @@ module Attr =
/// Alias for `enctype=multipart/form-data`
let enctypeMultipart = enctype "multipart/form-data"
-
+
// Alias for `method=post`
let methodPost = method "post"
@@ -470,7 +470,7 @@ module Attr =
/// Alias for `target=_unfencedTop`
let targetUnfencedTop = target "_unfencedTop"
-
+
/// Alias for `type=button`
let typeButton = type' "button"
@@ -545,7 +545,7 @@ module Attr =
value (x.ToString())
/// Alias for `value={str}` by invoking `_.ToString(format)` on input
- let inline valueStringf format (x : ^T when ^T : (member ToString : string -> string)) =
+ let inline valueStringf format (x : ^T when ^T : (member ToString : string -> string)) =
value (x.ToString(format))
/// Alias for `Attr.valueStringf "yyyy-MM-dd" dt`
@@ -553,27 +553,27 @@ module Attr =
valueStringf "yyyy-MM-dd" dt
/// Alias for `Attr.valueStringf "s" dt`
- let valueDatetimeLocal (dt : DateTime) =
- valueStringf "s" dt
+ let valueDatetimeLocal (dt : DateTime) =
+ valueStringf "s" dt
/// Alias for `Attr.valueStringf "yyyy-MM"`
let valueMonth (dt : DateTime) =
valueStringf "yyyy-MM" dt
- /// Alias for `Attr.valueStringf "hh\:mm" time`
- let valueTime (time : TimeSpan) =
+ /// Alias for `Attr.valueStringf "hh\:mm" time`
+ let valueTime (time : TimeSpan) =
valueStringf "hh\:mm" time
-
- let private cal = System.Globalization.GregorianCalendar(GregorianCalendarTypes.USEnglish)
+
+ let private cal = GregorianCalendar(GregorianCalendarTypes.USEnglish)
/// Alias for `value={yyyy-W#}` (ex: `value=1986-W50`)
- let valueWeek (dt : DateTime) =
+ let valueWeek (dt : DateTime) =
let wk = cal.GetWeekOfYear(dt, CalendarWeekRule.FirstDay, DayOfWeek.Monday).ToString("00")
let yr = dt.ToString("yyyy")
value (sprintf "%s-W%s" yr wk)
-
+
/// Invoke `fn` if `Some` otherwise return `value=""`
- let valueOption fn opt =
+ let valueOption fn opt =
match opt with Some x -> fn x | None -> valueEmpty
//
@@ -841,4 +841,4 @@ module Attr =
let onwaiting = create "onwaiting"
/// `wheel={value}` event
- let onwheel = create "wheel"
\ No newline at end of file
+ let onwheel = create "wheel"
diff --git a/src/Falco.Markup/Falco.Markup.fsproj b/src/Falco.Markup/Falco.Markup.fsproj
index 1e01d2f..7070faa 100644
--- a/src/Falco.Markup/Falco.Markup.fsproj
+++ b/src/Falco.Markup/Falco.Markup.fsproj
@@ -46,6 +46,7 @@
+
diff --git a/src/Falco.Markup/Html.fs b/src/Falco.Markup/Html.fs
new file mode 100644
index 0000000..58b7f50
--- /dev/null
+++ b/src/Falco.Markup/Html.fs
@@ -0,0 +1,408 @@
+namespace Falco.Markup
+
+[]
+module Html =
+ let inline _text content = Text.raw content
+ let inline _textf template = Text.rawf template
+ let inline _textEnc content = Text.enc content
+ let inline _h1' content = Text.h1 content
+ let inline _h2' content = Text.h2 content
+ let inline _h3' content = Text.h3 content
+ let inline _h4' content = Text.h4 content
+ let inline _h5' content = Text.h5 content
+ let inline _h6' content = Text.h6 content
+ let inline _p' content = Text.p content
+ let inline _dd' content = Text.dd content
+ let inline _dt' content = Text.dt content
+ let inline _abbr' content = Text.abbr content
+ let inline _b' content = Text.b content
+ let inline _bdi' content = Text.bdi content
+ let inline _bdo' content = Text.bdo content
+ let inline _cite' content = Text.cite content
+ let inline _code' content = Text.code content
+ let inline _data' content = Text.data content
+ let inline _dfn' content = Text.dfn content
+ let inline _em' content = Text.em content
+ let inline _i' content = Text.i content
+ let inline _kbd' content = Text.kbd content
+ let inline _mark' content = Text.mark content
+ let inline _q' content = Text.q content
+ let inline _rp' content = Text.rp content
+ let inline _rt' content = Text.rt content
+ let inline _ruby' content = Text.ruby content
+ let inline _s' content = Text.s content
+ let inline _samp' content = Text.samp content
+ let inline _small' content = Text.small content
+ let inline _span' content = Text.span content
+ let inline _strong' content = Text.strong content
+ let inline _sub' content = Text.sub content
+ let inline _sup' content = Text.sup content
+ let inline _time' content = Text.time content
+ let inline _u' content = Text.u content
+ let inline _var' content = Text.var content
+
+ let inline _html attr content = Elem.html attr content
+ let inline _base attr = Elem.base' attr
+ let inline _head attr content = Elem.head attr content
+ let inline _link attr = Elem.link attr
+ let inline _meta attr = Elem.meta attr
+ let inline _style attr content = Elem.style attr content
+ let inline _title attr content = Elem.title attr content
+ let inline _body attr content = Elem.body attr content
+ let inline _address attr content = Elem.address attr content
+ let inline _article attr content = Elem.article attr content
+ let inline _aside attr content = Elem.aside attr content
+ let inline _footer attr content = Elem.footer attr content
+ let inline _header attr content = Elem.header attr content
+ let inline _h1 attr content = Elem.h1 attr content
+ let inline _h2 attr content = Elem.h2 attr content
+ let inline _h3 attr content = Elem.h3 attr content
+ let inline _h4 attr content = Elem.h4 attr content
+ let inline _h5 attr content = Elem.h5 attr content
+ let inline _h6 attr content = Elem.h6 attr content
+ let inline _main attr content = Elem.main attr content
+ let inline _nav attr content = Elem.nav attr content
+ let inline _section attr content = Elem.section attr content
+ let inline _blockquote attr content = Elem.blockquote attr content
+ let inline _dd attr content = Elem.dd attr content
+ let inline _div attr content = Elem.div attr content
+ let inline _dl attr content = Elem.dl attr content
+ let inline _dt attr content = Elem.dt attr content
+ let inline _figcaption attr content = Elem.figcaption attr content
+ let inline _figure attr content = Elem.figure attr content
+ let inline _hr attr = Elem.hr attr
+ let inline _li attr content = Elem.li attr content
+ let inline _menu attr content = Elem.menu attr content
+ let inline _ol attr content = Elem.ol attr content
+ let inline _p attr content = Elem.p attr content
+ let inline _pre attr content = Elem.pre attr content
+ let inline _ul attr content = Elem.ul attr content
+ let inline _a attr content = Elem.a attr content
+ let inline _abbr attr content = Elem.abbr attr content
+ let inline _b attr content = Elem.b attr content
+ let inline _bdi attr content = Elem.bdi attr content
+ let inline _bdo attr content = Elem.bdo attr content
+ let inline _br attr = Elem.br attr
+ let inline _cite attr content = Elem.cite attr content
+ let inline _code attr content = Elem.code attr content
+ let inline _data attr content = Elem.data attr content
+ let inline _dfn attr content = Elem.dfn attr content
+ let inline _em attr content = Elem.em attr content
+ let inline _i attr content = Elem.i attr content
+ let inline _kbd attr content = Elem.kbd attr content
+ let inline _mark attr content = Elem.mark attr content
+ let inline _q attr content = Elem.q attr content
+ let inline _rp attr content = Elem.rp attr content
+ let inline _rt attr content = Elem.rt attr content
+ let inline _ruby attr content = Elem.ruby attr content
+ let inline _s attr content = Elem.s attr content
+ let inline _samp attr content = Elem.samp attr content
+ let inline _small attr content = Elem.small attr content
+ let inline _span attr content = Elem.span attr content
+ let inline _strong attr content = Elem.strong attr content
+ let inline _sub attr content = Elem.sub attr content
+ let inline _sup attr content = Elem.sup attr content
+ let inline _time attr content = Elem.time attr content
+ let inline _u attr content = Elem.u attr content
+ let inline _var attr content = Elem.var attr content
+ let inline _wbr attr = Elem.wbr attr
+ let inline _area attr content = Elem.area attr content
+ let inline _audio attr content = Elem.audio attr content
+ let inline _img attr = Elem.img attr
+ let inline _map attr content = Elem.map attr content
+ let inline _track attr = Elem.track attr
+ let inline _video attr content = Elem.video attr content
+ let inline _embed attr = Elem.embed attr
+ let inline _iframe attr content = Elem.iframe attr content
+ let inline _object attr content = Elem.object attr content
+ let inline _picture attr content = Elem.picture attr content
+ let inline _portal attr content = Elem.portal attr content
+ let inline _source attr = Elem.source attr
+ let inline _canvas attr content = Elem.canvas attr content
+ let inline _noscript attr content = Elem.noscript attr content
+ let inline _script attr content = Elem.script attr content
+ let inline _del attr content = Elem.del attr content
+ let inline _ins attr content = Elem.ins attr content
+ let inline _caption attr content = Elem.caption attr content
+ let inline _col attr = Elem.col attr
+ let inline _colgroup attr content = Elem.colgroup attr content
+ let inline _table attr content = Elem.table attr content
+ let inline _tbody attr content = Elem.tbody attr content
+ let inline _td attr content = Elem.td attr content
+ let inline _tfoot attr content = Elem.tfoot attr content
+ let inline _th attr content = Elem.th attr content
+ let inline _thead attr content = Elem.thead attr content
+ let inline _tr attr content = Elem.tr attr content
+ let inline _button attr content = Elem.button attr content
+ let inline _datalist attr content = Elem.datalist attr content
+ let inline _fieldset attr content = Elem.fieldset attr content
+ let inline _form attr content = Elem.form attr content
+ let inline _input attr = Elem.input attr
+ let inline _label attr content = Elem.label attr content
+ let inline _legend attr content = Elem.legend attr content
+ let inline _meter attr content = Elem.meter attr content
+ let inline _optgroup attr content = Elem.optgroup attr content
+ let inline _option attr content = Elem.option attr content
+ let inline _output attr content = Elem.output attr content
+ let inline _progress attr content = Elem.progress attr content
+ let inline _select attr content = Elem.select attr content
+ let inline _textarea attr content = Elem.textarea attr content
+ let inline _control name attr labelElement = Elem.control name attr labelElement
+ let inline _controlSelect name attr labelElement options = Elem.controlSelect name attr labelElement options
+ let inline _controlTextarea name attr labelElement content = Elem.controlTextarea name attr labelElement content
+ let inline _details attr content = Elem.details attr content
+ let inline _dialog attr content = Elem.dialog attr content
+ let inline _summary attr content = Elem.summary attr content
+ let inline _slot attr content = Elem.slot attr content
+ let inline _template attr content = Elem.template attr content
+ let inline _math attr content = Elem.math attr content
+ let inline _svg attr content = Elem.svg attr content
+
+
+ let inline _accept_ value = Attr.accept value
+ let inline _acceptCharset_ value = Attr.acceptCharset value
+ let inline _accesskey_ value = Attr.accesskey value
+ let inline _action_ value = Attr.action value
+ let inline _align_ value = Attr.align value
+ let inline _allow_ value = Attr.allow value
+ let inline _alt_ value = Attr.alt value
+ let _async_ = Attr.async
+ let inline _autocapitalize_ value = Attr.autocapitalize value
+ let inline _autocomplete_ value = Attr.autocomplete value
+ let _autofocus_ = Attr.autofocus
+ let _autoplay_ = Attr.autoplay
+ let inline _background_ value = Attr.background value
+ let inline _bgcolor_ value = Attr.bgcolor value
+ let inline _border_ value = Attr.border value
+ let inline _buffered_ value = Attr.buffered value
+ let inline _capture_ value = Attr.capture value
+ let inline _challenge_ value = Attr.challenge value
+ let inline _charset_ value = Attr.charset value
+ let _checked_ = Attr.checked'
+ let inline _cite_ value = Attr.cite value
+ let inline _class_ value = Attr.class' value
+ let inline _code_ value = Attr.code value
+ let inline _codebase_ value = Attr.codebase value
+ let inline _color_ value = Attr.color value
+ let inline _cols_ value = Attr.cols value
+ let inline _colspan_ value = Attr.colspan value
+ let inline _content_ value = Attr.content value
+ let inline _contenteditable_ value = Attr.contenteditable value
+ let inline _contextmenu_ value = Attr.contextmenu value
+ let _controls_ = Attr.controls
+ let inline _coords_ value = Attr.coords value
+ let inline _crossorigin_ value = Attr.crossorigin value
+ let inline _csp_ value = Attr.csp value
+ let inline _data_ value = Attr.data value
+ let inline _dataAttr_ name value = Attr.dataAttr name value
+ let inline _datetime_ value = Attr.datetime value
+ let inline _decoding_ value = Attr.decoding value
+ let _default_ = Attr.default'
+ let _defer_ = Attr.defer
+ let inline _dir_ value = Attr.dir value
+ let inline _dirname_ value = Attr.dirname value
+ let _disabled_ = Attr.disabled
+ let inline _download_ value = Attr.download value
+ let inline _draggable_ value = Attr.draggable value
+ let inline _enctype_ value = Attr.enctype value
+ let inline _enterkeyhint_ value = Attr.enterkeyhint value
+ let inline _for_ value = Attr.for' value
+ let inline _form_ value = Attr.form value
+ let inline _formaction_ value = Attr.formaction value
+ let inline _formenctype_ value = Attr.formenctype value
+ let inline _formmethod_ value = Attr.formmethod value
+ let _formnovalidate_ = Attr.formnovalidate
+ let inline _formtarget_ value = Attr.formtarget value
+ let inline _headers_ value = Attr.headers value
+ let inline _height_ value = Attr.height value
+ let _hidden_ = Attr.hidden
+ let inline _high_ value = Attr.high value
+ let inline _href_ value = Attr.href value
+ let inline _hreflang_ value = Attr.hreflang value
+ let inline _httpEquiv_ value = Attr.httpEquiv value
+ let inline _icon_ value = Attr.icon value
+ let inline _id_ value = Attr.id value
+ let inline _importance_ value = Attr.importance value
+ let inline _integrity_ value = Attr.integrity value
+ let inline _inputmode_ value = Attr.inputmode value
+ let _ismap_ = Attr.ismap
+ let inline _itemprop_ value = Attr.itemprop value
+ let inline _keytype_ value = Attr.keytype value
+ let inline _kind_ value = Attr.kind value
+ let inline _label_ value = Attr.label value
+ let inline _lang_ value = Attr.lang value
+ let inline _loading_ value = Attr.loading value
+ let inline _list_ value = Attr.list value
+ let _loop_ = Attr.loop
+ let inline _low_ value = Attr.low value
+ let inline _max_ value = Attr.max value
+ let inline _maxlength_ value = Attr.maxlength value
+ let inline _minlength_ value = Attr.minlength value
+ let inline _media_ value = Attr.media value
+ let inline _method_ value = Attr.method value
+ let inline _min_ value = Attr.min value
+ let _multiple_ = Attr.multiple
+ let _muted_ = Attr.muted
+ let inline _name_ value = Attr.name value
+ let _novalidate_ = Attr.novalidate
+ let inline _open_ value = Attr.open' value
+ let inline _optimum_ value = Attr.optimum value
+ let inline _pattern_ value = Attr.pattern value
+ let inline _ping_ value = Attr.ping value
+ let inline _placeholder_ value = Attr.placeholder value
+ let inline _poster_ value = Attr.poster value
+ let inline _preload_ value = Attr.preload value
+ let inline _radiogroup_ value = Attr.radiogroup value
+ let _readonly_ = Attr.readonly
+ let inline _referrerpolicy_ value = Attr.referrerpolicy value
+ let inline _rel_ value = Attr.rel value
+ let _required_ = Attr.required
+ let _reversed_ = Attr.reversed
+ let inline _role_ value = Attr.role value
+ let inline _rows_ value = Attr.rows value
+ let inline _rowspan_ value = Attr.rowspan value
+ let inline _sandbox_ value = Attr.sandbox value
+ let inline _scope_ value = Attr.scope value
+ let _selected_ = Attr.selected
+ let inline _shape_ value = Attr.shape value
+ let inline _size_ value = Attr.size value
+ let inline _sizes_ value = Attr.sizes value
+ let inline _slot_ value = Attr.slot value
+ let inline _span_ value = Attr.span value
+ let inline _spellcheck_ value = Attr.spellcheck value
+ let inline _src_ value = Attr.src value
+ let inline _srcdoc_ value = Attr.srcdoc value
+ let inline _srclang_ value = Attr.srclang value
+ let inline _srcset_ value = Attr.srcset value
+ let inline _start_ value = Attr.start value
+ let inline _step_ value = Attr.step value
+ let inline _style_ value = Attr.style value
+ let inline _tabindex_ value = Attr.tabindex value
+ let inline _target_ value = Attr.target value
+ let inline _title_ value = Attr.title value
+ let inline _translate_ value = Attr.translate value
+ let inline _type_ value = Attr.type' value
+ let inline _usemap_ value = Attr.usemap value
+ let inline _value_ value = Attr.value value
+ let inline _width_ value = Attr.width value
+ let inline _wrap_ value = Attr.wrap value
+ let _enctypeForm_ = Attr.enctypeForm
+ let _enctypeMultipart_ = Attr.enctypeMultipart
+ let _methodPost_ = Attr.methodPost
+ let _methodGet_ = Attr.methodGet
+ let _methodDialog_ = Attr.methodDialog
+ let _targetSelf_ = Attr.targetSelf
+ let _targetBlank_ = Attr.targetBlank
+ let _targetParent_ = Attr.targetParent
+ let _targetTop_ = Attr.targetTop
+ let _targetUnfencedTop_ = Attr.targetUnfencedTop
+ let _typeButton_ = Attr.typeButton
+ let _typeCheckbox_ = Attr.typeCheckbox
+ let _typeColor_ = Attr.typeColor
+ let _typeDate_ = Attr.typeDate
+ let _typeDatetimeLocal_ = Attr.typeDatetimeLocal
+ let _typeEmail_ = Attr.typeEmail
+ let _typeFile_ = Attr.typeFile
+ let _typeHidden_ = Attr.typeHidden
+ let _typeImage_ = Attr.typeImage
+ let _typeMonth_ = Attr.typeMonth
+ let _typeNumber_ = Attr.typeNumber
+ let _typePassword_ = Attr.typePassword
+ let _typeRadio_ = Attr.typeRadio
+ let _typeRange_ = Attr.typeRange
+ let _typeReset_ = Attr.typeReset
+ let _typeSearch_ = Attr.typeSearch
+ let _typeSubmit_ = Attr.typeSubmit
+ let _typeTel_ = Attr.typeTel
+ let _typeText_ = Attr.typeText
+ let _typeTime_ = Attr.typeTime
+ let _typeUrl_ = Attr.typeUrl
+ let _typeWeek_ = Attr.typeWeek
+ let inline _onabort_ value = Attr.onabort value
+ let inline _onafterprint_ value = Attr.onafterprint value
+ let inline _onanimationend_ value = Attr.onanimationend value
+ let inline _onanimationiteration_ value = Attr.onanimationiteration value
+ let inline _onanimationstart_ value = Attr.onanimationstart value
+ let inline _onbeforeprint_ value = Attr.onbeforeprint value
+ let inline _onbeforeunload_ value = Attr.onbeforeunload value
+ let inline _onblur_ value = Attr.onblur value
+ let inline _oncanplay_ value = Attr.oncanplay value
+ let inline _oncanplaythrough_ value = Attr.oncanplaythrough value
+ let inline _onchange_ value = Attr.onchange value
+ let inline _onclick_ value = Attr.onclick value
+ let inline _oncontextmenu_ value = Attr.oncontextmenu value
+ let inline _oncopy_ value = Attr.oncopy value
+ let inline _oncut_ value = Attr.oncut value
+ let inline _ondblclick_ value = Attr.ondblclick value
+ let inline _ondrag_ value = Attr.ondrag value
+ let inline _ondragend_ value = Attr.ondragend value
+ let inline _ondragenter_ value = Attr.ondragenter value
+ let inline _ondragleave_ value = Attr.ondragleave value
+ let inline _ondragover_ value = Attr.ondragover value
+ let inline _ondragstart_ value = Attr.ondragstart value
+ let inline _ondrop_ value = Attr.ondrop value
+ let inline _ondurationchange_ value = Attr.ondurationchange value
+ let inline _onemptied_ value = Attr.onemptied value
+ let inline _onended_ value = Attr.onended value
+ let inline _onerror_ value = Attr.onerror value
+ let inline _onfocus_ value = Attr.onfocus value
+ let inline _onformchange_ value = Attr.onformchange value
+ let inline _onforminput_ value = Attr.onforminput value
+ let inline _onfocusin_ value = Attr.onfocusin value
+ let inline _onfocusout_ value = Attr.onfocusout value
+ let inline _onfullscreenchange_ value = Attr.onfullscreenchange value
+ let inline _onfullscreenerror_ value = Attr.onfullscreenerror value
+ let inline _onhashchange_ value = Attr.onhashchange value
+ let inline _oninput_ value = Attr.oninput value
+ let inline _oninvalid_ value = Attr.oninvalid value
+ let inline _onkeydown_ value = Attr.onkeydown value
+ let inline _onkeypress_ value = Attr.onkeypress value
+ let inline _onkeyup_ value = Attr.onkeyup value
+ let inline _onload_ value = Attr.onload value
+ let inline _onloadeddata_ value = Attr.onloadeddata value
+ let inline _onloadedmetadata_ value = Attr.onloadedmetadata value
+ let inline _onloadstart_ value = Attr.onloadstart value
+ let inline _onmessage_ value = Attr.onmessage value
+ let inline _onmousedown_ value = Attr.onmousedown value
+ let inline _onmouseenter_ value = Attr.onmouseenter value
+ let inline _onmouseleave_ value = Attr.onmouseleave value
+ let inline _onmousemove_ value = Attr.onmousemove value
+ let inline _onmouseover_ value = Attr.onmouseover value
+ let inline _onmouseout_ value = Attr.onmouseout value
+ let inline _onmouseup_ value = Attr.onmouseup value
+ let inline _onmousewheel_ value = Attr.onmousewheel value
+ let inline _onoffline_ value = Attr.onoffline value
+ let inline _ononline_ value = Attr.ononline value
+ let inline _onopen_ value = Attr.onopen value
+ let inline _onpagehide_ value = Attr.onpagehide value
+ let inline _onpageshow_ value = Attr.onpageshow value
+ let inline _onpaste_ value = Attr.onpaste value
+ let inline _onpause_ value = Attr.onpause value
+ let inline _onplay_ value = Attr.onplay value
+ let inline _onplaying_ value = Attr.onplaying value
+ let inline _onpopstate_ value = Attr.onpopstate value
+ let inline _onprogress_ value = Attr.onprogress value
+ let inline _onratechange_ value = Attr.onratechange value
+ let inline _onresize_ value = Attr.onresize value
+ let inline _onreset_ value = Attr.onreset value
+ let inline _onscroll_ value = Attr.onscroll value
+ let inline _onsearch_ value = Attr.onsearch value
+ let inline _onseeked_ value = Attr.onseeked value
+ let inline _onseeking_ value = Attr.onseeking value
+ let inline _onselect_ value = Attr.onselect value
+ let inline _onshow_ value = Attr.onshow value
+ let inline _onstalled_ value = Attr.onstalled value
+ let inline _onstorage_ value = Attr.onstorage value
+ let inline _onsubmit_ value = Attr.onsubmit value
+ let inline _onsuspend_ value = Attr.onsuspend value
+ let inline _ontimeupdate_ value = Attr.ontimeupdate value
+ let inline _ontoggle_ value = Attr.ontoggle value
+ let inline _ontouchcancel_ value = Attr.ontouchcancel value
+ let inline _ontouchend_ value = Attr.ontouchend value
+ let inline _ontouchmove_ value = Attr.ontouchmove value
+ let inline _ontouchstart_ value = Attr.ontouchstart value
+ let inline _ontransitionend_ value = Attr.ontransitionend value
+ let inline _onunload_ value = Attr.onunload value
+ let inline _onvolumechange_ value = Attr.onvolumechange value
+ let inline _onwaiting_ value = Attr.onwaiting value
+ let inline _onwheel_ value = Attr.onwheel value
diff --git a/test/Falco.Markup.Tests/AttrTests.fs b/test/Falco.Markup.Tests/AttrTests.fs
index c670110..8921574 100644
--- a/test/Falco.Markup.Tests/AttrTests.fs
+++ b/test/Falco.Markup.Tests/AttrTests.fs
@@ -51,3 +51,221 @@ let ``Attr.merge should combine two XmlAttribute lists factoring additive attrib
[ Attr.name "test"; Attr.class' "ma2"; Attr.style "background: red"; Attr.accept "image/jpeg" ]
[ Attr.name "expected"; Attr.class' "pa2"; Attr.style "color: white"; Attr.accept "image/png" ]
|> should equal [ Attr.name "expected"; Attr.class' "ma2 pa2"; Attr.style "background: red; color: white"; Attr.accept "image/jpeg, image/png" ]
+
+[]
+let ``HTML Spec`` () =
+ Elem.div [ Attr.accept "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.acceptCharset "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.accesskey "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.action "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.align "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.allow "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.alt "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.async ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.autocapitalize "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.autocomplete "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.autofocus ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.autoplay ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.background "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.bgcolor "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.border "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.buffered "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.capture "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.challenge "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.charset "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.checked' ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.cite "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.class' "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.code "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.codebase "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.color "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.cols "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.colspan "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.content "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.contenteditable "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.contextmenu "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.controls ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.coords "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.crossorigin "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.csp "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.data "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.dataAttr "value" "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.datetime "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.decoding "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.default' ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.defer ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.dir "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.dirname "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.disabled ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.download "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.draggable "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.enctype "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.enterkeyhint "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.for' "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.form "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.formaction "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.formenctype "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.formmethod "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.formnovalidate ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.formtarget "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.headers "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.height "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.hidden ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.high "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.href "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.hreflang "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.httpEquiv "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.icon "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.id "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.importance "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.integrity "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.inputmode "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.ismap ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.itemprop "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.keytype "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.kind "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.label "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.lang "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.loading "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.list "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.loop ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.low "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.max "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.maxlength "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.minlength "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.media "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.method "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.min "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.multiple ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.muted ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.name "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.novalidate ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.open' "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.optimum "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.pattern "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.ping "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.placeholder "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.poster "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.preload "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.radiogroup "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.readonly ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.referrerpolicy "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.rel "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.required ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.reversed ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.role "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.rows "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.rowspan "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.sandbox "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.scope "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.selected ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.shape "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.size "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.sizes "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.slot "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.span "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.spellcheck "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.src "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.srcdoc "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.srclang "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.srcset "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.start "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.step "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.style "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.tabindex "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.target "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.title "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.translate "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.type' "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.usemap "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.value "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.width "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.wrap "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onabort "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onafterprint "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onanimationend "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onanimationiteration "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onanimationstart "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onbeforeprint "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onbeforeunload "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onblur "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.oncanplay "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.oncanplaythrough "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onchange "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onclick "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.oncontextmenu "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.oncopy "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.oncut "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.ondblclick "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.ondrag "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.ondragend "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.ondragenter "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.ondragleave "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.ondragover "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.ondragstart "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.ondrop "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.ondurationchange "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onemptied "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onended "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onerror "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onfocus "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onformchange "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onforminput "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onfocusin "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onfocusout "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onfullscreenchange "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onfullscreenerror "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onhashchange "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.oninput "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.oninvalid "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onkeydown "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onkeypress "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onkeyup "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onload "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onloadeddata "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onloadedmetadata "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onloadstart "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onmessage "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onmousedown "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onmouseenter "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onmouseleave "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onmousemove "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onmouseover "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onmouseout "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onmouseup "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onmousewheel "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onoffline "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.ononline "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onopen "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onpagehide "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onpageshow "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onpaste "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onpause "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onplay "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onplaying "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onpopstate "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onprogress "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onratechange "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onresize "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onreset "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onscroll "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onsearch "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onseeked "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onseeking "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onselect "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onshow "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onstalled "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onstorage "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onsubmit "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onsuspend "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.ontimeupdate "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.ontoggle "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.ontouchcancel "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.ontouchend "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.ontouchmove "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.ontouchstart "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.ontransitionend "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onunload "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onvolumechange "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onwaiting "falco" ] [] |> renderNode |> should equal ""
+ Elem.div [ Attr.onwheel "falco" ] [] |> renderNode |> should equal ""
diff --git a/test/Falco.Markup.Tests/ElemTests.fs b/test/Falco.Markup.Tests/ElemTests.fs
index f150aa0..ac94f8c 100644
--- a/test/Falco.Markup.Tests/ElemTests.fs
+++ b/test/Falco.Markup.Tests/ElemTests.fs
@@ -93,3 +93,119 @@ let ``Should produce valid html doc for large result`` () =
let render = renderHtml doc
render |> fun s -> s.Substring(0, 27) |> should equal ""
render |> fun s -> s.Substring(s.Length - 14, 14) |> should equal ""
+
+[]
+let ``HTML Spec`` () =
+ Elem.html [] [] |> renderNode |> should equal ""
+ Elem.base' [] |> renderNode |> should equal ""
+ Elem.head [] [] |> renderNode |> should equal ""
+ Elem.link [] |> renderNode |> should equal ""
+ Elem.meta [] |> renderNode |> should equal ""
+ Elem.style [] [] |> renderNode |> should equal ""
+ Elem.title [] [] |> renderNode |> should equal ""
+ Elem.body [] [] |> renderNode |> should equal ""
+ Elem.address [] [] |> renderNode |> should equal ""
+ Elem.article [] [] |> renderNode |> should equal ""
+ Elem.aside [] [] |> renderNode |> should equal ""
+ Elem.footer [] [] |> renderNode |> should equal ""
+ Elem.header [] [] |> renderNode |> should equal ""
+ Elem.h1 [] [] |> renderNode |> should equal ""
+ Elem.h2 [] [] |> renderNode |> should equal ""
+ Elem.h3 [] [] |> renderNode |> should equal ""
+ Elem.h4 [] [] |> renderNode |> should equal ""
+ Elem.h5 [] [] |> renderNode |> should equal ""
+ Elem.h6 [] [] |> renderNode |> should equal ""
+ Elem.main [] [] |> renderNode |> should equal ""
+ Elem.nav [] [] |> renderNode |> should equal ""
+ Elem.section [] [] |> renderNode |> should equal ""
+ Elem.blockquote [] [] |> renderNode |> should equal ""
+ Elem.dd [] [] |> renderNode |> should equal ""
+ Elem.div [] [] |> renderNode |> should equal ""
+ Elem.dl [] [] |> renderNode |> should equal "
"
+ Elem.dt [] [] |> renderNode |> should equal ""
+ Elem.figcaption [] [] |> renderNode |> should equal ""
+ Elem.figure [] [] |> renderNode |> should equal ""
+ Elem.hr [] |> renderNode |> should equal ""
+ Elem.li [] [] |> renderNode |> should equal ""
+ Elem.menu [] [] |> renderNode |> should equal ""
+ Elem.ol [] [] |> renderNode |> should equal ""
+ Elem.p [] [] |> renderNode |> should equal ""
+ Elem.pre [] [] |> renderNode |> should equal ""
+ Elem.ul [] [] |> renderNode |> should equal "
"
+ Elem.a [] [] |> renderNode |> should equal ""
+ Elem.abbr [] [] |> renderNode |> should equal ""
+ Elem.b [] [] |> renderNode |> should equal ""
+ Elem.bdi [] [] |> renderNode |> should equal ""
+ Elem.bdo [] [] |> renderNode |> should equal ""
+ Elem.br [] |> renderNode |> should equal " "
+ Elem.cite [] [] |> renderNode |> should equal ""
+ Elem.code [] [] |> renderNode |> should equal ""
+ Elem.data [] [] |> renderNode |> should equal ""
+ Elem.dfn [] [] |> renderNode |> should equal ""
+ Elem.em [] [] |> renderNode |> should equal ""
+ Elem.i [] [] |> renderNode |> should equal ""
+ Elem.kbd [] [] |> renderNode |> should equal ""
+ Elem.mark [] [] |> renderNode |> should equal ""
+ Elem.q [] [] |> renderNode |> should equal ""
+ Elem.rp [] [] |> renderNode |> should equal ""
+ Elem.rt [] [] |> renderNode |> should equal ""
+ Elem.ruby [] [] |> renderNode |> should equal ""
+ Elem.s [] [] |> renderNode |> should equal ""
+ Elem.samp [] [] |> renderNode |> should equal ""
+ Elem.small [] [] |> renderNode |> should equal ""
+ Elem.span [] [] |> renderNode |> should equal ""
+ Elem.strong [] [] |> renderNode |> should equal ""
+ Elem.sub [] [] |> renderNode |> should equal ""
+ Elem.sup [] [] |> renderNode |> should equal ""
+ Elem.time [] [] |> renderNode |> should equal ""
+ Elem.u [] [] |> renderNode |> should equal ""
+ Elem.var [] [] |> renderNode |> should equal ""
+ Elem.wbr [] |> renderNode |> should equal ""
+ Elem.area [] [] |> renderNode |> should equal ""
+ Elem.audio [] [] |> renderNode |> should equal ""
+ Elem.img [] |> renderNode |> should equal ""
+ Elem.map [] [] |> renderNode |> should equal ""
+ Elem.track [] |> renderNode |> should equal ""
+ Elem.video [] [] |> renderNode |> should equal ""
+ Elem.embed [] |> renderNode |> should equal ""
+ Elem.iframe [] [] |> renderNode |> should equal ""
+ Elem.object [] [] |> renderNode |> should equal ""
+ Elem.picture [] [] |> renderNode |> should equal ""
+ Elem.portal [] [] |> renderNode |> should equal ""
+ Elem.source [] |> renderNode |> should equal ""
+ Elem.canvas [] [] |> renderNode |> should equal ""
+ Elem.noscript [] [] |> renderNode |> should equal ""
+ Elem.script [] [] |> renderNode |> should equal ""
+ Elem.del [] [] |> renderNode |> should equal ""
+ Elem.ins [] [] |> renderNode |> should equal ""
+ Elem.caption [] [] |> renderNode |> should equal "