HTMS debuted at EuroTcl 2019 as part of
SPMC: SISLIDY Presentation Markup Compiler
.
HTMS is OSS
debuted at Sqlite2021.
HTMS is the basis of the SPMC presentation markup compiler.
SPMC compiled this slide show into a single HTML document.
Void Tags
Void tags cannot contain content.
HTMS
br
HTML
<br/>
Empty Elements
Empty elements do not have contents.
HTMS
figcaption
HTML
<figcaption> </figcaption>
Elements with Content
HTML is meant to markup content.
HTMS
p CONTENT
HTML
<p> CONTENT </p>
Tags w/ Key-only Attributes
Key-only attributes have implied values.
HTMS
p.hidden CONTENT
HTML
<p hidden=hidden> CONTENT </p>
Tags w/ Key-Value Attributes
Key-value attributes have explicit values.
HTMS
a.rel=next CONTENT
HTML
<a rel=next> CONTENT </a>
Tags w/ Multiple Attributes
Tags can have multiple attributes.
HTMS
a.rel=next.rev=prev CONTENT
HTML
<a rel=nextrev=prev> CONTENT </a>
Superfluous Attributes
Special case of superfluous attributes.
HTMS
a.rel=next.rel=prev CONTENT
HTML
<a rel=next> CONTENT </a>
Superfluous attributes are omitted.
A lot of tiny changes can sum up to a noticeable improvement.
A billion here, a billion there, and pretty soon you're
talking real money.
— attributed to U.S. Senator Everett Dirksen
See Improving ... performance using micro-optimizations.
EuroTcl, Eindhoven, 2016.
Tags with a Class Attribute
The class attribute is the element's type.
HTMS
a=C1 CONTENT
HTML
<a class=C1> CONTENT </a>
Tags with an ID Attribute
IDs name elements in HTML, CSS, etc.
HTMS
p#1a CONTENT
HTML
<p id=1a> CONTENT </p>
Tags with Style Properties
Style attributes contain CSS properties.
HTMS
a.color:red CONTENT
HTML
<a style=color: red;> CONTENT </a>
Multiple Style Properties ...
... are put in a single attribute.
HTMS
a.color:#800.color:red.hyphens:none CONTENT
HTML
<a style=color: red; hyphens: none;> CONTENT </a>
Superfluous properties are omitted.
Compound Shorthand
The shorthand forms can be combined.
HTMS
figcaption=quote#dirksen.hidden.color:blue
HTML
<figcaption class=quoteid=dirksenhidden style=color: blue;> </figcaption>
www.tcl.tk/tcl/TclCmd/*.htm
htms size raw size 1_245_614 93% of 1_346_630 111 files 6_487 94% of 7_077 median 11_222 94% of 12_135 mean
htms size full size 1_245_614 91% of 1_382_875 111 files 6_487 92% of 7_375 median 11_222 92% of 12_458 mean
An Anchor with an Href
Use a second # (and BTW, .. is .)
HTMS
a##tcl..tk/#globalnav CONTENT
HTML
<a href=tcl.tk/#globalnav> CONTENT </a>
Saves and additional 2%-points.
www.tcl.tk/tcl/TclCmd/*.htm
htms size -vs- raw size, -vs- full size 1_239_233 91% 1_346_630 89% 1_382_875 111 files 6_340 92% 7_077 90% 7_375 median 11_164 92% 12_132 90% 12_458 mean
Anchor with everything
HTMS
a=C1#1a#tcl..tk.rel=next.fg:#FFF.bg:blue HTML content
HTML
<a class=C1id=1ahref=tcl.tkrel=nextstyle=fg: #FFF; bg: blue;> HTML content </a>
Not merely available source
With many, many license choices ...
Free for any usage EXCEPT patents or trademarks!
Free for any copyright usage, but ...
Neither FSF- nor OSI-approved for software.
Free for any usage, but ...
Both FSF- and OSI-approved for software.
Free for any usage.
OSI approved for software.
Free for any usage, but ...
Neither FSF- nor OSI-approved for software.
Neither FSF- nor OSI-approved for software.
lines LOC cmd/htms 11 6 lib/drymodule-2.1.3.tm 111 29 src/edict/genpun-1.1.2.tm 112 65 src/edict/supsub-1.1.2.tm 47 41 src/htms-2.4.4.tm 275 244 src/htmscli-2.4.1.tm 109 93 ---------------------------- ----- --- 665 478
Improving TCL core performance using micro-optimizations, EuroTcl, Eindhoven, June 2016. youtu.be/AJrsl3rHQ74
SPMC: SISLIDY presentation markup compiler, EuroTcl, Nuremburg, June 2019. youtu.be/U5E3wewbpuM
SPDX license list, November 2021. https://spdx.org/licenses/