miso
Copyright(C) 2016-2025 David M. Johnson
LicenseBSD3-style (see the file LICENSE)
MaintainerDavid M. Johnson <code@dmj.io>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Miso.Html.Element

Description

 
Synopsis

Smart constructors

nodeHtml :: MisoString -> [Attribute action] -> [View action] -> View action Source #

Low-level helper used to construct HTML node in View. Almost all functions in this module, like div_, table_ etc. are defined in terms of it.

Document metadata

html_ :: [Attribute action] -> [View action] -> View action Source #

base_ :: [Attribute action] -> [View action] -> View action Source #

<base>

Since: 1.9.0.0

head_ :: [Attribute action] -> [View action] -> View action Source #

link_ :: [Attribute action] -> View action Source #

meta_ :: [Attribute action] -> View action Source #

style_ :: [Attribute action] -> MisoString -> View action Source #

<style>

This takes the raw text to be put in the style tag.

That means that if any part of the text is not trusted there's a potential CSS injection. Read more at https://owasp.org/www-project-web-security-testing-guide/stable/4-Web_Application_Security_Testing/11-Client-side_Testing/05-Testing_for_CSS_Injection

You can also easily shoot yourself in the foot with something like:

style_ [] "</style>"

title_ :: [Attribute action] -> [View action] -> View action Source #

<title>

Since: 1.9.0.0

Sectioning root

body_ :: [Attribute action] -> [View action] -> View action Source #

Content sectioning

address_ :: [Attribute action] -> [View action] -> View action Source #

article_ :: [Attribute action] -> [View action] -> View action Source #

aside_ :: [Attribute action] -> [View action] -> View action Source #

footer_ :: [Attribute action] -> [View action] -> View action Source #

header_ :: [Attribute action] -> [View action] -> View action Source #

h1_ :: [Attribute action] -> [View action] -> View action Source #

h2_ :: [Attribute action] -> [View action] -> View action Source #

h3_ :: [Attribute action] -> [View action] -> View action Source #

h4_ :: [Attribute action] -> [View action] -> View action Source #

h5_ :: [Attribute action] -> [View action] -> View action Source #

h6_ :: [Attribute action] -> [View action] -> View action Source #

hgroup_ :: [Attribute action] -> [View action] -> View action Source #

<hgroup>

Since: 1.9.0.0

main_ :: [Attribute action] -> [View action] -> View action Source #

nav_ :: [Attribute action] -> [View action] -> View action Source #

section_ :: [Attribute action] -> [View action] -> View action Source #

search_ :: [Attribute action] -> [View action] -> View action Source #

<search>

Since: 1.9.0.0

Text content

blockquote_ :: [Attribute action] -> [View action] -> View action Source #

dd_ :: [Attribute action] -> [View action] -> View action Source #

div_ :: [Attribute action] -> [View action] -> View action Source #

dl_ :: [Attribute action] -> [View action] -> View action Source #

dt_ :: [Attribute action] -> [View action] -> View action Source #

figcaption_ :: [Attribute action] -> [View action] -> View action Source #

figure_ :: [Attribute action] -> [View action] -> View action Source #

hr_ :: [Attribute action] -> View action Source #

li_ :: [Attribute action] -> [View action] -> View action Source #

menu_ :: [Attribute action] -> [View action] -> View action Source #

ol_ :: [Attribute action] -> [View action] -> View action Source #

p_ :: [Attribute action] -> [View action] -> View action Source #

pre_ :: [Attribute action] -> [View action] -> View action Source #

ul_ :: [Attribute action] -> [View action] -> View action Source #

Inline text semantics

a_ :: [Attribute action] -> [View action] -> View action Source #

abbr_ :: [Attribute action] -> [View action] -> View action Source #

b_ :: [Attribute action] -> [View action] -> View action Source #

bdi_ :: [Attribute action] -> [View action] -> View action Source #

bdo_ :: [Attribute action] -> [View action] -> View action Source #

br_ :: [Attribute action] -> View action Source #

cite_ :: [Attribute action] -> [View action] -> View action Source #

code_ :: [Attribute action] -> [View action] -> View action Source #

data_ :: [Attribute action] -> [View action] -> View action Source #

<data>

Since: 1.9.0.0

dfn_ :: [Attribute action] -> [View action] -> View action Source #

em_ :: [Attribute action] -> [View action] -> View action Source #

i_ :: [Attribute action] -> [View action] -> View action Source #

kbd_ :: [Attribute action] -> [View action] -> View action Source #

mark_ :: [Attribute action] -> [View action] -> View action Source #

q_ :: [Attribute action] -> [View action] -> View action Source #

rp_ :: [Attribute action] -> [View action] -> View action Source #

rt_ :: [Attribute action] -> [View action] -> View action Source #

ruby_ :: [Attribute action] -> [View action] -> View action Source #

s_ :: [Attribute action] -> [View action] -> View action Source #

samp_ :: [Attribute action] -> [View action] -> View action Source #

small_ :: [Attribute action] -> [View action] -> View action Source #

span_ :: [Attribute action] -> [View action] -> View action Source #

strong_ :: [Attribute action] -> [View action] -> View action Source #

sub_ :: [Attribute action] -> [View action] -> View action Source #

sup_ :: [Attribute action] -> [View action] -> View action Source #

time_ :: [Attribute action] -> [View action] -> View action Source #

u_ :: [Attribute action] -> [View action] -> View action Source #

var_ :: [Attribute action] -> [View action] -> View action Source #

wbr_ :: [Attribute action] -> View action Source #

Image and multimedia

area_ :: [Attribute action] -> [View action] -> View action Source #

<area>

Since: 1.9.0.0

audio_ :: [Attribute action] -> [View action] -> View action Source #

img_ :: [Attribute action] -> View action Source #

map_ :: [Attribute action] -> [View action] -> View action Source #

<map>

Since: 1.9.0.0

track_ :: [Attribute action] -> View action Source #

video_ :: [Attribute action] -> [View action] -> View action Source #

Embedded content

embed_ :: [Attribute action] -> View action Source #

fencedframe_ :: [Attribute action] -> [View action] -> View action Source #

<fencedframe>

Since: 1.9.0.0

iframe_ :: [Attribute action] -> [View action] -> View action Source #

object_ :: [Attribute action] -> [View action] -> View action Source #

picture_ :: [Attribute action] -> [View action] -> View action Source #

<picture>

Since: 1.9.0.0

source_ :: [Attribute action] -> View action Source #

Scripting

canvas_ :: [Attribute action] -> [View action] -> View action Source #

<canvas>

Note this just renders a canvas element. See also canvas_ which supports canvas drawing DSL.

noscript_ :: [Attribute action] -> [View action] -> View action Source #

<noscript>

Since: 1.9.0.0

script_ :: [Attribute action] -> MisoString -> View action Source #

<script>

This takes the raw text to be put in the script tag.

That means that if any part of the text is not trusted there's a potential JavaScript injection. Read more at https://owasp.org/www-community/attacks/xss/

You can also easily shoot yourself in the foot with something like:

script_ [] "</script>"

Demarcating edits

del_ :: [Attribute action] -> [View action] -> View action Source #

ins_ :: [Attribute action] -> [View action] -> View action Source #

Table content

caption_ :: [Attribute action] -> [View action] -> View action Source #

col_ :: [Attribute action] -> View action Source #

colgroup_ :: [Attribute action] -> [View action] -> View action Source #

table_ :: [Attribute action] -> [View action] -> View action Source #

tbody_ :: [Attribute action] -> [View action] -> View action Source #

td_ :: [Attribute action] -> [View action] -> View action Source #

tfoot_ :: [Attribute action] -> [View action] -> View action Source #

th_ :: [Attribute action] -> [View action] -> View action Source #

thead_ :: [Attribute action] -> [View action] -> View action Source #

tr_ :: [Attribute action] -> [View action] -> View action Source #

Forms

button_ :: [Attribute action] -> [View action] -> View action Source #

datalist_ :: [Attribute action] -> [View action] -> View action Source #

fieldset_ :: [Attribute action] -> [View action] -> View action Source #

form :: [Attribute action] -> [View action] -> View action Source #

<form>

For usage in a real-world application with the onSubmit event.

view :: Model -> View action
view model = form [ onSubmit NoOp ] [ input [ type_ "submit" ] ]

Note: onSubmit will use preventDefault = True. This will keep the form from submitting to the server.

input_ :: [Attribute action] -> View action Source #

label_ :: [Attribute action] -> [View action] -> View action Source #

legend_ :: [Attribute action] -> [View action] -> View action Source #

meter_ :: [Attribute action] -> [View action] -> View action Source #

optgroup_ :: [Attribute action] -> [View action] -> View action Source #

option_ :: [Attribute action] -> [View action] -> View action Source #

output_ :: [Attribute action] -> [View action] -> View action Source #

progress_ :: [Attribute action] -> [View action] -> View action Source #

select_ :: [Attribute action] -> [View action] -> View action Source #

textarea_ :: [Attribute action] -> [View action] -> View action Source #

Interactive elements

details_ :: [Attribute action] -> [View action] -> View action Source #

dialog_ :: [Attribute action] -> [View action] -> View action Source #

<dialog>

Since: 1.9.0.0

summary_ :: [Attribute action] -> [View action] -> View action Source #

Web components

slot_ :: [Attribute action] -> [View action] -> View action Source #

<slot>

Since: 1.9.0.0

template_ :: [Attribute action] -> [View action] -> View action Source #

<template>

Since: 1.9.0.0