---
name: "wml::std::tags"
section: "3"
platform: "linux"
package: "wml"
version: "2.32.0~ds1-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/wml::std::tags"
---

# wml::std::tags(3)

Standard Support Tags

## NAME

wml::std::tags - Standard Support Tags

## SYNOPSIS

```
 #use wml::std::tags
 #   Pass 2: advanced if constructs
 <ifdef varname thenval elseval>
 #   Pass 3: support tag
 <perl> ... </perl>
 <say> ... </say>
 #   Pass 4: support tag
 <m4> ... </m4>
 #   Pass 4: symbols
 <symbol name value>
 <symbol name undef>
 #   Pass 5: diversions
 <dump NAME>
 <enter NAME> ... <leave>
 <divert NAME> ... </divert>
 #   Pass 6: support tag
 <asubst ...> ... </asubst>
 #   Client-Side JavaScript: support tag
 <javascript [version=..] [language=..]
             [type=..] [src=...] [defer] [nohead] [nolang]>
 ...
 </javascript>
 #   Resynchronize line numbers for more accurate pass 3 warnings
 <sync-lines>
```

## DESCRIPTION

This include file defines some standard support tags one needs all the time. All tags are self-explanatory and briefly mentioned in **wml\_intro**(1), except the last two which are described below.

### "\<javascript\>":

This tag was primarily a shorthand for `"<script` `type="text/javascript" language="JavaScript">"` but it has evolved.  If the `"<head>"` tag is defined and is a complex macro, e.g. when calling `"wml::std::page"`, then Javascript code is automatically passed to this macro and should be diverted to the HEAD section of HTML documents.  This diversion preserve lang slices in multi-lingual documents.  Those features may be disabled by the \`\`nohead'' and \`\`nolang'' attributes.

### "\<sync-lines\>":

WML tries to print information on input file and line numbers when warnings or errors are reported in passes 2 and 3.  Some special sentences containing file names and line numbers are inserted during pass 1. So pass 2 have an accurate knowledge of where warnings appear in input file.  But it also filters it without preserving lines, so after pass 2 information is almost unusable.  By putting `"<sync-lines>"` in input file, it forces pass 2 to resynchronize information on line numbers.  So for debugging pass 3, it could be of some help to insert `"<sync-lines>"` before ePerl code.

## AUTHORS

```
 Ralf S. Engelschall
 rse@engelschall.com
 www.engelschall.com
 Denis Barbier
 barbier@engelschall.com
```

## REQUIRES

```
 Internal: P1, P2, P3, P4, P6
 External: --
```

## SEE ALSO

[**wml**(1)](/wml/1.md)
