Index   show  hide


  A Note on Frames  -  4/4.1/4.1.2
  A multiply justified table with no beginning header but with a header  -  5/5.1
  Aligned Lists  -  3/3.2/3.2.2
  Alternate Links  -  4/4.1/4.1.3
  Appending Arguments  -  2/2.1/2.1.3
  Applicability  -  4/4.1/4.1.7
  Author  -  1/1.1


  Beginning  -  2/2.1/2.1.1
  Block  -  4/4.1/4.1.7
  Browser  -  1/1.3
  Bullet Lists  -  3/3.2/3.2.1
  But could you do it  -  11


  Change Bar  -  4/4.2
  Choose only one type of header line  -  5/5.2
  Colors  -  5/5.2
  Column Alignment  -  5/5.2
  Columns  -  5/5.2
  Command Line Arguments  -  2/2.1/2.1.3
  Comments  -  2/2.1/2.1.2
  Configure Redirection  -  2/2.2/2.2.4
  Create a Note or Hint  -  4/4.2
  Creating Bold Text  -  4/4.2
  Creating In-line Bold Text  -  4/4.2
  Creating In-line Underlined Text  -  4/4.2


  Dash Lists  -  3/3.2/3.2.2
  Document Beginning  -  2
  Document Header and Footer  -  2/2.2
  Document Syntax  -  2/2.1


  Embedded Html  -  4/4.1/4.1.7


  First Level  -  3/3.1/3.1.1
  Following Bullet  -  3/3.2/3.2.2
  Footnotes  -  4/4.1/4.1.6
  Form Layout  -  6/6.2
  Forms  -  6
  Frame File Samples  -  2/2.3



  Hi  -  2/2.2/2.2.1
  History of Greece  -  3/3.2/3.2.1


  Image References  -  4/4.1/4.1.5
  In-Line Pre-formatted Text  -  4/4.2
  In-Line  -  4/4.1/4.1.7
  Include File  -  4/4.1/4.1.7
  Introduction  -  1
  Item 1  -  3/3.2/3.2.2
  Item 2  -  3/3.2/3.2.2
  Item 3  -  3/3.2/3.2.2




  Links in Tables  -  4/4.1/4.1.4
  Links  -  4/4.1
  Lists  -  3/3.2
  Literal References  -  4/4.1/4.1.5
  Literal URL Links  -  4/4.1/4.1.2


  Man  -  2/2.2/2.2.3


  Nail  -  3/3.2/3.2.2
  New Windows Links  -  4/4.1/4.1.2


  Other Examples  -  3/3.2/3.2.2


  Pre-formatting Ending  -  4/4.2
  Preformatted Box  -  4/4.2
  Print  -  4/4.1/4.1.8


  Quick Lists  -  3/3.2/3.2.3
  Quick Start  -  1/1.2


  Reserved HTML Characters  -  4/4.2
  Reserved Variables  -  7
  Rules  -  4/4.1/4.1.6
  Rules  -  4/4.3
  Rules  -  5/5.2
  Rules  -  6/6.2


  Sample  -  6/6.2
  Search Links  -  4/4.1/4.1.8
  Second Level  -  3/3.1/3.1.2
  Section Links  -  4/4.1/4.1.1
  Sections and Lists  -  3
  See costs specified above  -  3/3.2/3.2.2
  Special Directives  -  4
  Special Input Characters Explained  -  6/6.2
  Special Links  -  4/4.1/4.1.8
  Sub-sections  -  3/3.1
  Submit Button  -  6/6.2
  Syntax  -  3/3.3
  Syntax  -  4/4.3
  Syntax  -  5/5.2
  Syntax  -  6/6.2


  THis could b  -  11
  Table Margin  -  1
  Table Usage  -  5/5.1
  Table of Contents  -  2/2.1/2.1.3
  Tables  -  5
  Text Formatting  -  4/4.2
  There  -  2/2.2/2.2.2
  This can b  -  10
  This job  -  9
  This  -  8


  Usage  -  6/6.1


  Variables  -  7




  You  -  2/2.2/2.2.4


< 1 Introduction

Minio is a Perl application that converts text documents into HTML. It uses simple directives and rules to do this. The benefit is rapid HTML development and the ability to have a text README file retained for non Web access. It is also useful for those who just don't like to use HTML editors but don't want to code in HTML.

Minio works hand in hand with a CSS (Cascading Style Sheet). Without the stylesheet (perl -sample=style), the presentation will be very marginal. The advantage of using a style sheet is primarily maintainability. The page developer can change the stylesheet (minio.css file) and all of the pages that reference it will take on the new style. When you build a page with minio, it is assumed that you will have the reference to the minio.css file in the header file.

Mozilla and probably most other browsers besides Internet Explorer handle padding differently.

Instead of just padding the margins, the non-IE browsers expand the margin. Internet Explorer handles this differently – by moving the textual margin over. This condition is very evident when using "<div id=name>". To avoid problems, use the same padding values for all "div id" classes. If you using zero for all padding values for a "div id" class, you can use the "body" table class after the "<div id>" as an alternative method to add padding.

To avoid problems, place the DOCTYPE line below as the first line of your html file. The minio sample files already have this.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"

This will cause the popular browsers to recognize that the document adheres to HTML version 4. This allows you to use different padding values and still align boxes. In the case of the minio frames samples, one could use a bigger padding value on the lower frame as long as the "width: n" was adjusted to account for the difference.

< 1.1 Author

Minio was written by David C. Lyon (, Copyright 2005.

< 1.2 Quick Start

The best way to realize all the features of minio is to run the following command:

perl -sample=all

Follow the instructions carefully. The above command will extract all of the sample files, including minio.txt – the ASCII file to convert to HTML. This will provide the frames based HTML files.

To just create a non-frames page, you would do the following:

perl -sample=hf
perl -sample=help
perl minio.txt

Then, open the file minio.html in your web browser.

< 1.3 Browser

Minio was written to produce output compatible with Internet Explorer (Version 6 or later). You may not get clean looking documents with other unsupported browsers.

< 2 Document Beginning

The document header and TOC define the flow of the document. Lines 1 through the end of the table of contents cannot be free-flow. They must follow the document syntax below.

< 2.1 Document Syntax

< 2.1.1 Beginning

[<command-line arguments [&]]
Author, department
Document Title
<null line>

The first line is optional and may contain the command line arguments for minio (except the file name). You can use the "&" to continue the command line arguments.

For in-line file arguments, you may specify input file related arguments without the switch. See the example below.

notes /web/pub/images /web/pub/hdr.html /web/pub/ftr.html

For the above example, the correspondence is described below.

notes -imgpre=notes
/web/pub/images -imgdir=/web/pub/images
/web/pub/hdr.html -hdr=/web/pub/hdr.html
/web/pub/ftr.html -ftr=/web/pub/ftr.html


Any line beginning with a percent sign (%) is treated as a comment. That line will not show up in the HTML file that is created. The exception to this is for the header lines that define the title, author, date, etc. Those are positional lines and comments don't apply there. However, the optional first line defining command line arguments may be commented out. You may place as many consequtive comments at the beginning of the file as you wish.

< 2.1.3 Command Line Arguments

The command line arguments are listed below. You may place command line arguments directly in the document to process and avoid having to enter them at the command line. See section 2.1.1.

Usage: perl [file.txt] [-arguments]

Argument Description
file.txt Text file to transform
-skipin Override inline arguments (in file) - use cmd line
-encap Encapsulate file.txt in minio header template - then quit
-wrap Wrap long lines in file.txt & quit. Long contiguous strings preserved.
-sample=help Create a sample (help) text file called minio.txt
-sample=hf Create header/footer .html files - non frames.
-sample=fr Create frame template file
-sample=frtoc Create frame template file that includes TOC block
-sample=style Create sample "minio" style file
-sample=all All of the above or multiple options separated by ","
-sample=temp Create template file with minimal information
  (all files will be for frames)
TOC OPTIONS The gtoc switch generates TOC. Assumes document has none.
-gtoc=txt Generate file.toc (txt) ONLY and quit.
-gtoc=htm Create html file_toc.html while proc. file. Uses hdr/ftr.
  (assumes frame to link to is "content")
-gtoc=inl Create html toc within the html document.
-dtoc=htm Write document TOC to external html file (link to content)
-toctitle Instead of "Table of Contents" use the document title
-tochidden Use a hidden toc (<div>) and have a link to open

Argument Description
-setvar Replace variables in original TXT w/no HTML output
-imgpre pre[.ex] image name prefix/extension (pre_image[1..n].ex).
  Default prefix is blank (images are named
  "image[1..n].ext"). Default "ext" is ".gif".
-imgdir=dir directory for in-line images. If not specified,
  images are loaded from dir where HTML file is located.
-include No header/footer - create HTML include file
-hdr=file Header file to be added at top. Default - plain.
-ftr=file Footer file to be appended. Default - none.
-nosec Don't display section numbers (1 Section is Section)
-out=filespec Override normal html and opt. TOC files to filespec
-nocache Include HTML tags to turn off caching at browser
-format=fmt Valid HTML list fmt (Example A-bullet list is A..Z)
-error Log file for errors/other messages (infile.err)
-force Don't ask, just overwrite if an output file exists
-ext=extension Override the default extension of .html
-debug print debug information

Use UNIX style file paths for the input file and and for any options where an alternate file is specified (like -out). Example: /usr/users/jsmith/doc.html
< 2.2 Document Header and Footer

To have a HTML header and footer placed at the beginning and end of a document, use the -hdr and -ftr arguments.

If you want the "Document Title" to appear in the header and/or footer, or anywhere in the document, simply place "Minio Documentation" in your files (no quotes) wherever you want it replaced with the document title.

Any header file should contain the <html>, <head> and <body> tags.

< 2.3 Frame File Samples

When creating frame file samples (-fr -frtoc), you have the option of overriding the default "minio" name, saving you the time of editing the sample file. You can specify the header and footer file spec, title, and the main html file specification.

You may also use "-out=[/path/]file.html" to avoid the query of the path and file references.

< 3 Sections and Lists

Sections should match the TOC entry exactly if you are predefining a TOC. They are simply specified using the format "n Description".

For example:

3 Sections

The section list uses the HTML tag "UL". You can change the numbering using the format argument. (numeric, A-Z, etc.). The first section is the beginning of a "UL" block. This block is in effect until the end of the text file. A link will be created from the TOC entry to this section heading.

The section name must be alphanumeric – no punctuation.

< 3.1 Sub-sections

< 3.1.1 First Level

The sub-section is specified as "n.n Description". It is numbered with the number you specify and must match the TOC entry exactly. A dot (n.n) must be included to distinguish it as sub-section. A link will be created from the TOC entry to this sub-section heading. This HTML "UL" block is subordinate to the section list and is in effect until the next section.

For example:

3.1 Sub-sections

A link will be created from the TOC entry to this section heading.

< 3.1.2 Second Level

This is the same as the first level except that its scope is within a first level sub-section.

For example:

3.1.3 Second Level

< 3.2 Lists

< 3.2.1 Bullet Lists

An un-numbered list can be created using the "o" symbol as described below. This list is in effect until a new sub-section or new section is detected. It is used anywhere after the TOC. It makes sense to use it within a sub-section. Its primary use is to provide indented bullet items within a sub-section.

Lists are also useful in creating just a bulleted list with line breaks.

The format argument will also change the type of list symbol used in bullet lists.


o History of Greece

  The history of Greece is very colorful. It has spanned many 
  thousands of years.


< 3.2.2 Dash Lists

A dash list is specified using "-" and is used to create an unnumbered list that can follow a sectino or the bullet list. It can be used anywhere after the TOC but should be used within the scope of a bullet list or wherever an item list is needed where each item is followed immediately by the next item (See examples – below). The processing rule is this:

If you start a dash list and leave a blank line after the first item, your list will not end until the next bullet or section.
< 3.2.3 Quick Lists

Quick lists are good for indented lists between other text as the following example illustrates.

  • First
  • Second
  • Third

Each item is prefaced by a period and is ended by a null line. The HTML wraps the list in a decorative table.

< 3.3 Syntax

The following table describes the syntax for sections and lists.

Name Syntax Scope Termination
Section n name1 Document End of document
Sub-section-1 n.n name1 Section End of section
Sub-section-2 n.n.n name1 Sub-section-1 End of sub-section-1
Bullet Lists o name Document Any new section
Dash Lists - name Document Any new section or blank line (context)
Dash Lists Aligned - name :|=|+2 Document Any new section
Quick Lists . name Document null line

1 The section "name" must be comprised of alphanumeric characters and optional spaces.

2 The ":" is literal, the "=" gets changed to "-", and "+" is changed to space.

< 4 Special Directives

This section describes special directives that don't directly deal with sections but can be used within them (and sub-sections, lists, etc.).

< 4.1 Links

Links can be made to sections, servers, javascript and images.

You can avoid link translation for URL links by preceding them with a hyphen (-

< 4.1.1 Section Links

References to sections in your document can be used in many ways to produce links to the relevant sections themselves. An example is the best way to illustrate this.

The following:

When you write "See section 3.2", a link is created to 
section 3.2. Sub-sections also work (section 4.1.1).
Parenthesis can be used in a reference to section (section 5).


When you write "See section 3.2", a link is created to section 3.2. Sub-sections also work (see section 4.1.1). Parenthesis can be used in a reference to a section (section 5).

The following:

- See section 2
- See HTML (section 5)
- See Style Sheets (section 5.1)
- See section 3.2.2.o 'Other Examples'
- See [Build and airplane] in section 4.1.1.
- Click [here] in section3.2.2.o 'Other Examples'


Note that in the last two links, the text within the brackets is the hotlink text. In this way, you can determine the link name but reference the section. The very last link is a to a non-numbered bullet or dash link. The ending .o specifies it is a bullet link. This link refers to the non-numbered section titled 'Other Examples' under sub-section 3.2.2. Any non-numbered subsection is linkable if it is alpha-numeric with spaces, dashes or underscores.

< 4.1.2 Literal URL Links

This type of link uses the actual URL specified as the hot link text. Links can be to other sites or local. For a local link, you need only specify the URL type and directory and/or file.


results in public/minio.html.

If you are linking to a document via https and you normally open the existing page via http, you will need to fully qualify the https link (https://server.domain/document).

The following:

One can write a site link "see" and a link
will be made. One can also write "Send Email to" or
for just a mail link (without preceeding "Send Email to"), one can
specify mailto:user@address.


One can write "see"and a link will be made. One can also write "Send Email to or for just a mail link (without preceeding "Send Email to"), one can specify user@address.

< 4.1.3 Alternate Links

A URL can specified such that the URL is not the hot link text. For example, I could write:

Click (here)

which results in "Click here".

The word "here" would be the hot link text (not the URL).

For an image link, the following: (/images/new.gif 80,100)
w  h

results in . The width and height are optional.

The image "SRC" is contained inside the parenthesis.

< 4.1.4 Links in Tables

The above links can also be used within a table. See the example below.

See Telnet to telnet://

< 4.1.5 Image References

Using "(See Figure 1)" with no quotes causes an image reference as you see in

Figure 1

this image. The in-line reference will be to imgpre_image1.gif. The ".gif" extension is the default or whatever you specified with "-imgpre". To override, use "(See Figure 1/jpg)". The figure number corresponds to the image number. The directory for all image files is specified when you run minio.

There is an alternate figure directive that has less restrictions and can be used more than once per line. See below.




Loads the image in a 200 x 200 pixel space. The coordinates are optional.

The file naming is the same as if you used "(See Figure 1)".

< 4.1.6 Footnotes

You can create a footnote by using the forward and backward slash.

For example:

This formula is not without cost. \3

/3 The costs associated with the study were not verified.


This formula is not without cost.3

3 The costs associated with the study were not verified.

< 4.1.7 Embedded Html

While generally not necessary, you can embed html code within the text file you want to process. There are several ways to do this.

< 4.1.8 Special Links
< 4.2 Text Formatting

With preformatted text, other directives (bold, html, etc) do not apply.
< 4.3 Syntax

The following table describes the syntax for special directives.

Name Syntax Scope Termination Max/line
Ftp link ftp://addrPS In-line n/a 10
Http link http://addrPS In-line n/a 10
Https link (SSL) https://addrPS In-line n/a 10
Site link above with full URL In-line n/a 10
Http new win http:+//addrPS In-line n/a 10
Local link ftp|http|https:spec In-line n/a 10
Top link ftp|http|https::local-spec In-line n/a 10
News link news://addrPS In-line n/a 10
Telnet link telnet://addrPS In-line n/a 10
Mailto link mailto:user@addPS In-line n/a 10
Javascript link javascript:code In-line n/a 10
Image link /path/file [wpix,hpix] In-line n/a no limit
All of above url://addr (text) In-line n/a 10
Book link Book:(Title by Author) In-line n/a 10
Find link Find:(Search text) In-line n/a 10
Wikipedia link -Wikipedia:(Search text) In-line n/a 10
Print link -Print(H):(Search text) In-line n/a 10
Mail link S|-send Email to In-line n/a 10
Section link section n|n.n In-line n/a 10
Section link [txt] in section In-line n/a 10
non-Numb Sec link section n.o|d In-line n/a 10
Footnote link txt \<digit> In-line n/a no limit
Footnote ^/<digit> In-line n/a one
Figure load ^(See Figure N[/TY]) In-line n/a 1
Free Fmt Fig figureN[(wpix,hpix)] In-line n/a no limit
Image path image(/path/file [wpix,hpix]) In-line n/a no limit
PRE-Strip * Text Document null line n/a
PRE-Indent ! Text Document null line n/a
PRE-inline text Document asterisk no limit
Note: Note format Document null line n/a
Bold -- Text Document next line 1
Bold Inline BQtextBQ In-line n/a no limit
Underline QQtestQQ In-line n/a no limit
Subscript sp\digit In-line n/a no limit
Superscript sp/digit In-line n/a no limit
Changebar ---Begin Change Document ---End Change 1
Divider <hr> ------(20 or more) Document n/a n/a
Double quote " In-line n/a no limit
Greater then > In-line n/a no limit
Less then < In-line n/a no limit
Ampersand & In-line n/a no limit
code html code In-line n/a no limit
<script> <script> Document </script> one
<html> <html> Document </html> one
include file $include file Document end of file one

BQ The back quote character
QQ Two single quotes
PS Punctuation mark or space
BS Single space required at beginning unless first item in line
^ Must be first item in line
TY Specify alternate image type. (See Figure 2/gif)
< 5 Tables

Tables use the "TABLE" tag and can be created using the table keyword or the characters "#",";" or "|". Table headers are always centered and are specified as "-Header-". Two samples will be shown here.

< 5.1 Table Usage

Table justification is specified for each column. Its is defined using the first line of the table or with a table directive. Refer to the following.

< 5.2 Syntax

The following describes the basic syntax for tables.

[#|;+] -- Title Bar                     : Full width header/title
# -Header 1- # ... # -Header n-         : relative table
| -Header 1- # ... # -Header n-         : table w/o border
; -Header 1- # ... # -Header n-         : full (85%) width
+ -Header 1- # ... # -Header n-         : glossary type table
# Column 1   # ... # Column n

# Column 1   # ... # Column n
< 6 Forms

Forms use the "FORM" related tags. Forms are easy to specify using one of the form directives (section 6.2). The "Input-menu" keyword permits continuation on the next line (see section 6.2). The width of a table containing the form is by default variable unless you define the width.

Only text variables are supported with a default length of 30. You specify the headings and variable names. You can override the default by specifying the size after the variable.

< 6.1 Usage

Post-form/500: Sample:https://www.minio.sw/bin/
--- This is the Post-Form Example---
Input-form: Name: name:8:: autocomplete=off
Input-pass:-Password: password:10
To proceed now, [Click Right Here] and the action will be performed.
Input-menu: Days Available: day: Monday, Tuesday, Wednesday, Thursday
(-What day are you available?)
Input-menu: Time: time: 00-23
Input-box:-:place: Boston, New York
Input-form:\Address: address:40:60
Input-long: Description: des/This is the default text:2:30
Input-form:\Phone: phone/(777)-:20
Input-box:\Software: software :Netscape,+Explorer,+Eudora
(Describe the features you need)
--- Identifying your status is critical so that
    we can determine the size of your stipend ---
Input-rad: Status: stat: Student, +Faculty
Input-menu:Colors: colors: Red, Green, Cyan, Blue, Yellow
  Gold, Violet, Purple


This is the Post-Form Example
Name  Password
Note To proceed now,     and the action will be performed.
Days Available   What day are you available?
Time Boston New York
 Software Netscape Explorer Eudora
Describe the features you need
Tip Identifying your status is critical so that
we can determine the size of your stipend
Status Student Faculty
Form Actions

A null line ends the form specification.

Note the help text that displays for Name and Password. This is specified using the vertical bar at the end of the "Input-key" line. See Syntax below for more information.

< 6.2 Syntax

Directive Usage HTML
Post-form[-plain|noclass][/width]:5 Post-form[-plain|noclass]:<Form Heading>:<Script>[,<Java-Auth>]6 FORM
Input-submit: Input-submit: [submit-code] Form submit code - default if none supplied
Input-form: Input-form:<Lab>:<Var>[:<size>:<max>:<Opt>] INPUT TEXT
Input-pass: Input-pass:<Lab>:<Var>[:<size>:<max>:<Opt>] INPUT PASSWORD
Input-long: Input-long:<Lab>:<Var>[:<size>:<Opt>] TEXTAREA
Input-box: Input-box:<Lab>:<Var>:<Choices> INPUT CHECKBOX
Input-rad: Input-rad:<Lab>:<Var>:[+]<Choices> INPUT RADIO
Input-lab: Input-lab:<Label> (left hand label only) N/A
Input-hidden: Input-hidden::<Var>:[:<size>:][:<max>] INPUT HIDDEN
Input-key: + Input-KEY:+[<Lab>]:<Var> (Multi TD value label) TD
Input-key: - Input-KEY:-[<Lab>]:<Var> (Cont. same line) n/a
Input-key:: Input-KEY::<Var> (new line w/o label) n/a
Input-key: \ Input-KEY:\[<Lab>]:<Var> (Cont. after BR ) BR
Input-key: . Input-KEY:.[<Lab>]:<Var> (Cont. same line) TD
Input-menu: Input-menu:<Lab>:<Var>:[+]<Choices> SELECT
  <Choices> OPTION
[click text] Text [Click] text INPUT SUBMIT
| help text Input-key:<Lab>:<Var>[:<Size>:<Max>:<Opt>] | text TITLE

5 Width is specified in pixels.

6 Optionally specify a JS function to validate form. Add it to the header file.

< 7 Variables

Minio supports the use of variables within the text file. They can be used in any line of the text file. You specify them as follows.


You can use optionally use a hyphen or underscore in the middle of the name. The variable name may contain only alphanumeric characters.

For example, I could write "call kd if you have problems". Then, minio would ask me what to put for kd.

If you need to use the curly brackets, just escape the "{" with a backslash so the text following isn't treated as a variable. See example below.

Use the backslash as in \{escape this}.

They won't be treated as variables and minio will remove the "\".

< 8 This

See But could you do it

< 9 This job

< 10 This can b

< 11 THis could b

Created by minio