-
Notifications
You must be signed in to change notification settings - Fork 0
Update Array Reduce Transformation docs and notebook #262
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -7,6 +7,7 @@ | |
|
|
||
| <!-- Tailwind CSS --> | ||
| <script src="https://cdn.tailwindcss.com"></script> | ||
| <!-- Note: Tailwind CDN is for development/prototyping only. --> | ||
|
|
||
| <!-- Google Fonts --> | ||
| <link rel="preconnect" href="https://fonts.googleapis.com" /> | ||
|
|
@@ -20,25 +21,41 @@ | |
| <link | ||
| rel="stylesheet" | ||
| href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-tomorrow.min.css" | ||
| integrity="sha384-wFjoQjtV1y5jVHbt0p35Ui8aV8GVpEZkyF99OXWqP/eNJDU93D3Ugxkoyh6Y2I4A" | ||
| crossorigin="anonymous" | ||
| /> | ||
| <link | ||
| rel="stylesheet" | ||
| href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.css" | ||
| integrity="sha384-nUkTNLI8COlMCRJ0FHIdX76If83145OTCLUx4gQyfnO0gGeO/sD9czGEUBxtkcUv" | ||
| crossorigin="anonymous" | ||
| /> | ||
| <link | ||
| rel="stylesheet" | ||
| href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/toolbar/prism-toolbar.min.css" | ||
| integrity="sha384-EUzJ34/1CCeefTGUKLgvA5Z/vYIwi+Jyu8aAaCfFDxfwZ3Xs3OfkkIeegsLRM11e" | ||
| crossorigin="anonymous" | ||
| /> | ||
|
|
||
| <!-- React & ReactDOM --> | ||
| <script crossorigin src="https://unpkg.com/react@18/umd/react.development.js"></script> | ||
| <script | ||
| crossorigin | ||
| src="https://unpkg.com/react-dom@18/umd/react-dom.development.js" | ||
| crossorigin="anonymous" | ||
| src="https://unpkg.com/react@18/umd/react.production.min.js" | ||
| integrity="sha384-DGyLxAyjq0f9SPpVevD6IgztCFlnMF6oW/XQGmfe+IsZ8TqEiDrcHkMLKI6fiB/Z" | ||
| ></script> | ||
| <script | ||
| crossorigin="anonymous" | ||
| src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js" | ||
| integrity="sha384-gTGxhz21lVGYNMcdJOyq01Edg0jhn/c22nsx0kyqP0TxaV5WVdsSH1fSDUf5YJj1" | ||
| ></script> | ||
|
|
||
| <!-- Babel Standalone --> | ||
| <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script> | ||
| <script | ||
| src="https://unpkg.com/@babel/standalone/babel.min.js" | ||
| integrity="sha384-Fo0OdKhdnE7y2WmzjOMW4PYjHkkANeu1501pWTqKrzAPeJMFQb4ZTdAA9dtrVUJV" | ||
| crossorigin="anonymous" | ||
| ></script> | ||
| <!-- Note: Runtime transpilation is for demos only. --> | ||
|
|
||
| <style> | ||
| html { | ||
|
|
@@ -321,7 +338,7 @@ <h3 class="text-xl font-semibold text-teal-800 mt-8 mb-3">最適化ポイント< | |
| </h2> | ||
| <div class="mt-[20px] overflow-x-auto"> | ||
| <svg | ||
| viewBox="0 0 840 700" | ||
| viewBox="0 0 840 620" | ||
| style="max-width: 100%; height: auto; color: #333" | ||
| role="img" | ||
| aria-label="Array Reduce Transformation flowchart" | ||
|
|
@@ -862,11 +879,31 @@ <h4 class="font-semibold text-purple-800 mb-3 text-lg">最適化のポイント< | |
| </div> | ||
|
|
||
| <!-- Prism.js Scripts --> | ||
| <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script> | ||
| <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-typescript.min.js"></script> | ||
| <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.js"></script> | ||
| <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/toolbar/prism-toolbar.min.js"></script> | ||
| <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js"></script> | ||
| <script | ||
| src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js" | ||
| integrity="sha384-06z5D//U/xpvxZHuUz92xBvq3DqBBFi7Up53HRrbV7Jlv7Yvh/MZ7oenfUe9iCEt" | ||
| crossorigin="anonymous" | ||
| ></script> | ||
| <script | ||
| src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-typescript.min.js" | ||
| integrity="sha384-PeOqKNW/piETaCg8rqKFy+Pm6KEk7e36/5YZE5XO/OaFdO+/Aw3O8qZ9qDPKVUgx" | ||
| crossorigin="anonymous" | ||
| ></script> | ||
| <script | ||
| src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.js" | ||
| integrity="sha384-nUkTNLI8COlMCRJ0FHIdX76If83145OTCLUx4gQyfnO0gGeO/sD9czGEUBxtkcUv" | ||
| crossorigin="anonymous" | ||
| ></script> | ||
| <script | ||
| src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/toolbar/prism-toolbar.min.js" | ||
| integrity="sha384-EUzJ34/1CCeefTGUKLgvA5Z/vYIwi+Jyu8aAaCfFDxfwZ3Xs3OfkkIeegsLRM11e" | ||
| crossorigin="anonymous" | ||
| ></script> | ||
|
Comment on lines
+892
to
+901
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
# Verify the SRI hashes by fetching the actual files and computing their sha384 hashes
echo "=== CSS: prism-line-numbers.min.css ==="
curl -sL "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.css" | openssl dgst -sha384 -binary | openssl base64 -A
echo ""
echo "=== JS: prism-line-numbers.min.js ==="
curl -sL "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.js" | openssl dgst -sha384 -binary | openssl base64 -A
echo ""
echo "=== CSS: prism-toolbar.min.css ==="
curl -sL "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/toolbar/prism-toolbar.min.css" | openssl dgst -sha384 -binary | openssl base64 -A
echo ""
echo "=== JS: prism-toolbar.min.js ==="
curl -sL "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/toolbar/prism-toolbar.min.js" | openssl dgst -sha384 -binary | openssl base64 -A
echo ""Repository: myoshi2891/Algorithm-DataStructures-Math-SQL Length of output: 626 🏁 Script executed: #!/bin/bash
python3 <<'EOF'
import urllib.request
import hashlib
import base64
files = {
"CSS: prism-line-numbers.min.css": "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.css",
"JS: prism-line-numbers.min.js": "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.js",
"CSS: prism-toolbar.min.css": "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/toolbar/prism-toolbar.min.css",
"JS: prism-toolbar.min.js": "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/toolbar/prism-toolbar.min.js",
}
for name, url in files.items():
try:
response = urllib.request.urlopen(url)
content = response.read()
hash_digest = hashlib.sha384(content).digest()
hash_b64 = base64.b64encode(hash_digest).decode('ascii')
print(f"=== {name} ===")
print(f"sha384-{hash_b64}")
print()
except Exception as e:
print(f"Error fetching {name}: {e}")
print()
EOFRepository: myoshi2891/Algorithm-DataStructures-Math-SQL Length of output: 781 🏁 Script executed: #!/bin/bash
# Read the HTML file to verify the SRI hashes mentioned in the review
FILE="JavaScript/2626. Array Reduce Transformation/Claude Code Sonnet 4.5 extended/README_react.html"
echo "=== Lines around 24-36 (CSS integrity hashes) ==="
sed -n '24,37p' "$FILE"
echo ""
echo "=== Lines around 890-905 (JS integrity hashes) ==="
sed -n '890,905p' "$FILE"Repository: myoshi2891/Algorithm-DataStructures-Math-SQL Length of output: 1809 prism-line-numbers.min.js と prism-toolbar.min.js の SRI ハッシュが不正(スクリプト読み込みブロック) Line 894 の CSS と JS は異なるファイルなので、SRI ハッシュが同じになることはありません。不正なハッシュはブラウザのセキュリティチェックで検証に失敗し、スクリプトの読み込みをブロックします。その結果、シンタックスハイライト、行番号、コピーボタンなどの機能が動作しなくなります。 各 JS ファイルの正しい SRI ハッシュを cdnjs から確認して修正してください。 🤖 Prompt for AI Agents |
||
| <script | ||
| src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js" | ||
| integrity="sha384-ZdEfx8sYX8i4IVXU1tUbqwOp4PBUCCmnpagpiHchnstXkEczkzPfUd9fvBrntM+F" | ||
| crossorigin="anonymous" | ||
| ></script> | ||
|
|
||
| <!-- React Component --> | ||
| <script type="text/babel"> | ||
|
|
@@ -1323,12 +1360,7 @@ <h4 class="font-semibold text-purple-800 mb-3 text-lg">最適化のポイント< | |
| // 自動再生ロジック(v3.3) | ||
| useEffect(() => { | ||
| if (isPlaying) { | ||
| if (activeStep > stepsData.length) { | ||
| setIsPlaying(false); | ||
| setActiveStep(1); | ||
| return; | ||
| } | ||
|
|
||
| // Note: activeStep > stepsData.length check is unreachable due to handlers constrains | ||
| timerRef.current = setTimeout(() => { | ||
| if (activeStep === stepsData.length) { | ||
| setActiveStep(1); | ||
|
|
@@ -1393,8 +1425,10 @@ <h3 className="mt-0 mb-4 text-teal-800 text-xl font-semibold"> | |
| 'bg-white border-slate-200 hover:border-emerald-500 hover:translate-x-1', | ||
| isActive | ||
| ? 'bg-[linear-gradient(135deg,#d1fae5,#a7f3d0)] border-emerald-500 shadow-[0_4px_12px_rgba(16,185,129,0.20)]' | ||
| : '', | ||
| ].join(' ')} | ||
| : null, | ||
| ] | ||
| .filter(Boolean) | ||
| .join(' ')} | ||
| onClick={() => handleStepClick(step.step)} | ||
| aria-label={`ステップ${step.step}: ${step.title}`} | ||
| aria-current={isActive ? 'step' : undefined} | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SVG viewBox の高さ縮小(700→620)がコンテンツに対して十分か確認してください。
フローチャートのループバック矢印のパス(Line 655)が
y=585まで到達し、ラベル(Line 663)がy=600に配置されています。viewBox の高さ 620 に対してマージンが 20px しかなく、テキストの下端がクリッピングされる可能性があります。ブラウザで表示を確認してください。🤖 Prompt for AI Agents