<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Content and Customization on OINK</title><link>https://pgsty.github.io/oink.pgsty.com/docs/content/</link><description>Recent content in Content and Customization on OINK</description><generator>Hugo</generator><language>en-US</language><atom:link href="https://pgsty.github.io/oink.pgsty.com/docs/content/index.xml" rel="self" type="application/rss+xml"/><item><title>Adding Content</title><link>https://pgsty.github.io/oink.pgsty.com/docs/content/adding-content/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink.pgsty.com/docs/content/adding-content/</guid><description>&lt;p&gt;OINK uses Hugo&amp;rsquo;s content model: Markdown carries the information, front matter
carries page metadata, and layouts turn both into a static site. This guide
describes the conventions used by the bundled English and Simplified Chinese
sample site.&lt;/p&gt;
&lt;h2 id="content-root-directory"&gt;Content root directory&lt;a class="td-heading-self-link" href="#content-root-directory" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Site content lives below &lt;code&gt;content/&lt;/code&gt;. A multilingual site can use separate roots
such as &lt;code&gt;content/en/&lt;/code&gt; and &lt;code&gt;content/zh/&lt;/code&gt;, or translated filename suffixes in one
mounted tree. This repository uses the second form:&lt;/p&gt;</description></item><item><title>AI-agent support</title><link>https://pgsty.github.io/oink.pgsty.com/docs/content/agent-support/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink.pgsty.com/docs/content/agent-support/</guid><description>&lt;div class="td-alert td-alert--md alert alert-note" role="alert"&gt;&lt;div class="td-alert-heading alert-heading" role="heading" aria-level="4"&gt;Early evaluation&lt;/div&gt;
 &lt;div class="td-alert-body"&gt;
 &lt;p&gt;Features described in this page are &lt;a href="https://pgsty.github.io/oink.pgsty.com/project/about/changelog/#experimental"&gt;experimental&lt;/a&gt;, and are useful for early
adoption and evaluation. Output details and validation coverage may change in
future releases. To track the phased evolution of the agent-support feature,
see &lt;a href="https://github.com/google/docsy/issues/2614"&gt;Improve support for AI-agent doc consumption #2614&lt;/a&gt;.&lt;/p&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="features"&gt;Features&lt;a class="td-heading-self-link" href="#features" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;When your site opts in, these are the user-facing and machine-readable behaviors
Docsy enables:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://pgsty.github.io/oink.pgsty.com/docs/content/agent-support/#markdown-output"&gt;Markdown output format&lt;/a&gt;&lt;/strong&gt; support. Your project&amp;rsquo;s
&lt;code&gt;outputs&lt;/code&gt; configuration controls which page kinds publish Markdown.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Discovery&lt;/strong&gt;: page HTML headers include &lt;code&gt;rel=&amp;quot;alternate&amp;quot;&lt;/code&gt; links to the
Markdown version of the page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;View Markdown&lt;/strong&gt;: page meta area includes a &lt;strong&gt;View Markdown&lt;/strong&gt; link to the
Markdown version of the page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://pgsty.github.io/oink.pgsty.com/docs/content/agent-support/#llms-txt"&gt;&lt;code&gt;llms.txt&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt;: site-root file listing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The remainder of this page explains how to enable each feature, and discusses
&lt;a href="https://pgsty.github.io/oink.pgsty.com/docs/content/agent-support/#validation-and-metrics"&gt;validation and metrics&lt;/a&gt; supported with examples.&lt;/p&gt;</description></item><item><title>Analytics, user feedback, and SEO</title><link>https://pgsty.github.io/oink.pgsty.com/docs/content/feedback/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink.pgsty.com/docs/content/feedback/</guid><description>&lt;p&gt;OINK does not contact analytics, form, comment, or advertising services by
default. These integrations are site decisions: enable them explicitly, document
the data boundary, and provide any consent or policy required by the site&amp;rsquo;s
users and jurisdiction.&lt;/p&gt;
&lt;h2 id="adding-analytics"&gt;Adding analytics&lt;a class="td-heading-self-link" href="#adding-analytics" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Hugo provides embedded templates for analytics services. When a site configures
Google Analytics, browser usage information such as page views and custom events
is sent to Google. This is incompatible with a fully air-gapped runtime and may
be incompatible with a strict same-origin Content Security Policy.&lt;/p&gt;</description></item><item><title>Diagrams and formulae</title><link>https://pgsty.github.io/oink.pgsty.com/docs/content/diagrams-and-formulae/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink.pgsty.com/docs/content/diagrams-and-formulae/</guid><description>&lt;p&gt;OINK supports KaTeX, Mermaid, Markmap, PlantUML, and Diagrams.net. KaTeX,
Mermaid, and Markmap use build-time or same-origin resources shipped with the
theme. PlantUML and the Diagrams.net editor require an explicitly configured
service endpoint; they do not silently default to a public service.&lt;/p&gt;
&lt;h2 id="latex-support-with-katex"&gt;LaTeX support with KaTeX&lt;a class="td-heading-self-link" href="#latex-support-with-katex" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://katex.org/"&gt;KaTeX&lt;/a&gt; renders TeX mathematics for the web. Hugo&amp;rsquo;s embedded KaTeX support can
render formulae at build time, so readers do not need a remote math service.&lt;/p&gt;</description></item><item><title>Logos and Images</title><link>https://pgsty.github.io/oink.pgsty.com/docs/content/iconsimages/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink.pgsty.com/docs/content/iconsimages/</guid><description>&lt;h2 id="add-your-logo"&gt;Add your logo&lt;a class="td-heading-self-link" href="#add-your-logo" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;By default, Docsy shows a site logo at the start of the navbar, that is, at the
extreme left. Place your project&amp;rsquo;s SVG logo in &lt;code&gt;assets/icons/logo.svg&lt;/code&gt;. This
overrides the default Docsy logo in the theme.&lt;/p&gt;
&lt;p&gt;If you don&amp;rsquo;t want a logo to appear in the navbar, then set site parameter
&lt;code&gt;navbar_logo&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; in your project&amp;rsquo;s config:&lt;/p&gt;
&lt;!-- markdownlint-disable no-shortcut-ref-link --&gt;
&lt;!-- prettier-ignore-start --&gt;





&lt;ul class="nav nav-tabs" id="tabs-0" role="tablist"&gt;&lt;li class="nav-item"&gt;&lt;button class="nav-link disabled" id="tabs-00-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-00" role="tab" aria-controls="tabs-00-00" aria-selected="false" disabled aria-disabled="true"&gt;Configuration file:&lt;/button&gt;&lt;/li&gt;&lt;li class="nav-item"&gt;&lt;button class="nav-link active" id="tabs-00-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-01" role="tab" data-td-tp-persist="toml" aria-controls="tabs-00-01" aria-selected="true"&gt;hugo.toml&lt;/button&gt;&lt;/li&gt;&lt;li class="nav-item"&gt;&lt;button class="nav-link" id="tabs-00-02-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-02" role="tab" data-td-tp-persist="yaml" aria-controls="tabs-00-02" aria-selected="false"&gt;hugo.yaml&lt;/button&gt;&lt;/li&gt;&lt;li class="nav-item"&gt;&lt;button class="nav-link" id="tabs-00-03-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-03" role="tab" data-td-tp-persist="json" aria-controls="tabs-00-03" aria-selected="false"&gt;hugo.json&lt;/button&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;div class="tab-content" id="tabs-0-content"&gt;&lt;div class="tab-pane fade" id="tabs-00-00" role="tabpanel" aria-labelledby="tabs-00-00-tab" tabindex="0"&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="tab-pane fade show active" id="tabs-00-01" role="tabpanel" aria-labelledby="tabs-00-01-tab" tabindex="0"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;params&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ui&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;navbar_logo&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="tab-pane fade" id="tabs-00-02" role="tabpanel" aria-labelledby="tabs-00-02-tab" tabindex="0"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;params&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;ui&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;navbar_logo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="tab-pane fade" id="tabs-00-03" role="tabpanel" aria-labelledby="tabs-00-03-tab" tabindex="0"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;params&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;ui&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;navbar_logo&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;!-- prettier-ignore-end --&gt;
&lt;!-- markdownlint-enable no-shortcut-ref-link --&gt;
&lt;p&gt;For information about styling your logo, see &lt;a href="https://pgsty.github.io/oink.pgsty.com/docs/content/lookandfeel/#styling-your-project-logo-and-name"&gt;Styling your project logo and
name&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Look and Feel</title><link>https://pgsty.github.io/oink.pgsty.com/docs/content/lookandfeel/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink.pgsty.com/docs/content/lookandfeel/</guid><description>&lt;p&gt;OINK ships a complete visual system built on Bootstrap and Docsy, with local
fonts, icons, styles, and browser code. A consuming site can change tokens and
project styles without rebuilding a Node dependency tree.&lt;/p&gt;
&lt;h2 id="project-styles"&gt;Project styles&lt;a class="td-heading-self-link" href="#project-styles" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Hugo Extended compiles the theme&amp;rsquo;s SCSS through Hugo Pipes. Project overrides
participate in the same bundle, so production builds can minify, fingerprint,
and integrity-check one same-origin stylesheet.&lt;/p&gt;
&lt;h3 id="project-style-files"&gt;Project style files&lt;a class="td-heading-self-link" href="#project-style-files" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Override these files in the site&amp;rsquo;s &lt;code&gt;assets/scss/&lt;/code&gt; directory:&lt;/p&gt;</description></item><item><title>Navigation and Menus</title><link>https://pgsty.github.io/oink.pgsty.com/docs/content/navigation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink.pgsty.com/docs/content/navigation/</guid><description>&lt;p&gt;OINK combines Hugo&amp;rsquo;s content tree and menu model with a documentation workspace:
a global navbar, a collapsible and resizable section sidebar, and a collapsible
page outline. The same structure works for English, Chinese, and right-to-left
languages.&lt;/p&gt;
&lt;h2 id="site-navbar"&gt;Site navbar&lt;a class="td-heading-self-link" href="#site-navbar" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The global navbar is built from Hugo&amp;rsquo;s &lt;code&gt;main&lt;/code&gt; menu plus OINK-generated controls.
Depending on configuration and page type, it can include version, language,
color-mode, and search controls.&lt;/p&gt;
&lt;h3 id="adding-main-menu-entries"&gt;Adding &lt;code&gt;main&lt;/code&gt; menu entries&lt;a class="td-heading-self-link" href="#adding-main-menu-entries" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Define a menu entry in page front matter:&lt;/p&gt;</description></item><item><title>Print Support</title><link>https://pgsty.github.io/oink.pgsty.com/docs/content/print/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink.pgsty.com/docs/content/print/</guid><description>&lt;p&gt;Individual documentation pages print well from most browsers as the layouts have
been styled to omit navigational chrome from the printed output.&lt;/p&gt;
&lt;p&gt;On some sites, it can be useful to enable a &amp;ldquo;print entire section&amp;rdquo; feature (as
seen in this user guide). Selecting this option renders the entire current
top-level section (such as Content and Customization for this page) with all of
its child pages and sections in a format suited to printing, complete with a
table of contents for the section.&lt;/p&gt;</description></item><item><title>Repository links and page information</title><link>https://pgsty.github.io/oink.pgsty.com/docs/content/repository-links/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink.pgsty.com/docs/content/repository-links/</guid><description>&lt;p&gt;OINK&amp;rsquo;s documentation and blog layouts can show links to the current page&amp;rsquo;s
source repository:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;View page source&lt;/strong&gt; opens the source file.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Edit this page&lt;/strong&gt; opens an editable source view.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Create child page&lt;/strong&gt; starts a new file below the current page and can use the
site&amp;rsquo;s &lt;code&gt;assets/stubs/new-page-template.md&lt;/code&gt; template.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Create documentation issue&lt;/strong&gt; opens an issue against the documentation
repository with page context.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Create project issue&lt;/strong&gt; optionally targets a separate product repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The built-in URL patterns target GitHub-style repositories. Verify every action
when using another compatible host, and override the relevant partial for a
different URL scheme.&lt;/p&gt;</description></item><item><title>Search</title><link>https://pgsty.github.io/oink.pgsty.com/docs/content/search/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink.pgsty.com/docs/content/search/</guid><description>&lt;p&gt;OINK&amp;rsquo;s default and recommended search is local. Hugo generates a per-language
index; the theme serves Lunr and its CJK fallback from same-origin assets. The
site can build and search without a public crawler, external account, CDN, or
network connection.&lt;/p&gt;
&lt;p&gt;Google Custom Search and Algolia DocSearch remain compatible online
integrations. They are disabled by default and should be enabled only when the
site accepts their external requests, indexing, availability, and privacy
boundaries.&lt;/p&gt;</description></item><item><title>Shortcodes</title><link>https://pgsty.github.io/oink.pgsty.com/docs/content/shortcodes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink.pgsty.com/docs/content/shortcodes/</guid><description>&lt;p&gt;Shortcodes add behavior that ordinary Markdown cannot express. OINK retains the
core Docsy components and adds locally served charts, terminal recordings,
infographics, carousels, cards, and disclosure widgets. Browser runtimes load
only on pages that use them.&lt;/p&gt;
&lt;p&gt;Prefer Markdown for headings, prose, lists, links, tables, and images. A
shortcode becomes part of the content API: changing its name or parameters can
break every page that calls it.&lt;/p&gt;
&lt;h2 id="shortcode-delimiters"&gt;Shortcode delimiters&lt;a class="td-heading-self-link" href="#shortcode-delimiters" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Hugo supports two forms:&lt;/p&gt;</description></item><item><title>Taxonomy Support</title><link>https://pgsty.github.io/oink.pgsty.com/docs/content/taxonomy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink.pgsty.com/docs/content/taxonomy/</guid><description>&lt;p&gt;Docsy supports Hugo &lt;a href="https://gohugo.io/content-management/taxonomies/"&gt;taxonomies&lt;/a&gt; in its docs and blog section. You can see the
default layout and can test the behavior of the generated links on this page.&lt;/p&gt;
&lt;h2 id="terminology"&gt;Terminology&lt;a class="td-heading-self-link" href="#terminology" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;To understand the usage of taxonomies you should understand the following
terminology:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Taxonomy&lt;/strong&gt;: a categorization that can be used to classify content - e.g.:
Tags, Categories, Projects, People&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Term&lt;/strong&gt;: a key within the taxonomy - e.g. within projects: Project A, Project
B&lt;/p&gt;</description></item><item><title>Versioning</title><link>https://pgsty.github.io/oink.pgsty.com/docs/content/versioning/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink.pgsty.com/docs/content/versioning/</guid><description>&lt;!-- markdownlint-disable blanks-around-headings no-bare-urls single-h1 --&gt;
&lt;p&gt;Depending on your project&amp;rsquo;s releases and versioning, you may want to let your
users access previous versions of your documentation. How you deploy the
previous versions is up to you. This page describes the Docsy features that you
can use to provide navigation between the various versions of your docs and to
display an information banner on the archived sites.&lt;/p&gt;
&lt;h2 id="adding-a-version-drop-down-menu"&gt;Adding a version drop-down menu&lt;a class="td-heading-self-link" href="#adding-a-version-drop-down-menu" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;If you add some &lt;code&gt;[params.versions]&lt;/code&gt; in &lt;code&gt;hugo.toml&lt;/code&gt;/&lt;code&gt;hugo.yaml&lt;/code&gt;/&lt;code&gt;hugo.json&lt;/code&gt;, the
Docsy theme adds a version selector drop down to the navbar. You specify a URL
and a name for each version you would like to add to the menu, as in the
following example:&lt;/p&gt;</description></item></channel></rss>