Skip to content
Pages

Attributes and producers

The overlay only reads attributes, so it doesn't care what rendered the page.

Attribute Set by Meaning
data-herb-source="path:line:col" Herb The element's open tag position, 1-based
A marker inside translated strings Tensaku's I18n backend Locale and key, stripped by the overlay
data-tensaku-group The app Widens the highlight and the edit target to this element
data-tensaku-md="path:line:col-line:col" A Markdown producer The block's Markdown source range, byte columns, end inclusive
data-tensaku-permanent The app The morph after a save leaves this element alone

Translation markers

In development, while a controller handles an HTML request, the I18n backend wraps each translated string in an invisible marker: U+2063, the locale and key encoded with zero-width characters, then U+2063. The overlay strips the markers when the page loads. The middleware strips them from <script>, <style> and non-HTML responses.

Kiln

Kiln's content layer adds data-tensaku-md in development when Tensaku is loaded, and Kiln's content directory is writable automatically. Kiln builds fail if any data-herb-* or data-tensaku-* attribute reaches the output. This site is built that way.