cathrynlavery/diagram-design

38 editorial diagram types for Claude Code, Codex, and Pi. Self-contained HTML + SVG. No shadows. No Mermaid slop.

HTML★ 37,967+1,294 that day#6 on trending

Analyzed September 11, 2026 at 8d8b299 (main) with jscpd 5.4.0 in 0.3s. Code duplication went from 4.41% on Sep 5 to 5.3% on Sep 11.

5.3%duplicated code · 1,689 of 31,895 lines
111clones in code
74code files of 399 scanned
23.89%duplicated over all files · 1,060 clones

The code number leaves out tests, fixtures, docs, examples, data files, styles, translations and vendored code.

Largest clones in the code

  • 59 lines in 2 placespython425 tokens
    147def run(self, source: str, name: str = "example-beeswarm-fixture.html") -> list:
    148    path = self.path_for(name)
    149    path.write_text(source, encoding="utf-8")
    150    try:
    151        return verify.check(path)
    152    finally:
    153        path.unlink()
    154
    155def expect_clean(self, case: str, source: str, name: str | None = None) -> None:
    156    self.count += 1
    

    First 10 of 59 lines.

  • 45 lines in 2 placespython307 tokens
    249`float("nan")` succeeds and then every `abs(x) > tolerance` comparison is
    250False, so a NaN coordinate silently satisfies every check in the file.
    251Any non-finite value is treated as unreadable instead.
    252"""
    253if value is None:
    254    return None
    255try:
    256    parsed = float(str(value).replace(",", ""))
    257except (TypeError, ValueError):
    258    return None
    

    First 10 of 45 lines.

  • 24 lines in 3 placespython137 tokens
    888    help="check every shipped example that presents as a beeswarm",
    889)
    890args = parser.parse_args()
    891if not args.all and not args.paths:
    892    parser.print_help()
    893    return 2
    894
    895if args.all:
    896    targets = sorted(ASSET_DIR.glob("example-*.html"))
    897else:
    

    First 10 of 24 lines.

7 more
Largest clones over all files, tests and data included
By format, code only
FormatFilesLinesClonesDuplicated linesDuplication
python6431,0771111,6895.43%
bash9644000%
perl1174000%
By format, all files
FormatFilesLinesClonesDuplicated linesDuplication
markup18328,47490515,89455.82%
python6631,1671131,7135.5%
markdown8911,631302982.56%
yaml201,4629674.58%
json81,0302494.76%
bash13847180.94%
text13561000%
perl1174000%
css252000%
txt120000%

Trending appearances

DayRankStarsFilesLinesClonesAll filesCodeHealthCommit
Sep 11, 2026#637,967 (+1,294)39975,4551,06023.89%5.3%—8d8b299
Sep 10, 2026#536,867 (+2,249)39975,3861,06023.92%5.3%—562dbdf
Sep 9, 2026#235,301 (+710)38271,5611,00324.2%4.47%—dcd9317
Sep 7, 2026#132,636 (+620)38271,5451,00324.2%4.47%—2724fd2
Sep 6, 2026#331,817 (+855)37470,12997324.01%4.41%—4451ead
Sep 5, 2026#1031,096 (+437)37470,12997324.01%4.41%—4451ead

Want this for your own project? Install jscpd and run jscpd ., or measure it the way the baselines were measured.