Vyasa Extension Refactor Audit and Execution Plan

Mechanical Migration PlanURL copied

Phase 4: Extract Diagram Renderers From MarkdownURL copied

Goal:

  • Mermaid, D2, Cytograph own their renderers.

Mermaid cut:

mkdir -p vyasa/extensions_builtin/mermaid/static
awk '/^def _render_mermaid_block/{flag=1} /^def _render_tasks_block/{flag=0} flag' vyasa/extensions_builtin/markdown/renderer.py > /tmp/mermaid_render.py

Then paste into vyasa/extensions_builtin/mermaid/render.py and add local imports for html, re, _escape_attr equivalent if needed, and a local id generator.

D2 cut:

mkdir -p vyasa/extensions_builtin/d2/static
awk '/^def _render_d2_block/{flag=1} /^def _render_mermaid_block/{flag=0} flag' vyasa/extensions_builtin/markdown/renderer.py > /tmp/d2_render.py

Cytograph cut:

mkdir -p vyasa/extensions_builtin/cytograph/static
awk '/^def _clean_scalar/{flag=1} /^def _render_cryptograph_block/{flag=0} flag' vyasa/extensions_builtin/markdown/renderer.py > /tmp/cytograph_render.py

After paste:

  • Change imports in extension registration to local from .render import ....
  • Delete original functions from Markdown after tests pass.
  • Delete hard-coded fallback branches in render_block_code.

Acceptance:

  • rg "_render_mermaid_block|_render_d2_block|_render_cytograph_block" vyasa/extensions_builtin/markdown/renderer.py returns no results.
  • rg "from ..markdown.renderer" vyasa/extensions_builtin/mermaid vyasa/extensions_builtin/d2 vyasa/extensions_builtin/cytograph returns no results.