- A time machine that links to future content.
- Wiki markup for rapid web design.
- Paste content from wikis and blogs.
- Add HTML tags, CSS, JavaScript, PHP...
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:
- install a compiler for Linux variants or Windows,
- download and install flex,
- download tml and unpack it,
- edit the Makefile,
- run "make," and then "make install."
For users
TML runs in a cmd window. Simply add tml top your path.
- unpack the archive to someplace like c:\tml
- open a cmd window
- change to the tml directory: cd \tml
Convert README.txt to tml.html:
tml README.txt > tml.htmlInstead 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.htmlFor 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.
For administrators
This bash script updates all pages and links across a domain.
for x in *.tml; do tml -q "$x" > "${x%%tml}html"; doneIf 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.iconDescription 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 html5Stylesheets and JavaScript
Stylesheets and scripts may be linked at the top of the page.
style: some_file.css script: some_script.jsThe 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
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
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>
Copyright © 2026 Henry Kroll III, thenerdshow.com This web page is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.