Skip to content

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

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

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

Conversation

@andy-stark-redis

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

Copy link
Copy Markdown
Contributor

Summary

Unit 11 of 15 in the DOC-7104 shortcode-to-render-hook migration. Converts every relref and note/tip/warning/alert callout shortcode under content/operate/rs/7.4/clusters/, databases/, installing-upgrading/, monitoring/, networking/, security/, and the top-level pages (_index.md, troubleshooting.md n/a here, new-features-redis-enterprise.md, rs-archive.md) — to the render-hook equivalents already in use across units 1-10:

  • relref shortcode links → plain Markdown links, resolved by layouts/_default/_markup/render-link.html
  • note/tip/warning/alert callout shortcodes → > [!NOTE] etc. blockquotes, resolved by layouts/_default/_markup/render-blockquote.html

content/operate/rs/7.4/references/ is explicitly out of scope (already done in unit 10, PR #4094).

This is purely mechanical. No prose, terminology, or facts were touched, including the pre-rebrand "Redis Enterprise Software" wording throughout (per content/operate/rs/AGENTS.md).

Real counts (re-grepped, not estimated)

  • 162 in-scope files (find content/operate/rs/7.4 -name '*.md' | grep -v '/references/')
  • 936 relref shortcode occurrences → 0 residual
  • 155 callout shortcode occurrences (127 note, 3 tip, 25 warning, 0 alert) → 0 residual; 155 > [!TYPE] blockquotes produced (127 NOTE, 3 TIP, 25 WARNING)
  • 145 of 162 files changed (17 had nothing to convert)

Findings / hand-fixes

  • Indentation gotcha (by far the most common issue, as in prior units): callout shortcodes indented inside a list item lost indentation on continuation/closing lines (not just the header) when converted, detaching them from the enclosing <li> and leaving stray whitespace-only > lines. Found in 27 files (~30 blocks). Hand-fixed by re-indenting every continuation line to match its header's indent, then re-verified via a scripted re-scan (0 remaining mismatches) and the rendered-HTML href diff.
  • Pre-existing broken relref (fixed, per instructions): databases/connect/troubleshooting-guide.md had the same missing-closing-paren HGETALL bug found in a different frozen version's copy of this file in an earlier unit — [HGETALL]({{< relref "/commands/hgetall" >}}: (missing ), stray trailing :). Fixed trivially by inserting the missing ).
  • Flagged, not fixed (pre-existing content facts, out of mechanical scope): new-features-redis-enterprise.md carries 6 relrefs that don't resolve to any real content page: /operate/rs/7.4/developing/crdbs, /operate/modules/redisbloom, /operate/modules/redisjson, /operate/modules/redisearch, /operate/rs/7.4/installing-upgrading/get-started-docker.md, /operate/rs/7.4/security/passwords-users-roles.md#setting-up-ldap. These were already broken (targets don't exist under content/) before this migration and are left equivalently broken — as plain unresolved paths — after it. Per AGENTS.md, "flag rather than decide": not fixing a content/navigation fact as part of a mechanical shortcode conversion.

Verification

  • Built Hugo (no --minify, full site, synchronous) before and after, to /tmp scratch dirs.
  • Confirmed 408/408 pages rendered under operate/rs/7.4 in both builds (this count includes references/, untouched but within the fingerprint scope).
  • Ran the patched build/diff_rendered_hrefs.py (from DOC-7104-diff-hrefs-fix, PR DOC-7104: Fix diff_rendered_hrefs.py to catch unquoted href attributes #4087, pulled into the worktree for verification only — not part of this diff) scoped to operate/rs/7.4: 0 pages only-in-before, 0 only-in-after, 0 href-set changes.
  • Confirmed git diff --stat origin/main -- build/ is empty before pushing.

Test plan

  • CI build passes
  • Spot-check a page with a previously-indented callout (e.g. databases/recover.md, databases/create.md) renders with correct list nesting
  • Spot-check databases/connect/troubleshooting-guide.md HGETALL link resolves correctly

🤖 Generated with Claude Code


Note

Low Risk
Documentation-only link and callout syntax changes with verification that rendered hrefs under operate/rs/7.4 are unchanged; no application or security impact.

Overview
Mechanically converts Redis Enterprise Software 7.4 docs (everything under content/operate/rs/7.4/ except references/) from Hugo shortcodes to Markdown patterns handled by existing render hooks.

Internal links: relref shortcodes become plain Markdown paths (typically under /content/...), which render-link.html resolves the same way as before.

Callouts: note, tip, and warning shortcodes become GitHub-style blockquotes (> [!NOTE], etc.) for render-blockquote.html. Indented callouts inside list items were re-indented so list nesting still renders correctly.

Scope: ~145 files touched; prose and facts unchanged. One trivial relref syntax fix on databases/connect/troubleshooting-guide.md (HGETALL). Pre-existing broken targets in new-features-redis-enterprise.md were left as unresolved paths, per migration rules.

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

…r hooks

Convert every relref and note/tip/warning/alert callout shortcode under
content/operate/rs/7.4/ (clusters/, databases/, installing-upgrading/,
monitoring/, networking/, security/, and the top-level pages) to the
render-hook equivalents: plain Markdown links resolved by
layouts/_default/_markup/render-link.html, and `> [!NOTE]` etc. blockquotes
resolved by layouts/_default/_markup/render-blockquote.html.

content/operate/rs/7.4/references/ is out of scope (unit 10, PR #4094).

- Ran build/migrate_shortcode_links.py over the 162 in-scope files (936
  relref, 155 callout shortcodes; 145 files changed, 17 had nothing to
  convert).
- Hand-fixed the by-far-most-common gotcha from prior units: callout
  shortcodes indented inside a list item lose their indentation on
  continuation/closing lines (not just the header), which detaches them
  from the enclosing <li> and can leave a stray whitespace-only `>` line.
  27 files, ~30 blocks affected. Fixed by re-indenting every continuation
  line to match its header's indent.
- Fixed a pre-existing broken relref in
  databases/connect/troubleshooting-guide.md (the HGETALL link was
  missing its closing paren, `>}}:` instead of `>}}):` -- the same bug
  found in a different frozen version's copy of this exact file in an
  earlier unit).
- Verified 0 rendered href diffs across all 408 pages under
  operate/rs/7.4 (including references/, untouched but in the fingerprint
  scope) via the patched build/diff_rendered_hrefs.py from
  DOC-7104-diff-hrefs-fix (not merged into this diff).

Flagged, not fixed (pre-existing content facts, out of mechanical scope):
new-features-redis-enterprise.md carries 6 relrefs that don't resolve to
any real content page (/operate/rs/7.4/developing/crdbs,
/operate/modules/{redisbloom,redisjson,redisearch},
/operate/rs/7.4/installing-upgrading/get-started-docker.md,
/operate/rs/7.4/security/passwords-users-roles.md#setting-up-ldap) --
already broken before this migration and left equivalently broken after
it, per AGENTS.md "flag rather than decide."

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

@github-actions

github-actions Bot commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

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

Port 9443 is the default [port configuration]({{< relref "/operate/rs/7.4/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.4/networking/port-configurations.md#https://docs.redis.com/latest/rs/networking/port-configurations#ports-and-port-ranges-used-by-redis-enterprise-software).

@dwdougherty dwdougherty Sep 23, 2026

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.

Not your fault, but it needs to be fixed.

Comment on lines +30 to +84
@@ -41,17 +41,17 @@ Enterprise is known for.

Redis developed and certified these modules for use with Redis Enterprise Software:

- [RedisBloom]({{< relref "/operate/modules/redisbloom" >}})
- [RedisBloom](/operate/modules/redisbloom)
- Enables Redis to have a scalable bloom filter as a data type. Bloom
filters are probabilistic data structures that quickly determine if something is contained within a set.
- RedisGraph
- RedisGraph is the first queryable Property Graph database to use sparse
matrices to represent the adjacency matrix in graphs and linear algebra to query the graph.
RedisGraph uses [Cypher](https://www.opencypher.org/) as its query language.
- [RedisJSON]({{< relref "/operate/modules/redisjson" >}})
- [RedisJSON](/operate/modules/redisjson)
- Now you have the convenience JSON as a built-in data type and easily
able to address nested data via a path.
- [RediSearch]({{< relref "/operate/modules/redisearch" >}})
- [RediSearch](/operate/modules/redisearch)
- This module turns Redis into a distributed in-memory
full-text indexing and search beast.

@@ -70,7 +70,7 @@ easily and quickly test several containers to build the scalable
and highly available cluster Redis Enterprise Software is famous for.

For more information go to [quick start with Redis Enterprise Software
on Docker.]({{< relref "/operate/rs/7.4/installing-upgrading/get-started-docker.md" >}})
on Docker.](/operate/rs/7.4/installing-upgrading/get-started-docker.md)

## LDAP integration

@@ -81,4 +81,4 @@ accounts can be used for administering resources on the cluster via
command line, Rest API, or admin console.

For more information see [LDAP
Integration]({{< relref "/operate/rs/7.4/security/passwords-users-roles.md#setting-up-ldap" >}}).
Integration](/operate/rs/7.4/security/passwords-users-roles.md#setting-up-ldap).

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.

All need /content/

…ix, malformed anchor (same as #4095)

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 c55adab into main Sep 24, 2026
99 checks passed
@andy-stark-redis
andy-stark-redis deleted the DOC-7104-7.4-rest branch September 24, 2026 10:49
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