Skip to content

DOC-7089: Migrate content/operate/oss_and_stack/stack-with-enterprise/deprecated-features/ to render hooks - #4070

Merged
andy-stark-redis merged 1 commit into
mainfrom
DOC-7089-deprecated-features
Sep 21, 2026
Merged

andy-stark-redis merged 1 commit into
mainfrom
DOC-7089-deprecated-features

Conversation

@andy-stark-redis

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

Copy link
Copy Markdown
Contributor

Summary

Unit 4 of 5 for DOC-7089, continuing the site-wide migration off the relref and callout (note/tip/warning/alert) shortcode families onto native Hugo render hooks (DOC-6909, DOC-7047, DOC-7059, DOC-7074, DOC-7079, DOC-7080).

Scope: every *.md file under content/operate/oss_and_stack/stack-with-enterprise/deprecated-features/ (gears-v1, triggers-and-functions, graph) — 77 files total, 44 changed.

  • Ran build/migrate_shortcode_links.py all over the full file set: converted 113 relref links to plain canonical /content/<path>.md[#anchor] links, and 14 callout shortcodes to native > [!NOTE]/> [!TIP]/> [!WARNING] blockquotes.
  • Hand-fixed the tool's known blockquote-indentation bug in 4 files where a callout is nested inside a list item (installing-redisgears.md, python/install.md, python/recipes/write-behind.md, jvm/install.md), confirming in the built HTML that each still renders nested inside its list item.
  • No malformed (missing-paren) relrefs found in this unit's scope.
  • The scoping note for this unit expected "11 files with a legacy literal HTML <note> wrapper, out of scope, leave untouched." That wrapper doesn't actually exist anywhere in this tree — all 11 are the real {{<note>}}...{{</note>}} shortcode written in its tight (no-space) form, which the tool correctly recognized and converted along with the other 3 spaced instances (14 total).

Verification

  • File count unchanged: 77 before and after.
  • grep for remaining relref/callout shortcodes in scope: 0.
  • Built the full site twice (clean origin/main checkout vs this branch) and compared with build/diff_rendered_hrefs.py, filtered to this unit's path prefix: 77 vs 77 pages compared, 0 missing on either side.
  • Build warnings: 17 before, 17 after, byte-identical modulo checkout path — 0 new warnings.

One flagged anomaly, not fixed here: the href diff found 2 changed pages, triggers-and-functions/Quick_Start_CLI.md and Quick_Start_RI.md. Both carry the same pre-existing malformed construct — a relref target with a UTM tracking query string appended, its ampersands backslash-escaped (?utm_source=redis\&utm_medium=...). The old relref shortcode passes that argument through raw, rendering a literal backslash in the href. The shared render-link.html hook (already merged by a prior unit, not touched here) receives the same un-unescaped .Destination from Goldmark's AST and percent-encodes the backslash instead, so the migrated href reads redis%5c&amp; instead of redis\&amp;. Same page and anchor resolve either way, and any real browser would normalize a raw backslash in a URL to %5C before issuing the request, so this looks behaviorally inert — but it's a genuine byte-level render change, not a diff-tool artifact, so I'm flagging it rather than deciding unilaterally whether to strip the stray backslashes from the tracking URL or adjust the hook's escaping.

Test plan

  • find ... -name '*.md' | wc -l = 77 before and after
  • migrate_shortcode_links.py all run over the full file set, 44/77 files converted
  • Manual indentation fix + rendered-HTML check for the 4 nested-callout files
  • Full-site Hugo build (baseline vs branch), 0 new warnings
  • diff_rendered_hrefs.py filtered to this unit's path, reviewed both flagged diffs down to root cause

🤖 Generated with Claude Code


Note

Low Risk
Documentation-only link and callout formatting; no application or runtime code. Minor href encoding differences on two pages with malformed tracking URLs are unlikely to affect navigation.

Overview
Migrates deprecated-features docs (gears-v1, graph, triggers-and-functions) off Hugo relref and {{<note>}} shortcodes onto canonical /content/... markdown links and GitHub-style > [!NOTE] callouts, aligned with the site-wide render-hook migration (DOC-7089).

Across 44 of 77 pages, internal links now use explicit /content/<path>.md destinations (including _index.md and hash anchors) instead of relref. 14 note callouts were converted from shortcodes; four install/recipe pages got manual blockquote indentation so notes still nest correctly inside numbered lists.

No substantive doc copy changes—only link and callout mechanics. Watch: two triggers-and-functions quick-start pages may render slightly different hrefs for keyspace-notification links that still carry escaped UTM query strings (\& vs %5c&amp;) after the link render hook processes them.

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

…/deprecated-features/ to render hooks

Convert relref shortcode links to plain markdown links (canonical
/content/<path>.md[#anchor] form) and note/tip/warning/alert callout
shortcodes to native > [!NOTE] blockquotes across the deprecated-features
tree (gears-v1, triggers-and-functions, graph): 113 relrefs and 14 callouts
across 44 of 77 files.

Hand-fixed the blockquote-indentation bug (known tool limitation) in 4
files where a callout is nested inside a list item:
installing-redisgears.md, python/install.md,
python/recipes/write-behind.md, jvm/install.md.

11 files use the shortcode's tight (no-space) form, {{<note>}}...{{</note>}},
which the earlier scoping note mis-identified as a legacy literal HTML
<note> wrapper. There is no such literal HTML wrapper anywhere in this
tree -- all instances are the real shortcode, correctly converted along
with the other 3.

diff_rendered_hrefs.py flagged 2 href changes (Quick_Start_CLI.md,
Quick_Start_RI.md), both the same pre-existing malformed construct: a
relref target with a UTM query string appended, backslash-escaping its
ampersands (?utm_source=redis\&utm_medium=...). Hugo's relref shortcode
passes that argument through raw, rendering a literal backslash; the
shared render-link.html hook receives the same raw (un-unescaped)
Destination from Goldmark's AST and percent-encodes the backslash instead,
so the migrated href reads redis%5c&amp; instead of redis\&amp;. Same
page and anchor resolve either way, and any real browser normalizes a raw
backslash in a URL to %5C before making the request, so this looks
behaviourally inert -- but it is a genuine byte-level render change, not
a diff-tool artifact, so it's flagged here rather than silently fixed.
Left the source text untouched pending a call on whether to strip the
stray backslashes or fix the hook's escaping.

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

github-actions Bot commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

DOC-7089

@github-actions

Copy link
Copy Markdown
Contributor

Staging links:
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/installing-redisgears/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/jvm/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/jvm/classes/gearsbuilder/asyncfilter/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/jvm/classes/gearsbuilder/asyncforeach/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/jvm/classes/gearsbuilder/asyncmap/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/jvm/classes/gearsbuilder/callnext/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/jvm/classes/gearsbuilder/callnextarray/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/jvm/classes/gearsbuilder/config-get/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/jvm/classes/gearsbuilder/execute/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/jvm/classes/gearsbuilder/hashtag/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/jvm/classes/gearsbuilder/localaccumulateby/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/jvm/classes/gearsbuilder/register/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/jvm/classes/gearsfuture/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/jvm/classes/readers/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/jvm/classes/readers/commandoverrider/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/jvm/classes/readers/commandreader/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/jvm/classes/readers/javareader/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/jvm/classes/readers/keysreader/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/jvm/commands/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/jvm/commands/rg-jdumpsessions/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/jvm/commands/rg-jexecute/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/jvm/install/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/jvm/quickstart/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/python/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/python/install/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/python/quickstart/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/python/recipes/write-behind/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/register-events/
https://redis.io/docs/staging/DOC-7089-deprecated-features/operate/oss_and_stack/stack-with-enterprise/deprecated-features/graph/

@github-actions

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.

Just a coupla throwaway comments. No need to fix them.

{{</note>}}
> [!NOTE]
> When you use [`GearsBuilder.run()`](/content/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/jvm/classes/gearsbuilder/run.md), `RG.JEXECUTE` runs your code immediately.
> <br></br>

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.

I'm pretty sure just a new line here will work instead of back to back br tags (?). No need to fix now.

{{</note>}}
> [!NOTE]
> For offline installation of RedisGears v1.2 and later, you also need to download the **RedisGears Dependencies** packages for both Python and Java.
> <br/>

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.

Same.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants