<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Data surfaces on Katalyst Documentation</title><link>https://deploy-preview-116--stately-starburst-216875.netlify.app/reference/data-surfaces/</link><description>Recent content in Data surfaces on Katalyst Documentation</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://deploy-preview-116--stately-starburst-216875.netlify.app/reference/data-surfaces/index.xml" rel="self" type="application/rss+xml"/><item><title>File metadata</title><link>https://deploy-preview-116--stately-starburst-216875.netlify.app/reference/data-surfaces/file-metadata/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-116--stately-starburst-216875.netlify.app/reference/data-surfaces/file-metadata/</guid><description>&lt;h1 id="file-metadata"&gt;File metadata&lt;a class="anchor" href="#file-metadata"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;File metadata is the data surface derived from an item&amp;rsquo;s filesystem reference. It
does not parse item content; it reads names, extensions, parent directories,
path segments, and path depth from where the item lives.&lt;/p&gt;
&lt;h2 id="terms"&gt;Terms&lt;a class="anchor" href="#terms"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Term&lt;/th&gt;
					&lt;th&gt;Meaning&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;File metadata&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Attributes derived from an item&amp;rsquo;s path or filesystem reference.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Filename&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;The basename of the item path.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Extension&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;The suffix used to classify the file&amp;rsquo;s format, such as &lt;code&gt;.md&lt;/code&gt; or &lt;code&gt;.txt&lt;/code&gt;.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Parent directory&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;The directory immediately containing the item.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Path depth&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;The number of directory levels between the collection root and the item.&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="model"&gt;Model&lt;a class="anchor" href="#model"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;File metadata belongs to the item because the item&amp;rsquo;s reference can carry
meaning: a file&amp;rsquo;s name may need to match a field, an extension may need to be
allowed, or a collection may require one index file per directory.&lt;/p&gt;</description></item><item><title>Plain text</title><link>https://deploy-preview-116--stately-starburst-216875.netlify.app/reference/data-surfaces/plain-text/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-116--stately-starburst-216875.netlify.app/reference/data-surfaces/plain-text/</guid><description>&lt;h1 id="plain-text"&gt;Plain text&lt;a class="anchor" href="#plain-text"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Plain text is the body content read as raw text. It ignores markdown structure
and treats the selected span as text to match with regular expressions or
literal denylist entries.&lt;/p&gt;
&lt;h2 id="terms"&gt;Terms&lt;a class="anchor" href="#terms"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Term&lt;/th&gt;
					&lt;th&gt;Meaning&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Plain text&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;The body surface interpreted as raw text.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Body&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;The content being searched. For markdown files, this excludes frontmatter.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Span&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;The slice of body text a text check evaluates: the whole body, each line, the first line, or matched lines.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Target&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;The configured span selector for a text check.&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="model"&gt;Model&lt;a class="anchor" href="#model"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Plain-text checks run against body text, not structured metadata and not
markdown syntax trees. For markdown items, the body comes from the
&lt;a href="https://deploy-preview-116--stately-starburst-216875.netlify.app/reference/data-surfaces/markdown-body-text/"&gt;Markdown body text&lt;/a&gt; view after
frontmatter has been separated. For plain-text items, the whole item body is the
text surface.&lt;/p&gt;</description></item><item><title>Markdown body text</title><link>https://deploy-preview-116--stately-starburst-216875.netlify.app/reference/data-surfaces/markdown-body-text/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-116--stately-starburst-216875.netlify.app/reference/data-surfaces/markdown-body-text/</guid><description>&lt;h1 id="markdown-body-text"&gt;Markdown body text&lt;a class="anchor" href="#markdown-body-text"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Markdown body text is the data surface produced from a markdown-like file with
optional structured frontmatter. The codec lives in
&lt;code&gt;internal/codec/markdownbodytext&lt;/code&gt;; it turns bytes on disk into structured
metadata plus body bytes that checks, inspectors, and
&lt;a href="https://deploy-preview-116--stately-starburst-216875.netlify.app/deep-dives/domain-model/fix/"&gt;&lt;code&gt;fix&lt;/code&gt;&lt;/a&gt; can share.&lt;/p&gt;
&lt;h2 id="terms"&gt;Terms&lt;a class="anchor" href="#terms"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Term&lt;/th&gt;
					&lt;th&gt;Meaning&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Markdown body text&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;The parsed markdown file-form exposed as a data surface: optional structured frontmatter, body bytes, source format, and source-line lookup.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Frontmatter&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;The structured metadata block at the top of a markdown file, in YAML, TOML, or JSON.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Body&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Everything after the closing frontmatter fence. If there is no frontmatter, the whole file is the body.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Document&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;The in-memory representation returned by &lt;code&gt;markdownbodytext.Parse&lt;/code&gt;.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Metadata&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;The parsed frontmatter shape, normalized to &lt;code&gt;map[string]any&lt;/code&gt;.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Source line map&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;A JSON-pointer-path to 1-indexed source line lookup used for locatable violations.&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="model"&gt;Model&lt;a class="anchor" href="#model"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The unit of work is a file on disk with two possible regions:&lt;/p&gt;</description></item><item><title>Structured object</title><link>https://deploy-preview-116--stately-starburst-216875.netlify.app/reference/data-surfaces/structured-object/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-116--stately-starburst-216875.netlify.app/reference/data-surfaces/structured-object/</guid><description>&lt;h1 id="structured-object"&gt;Structured object&lt;a class="anchor" href="#structured-object"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Structured object is the data surface that exposes named fields and values. Today,
for filesystem markdown collections, it comes from parsed frontmatter metadata.
The domain-model term is broader on purpose: future bases may provide rows,
documents, or API resources directly as structured objects.&lt;/p&gt;
&lt;h2 id="terms"&gt;Terms&lt;a class="anchor" href="#terms"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Term&lt;/th&gt;
					&lt;th&gt;Meaning&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Structured object&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;A map-like representation of an item&amp;rsquo;s structured data.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Field&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;A key in the structured object. A field is an attribute; not every attribute is a field.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Metadata&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;The parsed markdown frontmatter shape used as the structured object today.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Schema directive&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;The inline &lt;code&gt;schema:&lt;/code&gt; key that opts an item into a named schema before validation.&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="model"&gt;Model&lt;a class="anchor" href="#model"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In the current filesystem backend, the structured-object surface is
&lt;code&gt;Document.Meta&lt;/code&gt; from &lt;a href="https://deploy-preview-116--stately-starburst-216875.netlify.app/reference/data-surfaces/markdown-body-text/"&gt;Markdown body text&lt;/a&gt;.
It is normalized to &lt;code&gt;map[string]any&lt;/code&gt; no matter whether the source frontmatter
was YAML, TOML, or JSON.&lt;/p&gt;</description></item></channel></rss>