WMK(1)
π WMK(1) β Website META Language Make π
okay bestie, sit down, hydrate, and let me tell you about wmk β the Website META Language Make. That's the WMk in the title up there, and she's serving EN Tools energy. β¨
πΈ VERSION πΈ
2.32.0 β yes ma'am, that's the version, write it down. π
β¨ SYNOPSIS β¨
wmk [-a] [-A WILDMAT] [-F WILDMAT] [-x PATH] [-X PATH] [-a] [-f] [-n]
[-r] [WML-options] [path ...]
wmk [-V] [-h]
(and yes, -a really does show up twice in there, I don't make the rules, I just report them π
)
π¦ DESCRIPTION π¦
So this is the high-level frontend to the Website META Language (WML) β a free HTML generation toolkit for Unix, which internally is made of 9 independent languages. Like, nine. A whole squad. If you want the deep lore, go read wml(1), she explains it better than I can. π«Ά
You use this command to run wml on a bunch of .wml files, either:
- handed to you directly on the command line as path, or
- discovered via directory traversal in path. π
And here's the cute part: WMk recognizes WML's shebang lines ("#!wml" options) inside your .wml files, and automatically adds those options to the command line of wml when it invokes it for that particular file. It's giving personal assistant energy, honestly. π
π OPTIONS π
-a,--allβ says WMk should recursively process all.wmlfiles it finds in path. Go get 'em all, girl. π₯-A,--accept=WILDMATβ accepts (aka includes) every file matched by the shell wildcard pattern WILDMAT for processing. WMk always comes with a pre-configured"-A *.wml"option already in the bag, which forces it to process all WML files by default. This option only matters when path is a directory. β¨-F,--forget=WILDMATβ forgets (aka excludes) all files and directories matched by the shell wildcard pattern WILDMAT that were previously accepted by option-A. It's the un-accept. The anti-invite. π-o,--outputfile=PATHβ specifies output files. And listen, important detail: when this flag is used in.wmlrc, the same flag must be put in.wmkrcso WMk knows when to rebuild these output files. Don't skip that part, I'm begging. π-x,--exec-prolog=PATHβ executes PATH in the local context of path before the WML commands are run. 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. Also only used when path is a directory. (prolog before, epilog after β that's the whole vibe) πΈ-f,--forceβ forces the creation of output files. Usually WMk is out here doing detective work, figuring out if the input file was really modified, and skipping WML invocations if the output files are still up-to-date. This flag says no thoughts, just build. π-n,--nopβ sets no-operation (nop): WMk runs as usual but does not actually invoke thewmlcommands. Perfect little dry run, use it to see whatwmkwould do. Main character reconnaissance. π (and yes, the manpage really spells it "invoce" β we keep the lore intact π«Ά)-r,--norcfileβ forces WMk to ignore all.wmkrcfiles and WML to ignore all.wmlrcfiles. Full clean slate, no baggage, we love a fresh start. π§-V,--versionβ gives the version identification string of WMk. Use this to figure out the version of an installed WML toolkit. β-h,--helpβ prints the usage summary page. The lil map. πΊοΈ
All the WML-options correspond directly to their counterparts in wml(1), because they're just forwarded by wmk β except the -n and -o options, which are implicitly created by wmk for each wml invocation. β¨
π USER FILES π
$HOME/.wmkrcand(../)*.wmkrcβ these files can also contain option strings, one option per line. You can use this file to exclude some directories from being searched for input files, like:
-F images
-F templates
...
(that trailing ... is literally in there, bestie, it's a whole mood π)
β οΈ CAVEAT β οΈ
Okay this one matters, pay attention. π
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. Why? Because when processing sub-directories, wmk changes its working directory to each of those directories β which can totally influence the interpolation of those auto-adjusted variables. π
When specified on the command line, such variables get interpolated with respect to wml's current working directory at the time of its invocation. So if you want those variables interpolated relative to wmk's current working directory at the time of its invocation, the work-around is: specify -DNAME~PATH inside a .wmlrc in that directory, rather than on the wmk command-line. No cap. π
π AUTHORS π
- Ralf S. Engelschall β
rse@engelschall.comβwww.engelschall.com - Denis Barbier β
barbier@engelschall.com
Legends, both of them. π«Ά
π SEE ALSO π
wml(1), wml_intro(1)
and that's the whole page, babe β this one came from the EN Tools girlies and it's dated 2020-11-29, so go forth and wmk responsibly. mwah ππ
β¨
π¦ where this page comes from
- debian bookworm: wml 2.32.0~ds1-1 Β· GPL-2.0-or-later
- debian trixie: wml 2.32.0~ds1-1 Β· GPL-2.0-or-later
- ubuntu jammy: wml 2.32.0~ds1-1 Β· GPL-2.0-or-later
- ubuntu noble: wml 2.32.0~ds1-1 Β· GPL-2.0-or-later
- ubuntu questing: wml 2.32.0~ds1-1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms