Skip to content

Commit 49675f3

Browse files
committed
Apply Round 5 and Emergency Fixes: Remove Tailwind SRI (fix styles), Fix Copy Button CSS, Update CLAUDE.md
1 parent 63bf1e9 commit 49675f3

3 files changed

Lines changed: 25 additions & 22 deletions

File tree

CLAUDE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
44

55
## プロジェクト概要
66

7-
マルチ言語・マルチAIによる競技プログラミング学習リポジトリ。各問題に対して**2×3×3マトリックス**(2 AIプロバイダー × 3言語 × 3ドキュメント階層 = 18ファイル)で成果物を生成する。
7+
マルチ言語・マルチAIによる競技プログラミング学習リポジトリ。各問題に対して**2社 × Nモデル × 3言語 × 3ドキュメント階層**で成果物を生成する。
88

99
## 開発コマンド
1010

@@ -41,7 +41,7 @@ make lab # JupyterLab起動
4141

4242
- **Domain**: `Algorithm/`, `DataStructures/`, `Mathematics/`, `SQL/`, `Shell/`, `Concurrency/`
4343
- **Platform**: `leetcode/`, `hackerrank/`, `atcoder/`, `codeforces/`
44-
- **AIProvider**: `Claude Sonnet 4.5/`, `Claude Code Sonnet 4.6 extended/`, `gpt 5.1 thinking customized/` など
44+
- **AIProvider**: `Claude Sonnet 4.5/`, `Claude Code Sonnet 4.6 extended/`, `gpt-4o/` など
4545
- **Artifact**: `*.py`, `*.ts`, `*.js`, `README.md`, `README.html`, `README_react.html`
4646

4747
**例外**: `JavaScript/` ディレクトリは LeetCode 30-Day JS Challenge 専用で、上記6階層に従わない。`SQL/` ドメインはAIプロバイダーが`gpt/`単一フォルダで`.ipynb`形式。

JavaScript/2629. Function Composition/Claude Code Sonnet 4.6 extended/README_react.html

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,10 @@
1919
integrity="sha384-Fo0OdKhdnE7y2WmzjOMW4PYjHkkANeu1501pWTqKrzAPeJMFQb4ZTdAA9dtrVUJV"
2020
crossorigin="anonymous"
2121
></script>
22-
<script
23-
src="https://cdn.tailwindcss.com"
24-
integrity="sha384-igm5BeiBt36UU4gqwWS7imYmelpTsZlQ45FZf+XBn9MuJbn4nQr7yx1yFydocC/K"
25-
crossorigin="anonymous"
26-
></script>
22+
<script src="https://cdn.tailwindcss.com"></script>
2723
<link
2824
href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Mono:wght@400;500&family=Fraunces:wght@700;900&display=swap"
2925
rel="stylesheet"
30-
integrity="sha384-74F33m7hvD7UOe4E68gapXfr7Z1VLQX/s7NfYcUxVWu+mipY3tL99ai9ripcWrpf"
31-
crossorigin="anonymous"
3226
/>
3327
<link
3428
rel="stylesheet"
@@ -85,8 +79,14 @@
8579
font-family: 'DM Mono', monospace;
8680
}
8781
.code-toolbar > .toolbar {
82+
position: absolute;
8883
top: 0.5rem;
8984
right: 0.5rem;
85+
opacity: 0;
86+
transition: opacity 0.3s ease-in-out;
87+
}
88+
.code-toolbar:hover > .toolbar {
89+
opacity: 1;
9090
}
9191
.code-toolbar > .toolbar .toolbar-item button {
9292
background: #374151;
@@ -1297,6 +1297,7 @@ <h3 className="text-lg font-bold text-[#fffffe] mt-0 mb-2">
12971297
onClick={handlePlay}
12981298
disabled={isPlaying}
12991299
className="px-5 py-2.5 rounded-xl font-semibold text-white text-sm transition disabled:opacity-40 bg-[#e53170] hover:bg-[#c72a5f] hover:-translate-y-0.5"
1300+
aria-label="Play animation"
13001301
>
13011302
▶ Play
13021303
</button>
@@ -1308,6 +1309,7 @@ <h3 className="text-lg font-bold text-[#fffffe] mt-0 mb-2">
13081309
}}
13091310
disabled={activeStep === 1}
13101311
className="px-5 py-2.5 rounded-xl font-semibold text-sm border border-white/10 text-[#a7a9be] hover:bg-white/5 transition disabled:opacity-30"
1312+
aria-label="Previous step"
13111313
>
13121314
← Prev
13131315
</button>
@@ -1319,6 +1321,7 @@ <h3 className="text-lg font-bold text-[#fffffe] mt-0 mb-2">
13191321
}}
13201322
disabled={activeStep === stepsData.length}
13211323
className="px-5 py-2.5 rounded-xl font-semibold text-sm border border-white/10 text-[#a7a9be] hover:bg-white/5 transition disabled:opacity-30"
1324+
aria-label="Next step"
13221325
>
13231326
Next →
13241327
</button>
@@ -1329,6 +1332,7 @@ <h3 className="text-lg font-bold text-[#fffffe] mt-0 mb-2">
13291332
setIsPlaying(false);
13301333
}}
13311334
className="px-5 py-2.5 rounded-xl font-semibold text-sm border border-white/10 text-[#a7a9be] hover:bg-white/5 transition"
1335+
aria-label="Reset steps"
13321336
>
13331337
↺ Reset
13341338
</button>

calc_sri_fix.sh

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,18 @@ calculate_sri() {
2424
local hash
2525
hash=$(openssl dgst -sha384 -binary < "$temp_file" | openssl base64 -A)
2626
echo "$url sha384-$hash"
27-
rm -f "$temp_file"
2827
}
2928

30-
calculate_sri "https://unpkg.com/react@18/umd/react.production.min.js"
31-
calculate_sri "https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"
32-
calculate_sri "https://unpkg.com/@babel/standalone/babel.min.js"
33-
calculate_sri "https://cdn.tailwindcss.com"
34-
calculate_sri "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-tomorrow.min.css"
35-
calculate_sri "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.css"
36-
calculate_sri "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"
37-
calculate_sri "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-typescript.min.js"
38-
calculate_sri "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/toolbar/prism-toolbar.min.js"
39-
calculate_sri "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js"
29+
calculate_sri "https://unpkg.com/react@18/umd/react.production.min.js" || true
30+
calculate_sri "https://unpkg.com/react-dom@18/umd/react-dom.production.min.js" || true
31+
calculate_sri "https://unpkg.com/@babel/standalone/babel.min.js" || true
32+
# calculate_sri "https://cdn.tailwindcss.com" || true # Skipped: dynamic CDN incompatible with SRI
33+
calculate_sri "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-tomorrow.min.css" || true
34+
calculate_sri "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.css" || true
35+
calculate_sri "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js" || true
36+
calculate_sri "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-typescript.min.js" || true
37+
calculate_sri "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/toolbar/prism-toolbar.min.js" || true
38+
calculate_sri "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js" || true
4039
# Google Fonts returns dynamic CSS, SRI might be unstable but we check just in case or skip if needed. User instruction implies to check.
41-
calculate_sri "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Mono:wght@400;500&family=Fraunces:wght@700;900&display=swap"
42-
calculate_sri "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.js"
40+
calculate_sri "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Mono:wght@400;500&family=Fraunces:wght@700;900&display=swap" || true
41+
calculate_sri "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.js" || true

0 commit comments

Comments
 (0)