{field}Runs a SQL query on the application database and prints the single value it answers. Database
{flush}Sends the page rendered so far to the browser at once, so it can load the stylesheets while a slow part below renders. Output control
{foo}A built-in demo tag that answers a fixed line, there to show how the type prefixes resolve a name. Output control
{get}Fetches another page of the application over HTTP, as a second request, and inserts its output. Pages and execution
{gravatar}Writes the Gravatar picture of an e-mail address as an img - only a hash of the address leaves the page - or a local avatar instead. Pictures and media
{icon}Writes an interface icon from PAD's own set of 79 as inline SVG, drawn in the colour of the text around it. Pictures and media
{identicon}Draws a GitHub-style identicon as inline SVG - a symmetric 5 by 5 pattern and a colour from a hash of the value. Pictures and media
{img}Writes a picture of the application's www directory as a thumbnail of the size the page shows it at, resized once with GD. Pictures and media
{placeholder}Draws a grey image placeholder as inline SVG - crossing lines and the size or a text in the middle. Pictures and media
{poll}A vote among a few answers, once per visitor, then the results as bars with percentages. Widgets
{progress}Writes an accessible progress bar - the native progress element, styled, with its label and percentage - or a row of step dots. Pictures and media
{qr}Draws a QR code as inline SVG, encoded on the server - no image library, no remote service. Charts and codes
{rating}Draws a score as stars or hearts in inline SVG - whole ones filled, a part of one clipped - and says it in words. Pictures and media
{reactData}Writes the mount point of a React component, its data from a provider in _providers/ as JSON in an attribute. Output control
{recurse}Inside a {tree}: renders the tree's body once more for the children of the current row. Loops and trees
{redirect}Sends the browser to another page or address with a 302 and ends the request. Navigation
{restart}Abandons the page being built and renders another page in its place, in the same request. Pages and execution
{resume}Transforms the sequence pushed last, in place, through an action or a play. Sequences
{set}Assigns one or more variables, as globals that outlive the level the tag stands in. Variables and stores
{source}Shows the files behind a page as tabs, each coloured as highlight colours it - the code shown is the code that runs. Text and formatting
{sudoku}A sudoku as a table, the givens bold - and with solve, solved on the server. Games
{switch}Answers the next value of a rotating list on every call - striped rows without a counter. Conditions
{textarea}A text area with its label that refills from what its form sent and shows the error validation found for it. Forms and security
{timeago}How long ago a moment was, in words, inside a time element that keeps the exact moment as its datetime and title. Text and formatting
{toc}A table of contents of the page from its own rendered headings, nested and linked - filled in once the page has rendered. Text and formatting
{trans}Writes the text a key has in the _lang/ catalog of the request's locale, with plural forms and substitutions. Output control
{validator}The browser's checker of the validation rules as one inline script, for a form a component draws. Forms and security
{video}Shows a YouTube or Vimeo video as its poster with a play button, loading the player only when pressed - or a video file as a video element. Pictures and media
{vite}Links the scripts and stylesheets of a Vite build by the name of their source - or the dev server while it runs. Output control
Tag pairs
Written around content - {name ...} ... {/name} - 53 tags
{accordion}Items that open and close on a click, each a details element - no JavaScript. Widgets
{action}Runs one sequence action - reverse, sum, first and the rest - over a store, a range or a type, and iterates the result. Sequences
{array}Runs a SQL query on the application database and repeats its content once per row. Database
{auth}Renders its content when a user is logged in, with the user's row as its data, and its else half for a guest. Users and access
{branch}Inside a {tree}: renders its content only when the current row has children, its @else@ part for a leaf. Loops and trees
{cache}Keeps a named section of the page rendered for a number of seconds - the fragment cache. Output control
{can}Renders its content when the user may do something a gate decides, and its else half when not. Users and access
{cannot}Renders its content when the user may not do something a gate decides - can turned round. Users and access
{carousel}Slides in a row that scrolls and snaps sideways, with arrow links and dots - no JavaScript needed. Widgets
{case}Renders the one branch whose {when} matches a value, with an {else} for none. Conditions
{check}Asks the application database whether a row exists, and renders its content only when one does. Database
{code}Runs its content as PAD source in a separate engine pass and outputs what that pass produced. Pages and execution
{collection}Reads a folder of Markdown files from _content/ and repeats its content once per file, the front matter as fields. Database
{count}Renders its content only when a named data set or page array holds at least one element. Variables and stores
{crossword}A crossword made from a list of words: a numbered SVG grid with the Across and Down clues. Games
{define}Writes a custom tag in the template itself - what a _tags/name.pad file is, without the file. Layouts and components
{diagram}Draws a flowchart or a sequence diagram from Mermaid-style lines of text, laid out on the server as inline SVG. Charts and codes
{dir}Lists the names in a directory, one occurrence each - the plain version of files. Files
{exists}Renders its content when a file or directory is there, its else half when not. Files
{feature}Renders its content while a feature flag is on for this visitor, and its else half while it is off. Users and access
{file}Writes its rendered content to a file under DATA/ instead of to the page. Files
{files}Scans a directory and iterates its entries, with path, file, ext, item and dir for each. Files
{flag}Replaces every value of a sequence with 1 or 0: whether it belongs to a sequence type. Sequences
{flash}The flash messages of this request - set with padFlash on the page before - one occurrence each. Forms and security
{form}A form that posts back to the page, carrying the session's CSRF token and its own name, its fields refilling when it came back. Forms and security
{guest}Renders its content when nobody is logged in, and its else half for a user. Users and access
{if}Renders its content only when a condition holds, with elseif and else branches. Conditions
{ifchanged}Renders its content when a value differs from the previous row of the loop around it - a heading per group. Conditions
{ignore}Keeps PAD from reading the braces in its content as tags - for inline JavaScript, CSS, JSON and code samples. Output control
{keep}Keeps only the values of a sequence that belong to a sequence type. Sequences
{live}A region of the page that re-renders on the server when something in it is clicked, submitted or changed, and swaps itself in. Pages and execution
{macro}A template function: declared parameters, given in order or by name, read as fields inside its body. Layouts and components
{make}Replaces every value of a sequence with what a sequence type makes of it. Sequences
{modal}A dialog over the page with the button that opens it - works with and without JavaScript. Widgets
{nocache}Marks a part of a cached page or {cache} section that renders again on every request, the hit included. Output control
{pad}A tag with no behaviour of its own: its content renders once, or per row with data=, carrying the generic options. Pages and execution
{pull}Iterates a stored sequence, optionally through plays and actions. Sequences
{push}Renders its content and adds it to a named stack, for a stack tag elsewhere in the page to print. Layouts and components
{record}Runs a SQL query on the application database and renders its content with the first row's columns as fields. Database
{remove}Removes the values of a sequence that belong to a sequence type - the inverse of keep. Sequences
{sandbox}Runs its content as PAD source in an isolated pass that cannot see or leave behind anything of the page. Pages and execution
{tree}Renders a tree of rows: its body for every row, and {recurse} renders it again for the row's children. Loops and trees
{until}Renders its content again and again until a condition becomes true. Loops and trees
{while}Renders its content again and again for as long as a condition holds. Loops and trees
Either form
Alone or as a pair - the pair form gives them content to use - 21 tags
{bool}Reduces its content or a value to TRUE or FALSE and keeps it under a name, for a later {name} to test. Variables and stores
{calendar}Writes a month as a calendar table with its events, or hands over its weeks and days as rows for markup of your own. Charts and codes
{chart}Draws a chart as inline SVG on the server - 46 kinds, from bars and lines to sankeys, maps of a hierarchy and org charts. Charts and codes
{content}Keeps a piece of template under a name instead of printing it, for a later {name} to render. Variables and stores
{copy}A text in a code block with a button that copies it to the clipboard. Widgets
{data}Turns its content - JSON, XML, YAML, CSV, a list or a range - into a named data set for a later tag to iterate. Variables and stores
{datatable}Rows as a complete HTML table - formatted numbers, a totals row, sorting and paging on the server. Widgets
{false}The constant FALSE: its content is skipped and its @else@ part renders instead. Conditions
{highlight}Colours source code on the server - PAD, PHP, HTML, CSS, JavaScript, JSON, YAML, SQL or shell - with optional line numbers and marked lines. Text and formatting
{jsonview}A JSON value or a PHP array as a tree that folds open and shut, coloured by type. Widgets
{mail}Renders a template, or its own content, to an e-mail with an HTML and a text part, and sends it. Network and mail
{map}Draws a choropleth map as inline SVG - every country coloured by a value of its row - of the world or one of its regions. Charts and codes