3.5.2 Page Content
On this page:
study-page
3.5.2.1 Markdown
md
md*
3.5.2.2 HTML
html
html*
a
aside
audio
blockquote
br
dd
div
dt
em
h1
h2
h3
h4
h5
h6
img
label
li
ol
output
p
pre
script
section
span
strong
style
table
tbody
td
th
thead
tr
u
ul
video
3.5.2.3 Forms
3.5.2.4 Resources
3.5.2 Page Content🔗

 (require conscript/struct) package: conscript

struct

(struct study-page (renderer xexpr-validator))

  renderer : (-> xexpr?)
  xexpr-validator : (-> any/c xexpr?)
A study page is a special structure representing a complete page of HTML content. When used as a function, the study page’s renderer is called, producing the page’s HTML as an X-expression.

Any definition of a study step must be a function that produces a study-page. (or another study, but we won’t go into that here). But you should never need to create these values directly; rather, you’ll typically use helper functions like md and html that do this for you.

Examples:
> (define x (md "# Heading"))
> x

(step-page #<procedure:render> #<procedure:validate-xexpr>)

> (x)

'(div ((class "container")) (div () (h1 "Heading")))

3.5.2.1 Markdown🔗

 (require conscript/markdown) package: conscript

The bindings provided by this module are also provided by conscript/base.

syntax

(md content-str ...)

 
  content-str : string?

syntax

(md* content-str ...)

 
  content-str : string?
Parses its contents as Markdown and produces a representation of a complete page containing the resulting HTML content (md) or of a fragment of HTML suitable for use within another page (md*).

Examples:
> (md "# Heading")

(step-page #<procedure:render> #<procedure:validate-xexpr>)

> (md* "# Heading")

'(div () (h1 "Heading"))

3.5.2.2 HTML🔗

 (require conscript/html) package: conscript

The bindings in this module are also provided by conscript/base.

syntax

(html element ...)

 
  element : xexpr?

syntax

(html* element ...)

 
  element : xexpr?
Returns a complete page of HTML content (html) or a representation of a fragment of HTML suitable for use within another page (html*).

Examples:
> (html (div "content..."))

(step-page #<procedure:render> #<procedure:validate-xexpr>)

> (html* (div "content..."))

'(div () (div () (p () "content...")))

syntax

(a #:href href content ...)

syntax

(aside content ...)

syntax

(audio #:src src content ...)

syntax

(blockquote content ...)

syntax

(br)

syntax

(dd content ...)

syntax

(div content ...)

syntax

(dt content ...)

syntax

(em content ...)

syntax

(h1 content ...)

syntax

(h2 content ...)

syntax

(h3 content ...)

syntax

(h4 content ...)

syntax

(h5 content ...)

syntax

(h6 content ...)

syntax

(img #:alt alt #:src src content ...)

syntax

(label content ...)

syntax

(li content ...)

syntax

(ol content ...)

syntax

(output content ...)

syntax

(p content ...)

syntax

(pre content ...)

syntax

(script content ...)

syntax

(section content ...)

syntax

(span content ...)

syntax

(strong content ...)

syntax

(style content ...)

syntax

(table content ...)

syntax

(tbody content ...)

syntax

(td content ...)

syntax

(th content ...)

syntax

(thead content ...)

syntax

(tr content ...)

syntax

(u content ...)

syntax

(ul content ...)

syntax

(video #:src src content ...)

 
  content : xexpr?
Return representations (X-expressions) of HTML tags of the same names.

Any keyword arguments supplied are converted attribute names/values in the resulting HTML representation. Keyword arguments specifically noted above are required for their respective forms.

Examples:
> (a #:href "/" "a link")

'(a ((href "/")) "a link")

> (a "/" "a link")

a: missing required keyword argument: #:href

> (a #:class "my-style" #:href "/" "styled link")

'(a ((class "my-style") (href "/")) "styled link")

3.5.2.3 Forms🔗

 (require conscript/form) package: conscript

The bindings in this module are also provided by conscript/base.

...
3.5.2.4 Resources🔗

 (require conscript/resource) package: conscript

...