Skip to content

OINK 1.4.0 — Easier reading, better search

Expand selected tables, render and read diagrams locally, search across languages, and browse posts in a gallery.

OINK 1.4.0 makes technical pages easier to read. Large tables can open in a roomier view, Mermaid and PlantUML share one diagram viewer, and local search handles mixed Chinese and English queries more usefully. Blog galleries and smaller component refinements round out the release.

Tables: expand only where needed

Most tables work well inside an article. For the few that need more room, add .expand below the table. A small action appears in its upper-right corner on mouse hover or keyboard focus; it remains visible on touch screens. Clicking it opens the table in a dialog at a readable text size. Escape or Close returns to the same place in the article.

.wide selects the technical-table layout: identifiers stay intact and long descriptions have bounded widths. The two classes are independent and can be combined. Goldmark accepts multiple classes in the same attribute block:

| Extension | Version | Purpose |
| --- | --- | --- |
| pgvector | 0.8.1 | Vector similarity search |
{.wide .expand}

The same source renders below as a live table. Its corner control is the actual .expand reader, and the long-table sizing comes from .wide:

Example extension packages
Extension Version Purpose
pgvector 0.8.1 Vector similarity search
pg_stat_statements 1.11 Statement statistics

Existing .td-table--wide markup still works. Ordinary tables need no new controls. The reader preserves links, selection and the original table; Print and static outputs retain the complete content. Table captions now have proper padding, align with column labels and leave room for the corner action. See Tables.

Diagrams: one viewer, local rendering

Mermaid and local PlantUML now share zoom, pan, fit, source viewing, source copy and SVG download. Keyboard and touch controls work in the same viewer. Large rendering engines load only when a diagram approaches the screen, and diagrams hidden in Tabs or disclosures wait until they become visible.

PlantUML can render entirely in the browser using assets bundled with OINK. Enable params.plantuml: true without a server endpoint; there is no Java, Graphviz, npm installation or rendering service to maintain. An explicitly configured endpoint keeps server rendering. Includes, external libraries and some PlantUML features remain unsupported by the local engine; see the PlantUML limits.

Failed rendering leaves readable source. Browser printing uses the rendered figure when available and source when it is not; dedicated static outputs retain their source fallback. Resizing, narrow columns and theme changes keep diagrams usable. Markmap gains a fit control, and Infographic diagrams retain an independent surface for their authored theme. See Mermaid and PlantUML.

Local search now understands separated Chinese terms, mixed Chinese and English, and technical identifiers such as shared_buffers or pg_basebackup. It prefers pages matching all query terms and clearly labels partial matches when no page covers everything.

Results show relevant section context and link to the actual heading anchor. Each page appears once. In the command palette, choose the whole site or the current content section using a compact scope control. Keyboard commands and Chinese input-method composition keep working. No search service, account or new configuration is required. See Local search.

Set blog_index: gallery to add the fourth blog view alongside list, cards and table. The gallery offers wall, seamless and masonry layouts plus a size slider. Reader preferences are remembered independently from Expo albums.

Covers still lead to articles, in the same date order and pagination. Titles remain available to keyboard and touch users, missing covers have placeholders, and a simple grid remains usable without JavaScript. See Blog layouts.

Components: quieter, more consistent details

Cards, disclosures, Tabs, code controls, tables, Fields, badges, steps and navigation rows now share more consistent spacing, borders and state feedback. Copy feedback has reserved space, button labels stay still when pressed, and touch controls are easier to reach. Paper headings lose their decorative tails.

Three optional forms help with compact content:

  • {.cards .td-cards-list} or cards variant="list" creates a divided resource list.
  • {.steps .td-steps-compact} or steps variant="compact" presents a short procedure.
  • {class="td-code-command"} turns a one-line code fence into a command strip.

Unsuitable command blocks keep their regular presentation with a warning; content is never discarded. Paper remains the default, Slate remains available, and Ink and Terminal remain opt-in experimental styles. See the component comparison.

Other reading fixes

  • Fragment links reveal the necessary nested Tabs before navigating to their target.
  • Equations and page controls stay inside narrow reading columns.
  • Copy fallback works inside an open dialog.
  • Wide diagrams, fitted views and print output retain readable content after resizing.
  • New table-reader controls have labels in all 32 interface catalogs.

Upgrade

Use Hugo Extended 0.168.0 and Go 1.27.3. Go 1.27.3 is also the module minimum. Theme styles continue to compile with Hugo’s built-in LibSass; ordinary sites need no external Sass compiler or Node.js installation.

hugo mod get github.com/pgsty/[email protected]
hugo mod tidy
hugo --environment production --minify --printPathWarnings

Commit the updated go.mod and go.sum. Refresh vendored or copied theme files separately. Keep Hugo’s LibSass deprecation warning visible and review other diagnostics; do not enable --panicOnWarning or HUGO_PANICONWARNING.

Existing content requires no general migration. The notable configuration change is PlantUML: an enabled renderer with no endpoint now uses local mode. Set params.plantuml: false to disable it completely. Maintained sites keep Paper as the default with preset_menu: [paper, slate, ink, terminal]. The upgrade guide covers validation and rollback.

Table reader