Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
docs.ruby-lang.org/ja/ の生成方法を変えた
Search
Kazuhiro NISHIYAMA
June 13, 2024
Programming
0
81
docs.ruby-lang.org/ja/ の生成方法を変えた
[【大阪オフライン開催】RubyKaigi 2024 KaigiEffect発表会](
https://kyobashirb.connpass.com/event/320687/
) の発表資料です。
Kazuhiro NISHIYAMA
June 13, 2024
Tweet
Share
More Decks by Kazuhiro NISHIYAMA
See All by Kazuhiro NISHIYAMA
Ruby on Rails と私
znz
0
23
riscv64.rubyci.org internal
znz
0
18
Rubyの日本語リファレンスマニュアルの現在と未来
znz
0
67
devise-two-factorを4.xから5.xに上げた話
znz
0
330
Ubuntuのriscv64版をqemuで動かした
znz
0
99
lilo.linux.or.jpをbusterからbullseyeに上げた
znz
0
110
小規模個人アプリをRails 7.xにバージョンアップした話
znz
0
94
Ruby リファレンスマニュアル改善計画 2022 進捗報告
znz
0
150
Rubyist Magazine Reboot
znz
0
210
Other Decks in Programming
See All in Programming
大規模アプリにおけるXcode Previews実用化までの道のり
ikesyo
0
910
AIエージェント時代における TypeScriptスキーマ駆動開発の新たな役割
bicstone
4
1.1k
OWASP Kansai DAY 2025.09: OSINTにふれてみよう
deka_morita
0
150
Web技術を最大限活用してRAW画像を現像する / Developing RAW Images on the Web
ssssota
2
890
Go Conference 2025: Goで体感するMultipath TCP ― Go 1.24 時代の MPTCP Listener を理解する
takehaya
7
1.2k
SpecKitでどこまでできる? コストはどれくらい?
leveragestech
0
290
育てるアーキテクチャ:戦い抜くPythonマイクロサービスの設計と進化戦略
fujidomoe
1
130
Model Pollution
hschwentner
1
180
プログラミングどうやる? ~テスト駆動開発から学ぶ達人の型~
a_okui
0
180
Learn CPU architecture with Assembly
akkeylab
1
1.3k
開発者への寄付をアプリ内課金として実装する時の気の使いどころ
ski
0
290
10年もののAPIサーバーにおけるCI/CDの改善の奮闘
mbook
0
500
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
40
2.1k
Building Applications with DynamoDB
mza
96
6.6k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
Producing Creativity
orderedlist
PRO
347
40k
GraphQLとの向き合い方2022年版
quramy
49
14k
YesSQL, Process and Tooling at Scale
rocio
173
14k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
51k
How GitHub (no longer) Works
holman
315
140k
Making Projects Easy
brettharned
118
6.4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
2.6k
Automating Front-end Workflow
addyosmani
1371
200k
Transcript
docs.ruby-lang.org/ja/ の生 成方法を変えた Kazuhiro NISHIYAMA 【大阪オフライン開催】RubyKaigi 2024 KaigiEffect発表会 2024-06-13 Powered
by Rabbit 3.0.3
self.introduction 西山 和広 Ruby のコミッター github など: @znz 株式会社Ruby開発 www.ruby-dev.jp
1/17
前の方法 docs.ruby-lang.org で生成 bc-setup-all で bitclust の db-* を生成 bc-static-all
で static html を生成 (/ja/バー ジョン/ の内容) update-rurema-index で rurema-search のイン デックスを更新 (/ja/search/ の内容) 2/17
問題発生 パターンマッチのドキュメントを ruby/ruby の rdoc を翻訳する形で追加 https:// github.com/rurema/doctree/pull/2773 のマージで問題発生 CI
はサポートバージョンでしか動いていな かった % curl -s 'https://cache.ruby-lang.org/pub/misc/ci_versions/cruby.json' | jq -c '. + []' ["3.1","3.2","3.3","head"] 3/17
docs の ruby Debian GNU/Linux 11 (bullseye) の /usr/bin/ ruby
だと ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x86_64-linux-gnu] https://snapcraft.io/ruby の最新安定版を使って いたこともあったが rurema-search との兼ね合いで /usr/bin/ruby に戻していた 4/17
HTML 生成の Docker 化 生成された db と html を入れても .git
は 140M ぐらい GitHub のリポジトリサイズ制限 > リポジトリは小さく保ち、理想としては 1GB 未満、および 5GB 未満にすることを強 くお勧めします。 生成したファイルもリポジトリ管理に 5/17
rurema-search の Docker 化 rurema-search のインデックス作成も Docker 化 インデックスはバイナリで git
管理には向か なさそう かつ毎回再生成すれば良さそう リポジトリ管理にはせず 6/17
古いドキュメントの保存 HTML ファイルは ja/1.8.7 から残っていた https://github.com/rurema/generated- documents に保存 db-* は
EC2 を今の docs-2020 に移行したと きに残していなかった db-2.4.0 以降のみ現存 rurema-search には db-* が必要だったが 2.3 以前はないまま https://docs.ruby-lang.org/ja/search/ は現状維 持 7/17
GitHub Actions で生成 github.com/ruby ではなく github.com/rurema に作成 権限がなくて S3 へ置けない
リポジトリに置くことにした 更新は 生成して pull request を作成して自動 マージする workflow 8/17
docs 側の更新方法変更 pull してきて反映 bc-setup-all で rurema/generated-documents をとってきて db-* の
symlink 作成 bc-static-all は static html を rsync で反映 update-rurema-index は今まで通り 9/17
今後の予定 rurema/generated-documents の生成済ファイ ルは埋め込まれているタグなどの関係で docs.ruby-lang.org 専用 → うまく分離したい docs.ruby-lang.org の環境軽量化
HTML 生成部分は完了 rurema-search は生成されるインデックスだけで 600M 越え (heroku の slug の 500M 制限超過) で静 的ファイルのホスティング + Heroku への移行は無 理そう https://github.com/ruby/docs.ruby-lang.org にある ansible の playbook も現状と合わない ので EC2 インスタンス作り直し? 10/17
残作業 bitclust への型付けをしつつコードリーディン グの続き kramdown への型付け (まだなければ) 開発環境の devcontainer 化
(bitclust 開発者向 けと doctree 執筆者向け) bitclust の markdown 対応 11/17
rurema の markdown 対応 bitclust に markdown 対応機能追加 markdown 移行前に
doctree の pull request 一 掃 doctree で markdown に一部書き換え doctree の書き換えでわかった bitclust で markdown 対応の問題点修正 rurema-search の markdown 対応 12/17
rurema の markdown 対応 doctree で全面的に markdown 対応 doctree の
RDベース記法のドキュメント削除 bitclust から RD 対応を削除 13/17
その他のやりたいこと irb でのドキュメント表示対応 ドキュメント内部での ruby.wasm での実行対 応 ドキュメント執筆補助ツール (bitclust の
tools) の再整備 14/17
docs.ruby-lang.org関連 (済) rdoc 生成のコンテナ化 脆弱性のある古い js の対処(?) (古い jquery な
どが残っているかどうかなどの確認から) (済) ja html 生成のコンテナ化 GA の削除? (共通 js ファイルにして docs.ruby-lang.org 以外だと空ファイルとかで きると良さそう?) (済) 更新しない古いバージョンをアーカイブ ファイルでも保存・配布 15/17
docs.ruby-lang.org関連 (済) 新しいバージョンも rurema-search で必 要ならアーカイブでも配布 古いバージョンの db-* の再生成 HTML
配信元を EC2 から S3 バックエンドか 何かに移行(?) (途中まで済) rurema-search のコンテナ化か サーバーレス化か何か 16/17
直近 (済) rurema-search で master が 3.4 のように バージョンで出てきてリンク切れになる問題 の対策
https://docs.ruby-lang.org/ja/ と https:// docs.ruby-lang.org/en/ のサポート終了バー ジョンの更新 17/17 Powered by Rabbit 3.0.3