<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent"><div class="container">
<div class="line"><code class="jet softkeyword">import</code><code class="jet whitespace">&nbsp;</code><a class="jet ref" href="#html_ns"><code class="jet plain">html</code></a><code class="jet plain">.</code><code class="jet plain">*</code>&nbsp;</div>
<div class="line">&nbsp;</div>
<div class="line"><code class="jet whitespace"></code><code class="jet keyword">fun</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">result</code><code class="jet plain">(</code><code class="jet plain">args</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Array</code><code class="jet plain">&lt;</code><code class="jet plain">String</code><code class="jet plain">&gt;</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">=</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><a class="jet ref" href="#html"><code class="jet plain">html</code></a><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><a class="jet ref" href="#head"><code class="jet plain">head</code></a><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><a class="jet ref" href="#title"><code class="jet plain">title</code></a><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code><a class="jet ref" href="#plus"><code class="jet plain">+</code></a><code class="jet string">&quot;</code><code class="jet string">XML&nbsp;encoding&nbsp;with&nbsp;Kotlin</code><code class="jet string">&quot;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><a class="jet ref" href="#body"><code class="jet plain">body</code></a><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><a class="jet ref" href="#h1"><code class="jet plain">h1</code></a><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code><a class="jet ref" href="#plus"><code class="jet plain">+</code></a><code class="jet string">&quot;</code><code class="jet string">XML&nbsp;encoding&nbsp;with&nbsp;Kotlin</code><code class="jet string">&quot;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><a class="jet ref" href="#p"><code class="jet plain">p</code></a><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code><a class="jet ref" href="#plus"><code class="jet plain">+</code></a><code class="jet string">&quot;</code><code class="jet string">this&nbsp;format&nbsp;can&nbsp;be&nbsp;used&nbsp;as&nbsp;an&nbsp;alternative&nbsp;markup&nbsp;to&nbsp;XML</code><code class="jet string">&quot;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line">&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet jet-comment">//&nbsp;an&nbsp;element&nbsp;with&nbsp;attributes&nbsp;and&nbsp;text&nbsp;content</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><a class="jet ref" href="#a"><code class="jet plain">a</code></a><code class="jet plain">(</code><code class="jet plain">href</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">=</code><code class="jet whitespace">&nbsp;</code><code class="jet string">&quot;</code><code class="jet string">http://jetbrains.com/kotlin</code><code class="jet string">&quot;</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code><a class="jet ref" href="#plus"><code class="jet plain">+</code></a><code class="jet string">&quot;</code><code class="jet string">Kotlin</code><code class="jet string">&quot;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line">&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet jet-comment">//&nbsp;mixed&nbsp;content</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><a class="jet ref" href="#p"><code class="jet plain">p</code></a><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><a class="jet ref" href="#plus"><code class="jet plain">+</code></a><code class="jet string">&quot;</code><code class="jet string">This&nbsp;is&nbsp;some</code><code class="jet string">&quot;</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><a class="jet ref" href="#b"><code class="jet plain">b</code></a><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code><a class="jet ref" href="#plus"><code class="jet plain">+</code></a><code class="jet string">&quot;</code><code class="jet string">mixed</code><code class="jet string">&quot;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><a class="jet ref" href="#plus"><code class="jet plain">+</code></a><code class="jet string">&quot;</code><code class="jet string">text.&nbsp;For&nbsp;more&nbsp;see&nbsp;the</code><code class="jet string">&quot;</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><a class="jet ref" href="#a"><code class="jet plain">a</code></a><code class="jet plain">(</code><code class="jet plain">href</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">=</code><code class="jet whitespace">&nbsp;</code><code class="jet string">&quot;</code><code class="jet string">http://jetbrains.com/kotlin</code><code class="jet string">&quot;</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code><a class="jet ref" href="#plus"><code class="jet plain">+</code></a><code class="jet string">&quot;</code><code class="jet string">Kotlin</code><code class="jet string">&quot;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><a class="jet ref" href="#plus"><code class="jet plain">+</code></a><code class="jet string">&quot;</code><code class="jet string">project</code><code class="jet string">&quot;</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><a class="jet ref" href="#p"><code class="jet plain">p</code></a><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code><a class="jet ref" href="#plus"><code class="jet plain">+</code></a><code class="jet string">&quot;</code><code class="jet string">some&nbsp;text</code><code class="jet string">&quot;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line">&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet jet-comment">//&nbsp;content&nbsp;generated&nbsp;by</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><a class="jet ref" href="#p"><code class="jet plain">p</code></a><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet keyword">for</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">(</code><code class="jet plain">arg</code><code class="jet whitespace">&nbsp;</code><code class="jet keyword">in</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">args</code><code class="jet plain">)</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><a class="jet ref" href="#plus"><code class="jet plain">+</code></a><code class="jet plain">arg</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line">&nbsp;</div>
<div class="line"><code class="jet whitespace"></code><a name="html_ns"><code class="jet plain">namespace</code></a><code class="jet whitespace">&nbsp;</code><code class="jet plain">html</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code>&nbsp;</div>
<div class="line">&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><a name="Factory"><code class="jet softkeyword">abstract</code></a><code class="jet whitespace">&nbsp;</code><code class="jet keyword">class</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Factory</code><code class="jet plain">&lt;</code><code class="jet plain">T</code><code class="jet plain">&gt;</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet keyword">fun</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">create</code><code class="jet plain">(</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">T</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line">&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><a name="Element"><code class="jet softkeyword">abstract</code></a><code class="jet whitespace">&nbsp;</code><code class="jet keyword">class</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Element</code>&nbsp;</div>
<div class="line">&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><a name="TextElement"><code class="jet keyword">class</code></a><code class="jet whitespace">&nbsp;</code><code class="jet plain">TextElement</code><code class="jet plain">(</code><code class="jet keyword">val</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">text</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">String</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Element</code>&nbsp;</div>
<div class="line">&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><a name="Tag"><code class="jet softkeyword">abstract</code></a><code class="jet whitespace">&nbsp;</code><code class="jet keyword">class</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Tag</code><code class="jet plain">(</code><code class="jet keyword">val</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">name</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">String</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Element</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><a name="children"><code class="jet keyword">val</code></a><code class="jet whitespace">&nbsp;</code><code class="jet plain">children</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">=</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">ArrayList</code><code class="jet plain">&lt;</code><code class="jet plain">Element</code><code class="jet plain">&gt;</code><code class="jet plain">(</code><code class="jet plain">)</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><a name="attributes"><code class="jet keyword">val</code></a><code class="jet whitespace">&nbsp;</code><code class="jet plain">attributes</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">=</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">HashMap</code><code class="jet plain">&lt;</code><code class="jet plain">String</code><code class="jet plain">,</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">String</code><code class="jet plain">&gt;</code><code class="jet plain">(</code><code class="jet plain">)</code>&nbsp;</div>
<div class="line">&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet softkeyword">protected</code><code class="jet whitespace">&nbsp;</code><code class="jet keyword">fun</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">initTag</code><code class="jet plain">&lt;</code><code class="jet plain">T</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Element</code><code class="jet plain">&gt;</code><code class="jet plain">(</code><code class="jet plain">init</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">T</code><code class="jet plain">.</code><code class="jet plain">(</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">-&gt;</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Unit</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">T</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet softkeyword">where</code><code class="jet whitespace">&nbsp;</code><code class="jet keyword">class</code><code class="jet whitespace">&nbsp;</code><code class="jet keyword">object</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">T</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Factory</code><code class="jet plain">&lt;</code><code class="jet plain">T</code><code class="jet plain">&gt;</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet keyword">val</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">tag</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">=</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">T</code><code class="jet plain">.</code><code class="jet plain">create</code><code class="jet plain">(</code><code class="jet plain">)</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet plain">tag</code><code class="jet plain">.</code><code class="jet plain">init</code><code class="jet plain">(</code><code class="jet plain">)</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><a class="jet ref" href="#children"><code class="jet plain">children</code></a><code class="jet plain">.</code><code class="jet plain">add</code><code class="jet plain">(</code><code class="jet plain">tag</code><code class="jet plain">)</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet keyword">return</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">tag</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line">&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><a name="TagWithText"><code class="jet softkeyword">abstract</code></a><code class="jet whitespace">&nbsp;</code><code class="jet keyword">class</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">TagWithText</code><code class="jet plain">(</code><code class="jet plain">name</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">String</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Tag</code><code class="jet plain">(</code><code class="jet plain">name</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><a name="plus"></a><code class="jet keyword">fun</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">String</code><code class="jet plain">.</code><code class="jet plain">plus</code><code class="jet plain">(</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet plain">children</code><code class="jet plain">.</code><code class="jet plain">add</code><code class="jet plain">(</code><code class="jet plain">TextElement</code><code class="jet plain">(</code><code class="jet keyword">this</code><code class="jet plain">)</code><code class="jet plain">)</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line">&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><a name="HTML"><code class="jet keyword">class</code></a><code class="jet whitespace">&nbsp;</code><code class="jet plain">HTML</code><code class="jet plain">(</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">TagWithText</code><code class="jet plain">(</code><code class="jet string">&quot;</code><code class="jet string">html</code><code class="jet string">&quot;</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet keyword">class</code><code class="jet whitespace">&nbsp;</code><code class="jet keyword">object</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Factory</code><code class="jet plain">&lt;</code><code class="jet plain">HTML</code><code class="jet plain">&gt;</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet softkeyword">override</code><code class="jet whitespace">&nbsp;</code><code class="jet keyword">fun</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">create</code><code class="jet plain">(</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">=</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">HTML</code><code class="jet plain">(</code><code class="jet plain">)</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line">&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><a name="head"></a><code class="jet keyword">fun</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">head</code><code class="jet plain">(</code><code class="jet plain">init</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Head</code><code class="jet plain">.</code><code class="jet plain">(</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">-&gt;</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Unit</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">=</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">initTag</code><code class="jet plain">(</code><code class="jet plain">init</code><code class="jet plain">)</code>&nbsp;</div>
<div class="line">&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><a name="body"></a><code class="jet keyword">fun</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">body</code><code class="jet plain">(</code><code class="jet plain">init</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Body</code><code class="jet plain">.</code><code class="jet plain">(</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">-&gt;</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Unit</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">=</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">initTag</code><code class="jet plain">(</code><code class="jet plain">init</code><code class="jet plain">)</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line">&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><a name="Head"><code class="jet keyword">class</code></a><code class="jet whitespace">&nbsp;</code><code class="jet plain">Head</code><code class="jet plain">(</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">TagWithText</code><code class="jet plain">(</code><code class="jet string">&quot;</code><code class="jet string">head</code><code class="jet string">&quot;</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet keyword">class</code><code class="jet whitespace">&nbsp;</code><code class="jet keyword">object</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Factory</code><code class="jet plain">&lt;</code><code class="jet plain">Head</code><code class="jet plain">&gt;</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet softkeyword">override</code><code class="jet whitespace">&nbsp;</code><code class="jet keyword">fun</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">create</code><code class="jet plain">(</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">=</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Head</code><code class="jet plain">(</code><code class="jet plain">)</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line">&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><a name="title"></a><code class="jet keyword">fun</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">title</code><code class="jet plain">(</code><code class="jet plain">init</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Title</code><code class="jet plain">.</code><code class="jet plain">(</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">-&gt;</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Unit</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">=</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">initTag</code><code class="jet plain">(</code><code class="jet plain">init</code><code class="jet plain">)</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line">&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><a name="Title"><code class="jet keyword">class</code></a><code class="jet whitespace">&nbsp;</code><code class="jet plain">Title</code><code class="jet plain">(</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">TagWithText</code><code class="jet plain">(</code><code class="jet string">&quot;</code><code class="jet string">title</code><code class="jet string">&quot;</code><code class="jet plain">)</code>&nbsp;</div>
<div class="line">&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><a name="BodyTag"><code class="jet softkeyword">abstract</code></a><code class="jet whitespace">&nbsp;</code><code class="jet keyword">class</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">BodyTag</code><code class="jet plain">(</code><code class="jet plain">name</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">String</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">TagWithText</code><code class="jet plain">(</code><code class="jet plain">name</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line">&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><a name="Body"><code class="jet keyword">class</code></a><code class="jet whitespace">&nbsp;</code><code class="jet plain">Body</code><code class="jet plain">(</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">BodyTag</code><code class="jet plain">(</code><code class="jet string">&quot;</code><code class="jet string">body</code><code class="jet string">&quot;</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet keyword">class</code><code class="jet whitespace">&nbsp;</code><code class="jet keyword">object</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Factory</code><code class="jet plain">&lt;</code><code class="jet plain">Body</code><code class="jet plain">&gt;</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet softkeyword">override</code><code class="jet whitespace">&nbsp;</code><code class="jet keyword">fun</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">create</code><code class="jet plain">(</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">=</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Body</code><code class="jet plain">(</code><code class="jet plain">)</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line">&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><a name="b"></a><code class="jet keyword">fun</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">b</code><code class="jet plain">(</code><code class="jet plain">init</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">B</code><code class="jet plain">.</code><code class="jet plain">(</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">-&gt;</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Unit</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">=</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">initTag</code><code class="jet plain">(</code><code class="jet plain">init</code><code class="jet plain">)</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><a name="p"></a><code class="jet keyword">fun</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">p</code><code class="jet plain">(</code><code class="jet plain">init</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">P</code><code class="jet plain">.</code><code class="jet plain">(</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">-&gt;</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Unit</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">=</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">initTag</code><code class="jet plain">(</code><code class="jet plain">init</code><code class="jet plain">)</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><a name="h1"></a><code class="jet keyword">fun</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">h1</code><code class="jet plain">(</code><code class="jet plain">init</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">H1</code><code class="jet plain">.</code><code class="jet plain">(</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">-&gt;</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Unit</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">=</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">initTag</code><code class="jet plain">(</code><code class="jet plain">init</code><code class="jet plain">)</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><a name="a"></a><code class="jet keyword">fun</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">a</code><code class="jet plain">(</code><code class="jet plain">href</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">String</code><code class="jet plain">,</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">init</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">A</code><code class="jet plain">.</code><code class="jet plain">(</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">-&gt;</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Unit</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet keyword">val</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">a</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">=</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">initTag</code><code class="jet plain">(</code><code class="jet plain">init</code><code class="jet plain">)</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet plain">a</code><code class="jet plain">.</code><code class="jet plain">href</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">=</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">href</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line">&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><code class="jet keyword">class</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">B</code><code class="jet plain">(</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">BodyTag</code><code class="jet plain">(</code><code class="jet string">&quot;</code><code class="jet string">b</code><code class="jet string">&quot;</code><code class="jet plain">)</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><code class="jet keyword">class</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">P</code><code class="jet plain">(</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">BodyTag</code><code class="jet plain">(</code><code class="jet string">&quot;</code><code class="jet string">p</code><code class="jet string">&quot;</code><code class="jet plain">)</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><code class="jet keyword">class</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">H1</code><code class="jet plain">(</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">BodyTag</code><code class="jet plain">(</code><code class="jet string">&quot;</code><code class="jet string">h1</code><code class="jet string">&quot;</code><code class="jet plain">)</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><code class="jet keyword">class</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">A</code><code class="jet plain">(</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">BodyTag</code><code class="jet plain">(</code><code class="jet string">&quot;</code><code class="jet string">a</code><code class="jet string">&quot;</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet keyword">var</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">href</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">String</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet softkeyword">get</code><code class="jet plain">(</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">=</code><code class="jet whitespace">&nbsp;</code><a class="jet ref" href="#attributes"><code class="jet plain">attributes</code></a><code class="jet plain">[</code><code class="jet string">&quot;</code><code class="jet string">href</code><code class="jet string">&quot;</code><code class="jet plain">]</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet softkeyword">set</code><code class="jet plain">(</code><code class="jet plain">value</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code><code class="jet whitespace">&nbsp;</code><a class="jet ref" href="#attributes"><code class="jet plain">attributes</code></a><code class="jet plain">[</code><code class="jet string">&quot;</code><code class="jet string">href</code><code class="jet string">&quot;</code><code class="jet plain">]</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">=</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">value</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line">&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><a name="html"></a><code class="jet keyword">fun</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">html</code><code class="jet plain">(</code><code class="jet plain">init</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">HTML</code><code class="jet plain">.</code><code class="jet plain">(</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">-&gt;</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">Unit</code><code class="jet plain">)</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">:</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">HTML</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">{</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet keyword">val</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">html</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">=</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">HTML</code><code class="jet plain">(</code><code class="jet plain">)</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet plain">html</code><code class="jet plain">.</code><code class="jet plain">init</code><code class="jet plain">(</code><code class="jet plain">)</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="jet keyword">return</code><code class="jet whitespace">&nbsp;</code><code class="jet plain">html</code>&nbsp;</div>
<div class="line"><code class="jet whitespace">&nbsp;&nbsp;</code><code class="jet plain">}</code>&nbsp;</div>
<div class="line">&nbsp;</div>
<div class="line"><code class="jet whitespace"></code><code class="jet plain">}</code></div></div></div></div>