Skip to content

DOC-7104: Migrate content/operate/rs/7.8/references/ (incl. rest-api) to render hooks - #4096

Merged
andy-stark-redis merged 3 commits into
mainfrom
DOC-7104-7.8-references
Sep 24, 2026
Merged

andy-stark-redis merged 3 commits into
mainfrom
DOC-7104-7.8-references

Conversation

@andy-stark-redis

@andy-stark-redis andy-stark-redis commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

Summary

Unit 12 of 15 in the DOC-7104 shortcode-to-render-hook migration. Converts the frozen content/operate/rs/7.8/references/ tree (264 files, 180 touched) from {{< relref >}} and {{< note >}}/{{< warning >}} shortcodes to plain Markdown links and > [!NOTE]/> [!WARNING] blockquotes resolved by the DOC-6909 render hooks (layouts/_default/_markup/render-link.html, layouts/_default/_markup/render-blockquote.html).

  • rest-api/ (182 of the 264 files) is explicitly in scope per the ticket: generated once when 7.8 was frozen and never regenerated since, so this one-time conversion is safe and permanent.
  • Real counts (re-measured by grep, not the ticket estimate): 1128 relref shortcodes (1029 {{< relref, 99 no-space {{<relref) and 28 callout shortcodes (18 note, 10 warning, 0 tip/info/alert) across 20 files. Post-conversion grep confirms 0 remaining shortcode-form relref/callout instances anywhere in the tree.
  • One gotcha hand-fixed: cli-utilities/rladmin/_index.md had a {{<note>}} indented inside a numbered list item; the converter left the header line indented but flattened the continuation/closing lines and left a stray whitespace-only > line — the same defect pattern already fixed in the 7.4 and 7.22 units. Re-indented all blockquote lines to match the list item and dropped the stray line.
  • Checked cli-utilities/redis-cli/_index.md specifically for the missing-paren relref that recurred in both the 7.4 and 7.22 snapshots — it did not recur here; the file's "More info" list already had its closing paren intact.
  • No relref-missing-slash instances found.

Verification

  • Full-site Hugo builds before/after (non-minified, per the known site-wide --minify esbuild issue on /commands/cf.reserve), diffed with the patched build/diff_rendered_hrefs.py (from origin/DOC-7104-diff-hrefs-fix, staged for verification only and reverted before committing) scoped to operate/rs/7.8/references: 262/262 pages compared, 0 href-set changes.
  • Both before and after builds hit the same pre-existing fatal error on content/develop/clients/hiredis/_index.md (a jupyter-example shortcode failing on a missing data/examples.json entry, unrelated to this unit) — confirmed identical in both builds and after Hugo had already rendered/copied all 262 pages in the target tree, so the comparison is unaffected.
  • build/diff_rendered_hrefs.py carries no changes in this PR (confirmed via git diff --stat origin/main -- build/).

Test plan

  • All relref/callout shortcodes converted (0 remaining via grep)
  • Known gotcha files (rladmin/_index.md, redis-cli/_index.md) checked by hand
  • Hugo before/after builds completed
  • diff_rendered_hrefs.py scoped to operate/rs/7.8/references: 0 href diffs across 262 pages
  • build/ directory unchanged relative to origin/main

Do not merge — leaving for team review per ticket instructions.

🤖 Generated with Claude Code


Note

Low Risk
Documentation-only link and callout syntax changes in a frozen 7.8 tree; no runtime or product behavior changes.

Overview
Migrates the frozen Redis Enterprise 7.8 references/ docs (CLI utilities, compatibility tables, REST API cross-links, and related pages) off Hugo {{< relref >}} shortcodes to plain Markdown links under /content/... paths so DOC-6909 render hooks resolve them.

Replaces {{< note >}} / {{< warning >}} (and similar callouts) with GitHub-style > [!NOTE] and > [!WARNING] blockquotes in a handful of CLI reference pages (for example internal-utilities warnings and rladmin shell notes). Prose and tables are unchanged; only link and callout syntax moves to hook-friendly Markdown.

Reviewed by Cursor Bugbot for commit 1a3d60a. Bugbot is set up for automated code reviews on this repo. Configure here.

… to render hooks

Unit 12 of 15: converts the frozen 7.8 references tree (264 files, 180
carrying relref/callout shortcodes) from {{< relref >}} and
{{< note >}}/{{< warning >}} shortcodes to plain markdown links and
> [!NOTE]/> [!WARNING] blockquotes resolved by the DOC-6909 render hooks.
The rest-api/ subtree (182 of the 264 files) is explicitly in scope per
the ticket: it was generated once when 7.8 was frozen and never
regenerated since, so a one-time conversion is safe and permanent.

Real counts (re-measured by grep, not taken from the ticket estimate):
1128 relref shortcodes (1029 as `{{< relref`, 99 as the no-space
`{{<relref` variant) across the tree, 28 callout shortcodes (18 note,
10 warning, 0 tip/info/alert) across 20 files. Post-conversion grep
confirms 0 remaining shortcode-form relref/callout instances anywhere
in the tree -- unlike the 7.4 and 7.22 units, no pre-existing malformed
relref recurred here (cli-utilities/redis-cli/_index.md's "More info"
list already had its closing paren intact).

One gotcha instance found and hand-fixed: cli-utilities/rladmin/_index.md
had a {{<note>}} indented inside a numbered list item, with only the
header line indented and the continuation/closing lines flush left (the
known converter limitation), plus a stray whitespace-only `>` artifact
line left by the closing tag's indentation -- the same defect pattern
already fixed in the 7.4 and 7.22 units. Fixed by re-indenting all
blockquote lines to match the list item and dropping the stray line.
Checked all 19 other callout-bearing files in this tree: none are
indented inside a list, so no further nesting fixes were needed.

No relref-missing-slash instances found in this unit.

Verification: full-site hugo builds before/after (non-minified -- see
below), diffed with the DOC-7104-diff-hrefs-fix build/diff_rendered_hrefs.py
scoped to operate/rs/7.8/references: 262/262 pages compared, 0 href-set
changes. The verification-only patched diff script was staged from
origin/DOC-7104-diff-hrefs-fix, then unstaged and reverted before this
commit; build/diff_rendered_hrefs.py carries no changes here.

Build note: both before and after builds hit the same pre-existing fatal
error on content/develop/clients/hiredis/_index.md (jupyter-example
shortcode failing on a missing data/examples.json entry, unrelated to
this unit's path) after Hugo had already finished rendering and copying
all pages, including the full operate/rs/7.8/references tree (262 HTML
pages present in both output trees) -- confirmed pre-existing and
identical in both builds, so the comparison is unaffected.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

DOC-7104

@github-actions

Copy link
Copy Markdown
Contributor

Staging links:
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/crdb-cli/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/crdb-cli/crdb/create/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/crdb-cli/crdb/purge-instance/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/crdb-cli/crdb/remove-instance/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/crdb-cli/crdb/update/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/crdb-cli/task/status/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/redis-cli/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/rladmin/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/rladmin/bind/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/rladmin/cluster/certificate/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/rladmin/cluster/config/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/rladmin/failover/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/rladmin/migrate/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/rladmin/node/addr/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/rladmin/node/enslave/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/rladmin/node/external-addr/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/rladmin/node/maintenance-mode/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/rladmin/node/recovery-path/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/rladmin/node/remove/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/rladmin/node/snapshot/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/rladmin/placement/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/rladmin/recover/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/rladmin/tune/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/rladmin/upgrade/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/cli-utilities/rladmin/verify/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/client_references/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/clustering-redis/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/compatibility/
https://redis.io/docs/staging/DOC-7104-7.8-references/operate/rs/7.8/references/compatibility/client-side-caching/

@dwdougherty dwdougherty left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few things to fix. I'll go ahead and approve.

---

The `redis-cli` command-line utility lets you interact with a Redis database. With `redis-cli`, you can run [Redis commands]({{< relref "/commands" >}}) directly from the command-line terminal or with [interactive mode](#interactive-mode).
The `redis-cli` command-line utility lets you interact with a Redis database. With `redis-cli`, you can run [Redis commands](/commands) directly from the command-line terminal or with [interactive mode](#interactive-mode).

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/content/... ?

[Clustering in Redis Enterprise Software](/content/operate/rs/7.8/databases/durability-ha/clustering.md) and [Redis Cloud](/content/operate/rc/databases/configuration/clustering.md) differs from the [Redis Open Source cluster](/content/operate/oss_and_stack/management/scaling.md) and works with all standard Redis clients.

Redis Enterprise blocks most [cluster commands]({{< relref "/commands" >}}?group=cluster). If you try to use a blocked cluster command, it returns an error.
Redis Enterprise blocks most [cluster commands](/commands?group=cluster). If you try to use a blocked cluster command, it returns an error.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/content/...

---

The following tables show which Redis Open Source [connection management commands]({{< relref "/commands" >}}?group=connection) are compatible with standard and Active-Active databases in Redis Enterprise Software and Redis Cloud.
The following tables show which Redis Open Source [connection management commands](/commands?group=connection) are compatible with standard and Active-Active databases in Redis Enterprise Software and Redis Cloud.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/content/...

---

The following table shows which Redis Open Source [key (generic) commands]({{< relref "/commands" >}}?group=generic) are compatible with standard and Active-Active databases in Redis Enterprise Software and Redis Cloud.
The following table shows which Redis Open Source [key (generic) commands](/commands?group=generic) are compatible with standard and Active-Active databases in Redis Enterprise Software and Redis Cloud.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/content/...

---

The following table shows which Redis Open Source [pub/sub commands]({{< relref "/commands" >}}?group=pubsub) are compatible with standard and Active-Active databases in Redis Enterprise Software and Redis Cloud.
The following table shows which Redis Open Source [pub/sub commands](/commands?group=pubsub) are compatible with standard and Active-Active databases in Redis Enterprise Software and Redis Cloud.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/content/...

---

The following table shows which Redis Open Source [scripting and function commands]({{< relref "/commands" >}}?group=scripting) are compatible with standard and Active-Active databases in Redis Enterprise Software and Redis Cloud.
The following table shows which Redis Open Source [scripting and function commands](/commands?group=scripting) are compatible with standard and Active-Active databases in Redis Enterprise Software and Redis Cloud.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/content/...

---

The following tables show which Redis Open Source [server management commands]({{< relref "/commands" >}}?group=server) are compatible with standard and Active-Active databases in Redis Enterprise Software and Redis Cloud.
The following tables show which Redis Open Source [server management commands](/commands?group=server) are compatible with standard and Active-Active databases in Redis Enterprise Software and Redis Cloud.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/content/...

---

The following table shows which Redis Open Source [transaction commands]({{< relref "/commands" >}}?group=transactions) are compatible with standard and Active-Active databases in Redis Enterprise Software and Redis Cloud.
The following table shows which Redis Open Source [transaction commands](/commands?group=transactions) are compatible with standard and Active-Active databases in Redis Enterprise Software and Redis Cloud.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/content/...

Comment on lines +20 to +40
| [PUT](./backup_reset_status#put-bdbs-actions-backup-reset-status) | `/v1/bdbs/{uid}/actions/backup_reset_status` | Reset database backup status |

## Export

| Method | Path | Description |
|--------|------|-------------|
| [PUT]({{< relref "./export_reset_status#put-bdbs-actions-export-reset-status" >}}) | `/v1/bdbs/{uid}/actions/export_reset_status` | Reset database export status |
| [POST]({{< relref "./export#post-bdbs-actions-export" >}}) | `/v1/bdbs/{uid}/actions/export` | Initiate database export |
| [PUT](./export_reset_status#put-bdbs-actions-export-reset-status) | `/v1/bdbs/{uid}/actions/export_reset_status` | Reset database export status |
| [POST](./export#post-bdbs-actions-export) | `/v1/bdbs/{uid}/actions/export` | Initiate database export |

## Import

| Method | Path | Description |
|--------|------|-------------|
| [PUT]({{< relref "./import_reset_status#put-bdbs-actions-import-reset-status" >}}) | `/v1/bdbs/{uid}/actions/import_reset_status` | Reset database import status |
| [POST]({{< relref "./import#post-bdbs-actions-import" >}}) | `/v1/bdbs/{uid}/actions/import` | Initiate manual dataset import |
| [PUT](./import_reset_status#put-bdbs-actions-import-reset-status) | `/v1/bdbs/{uid}/actions/import_reset_status` | Reset database import status |
| [POST](./import#post-bdbs-actions-import) | `/v1/bdbs/{uid}/actions/import` | Initiate manual dataset import |

## Optimize shards placement

| Method | Path | Description |
|--------|------|-------------|
| [GET]({{< relref "./optimize_shards_placement#get-bdbs-actions-optimize-shards-placement" >}}) | `/v1/bdbs/{uid}/actions/optimize_shards_placement` | Get optimized shards placement for a database |
| [GET](./optimize_shards_placement#get-bdbs-actions-optimize-shards-placement) | `/v1/bdbs/{uid}/actions/optimize_shards_placement` | Get optimized shards placement for a database |

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lotsa bad links here and above.

Comment on lines +25 to +33
| [GET](./all#get-all-debuginfo) | `/v1/debuginfo/all` | Gets debug info for all nodes |
| [GET](./all/bdb#get-all-debuginfo-bdb) | `/v1/debuginfo/all/bdb/{bdb_uid}` | Gets debug info for a database from all nodes |

## Get debug info for the current node

| Method | Path | Description |
|--------|------|-------------|
| [GET]({{< relref "./node#get-debuginfo-node" >}}) | `/v1/debuginfo/node` | Gets debug info for the current node |
| [GET]({{< relref "./node/bdb#get-debuginfo-node-bdb" >}}) | `/v1/debuginfo/node/bdb/{bdb_uid}` | Gets debug info for a database from the current node |
| [GET](./node#get-debuginfo-node) | `/v1/debuginfo/node` | Gets debug info for the current node |
| [GET](./node/bdb#get-debuginfo-node-bdb) | `/v1/debuginfo/node/bdb/{bdb_uid}` | Gets debug info for a database from the current node |

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need work

…(same fix as #4093 review)

Same defect pattern found and fixed on PR #4093 (7.22/references) after
human review: 7 bare /commands?group=<x> links in compatibility/commands/
missing the /content/ prefix, and 10 source-relative relrefs in
rest-api/requests/{bdbs/actions,debuginfo}/_index.md pointing at a
directory/file with no extension (works via Hugo's render-link.html
GetPage resolution, confirmed byte-identical rendered href before/after,
but not a working link when the same markdown renders in GitHub's PR
view or VS Code). This version snapshot is a near-identical copy of
7.22's rest-api tree, so the same instances recur in the same two files.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@andy-stark-redis

Copy link
Copy Markdown
Contributor Author

Proactively applied the identical fix that #4093's review caught (same pattern: bare /commands?group=x links missing the /content/ prefix, and 7 source-relative refs in rest-api/requests/{bdbs/actions,debuginfo}/_index.md pointing at a directory/file with no extension). This version snapshot is a near-identical copy of 7.22's rest-api tree, so the exact same instances recurred in the same two files. Verified 0 href diffs before/after.

andy-stark-redis added a commit that referenced this pull request Sep 24, 2026
…o slash

The original regex required `/` or end-of-string right after the mount
name, so a link like `/commands?group=cluster` (no trailing slash before
the query) silently passed through unchecked -- this tool's own blind
spot, found the hard way: human review caught it by hand on DOC-7104
PR #4093, and the identical instances recurred in #4094/#4096/#4098
before this fix existed to catch them.

Also reconsiders the `/commands` special case: it has no backing
_index.md on disk, so _find_content_file always reports it unresolvable,
but Hugo auto-generates a section page for the directory and GetPage
finds it anyway (confirmed by building both /commands?group=x and
/content/commands?group=x and comparing rendered hrefs -- identical).
Review wanted the canonical form applied there too, so it's now
hardcoded as FIXABLE instead of silently skipped.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@andy-stark-redis

Copy link
Copy Markdown
Contributor Author

Also fixed the bare /commands link in references/cli-utilities/redis-cli/_index.md (same shape flagged on #4094).

@andy-stark-redis
andy-stark-redis merged commit c23aaaa into main Sep 24, 2026
99 checks passed
@andy-stark-redis
andy-stark-redis deleted the DOC-7104-7.8-references branch September 24, 2026 10:49
andy-stark-redis added a commit that referenced this pull request Sep 24, 2026
…r hooks

Converts relref link shortcodes and note/tip/warning/alert callout
shortcodes to render-hook equivalents across content/operate/rs/7.8/,
excluding references/ (done separately in #4096) -- 153 of 171 files,
932 relref links and 153 callouts.

Found and fixed 42 indented-callout instances across 28 files, and the
recurring HGETALL missing-paren relref in
databases/connect/troubleshooting-guide.md. Flagged, not fixed: the same
6 pre-existing broken relref targets in new-features-redis-enterprise.md
(draft: true, never renders).

Review (round 2) caught three more issues, all fixed -- same as #4095:
- Bare /commands links in _index.md and
  security/access-control/redis-acl-overview.md, missing the /content/
  prefix (confirmed identical rendered href either way).
- new-features-redis-enterprise.md's 6 dead links: applied the same
  /content/ prefix for consistency. Cosmetic only.
- databases/import-export/flush.md: the port-configurations link's
  anchor was a stray old absolute URL concatenated into the fragment,
  predating this migration. Replaced with the real heading slug.

Verified via build/diff_rendered_hrefs.py: after filtering the known
CSS-asset-fingerprint noise from comparing builds in two different
worktree environments, the only real content change is the corrected
flush.md anchor -- everything else confirmed 0 diff.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants