#cp.web.html

Functions for Generating HTML markup.

This library allows the creation of 'safe' HTML using via code.

Examples:

local html = require "cp.web.html" print html.p "Hello world!" -- "<p>Hello world!</p>" print html.p { class = "custom" } "Hello world!" -- "<p class='custom'>Hello world!</p>" print html.p { class = "custom" } ( html.b "Bold" .. " and " .. html.i "italic" .. "." ) -- "<p class='custom'><b>Bold</b> and <i>italic</i>.</p>" print html("1 < 2") -- "1 &lt; 2" (escaped) print html("1 < 2", true) -- "1 < 2" (unescaped) print html.p ("<b>bold</b>", true) -- "<p><b>bold</b></p>"

Be aware that concatonating with ".." can behave unexpectedly in some cases. For example:

local name = "world!" print html.p "Hello " .. name -- "<p>Hello </p>world!"

The "Hello" gets inserted into the p tag, but the name gets concatonated after the closing tag. To get the name inside the p tag, we need to put brackets around the content:

print html.p ("Hello " .. name) -- "<p>Hello world!</p>"

Any tag name can be generated, along with any attribute. The results are correctly escaped. There are two 'special' tag names:

  • CDATA - will generate a &lt;![CDATA[ ... ]]&gt; section with the content contained.
  • __ - (double underscore) will generate a &lt!-- ... --&gt comment block.

#API Overview

Functions - API calls offered directly by the extension

Methods - API calls which can only be made on an object returned by a constructor


#API Documentation

#Functions

Signaturecp.web.html.is(value) -> boolean
TypeFunction
DescriptionChecks if the value is an cp.web.html block.
Parameters
  • value - the value to check
Returns
  • true if it is an HTML block, or false otherwise.
NotesNone
ExamplesNone
Sourcesrc/extensions/cp/web/html.lua line 51

#Methods

Signaturecp.web.html:append(newContent[, escaped]) -> self
TypeMethod
DescriptionAppends the content. If specified, the escaped value will override any default escaping for the content type.
Parameters
  • newContent - The content to append to the contents of the HTML block.
  • escaped - May be set to override default escaping for the content.
Returns
  • The same HTML block instance.
Notes
  • The newContent may be almost any value. The default handling is below:
  • ** cp.web.html instance: Any other HTML block can be added. Default escaping: false.
  • ** function: Functions will be executed every time the HTML block is converted to a string. Default escaping: whatever the default is for the returned value.
  • ** list: Tables which are lists will be iterrated and each item will be evaluated each time the HTML block is converted to a string. Default escaping: the default for each item.
  • ** everything else: Converted to a string via the tostring function. Default escaping: true.
ExamplesNone
Sourcesrc/extensions/cp/web/block.lua line 192

Signaturecp.web.html:prepend(newContent[, escaped]) -> self
TypeMethod
DescriptionPrepends the content. If specified, the escaped value will override any default escaping for the content type.
Parameters
  • newContent - The content to prepend to the contents of the HTML block.
  • escaped - May be set to override default escaping for the content.
Returns
  • The same HTML block instance.
Notes
  • The newContent may be almost any value. The default handling is below:
  • ** cp.web.html instance: Any other HTML block can be added. Default escaping: false.
  • ** function: Functions will be executed every time the HTML block is converted to a string. Default escaping: whatever the default is for the returned value.
  • ** list: Tables which are lists will be iterrated and each item will be evaluated each time the HTML block is converted to a string. Default escaping: the default for each item.
  • ** everything else: Converted to a string via the tostring function. Default escaping: true.
ExamplesNone
Sourcesrc/extensions/cp/web/block.lua line 166