Use wiki-style text markup along with CSS templates to build faster web sites. Example:

TML is our time machine from the future. If we write something in any of our pages about how simple it is and then later on create a page called simple.tml it will go back in time and create links pointing to it in all the pages we created!

Getting started

TML is free software. download tml

TML is extremely light-weight, lightening-fast, and cross-platform, thanks to the raw power of C and the flex lexical analyzer under the hood; however, C programs must first be compiled. Luckily, we have included an executable, tml.exe, so Windows users may opt to skip this section. For other operating systems:

  1. install a compiler for Linux variants or Windows,
  2. download and install flex,
  3. download tml and unpack it,
  4. edit the Makefile,
  5. run "make," and then "make install."

For users

TML runs in a cmd window. Simply add tml top your path.

  1. unpack the archive to someplace like c:\tml
  2. open a cmd window
  3. change to the tml directory: cd \tml

Convert README.txt to tml.html:

tml README.txt > tml.html

Instead of README.txt we could create "something.tml" with a text editor, and then use tml to turn that into a valid HTML web page.

tml something.tml > something.html

For programmers

TML may be run stand-alone, in makefiles, or configured as a compiler for text editors and integrated development environments (IDEs).

Set TML as compiler (CTRL-F7) for .tml files.

For the SciTE text editor, in User Options file, SciTEUser.properties, add the following:
    command.compile.*.tml=tml -q "$(FileNameExt)" > "$(FileName).html"

Some Programmers prefer SciTE for its user-contributed scripts.

See the Makefile in this project for an example that uses tml with GNU make that we use to automatically (re)build all the html files even when they have names with spaces in them.

web building

For administrators

This bash script updates all pages and links across a domain.

for x in  *.tml; do tml -q "$x" > "${x%%tml}html"; done

If we later created a web page named "latest stylesheets.html" in the current directory to showcase all the stylesheets we made, we could run this script again to rebuild every .html file and replace every occurrence of the words, "latest stylesheets" with links to "latest stylesheets.html!" No more dead links. Delete "latest stylesheets.html" and all references to it are gone!

Header Section

Now we are ready to create our first tml file. The top of every tml page is a header section with a page title, description, stylesheets, and scripts.

As always, HTML tags may be freely mixed in wherever desired.

Title and icon

A title and/or icon may be added to the top of the page for search engines:

title: Page Title
icon: images/tml.icon

Description and keywords

A meta author, description, or keywords may appear at the top of the page.

description: TML is A useful utility for making HTML files and web sites. keywords: HTML text editing programming web www html css w3c html5

Stylesheets and JavaScript

Stylesheets and scripts may be linked at the top of the page.

style: some_file.css script: some_script.js

The first linked stylesheet becomes the "preferred" stylesheet. Subsequent stylesheets are assigned rel="alternate1", rel="alternate2", etc. This is useful for using JavaScript to switch stylesheets dynamically.

Body Section

The header and body sections are separated by at least three dashes ---.

--- doubles as a horizontal rule. HTML tags may also be used (<hr>).


Links

URLs such as https:anch.org are linked automatically.

Changing the link text is as easy as putting some descriptive text after the link: [https://anch.org click me] becomes click me.

Images

If the URL points to an image it will display as one. [images/tml1.png] becomes

Linked Images

Links may be combined with images, like this:

[https://www.w3schools.com/css/css_float.asp images/web-design2.jpg]

Links with Style

Styles and other attribute information may be applied to text and image links.

The formula is [URL ATTRIBUTES TEXT/IMAGE].

Example [https://www.w3schools.com/css/css_float.asp style = "float:right; " images/web-design2.jpg]

HTML tags

TML is handy for quick layout of images and links but sometimes more features are needed. Remember, TML also accepts any and all HTML tags: <a href="#" onclick=""><img src=...

CSS rollover buttons

CSS rollover buttons are an extension to the usual wiki markup. They are URL links that that let designers include extra class, style, and events. One could just as easily use HTML tags for this. The button styless should be defined in whatever css file the author links in the page header section. See evening.css for our example that defaults to a width of 100% of the container. Anyone may design their own css rollover buttons, or include styles from an automatic button generator.

[[ button text ]] class="myButton inline" https://anch.org

becomes

button text

CSS image buttons

See evening.css for our example of an image button that extends the myButton class with an image. You can make your own image buttons like the ones in our images directory. The size isn't too critical. The image background stretches to fit and the button stretches the full width of the screen or navbar unless we use the inline class we defined in CSS.

[[ button text ]] class="myButton imaged inline" https://anch.org

becomes

button text

Headings

=Heading 1=
==Heading 2==
===Heading 3===

Bold, Italics, Strike

`bold in italics strikesupersub_ becomes _*bold* in italics ~~strike^super^,,sub,,~~_ ===Blockquotes===     Each tab or spaces turns into a 

.         Indent more as desired. ===An ordered list=== An ordered list begins with "#" and is indented throughout. {{{     # First item     # next item         # indented more }}}     # First item     # next item         # indented more ===Unordered lists=== An unordered list begins with "*". {{{     * First item     * next item         # ordered list indented more         # item two     * more items... }}}     * First item     * next item         # ordered list indented more         # item two     * more items... ===Tables=== Creating tables is easy. This: {{{ Name    ||Address   ||City Joe     ||123 Main  ||Anywhere }}} Becomes: Name    ||Address   ||City Joe     ||123 Main  ||Anywhere ===Include HTML=== Raw HTML files such as scripts, widgets, videos, and ad banners may be included anywhere on the page to make templates. Templates are desirable for readability and for keeping reusable content in a central location..include my_ad_banner.htmlFiles of type .tml will be converted to HTML first. Anthing else is included "as is." <a name="design"></a> ==Web design considerations== This web page, generated by TML, employs a custom [https://en.wikipedia.org/wiki/Tableless_web_design table-less web design] we created. Popular and custom css templates may be used with tml. See the [https://csszengarden.com/ CSS Zen Garden] for ideas! We used our own unique preferences for the generated HTML, with the  tags over to the right for readability. [javascript:viewSource();  View source of this page] to see what we mean. Those who prefer their  HTML tags on the left or indented in a more conventional way (such as  students who have to conform) may wish to pipe the output through  [https://tidy.sourceforge.net/ htmltidy] prior to submission. <a name="contributors"></a> ==Project contributors== Programming and web design: Henry Kroll https://thenerdshow.com Contributed patches and updates are welcome. TML is very concise, but  this leaves lots of room for bugs. You are free to fix and adapt it  to your use under the terms of the GPL. There is no mailing list.  Send corrections or patches to the author at [email protected]. class="small" TML and associated documentation are Copyright (C) 2014  Henry Kroll III. Permission is granted to copy, distribute and/or  modify this document under the terms of the GNU Free Documentation  License, Version 1.3 or any later version published by the Free  Software Foundation; with no Invariant Sections, no Front-Cover  Texts, and no Back-Cover Texts. A copy of the license is included in  the section entitled "GNU Free Documentation License" TML is a small,  independent non-commercial project not affiliated with large,  commercial enterprises. class="small" This program is free software: you can redistribute it  and/or modify it under the terms of the GNU Lesser General Public  License as published by the Free Software Foundation, either version  3 of the License, or (at your option) any later version. class="small" This program is distributed in the hope that it will be  useful, but WITHOUT ANY WARRANTY; without even the implied warranty  of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU  Lesser General Public License for more details. </div> *Keep it going.* Support development or <a href="mailto:nospam&@64;thenerdshow.com">hire an expert programmer</a> for your next project. <p style="clear: both"></p>
CCBY Copyright © 2026 Henry Kroll III, thenerdshow.com This web page is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
</div>