<page>Create a new page in your prototype responding to a given URL.
<layout> you specified elsewhere.
You must refer to the layout by its name attribute. If a page uses a layout,
the only immediate children allowed within it are <part>s.<layout>Create a new layout which can be reused by pages in your prototype.
<page>s can refer to this layout.
The name must be one single word consisting of A-Z or 0-9 characters.<page>'s type attribute.<part>
Create a new reusable part which can be used anywhere with the <write> tag.<part> is also used when creating a page using a layout.
In that case, <part> is used to indicate which parts of the layout are being filled.
When a <write> tag is writing this part, it can pass XML data. The part can act on that data
as if it was its current context.
<write>
or inside a <page> using a layout.<write>
Write a part, variable or value to the page at the location of the tag.
This tag requires one (and only one) of the below attributes.
Passing data to a part is as simple as putting arbitrary XML in between the <write> open and close tags.
<write value="'Hi!'" />.$ to refer to a <var>. For instance, <write value="$MyVar" />.<for each> tag, value may refer to the current XPath node.<var> to the page. For instance:
<var name="data">
<p>Hello world.</p>
</var>
<write xml="$data/*"/>
<var>
Create a named variable with a value, which can be written to the page using <write>.
Reference using $, for instance $MyVar.
<what if>If what is specified in the if attribute is true, the code inside this tag will be executed or drawn.
<what> tag should be executed or drawn. If the result is false,
nothing will happen unless the <what> tag is followed immediately by an <else>
tag, in which case the <else> tag's contents will be executed.<else>Used exclusively with <what if>. If the code in the <what if> doesn't result in true,
the code in this tag will be executed.
None.
<for each>Loop through some data and do something with each item. Used in combination with <var>.
$employees/person would make the person tag in the $employees <var>
available inside each iteration of the loop.ascending or descending. Defaults to ascending.<do action>Performs an action by executing a function. Only a few of the functions can be "done"; those that can will be displayed by quplo's code completion.
<attr>Adds an attribute to its containing element. The value within the attr tag is the value for the attribute.
We've made several useful variables available throughout your prototypes that you can use to access data you wouldn't otherwise be able to in vanilla HTML.
$browser$browser/@major.$get$get/search if the URL is ?search=123.$post$post/username if a form was posted containing a field with name "username".$context$context/path.Various ways to work with your page content, such as lowercase(), substring() or login().
Note: these functions are advanced features of HCML, intended for those with programming experience!
str contains the string substr.
If it does, the result will be true, otherwise it will be false.str ends with char.
If it does, the result will be true, otherwise it will be false.true, otherwise it will be false.value (can be XML) from the session by its name.eval will be evaluated, for instance 1 = 1,
and if the result is true, doIf will be executed, otherwise doElse will be executed.char within str. -1 if char is not found.str with str2 and outputs the result.str.loggedin().loggedin().from until the number to. For example, loop(1,5) will loop 5 times.str in lower case.true.url. For example: redirect('/')str for the given regular expression. If the expression is found,
the result will be true, otherwise it will be false.str for find and replaces it with replace.value (can be XML) in the current session by its name.index in str.str starts with char.pos1 until pos2 in str.str in upper case.str into a legible, safe URL containing only A-Z, a-z, 0-9 and - characters.