Skip to content

DOC-7104: Migrate content/operate/rs/7.22/ (excl. references) to render hooks - #4095

Merged
andy-stark-redis merged 2 commits into
mainfrom
DOC-7104-7.22-rest
Sep 24, 2026
Merged

andy-stark-redis merged 2 commits into
mainfrom
DOC-7104-7.22-rest

Conversation

@andy-stark-redis

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

Copy link
Copy Markdown
Contributor

Summary

Unit 9 of 15 in the DOC-7104 render-hook migration: converts relref and
note/tip/warning/alert callout shortcodes to the DOC-6909 render-hook
equivalents (plain Markdown links + > [!NOTE]-style blockquotes) across
content/operate/rs/7.22/ except references/, which unit 8 (PR #4093)
already converted and this PR does not touch.

In scope: clusters/, databases/, installing-upgrading/, monitoring/,
networking/, security/, plus the top-level 7.22 pages (_index.md,
troubleshooting.md, new-features-redis-enterprise.md, rs-archive.md).

  • 174 files in scope (excl. references/); 157 changed (17 had no
    relref/callout shortcodes to convert).
  • Real counts (re-measured with the tool's own regexes, not the ticket's
    estimate): 1,135 relref occurrences and 157 callout shortcodes
    converted.
  • Purely mechanical -- no prose, terminology, or fact changes. "Redis
    Enterprise Software" wording is left alone per content/operate/rs/AGENTS.md
    (the 7.22 snapshot predates the rebrand).

Findings

  • Indented-callout gotcha (the recurring issue from prior units): 40
    blockquote blocks across 26 files had a callout shortcode nested inside a
    list item. The converter correctly indents the header line but not the
    continuation/closing lines, which also leaves a stray whitespace-only >
    line from the closing tag's own indentation. Hand-fixed all 40 by
    re-indenting continuation lines to match the list item and dropping the
    artifact line; verified against rendered HTML that <li> nesting matches
    before/after.
  • One pre-existing defect found and fixed:
    databases/connect/troubleshooting-guide.md had a relref missing its
    closing paren ([`HGETALL`]({{< relref "/commands/hgetall" >}}:`),
    which silently broke the Markdown link -- Hugo rendered the literal
    bracket/paren text instead of an <a> tag. Fixed the syntax so the
    converter resolves it correctly. This is the only entry in the href diff
    below, and it's a strict improvement (a previously non-functional link
    now works), not a regression.
  • No instances of the "relref with no separating slash before trailing path
    text" gotcha in this batch.

Verification

  • Full-site Hugo build before/after (no --minify; a pre-existing,
    unrelated jupyter-example/data/examples.json build error reproduces on
    a clean, unmodified checkout too and does not block operate/rs/7.22
    output -- confirmed by rebuilding the untouched tree).
  • build/diff_rendered_hrefs.py (patched regex from DOC-7104: Fix diff_rendered_hrefs.py to catch unquoted href attributes #4087, used for
    verification only -- not included in this diff) scoped to
    operate/rs/7.22: compared 446 vs 446 pages, 0 pages only-in-before/
    only-in-after, 1 href-set change (the troubleshooting-guide fix
    above).
  • Scoped the same diff to operate/rs/7.22/references: 0 diffs, confirming
    the untouched subtree is unaffected.
  • Re-ran the relref-path-validation hook (check_shortcode_paths.py) over
    the in-scope file list before converting: no broken paths besides the one
    fixed above.

Test plan

  • hugo build succeeds for operate/rs/7.22/** before and after (full
    site, no --minify)
  • diff_rendered_hrefs.py scoped to operate/rs/7.22 shows only the
    one expected/intentional change
  • diff_rendered_hrefs.py scoped to operate/rs/7.22/references shows
    zero changes
  • No leftover relref/callout shortcode syntax remains under the
    migrated paths
  • build/diff_rendered_hrefs.py itself is not part of this diff

Leaving unmerged for team review per the ticket.

🤖 Generated with Claude Code


Note

Low Risk
Documentation-only mechanical syntax migration with no runtime or security impact; link resolution was verified via Hugo build and href diff tooling.

Overview
This PR continues the DOC-7104 render-hook migration for Redis Enterprise Software 7.22 docs (everything under content/operate/rs/7.22/ except references/, which was already migrated).

Across ~157 markdown files, Hugo relref shortcodes become plain links to /content/... paths (including _index.md where needed), and note/tip/warning callout shortcodes become GitHub-style alerts (> [!NOTE], > [!WARNING], etc.). Prose and product terminology are unchanged.

Follow-up fixes address callouts nested in list items (blockquote indentation) and a broken HGETALL relref in the troubleshooting guide so the link renders correctly.

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

…er hooks

Converts relref/callout shortcodes to the DOC-6909 render-hook equivalents
across clusters/, databases/, installing-upgrading/, monitoring/,
networking/, security/, and the top-level 7.22 pages -- unit 9 of 15,
covering everything in the 7.22 snapshot except references/ (unit 8,
PR #4093, already merged separately).

Ran build/migrate_shortcode_links.py over 174 in-scope files (157 changed,
1135 relref + 157 callout shortcodes converted). Hand-fixed 40 blockquote
blocks across 26 files where an indented callout's continuation/closing
lines lost their list-item indentation (the recurring gotcha from prior
units), verified against the rendered HTML.

Found and fixed one pre-existing defect while converting:
databases/connect/troubleshooting-guide.md had a relref missing its
closing paren (`{{< relref "/commands/hgetall" >}}:`), which silently
broke the Markdown link -- Hugo rendered the literal bracket/paren text
instead of a clickable link. Fixing the syntax let the converter resolve
it correctly; confirmed via before/after href diff that this is the link
gaining a real `href` for the first time, not a regression.

Full-site Hugo build before/after (no --minify; a pre-existing, unrelated
jupyter-example/examples.json build error reproduces on a clean checkout
too and doesn't block operate/rs/7.22 output). diff_rendered_hrefs.py
scoped to operate/rs/7.22 shows exactly one href-set change -- the
troubleshooting-guide fix above -- and zero diffs under references/,
which this unit did not touch.

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.22-rest/operate/rs/7.22/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/add-node/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/change-node-role/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/cluster-recovery/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/configure/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/configure/call-home/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/configure/cluster-settings/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/configure/license-keys/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/configure/rack-zone-awareness/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/configure/sync-clocks/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/logging/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/logging/diagnostic-logging/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/logging/log-security/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/logging/redis-slow-log/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/logging/rsyslog-logging/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/maintenance-mode/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/new-cluster-setup/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/optimize/disk-sizing-heavy-write-scenarios/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/optimize/memtier-benchmark/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/optimize/optimization/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/optimize/oss-cluster-api/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/optimize/turn-off-services/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/optimize/wait/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/remove-node/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/clusters/replace-node/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/databases/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/databases/active-active/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/databases/active-active/connect/
https://redis.io/docs/staging/DOC-7104-7.22-rest/operate/rs/7.22/databases/active-active/create/

@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 an approve.

Port 9443 is the default [port configuration]({{< relref "/operate/rs/7.22/networking/port-configurations#https://docs.redis.com/latest/rs/networking/port-configurations#ports-and-port-ranges-used-by-redis-enterprise-software" >}}).
{{< /note >}}
> [!NOTE]
> Port 9443 is the default [port configuration](/content/operate/rs/7.22/networking/port-configurations.md#https://docs.redis.com/latest/rs/networking/port-configurations#ports-and-port-ranges-used-by-redis-enterprise-software).

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.

No fault of yours, but it needs to be fixed.


For more information, go here. For information, go to [Developing with
Active-Active databases]({{< relref "/operate/rs/7.22/developing/crdbs" >}}).
Active-Active databases](/operate/rs/7.22/developing/crdbs).

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.

Looks like all the modified links in this whole file weren't done correctly.

…ix, malformed anchor

- _index.md, security/access-control/redis-acl-overview.md: bare /commands
  link missing /content/ prefix.
- new-features-redis-enterprise.md: applied /content/ prefix to the 6
  known pre-existing dead relref targets in this draft: true page for
  consistency with the migration's canonical form. Cosmetic only -- none
  of the 6 targets exist regardless of prefix (confirmed: no file at any
  of developing/crdbs, modules/redisbloom, modules/redisjson,
  modules/redisearch, installing-upgrading/get-started-docker.md,
  security/passwords-users-roles.md), so this does not make the links
  work, only brings them into the same form as every other link in the
  corpus.
- databases/import-export/flush.md: the port-configurations link's anchor
  was `#https://docs.redis.com/latest/rs/networking/port-configurations#
  ports-and-port-ranges-used-by-redis-enterprise-software` -- a stray old
  absolute URL concatenated into the fragment, present in the source
  relref shortcode before this migration touched it. Replaced with the
  real heading slug from this version's own port-configurations.md
  (`## Ports and port ranges used by Redis Enterprise Software`).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
andy-stark-redis added a commit that referenced this pull request Sep 24, 2026
…ix, malformed anchor (same as #4095)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
andy-stark-redis added a commit that referenced this pull request Sep 24, 2026
…ix, malformed anchor (same as #4095)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
andy-stark-redis added a commit that referenced this pull request Sep 24, 2026
…ix, malformed anchor (same as #4095, note anchor is redis-software not redis-enterprise-software here)

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

Copy link
Copy Markdown
Contributor Author

Fixed all three: the bare /commands links (_index.md, security/access-control/redis-acl-overview.md), the new-features-redis-enterprise.md dead-link prefixes (cosmetic — confirmed none of the 6 targets exist regardless of prefix, so this doesn't make them work, just brings them into the same form as the rest of the corpus), and the flush.md malformed anchor (a stray old absolute URL concatenated into the fragment, predating this migration — replaced with the real heading slug from this version's own port-configurations.md). Verified via build/diff_rendered_hrefs.py: only the flush.md anchor changes the rendered href, everything else is confirmed cosmetic.

@andy-stark-redis
andy-stark-redis merged commit 8b5d517 into main Sep 24, 2026
99 checks passed
@andy-stark-redis
andy-stark-redis deleted the DOC-7104-7.22-rest 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.4/,
excluding references/ (done separately in #4094) -- 145 of 162 files,
936 relref links and 155 callouts.

Found and fixed the recurring indented-callout bug (27 files, ~30
blocks) and the recurring HGETALL missing-paren relref in
databases/connect/troubleshooting-guide.md (3rd version to carry it:
live tree, 7.22, now 7.4). Flagged, not fixed: 6 pre-existing broken
relref targets in new-features-redis-enterprise.md (draft: true, never
renders) -- same 6 targets that recur in every version.

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 -- none of the 6
  targets exist regardless of prefix.
- 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>
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>
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/8.0/,
excluding references/ (done separately in #4098) -- 172 of 190 files,
1,273 relref links and 170 callouts.

Found and fixed 33 indented-callout instances 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). Included
flex/ (4 files) despite it not being named in this unit's original
subdirectory list, since the actual scope rule is "every file except
references/" and flex/ isn't references/ -- confirmed the resulting
file-count math against 8.0's total.

Review (round 2) caught three more issues, all fixed -- same as #4095,
except this version's port-configurations heading postdates the product
rebrand:
- 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 --
  "ports-and-port-ranges-used-by-redis-software" here, not
  "...-redis-enterprise-software" like 7.22/7.4/7.8, since 8.0's own
  networking/port-configurations.md heading already uses the current
  product name.

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