Files
leetcode/.omp/commands/sync-solutions.md
T

2.3 KiB

description
description
Sync work/ leetcode solutions into docs/solutions/ pages (gold standard format)

Sync every leetcode solution under work/ into a docs page under docs/solutions/, formatted like the gold standard docs/solutions/344-reverse-string.mdx. Extra focus (optional): $@

Run the script

The port is fully scripted — do not hand-write pages:

bun run sync

scripts/sync.ts does the whole pipeline:

  • Globs work/**/*.{js,py} (<number>.<kebab-slug>.{js,py} under work/<Difficulty>/<Category>/) and groups the two language variants of a problem by leetcode number.
  • Parses each file's header comment (js block comment / py docstring) into title, difficulty, statement, examples, constraints, and follow-up.
  • New problems get a full page at docs/solutions/<leetcode-number>-<kebab-slug>.mdx: frontmatter, <Badge> topic (README curriculum table, falling back to the work/ subdirectory), ::::warning for follow-ups/special requirements, examples, constraints, and the solution code verbatim.
  • The filename prefix is the leetcode problem number — it orders the sidebar numerically and is stripped from the URL (344-reverse-string.mdx/solutions/reverse-string). The script renames any page whose filename drifts from <leetcode-number>-<kebab-slug>.mdx.
  • Already-ported pages (frontmatter title starts with the leetcode number) only get their ## Solution section regenerated — curated prose is never touched.
  • Problems solved in both languages render as a <CodeGroup> (Python first, then JavaScript); single-language solutions render as a plain fence.

The script prints the report table: work file → docs page → created / renamed / updated / skipped (already in sync).

Review

Skim any created pages — the prose transforms (backticking literals in example explanations, warning detection) are heuristic. Fix wording by editing the page prose directly; it won't be overwritten on the next sync. Never edit inside ## Solution — that section is owned by the script and synced from work/.

Verify

  1. bunx blume build --isolated must succeed with no new warnings; confirm each new route generated (/solutions/<slug>).
  2. Spot-check one new page's built HTML for the badge, callout (when present), and solution code.
  3. rm -rf .blume-verify when done.