#tbody
Release v4.14.1 · markuplint/markuplint https://github.com/markuplint/markuplint/releases/tag/v4.14.1

Markuplint v4.14.1 はパッチアップデートの扱いだけれど、required-element ルールに ignoreOmittedElements が追加されたのは嬉しい。
これで table 要素内に tbody 開始・終了タグの記述を強制できるようになった。(tbody の記述を省略しても DOM 上は存在するため、これまではチェックができなかった)
Release v4.14.1 · markuplint/markuplint
Highlights Added ignoreOmittedElements option to the required-element rule neighbor-popovers rule now supports the Invoker Commands API Added non-interactive CLI mode to create-rule (for AI/automa...
github.com
February 11, 2026 at 3:08 AM
<td><code class="language-plaintext highlighter-rouge">keyword: jailbreak_attempt</code></td>
<td>N/A</td>
<td>Real-time interception</td>
</tr>
</tbody>
</table>

<p><strong>Key takeaways:</strong></p>

<ul>
January 23, 2026 at 6:48 PM
<th>Query Type</th>
<th>Signal Detection</th>
<th>Reasoning</th>
<th>Optimization</th>
</tr>
</thead>
<tbody>
<tr>
<td>Math/Science</td>
<td><code class="language-plaintext highlighter-rouge">domain: math</code></td>
<td>✅ Enabled</td>
January 23, 2026 at 6:48 PM
<td>Quick English answers</td>
</tr>
<tr>
<td>100</td>
<td><code class="language-plaintext highlighter-rouge">default_route</code></td>
<td>Any</td>
<td>gpt-oss-120b</td>
<td>General queries</td>
</tr>
</tbody>
</table>

<hr />
January 23, 2026 at 6:47 PM
</thead>
<tbody>
<tr>
<td>200</td>
<td><code class="language-plaintext highlighter-rouge">jailbreak_blocked</code></td>
<td><code class="language-plaintext highlighter-rouge">keyword: jailbreak_attempt</code></td>
<td>gpt-oss-20b</td>
<td>Security</td>
</tr>
January 23, 2026 at 6:46 PM
<td>Detects corrections, satisfaction, clarifications</td>
<td>50-100ms</td>
</tr>
<tr>
<td><strong>preference</strong></td>
<td>Route preference matching via external LLM</td>
<td>100-200ms</td>
</tr>
</tbody>
</table>
January 23, 2026 at 6:46 PM
<th>Description</th>
<th>Latency</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>keyword</strong></td>
<td>Pattern matching with keywords/regex</td>
<td>&lt; 1ms</td>
</tr>
<tr>
<td><strong>embedding</strong></td>
January 23, 2026 at 6:45 PM
</tr>
<tr>
<td>100</td>
<td><code class="language-plaintext highlighter-rouge">casual_chat</code></td>
<td>Any (default)</td>
<td>gpt-oss-20b</td>
<td>off</td>
</tr>
</tbody>
</table>

<p><img src="/assets/figures/semantic-router/mom-3.png" alt="" /></p>
January 23, 2026 at 6:44 PM
<tr>
<th>Priority</th>
<th>Decision</th>
<th>Trigger Signals</th>
<th>Target Model</th>
<th>Reasoning</th>
</tr>
</thead>
<tbody>
<tr>
<td>200</td>
<td><code class="language-plaintext highlighter-rouge">guardrails</code></td>
January 23, 2026 at 6:43 PM
<td>120B</td>
<td>General purpose, default fallback</td>
</tr>
<tr>
<td><strong>gpt-oss-20b</strong></td>
<td>20B</td>
<td>Fast QA, security responses</td>
</tr>
</tbody>
</table>

<p><strong>Routing Decision Matrix:</strong></p>

<table>
<thead>
January 23, 2026 at 6:42 PM
</tr>
</thead>
<tbody>
<tr>
<td><strong>Qwen3-235B</strong></td>
<td>235B</td>
<td>Complex reasoning (Chinese), Math, Creative</td>
</tr>
<tr>
<td><strong>DeepSeek-V3.2</strong></td>
<td>320B</td>
<td>Code generation and analysis</td>
</tr>
January 23, 2026 at 6:42 PM
<h3 id="why-this-distinction-matters">Why This Distinction Matters</h3>

<table>
<thead>
<tr>
<th>Aspect</th>
<th>MoE</th>
<th>MoM</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Scope</strong></td>
<td>Single model architecture</td>
January 23, 2026 at 6:41 PM
<td>Quick English answers</td>
</tr>
<tr>
<td>100</td>
<td><code class="language-plaintext highlighter-rouge">default_route</code></td>
<td>Any</td>
<td>gpt-oss-120b</td>
<td>General queries</td>
</tr>
</tbody>
</table>

<hr />
January 23, 2026 at 6:31 PM
</thead>
<tbody>
<tr>
<td>200</td>
<td><code class="language-plaintext highlighter-rouge">jailbreak_blocked</code></td>
<td><code class="language-plaintext highlighter-rouge">keyword: jailbreak_attempt</code></td>
<td>gpt-oss-20b</td>
<td>Security</td>
</tr>
January 23, 2026 at 6:30 PM
<td>Detects corrections, satisfaction, clarifications</td>
<td>50-100ms</td>
</tr>
<tr>
<td><strong>preference</strong></td>
<td>Route preference matching via external LLM</td>
<td>100-200ms</td>
</tr>
</tbody>
</table>
January 23, 2026 at 6:30 PM
<th>Description</th>
<th>Latency</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>keyword</strong></td>
<td>Pattern matching with keywords/regex</td>
<td>&lt; 1ms</td>
</tr>
<tr>
<td><strong>embedding</strong></td>
January 23, 2026 at 6:30 PM
</tr>
<tr>
<td>100</td>
<td><code class="language-plaintext highlighter-rouge">casual_chat</code></td>
<td>Any (default)</td>
<td>gpt-oss-20b</td>
<td>off</td>
</tr>
</tbody>
</table>

<p><img src="/assets/figures/semantic-router/mom-3.png" alt="" /></p>
January 23, 2026 at 6:28 PM
<tr>
<th>Priority</th>
<th>Decision</th>
<th>Trigger Signals</th>
<th>Target Model</th>
<th>Reasoning</th>
</tr>
</thead>
<tbody>
<tr>
<td>200</td>
<td><code class="language-plaintext highlighter-rouge">guardrails</code></td>
January 23, 2026 at 6:27 PM
<td>120B</td>
<td>General purpose, default fallback</td>
</tr>
<tr>
<td><strong>gpt-oss-20b</strong></td>
<td>20B</td>
<td>Fast QA, security responses</td>
</tr>
</tbody>
</table>

<p><strong>Routing Decision Matrix:</strong></p>

<table>
<thead>
January 23, 2026 at 6:27 PM
</tr>
</thead>
<tbody>
<tr>
<td><strong>Qwen3-235B</strong></td>
<td>235B</td>
<td>Complex reasoning (Chinese), Math, Creative</td>
</tr>
<tr>
<td><strong>DeepSeek-V3.2</strong></td>
<td>320B</td>
<td>Code generation and analysis</td>
</tr>
January 23, 2026 at 6:26 PM
</tr>
</tbody>
</table>

<p><strong>The insight</strong>: MoE and MoM are complementary. You can use MoE models (like Qwen3-30B-A3B) as components within a MoM system—getting the best of both worlds.</p>

<p><img src="/assets/figures/semantic-router/mom-0.png" alt="" /></p>

<hr />
January 23, 2026 at 6:26 PM
Want to replicate this?
Start with raw tables.
Add structure with thead and tbody.
Map rows clearly.
Only then add sorting.
Build trust first,
speed second,
polish third.

#fasthtml
January 19, 2026 at 10:31 AM
FastHTML Thead() and Tbody() gives the table structure
users can trust.
January 14, 2026 at 3:57 PM
🎨CSS note

tableの行スタイルで
tbody tr:nth-child(2n) を使うと、
奇数行と偶数行で背景色を分けられる。

視認性を上げるのにちょうどいい。

#CSS
#WebDevelopment
January 8, 2026 at 5:36 AM
🎨 CSS note

Context:
Table row styling

Details:
Applied tbody tr:nth-child(2n)

Effect:
Alternating background colours for odd and even rows, improving scanability ✨

#CSS
#WebDevelopment
#buildinpublic
January 8, 2026 at 5:30 AM