---
name: "wml_p7_htmlfix"
section: "3"
platform: "linux"
package: "wml"
version: "2.0.12ds1-10+b1"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/wml_p7_htmlfix/3"
---

# wml\_p7\_htmlfix(3)

Fixup HTML markup code

## NAME

htmlfix - Fixup HTML markup code

## SYNOPSIS

**htmlfix** \[**-o** *outputfile*\] \[**-F** *fixes*\] \[**-S** *fixes*\] \[**-v**\] \[*inputfile*\]

## DESCRIPTION

The *htmlfix* program reads *inputfile* or from `"stdin"` and performs the following actions (name of each fixup is within parentheses):

- (**imgsize**) : **Adding WIDTH and HEIGHT attributes to IMG tags**

  For all `"IMG"` tags which don't already have both `"WIDTH"` and `"HEIGHT"` attributes (matched case insensitive), the size of the image (taken from the `"SRC"` attribute) is determined and the missing \`\``"width=X"`'' and/or \`\``"height=Y"`'' is added to the list of attributes. The intention is to speedup the layouting of the final webpage.

  Don't intermix this with a size checker: *htmlfix* will only *add* missing width/height attributes and don't adjust ones with wrong dimensions. This is because else the user wouln't be able to scale images (used a lot by webdesigners via 1pt dot-images).

  There is a special case: When the `"WIDTH"` or `"HEIGHT"` attribute already exists and has a value of \`\``"*"`'' this asterisk is replaced by the physical value instead of appending a new attribute. Use when you want the attributes at a certain position, i.e. use this variant as a placeholder.

  HTMLfix supports one additionl feature in conjunction with `"WIDTH"` and `"HEIGHT"`: `"SCALE="`*factor* and `"SCALE="`*percent*`"%"`. This can be used to scale the given or determined width and height values by multiplying with *factor* or multiplying with *percent*/100.

- (**imgalt**) : **Adding ALT attribute to IMG tags**

  For all `"IMG"` tags which don't already have a `"ALT"` tag an `"ALT="""` attribute is added. The intention is to both make HTML checkers like [*weblint*(1)](/weblint/1.md) happy and to demystify the final webpage for [*lynx*(1)](/lynx/1.md) users.

- (**summary**) : **Adding SUMMARY attribute to TABLE tags**

  This attribute helps non-visual rendering of tables by adding a hint on its contents, and it makes [*tidy*(1)](/tidy/1.md) quiet.

- (**center**) : **Changing proprietary CENTER tag to standard DIV tag**

  All proprietary (Netscape) `"CENTER"` tags are replaced by the HTML 3.2 conforming construct \`\``"<DIV ALIGN=CENTER>"`''.

- (**space**) : **Fix trailing spaces in tags**

  Appendix C of the XHTML Specification recommands putting a space before closing simple tags to help rendering by old browsers.  This space is automatically added when this fixup is used.  On the other hand, all spaces before a right-angle bracker are suppressed.

- (**quotes**) : **Adding missing quotes for attributes**

  All attributes of the form \`\``"...=xyz"`'' are replaced by \`\``"...="xyz""`''. Furthermore all (color) attributes of the form \`\``"...="XXYYZZ""`'' (XX,YY,ZZ elements of set {0,..,9,a,..,f} are fixed to \`\``"...="#XXYYZZ""`''.

- (**indent**) : **Indenting paragraphs**

  Paragraphs enclosed in `"<indent [num=N]` `[size=S]>"`...`"</indent>"` containers are indented by N\*S spaces. When N=0 then the whitespace block in front of the paragraph is removed. Default is a 4 space indentation (N=1, S=4).

- (**comment**) : **Out-commenting tags**

  Sometimes it is useful to temporarily out-comment a tag instead of completely removing it. This can be done by just adding a sharp (\`\``"#"`'') character directly to the end of the tagname. The result is that the complete tag is commented out. For container-tags you have to comment out the end-tag explicitly, too. Example: \`\`\<`"a# href="...""`\>''.

- (**tagcase**) : **Markup-code case-conversion**

  Some people like their HTML markup code either to be all uppercase or all lowercase. This tag case-conversion is supported by the internal `"<tagconv case=...>"`...`"</tagconv>"` container tag from HTMLfix. Use `"case=upper"` to translate the HTML tags in its body to uppercase (default) or `"case=lower"` to translate them to lowercase.

## OPTIONS

- **-o** *outputfile*

  This redirects the output to *outputfile*. Usually the output will be send to `"stdout"` if no such option is specified or *outputfile* is "`"-"`".

- **-F** *fixes*

  This option specifies which specifix fixups are performed.  Its argument is a comma separated list of fixup names, and by default all fixups are performed.

- **-S** *fixes*

  This option does the inverse job, it skips specified fixups.

- **-v**

  This sets verbose mode where some processing information will be given on the console.

## AUTHORS

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