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

# wmk(1)

Website META Language Make

## NAME

WMk - Website META Language Make

## VERSION

2\.32.0

## SYNOPSIS

**wmk** \[**-a**\] \[**-A** *WILDMAT*\] \[**-F** *WILDMAT*\] \[**-x** *PATH*\] \[**-X** *PATH*\] \[**-a**\] \[**-f**\] \[**-n**\] \[**-r**\] \[*WML-options*\] \[*path* ...\]

**wmk** \[**-V**\] \[**-h**\]

## DESCRIPTION

This is the high-level frontend to the *Website META Language* (WML), a free HTML generation toolkit for Unix, internally consisting of 9 independent languages.  See [**wml**(1)](/wml/1.md) for more details on WML.

Use this command to run *wml* on a bunch of *.wml* files either directly given on the command line as *path* or found via directory traversal in *path*.

WMk recognizes WML's *shebang* lines (\`\``"#!wml"` *options*'') in the *.wml* files and automatically adds *options* to the command line of *wml* when invoking it for this particular file.

## OPTIONS

- **-a**, **--all**

  Specifies that WMk should recursively process **all** *.wml* files it finds in *path*.

- **-A**, **--accept=***WILDMAT*

  Accepts (=includes) all files matched by the shell wildcard pattern *WILDMAT* for processing. WMk always has a pre-configured \`\``"-A *.wml"`'' option which forces it to process all WML files per default.   This option is only used when *path* is a directory.

- **-F**, **--forget=***WILDMAT*

  Forgets (=exclude) all files and directories matched by the shell wildcard pattern *WILDMAT* which were previously accepted by option **-A**.

- **-o**, **--outputfile=***PATH*

  Specifies output files.  When this flag is used in *.wmlrc*, the same flag must be put in *.wmkrc* to let WMk know when to rebuild these output files.

- **-x**, **--exec-prolog=***PATH*

  Executes *PATH* in the local context of *path* **before** the WML commands are run.  This options is only used when *path* is a directory.

- **-X**, **--exec-epilog=***PATH*

  Executes *PATH* in the local context of *path* **after** the WML commands are run.  This options is only used when *path* is a directory.

- **-f**, **--force**

  Forces the creation of output files. Usually WMk tries to determine if the input file was really modified and skips WML invocations if the output files are still up-to-date.

- **-n**, **--nop**

  Sets *no-operation* (nop) where WMk runs as usual but does not actually invoce the *wml* commands. Use this option to see what *wmk* would do.

- **-r**, **--norcfile**

  This forces WMk to ignore all *.wmkrc* and WML to ignore all *.wmlrc* files.

- **-V**, **--version**

  Gives the version identification string of WMk. Use this to determine the version of a installed WML toolkit.

- **-h**, **--help**

  Prints the usage summary page.

All *WML-options* directly correspond to their counterparts in [*wml*(1)](/wml/1.md) because they are just forwarded by *wmk* except the **-n** and **-o** options which are implicitly created by *wmk* for each *wml* invocation.

## USER FILES

- *$HOME/.wmkrc* and *(../)\*.wmkrc*

  These files can also contain option strings, one option per line.  One may use this file to exclude some directories from being searched for input files

  ```
    -F images
    -F templates
     ...
  ```

## CAVEAT

Auto-adjusted variables specified as **-DNAME~PATH** on the *wmk* command-line will not necessarily have the same effect as a similar definition in a *./.wmlrc* file.  This is because, when processing sub-directories, *wmk* changes its working directory to each of those directories, which can influence the interpolation of such auto-adjusted variables.  When specified on the command line, such variables are interpolated with respect to *wml*'s current working directory at the time of its invocation.  So, if you wish such variables to be interpolated relative to *wmk*'s current working directory at the time of its invocation, one can work-around this issue by specifying **-DNAME~PATH** in a *.wmlrc* in that directory rather than specifying it on the *wmk* command-line.

## AUTHORS

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

## SEE ALSO

[**wml**(1)](/wml/1.md), **wml\_intro**(1)
