feat(tutorial): add ruby-basics-1-numbers deck (Phase 2)#685
Merged
Conversation
Phase 2 の最初の Ruby チュートリアル deck を追加。新カテゴリ「Ruby のきほん」
(`rubyBasics`) を新設し、TryRuby を参考にした puts ベースの計算チュートリアル
を 6 ステップで提供する。
deck 起動時に setup プロパティで Ruby タブ + Ruby モードに自動遷移するため、
利用者は tipsLibrary からクリックするだけで適切な環境でチュートリアルが始まる。
ステップ構成 (Lv1 のみ):
1. イントロ: Rubyで計算してみよう!
2. puts 2 + 6 を実行
3. 緑の旗を押すとネコが「8」としゃべる
4. かけ算・わり算・ひき算も試す
5. 数字を好きに変えて自由に計算
6. TryRuby へ誘導 (「ここで書いた puts のコードは本物の Ruby でも動くよ」)
puts/print/p は scratch-gui の Ruby → ブロック変換で looks_say にマップ
されているため (packages/scratch-gui/src/lib/ruby-to-blocks-converter/looks.js)、
学習者は Smalruby で書いたコードをそのまま TryRuby や標準 Ruby に持ち込める。
- tutorial-tags.js: CATEGORIES.rubyBasics 追加
- library.jsx: 「Ruby のきほん」ラベル追加
- decks/index.jsx: deck 定義 + setup プロパティ {tab:'ruby', rubyMode:'ruby'}
- decks/{ja,en}-steps.js: 6 step 画像 import
- decks/steps/ruby-basics-1-*.png: Playwright で生成した step 画像 6 枚
- decks/thumbnails/ruby-basics-1-numbers.jpg: ImageMagick で生成したサムネイル
- locales/{en,ja,ja-Hira}.js: deck 名 / step タイトルの 3 言語翻訳
- docs/tutorial/progress.md: Phase 2 deck 進捗を 1/7 deck に更新
- tools/playwright-verify/generate-ruby-basics-1-steps.mjs: step 画像生成スクリプト
- tools/playwright-verify/verify-ruby-basics-1.mjs: deck 動作確認スクリプト
(5 カテゴリ表示 / deck 起動 / Ruby タブ自動切替 / DNCL off / step 進行 を検証)
Refs: #679, #682
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
🚀 Preview deployed: https://smalruby.jp/smalruby3-editor/feature/tutorial-ruby-basics-1-numbers/ |
…TryRuby link PR レビューでの指摘 2 点を修正: 1. **すべての step スクリーンショットに ERROR が表示されていた問題** 原因: Monaco 0.55.1 の内部 `_acceptDeleteRange` で `Cannot read properties of undefined (reading 'substring')` がスローされ、エディタが全行を error マーカーで埋める。Playwright 自動化中の rapid setValue で再現する。 修正: Playwright + Monaco でのスクリーンショット生成をやめ、ImageMagick でクリーンなコードカード画像 (720x420) を生成する方式に切り替え。Monaco 非依存のため安定 + ERROR 表示が消える。 2. **「TryRuby へ」と書きながら実際のリンクが無かった問題** 修正: deck の最終ステップを `externalResources` 形式に変更 (chat-3-mesh-3 の Kairyudo リンクと同じパターン)。クリック可能な TryRuby カードとして `https://try.ruby-lang.org/ja/` を表示する。 その他の変更: - 旧 `steps/ruby-basics-1-6-tryruby.png` を `thumbnails/ruby-basics-1-tryruby.png` に移動 (externalResources の img は thumbnails/ から読む) - `rubyBasics1Step6` 画像 import と locale step6.title を削除 - 新 locale key `gui.howtos.ruby-basics-1-numbers.external.tryruby.name` を追加 - サムネイル `ruby-basics-1-numbers.jpg` も統一スタイル (dark bg + monospace) に更新 - verify スクリプトに「deck が TryRuby URL を宣言しているか」のチェックを追加 - 画像生成スクリプトを Playwright → ImageMagick に書き換え (再生成可能) Refs: #679, #682, #685 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
TryRuby は URL パスでの言語指定 (`/ja/` など) を受け付けない仕様のため、 ルート URL のみを使用する。 - decks/index.jsx: externalResources.tryruby.url を `/ja/` → `/` に修正 - generate-ruby-basics-1-steps.mjs: TryRuby カード画像の URL 表記を更新 - thumbnails/ruby-basics-1-tryruby.png: 上記スクリプトで再生成 - improvement-plan.md: 同様に修正し、TryRuby の URL 仕様について注記を追加 Refs: #679, #685 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…choices)
ruby-basics-1-numbers の最終ステップを 1 択 (TryRuby のみ) から 2 択に拡張。
これまでは「TryRuby に行く」ボタンしか無く、Ruby チュートリアルを終えた
利用者がそのままサイトを離脱してしまっていた。次に「スモウルビーで他の
チュートリアルを試す」選択肢を同列で並べ、tipsLibrary に戻れるようにする。
実装:
- src/components/cards/cards.jsx (Smalruby マーカー追加): externalResources の
各エントリで `action: 'openTipsLibrary'` を宣言できるよう拡張。`url` の
代わりにこの action を持つカードは <a target="_blank"> ではなく <button>
として描画し、クリックで `onShowAll` (= dispatch closeCards + openTipsLibrary)
を呼ぶ。
- decks/index.jsx: ruby-basics-1-numbers の最終ステップに
`smalrubyTutorials: { action: 'openTipsLibrary', img, name }` を追加。
TryRuby と同列の 2 つのカードとして並ぶ。
- thumbnails/ruby-basics-1-tryruby.png: 利用者提供の TryRuby スクリーンショット
(try ruby ロゴ + 「30分ありますか?」ヒーロー文) に置き換え。生成版より
本物の TryRuby UI を見せられる。
- thumbnails/ruby-basics-1-more-tutorials.png: 「チュートリアル一覧へ」と
伝える Smalruby カード画像を新規追加 (ImageMagick で生成、Smalruby brand red)。
- locales/{en,ja,ja-Hira}: `ruby-basics-1-numbers.external.tutorials.name`
追加。
- smalruby-markers.md: 新しい「internal resource action」マーカーを記録。
- verify-ruby-basics-1.mjs: 最終ステップが両 externalResources を持ち、
tryRubyUrl が正規ルート URL、tutorialsAction が openTipsLibrary であることを
bundle 経由で検証。
Refs: #679, #685
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PR レビューでの指摘を反映:
1. **TryRuby サムネイル差し替え**
従来の画像は上端の「try ruby」ロゴが 200x100 表示領域で見切れていた。
利用者提供の 859x430 (2:1 アスペクト調整済み) 版に置き換え、ロゴと
ヒーローテキストの両方が収まるようにする。
2. **TryRuby カードの文言を簡潔に変更**
「TryRuby でもっとRubyを学ぶ — ここで書いたputsはそのまま動きます」
→ 「外部サイト「try ruby」で詳しくRubyを学ぶ」
外部リンクであることが一目で分かる短い案内に統一。
3. **「スモウルビーで他のチュートリアル」カードを削除**
cards UI の下部に既に「もっと見る」ボタンがあり、これが同じく
tipsLibrary を開く動作 (`onShowAll` → closeCards + openTipsLibrary)
を持っていたため、追加カードは冗長だった。重複 UI を解消し、
externalResources に追加した内部アクション機構もまるごと revert する。
revert された変更:
- src/components/cards/cards.jsx: PreviewExternalStep の Smalruby マーカー
(action: 'openTipsLibrary' サポート) を削除し、upstream の <a href> 一本に
戻す
- .claude/rules/scratch-gui/smalruby-markers.md: 関連エントリ削除
- src/lib/libraries/decks/index.jsx: smalrubyTutorials externalResource を
削除、import も削除
- thumbnails/ruby-basics-1-more-tutorials.png: 削除
- locales/{en,ja,ja-Hira}.js: tutorials.name エントリ削除、tryruby.name を
新文言に置き換え
- verify-ruby-basics-1.mjs: tutorials assertion を削除し、TryRuby 単独の
検証に簡略化
Refs: #679, #685
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
github-actions Bot
pushed a commit
that referenced
this pull request
May 11, 2026
…ial-ruby-basics-1-numbers feat(tutorial): add ruby-basics-1-numbers deck (Phase 2)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Phase 2 の最初の Ruby チュートリアル deck を追加します。新カテゴリ
rubyBasics「Ruby のきほん」を新設し、TryRuby を参考にしたputsベース の計算チュートリアルを 6 ステップで提供します。設計上の特徴:
setup: { tab: 'ruby', rubyMode: 'ruby' }で deck 起動時に Ruby タブ + Ruby モードに自動遷移 (PR feat(tutorial): add deck setup foundation (Phase 2 base) #684 の基盤を活用)say(...)ではなくputs ...を一貫して使用 — 学習者が書いたコードはそのまま TryRuby / 標準 Ruby に持ち込める (looks.js:79-151がputsをlooks_sayにマップ)Steps (Lv1 only)
puts 2 + 6を実行 (コード挿入)puts 4 * 10/puts 30 / 4/puts 5 - 12(コード挿入)putsのコードは本物の Ruby でも同じように動くよ」+ 外部リンク示唆Changes
tutorial-tags.jsCATEGORIES.rubyBasicsを追加library.jsxdecks/index.jsxruby-basics-1-numbersdeck 定義 +setup: {tab:'ruby', rubyMode:'ruby'}+ サムネイル importdecks/{ja,en}-steps.jsdecks/steps/ruby-basics-1-*.pngdecks/thumbnails/ruby-basics-1-numbers.jpglocales/{en,ja,ja-Hira}.jsdocs/tutorial/progress.mdtools/playwright-verify/generate-ruby-basics-1-steps.mjstools/playwright-verify/verify-ruby-basics-1.mjsVerification
bin/dx bash -c "cd packages/scratch-gui && npm run lint"緑。Test plan
puts 2 + 6が Monaco に貼り付くsetupなし) は従来通り開ける (デグレなし)Image quality note
Step 画像は Playwright MCP で Ruby タブの状態を素直に撮影したものです。文字主体で UI 内容は正確ですが、Phase 1 の Mesh 系列 deck のような演出 GIF にはなっていません。実運用で十分な品質ですが、後続 PR で個別に磨き込む余地があります (
generate-ruby-basics-1-steps.mjsが再利用可能)。Related
docs/tutorial/improvement-plan.mdPhase 2docs/tutorial/progress.md🤖 Generated with Claude Code