tldr-pages/tldr
主な特徴
- 簡潔で実用的な例(1コマンドあたり最大8例)
- 統一されたMarkdownフォーマット
- 38言語以上の多言語対応
- マルチプラットフォーム対応(common、Linux、macOS、Windows等)
- 20以上のクライアント実装
- プレースホルダー構文(`{{value}}`)
- オプション表記(`{{[-s|--short]}}`)
- オフライン対応(ローカルキャッシュ)
- Webインターフェース、PDF版も提供
- 1,000人以上のコントリビューター
- 厳格なスタイルガイド
- 自動化されたテストとリンティング
リポジトリ解析: tldr-pages/tldr
基本情報
- リポジトリ名: tldr-pages/tldr
- 主要言語: Markdown
- スター数: 57,947
- フォーク数: 4,638
- 最終更新: 2025年7月(活発に開発中)
- ライセンス: CC BY 4.0(コンテンツ)、MIT(スクリプト)
- トピックス: コマンドラインツール、ドキュメント、チートシート、manページ代替、コンソールコマンド
概要
一言で言うと
コンソールコマンドの使い方を簡潔な例で示す協調型チートシート集。冗長な man ページの代わりに、実用的な例を5-8個提供し、初心者にもベテランにも役立つクイックリファレンス。
詳細説明
tldr-pagesは「Too Long; Didn't Read」の略で、従来のmanページを補完する簡潔なヘルプページのコレクションです。コミュニティによって維持されており、コマンドラインツールの最も一般的な使用例を実践的な形で提供します。各ページは統一されたフォーマットに従い、コマンドの簡潔な説明と具体的な使用例を含みます。6,000以上のコマンドについて、38以上の言語で利用可能で、様々なプラットフォーム(Linux、macOS、Windows、Android等)に対応しています。
主な特徴
- 簡潔で実用的な例(1コマンドあたり最大8例)
- 統一されたMarkdownフォーマット
- 38言語以上の多言語対応
- マルチプラットフォーム対応(common、Linux、macOS、Windows等)
- 20以上のクライアント実装
- プレースホルダー構文(
{{value}}) - オプション表記(
{{[-s|--short]}}) - オフライン対応(ローカルキャッシュ)
- Webインターフェース、PDF版も提供
- 1,000人以上のコントリビューター
- 厳格なスタイルガイド
- 自動化されたテストとリンティング
使用方法
インストール
前提条件
- コマンドラインクライアント(Python、Node.js、Rust等)
- インターネット接続(初回ダウンロード時)
インストール手順
# 方法1: Python版(公式推奨)
pip3 install tldr
# 方法2: Rust版(高速)
brew install tlrc
# または
cargo install tlrc
# 方法3: Node.js版
npm install -g tldr
# 方法4: パッケージマネージャー経由
# macOS
brew install tldr
# Ubuntu/Debian
apt install tldr
# Arch Linux
pacman -S tldr
基本的な使い方
Hello World相当の例
# 基本的な使用方法
tldr tar # tarコマンドの使用例を表示
tldr git # gitコマンドの概要を表示
tldr --update # ローカルキャッシュを更新
実践的な使用例
# 特定のプラットフォーム用のページを表示
tldr -p linux apt # Linux版のaptコマンド
tldr -p osx brew # macOS版のbrewコマンド
# 言語を指定して表示
tldr -l ja git # 日本語でgitの説明を表示
tldr -l es docker # スペイン語でdockerの説明を表示
# 利用可能な言語一覧
tldr --list-languages
# サブコマンドの例
tldr git checkout # git checkoutの使用例
tldr docker run # docker runの使用例
高度な使い方
# コントリビューター向け:新しいページの作成
# 1. tldrページのフォーマットに従ってMarkdownファイルを作成
# 2. 適切なディレクトリに配置(pages/common/、pages/linux/等)
# 3. リンターでチェック
npm run lint-tldr-pages
# ページの例(pages/common/example-command.md)
cat > example-command.md << 'EOF'
# example-command
> Brief description of the command.
> More information: <https://example.com>.
- Basic usage:
`example-command {{file}}`
- With options:
`example-command {{[-v|--verbose]}} {{file}}`
- Process multiple files:
`example-command {{file1 file2 ...}}`
EOF
# クライアント開発者向け:仕様準拠の実装
# CLIENT-SPECIFICATION.mdに従って実装
# 必須フラグ: -v, -p, -u, -l, -L
# ページ解決アルゴリズム、キャッシュ機能等を実装
ドキュメント・リソース
公式ドキュメント
- README.md: プロジェクト概要、基本的な使い方
- CLIENT-SPECIFICATION.md: クライアント実装仕様(v2.3)
- CONTRIBUTING.md: 貢献ガイドライン
- contributing-guides/style-guide.md: ページ作成のスタイルガイド
- GOVERNANCE.md: プロジェクトガバナンス
- 公式サイト: https://tldr.sh
サンプル・デモ
- pages/common/: 汎用コマンドの例(git、curl、docker等)
- pages/linux/: Linux固有コマンド(apt、systemctl等)
- pages/osx/: macOS固有コマンド(brew、open等)
- オンラインビューア: https://tldr.sh
チュートリアル・ガイド
- スタイルガイド(複数言語版あり)
- メンテナーガイド
- Git/GitHubワークフローガイド
- ページ作成のベストプラクティス
技術的詳細
アーキテクチャ
全体構造
分散型ドキュメントシステムとして設計。Markdownファイルをベースに、GitHubをCMSとして活用。クライアントは仕様に従って実装され、GitHubリリースから定期的にページをダウンロード・キャッシュ。
ディレクトリ構成
tldr/
├── pages/ # 英語版ページ(デフォルト)
│ ├── common/ # プラットフォーム共通(900+ページ)
│ ├── linux/ # Linux固有(600+ページ)
│ ├── osx/ # macOS固有(200+ページ)
│ ├── windows/ # Windows固有(200+ページ)
│ ├── android/ # Android固有
│ └── cisco-ios/ # Cisco IOS
├── pages.<lang>/ # 翻訳版(38言語)
│ ├── pages.ar/ # アラビア語
│ ├── pages.ja/ # 日本語
│ ├── pages.zh/ # 中国語
│ └── ... # その他34言語
├── scripts/ # ビルド・メンテナンススクリプト
│ ├── build-index.js # インデックス生成
│ ├── test.sh # テストスイート
│ └── build.sh # アーカイブビルド
├── contributing-guides/ # 貢献者向けドキュメント
└── images/ # ロゴ、バナー、フォント
主要コンポーネント
-
ページフォーマット: CommonMark準拠のMarkdown
- 場所:
pages/*/ - 依存: なし(純粋なMarkdown)
- インターフェース: 統一されたページ構造
- 場所:
-
ビルドシステム: Node.js/Shell/Python
- 場所:
scripts/ - 依存: npm、Python 3
- インターフェース: npm scripts、シェルスクリプト
- 場所:
-
品質管理: リンター、テスト
- 場所:
scripts/test.sh - 依存: markdownlint、tldr-lint
- インターフェース: CI/CD統合
- 場所:
技術スタック
コア技術
- 言語: Markdown(コンテンツ)、JavaScript/Python/Shell(ツーリング)
- フレームワーク: なし(静的コンテンツ)
- 主要ライブラリ:
- markdownlint-cli 0.45.0: Markdownリンティング
- tldr-lint 0.0.19: tldr固有のリンティング
- glob 11.0.3: ファイル操作
開発・運用ツール
- ビルドツール: npm scripts、シェルスクリプト
- テスト: 独自テストスイート(test.sh)
- CI/CD: GitHub Actions
- デプロイ: GitHub Releases(ZIPアーカイブ)
設計パターン・手法
- コンテンツとプレゼンテーションの分離
- 宣言的なページフォーマット
- 多言語対応のディレクトリ構造
- プラットフォーム固有とクロスプラットフォームの分離
- クライアント・サーバー分離(オフライン対応)
データフロー・処理フロー
- コントリビューターがMarkdownでページを作成
- PRレビューとリンティング
- マージ後、自動的にアーカイブ生成
- GitHub Releasesにアップロード
- クライアントが定期的にダウンロード
- ローカルキャッシュから高速表示
API・インターフェース
公開API
クライアント仕様(v2.3)
- 目的: 統一されたtldrクライアント体験の提供
- 使用例:
# 必須フラグ
tldr -v, --version # バージョン表示
tldr -p, --platform # プラットフォーム指定
tldr -u, --update # キャッシュ更新
tldr -l, --language # 言語指定
tldr -L, --list # 全ページ一覧
# ページ解決アルゴリズム
# 1. スペースをダッシュに変換(git status → git-status)
# 2. 小文字に変換
# 3. プラットフォーム優先順位で検索
設定・カスタマイズ
環境変数
# 言語設定(優先順位順)
TLDR_LANGUAGE=ja # tldr固有
LANGUAGE=ja_JP.UTF-8 # POSIX標準
LANG=ja_JP.UTF-8 # システムロケール
# カスタムページディレクトリ
TLDR_PAGES_PATH=/custom/path
拡張・プラグイン開発
- カスタムクライアントの実装
- エディタ統合(VS Code、Vim等)
- ボット統合(Discord、Slack等)
- Web UIの独自実装
パフォーマンス・スケーラビリティ
パフォーマンス特性
- ページあたり最大8例(読みやすさとパフォーマンスのバランス)
- 軽量Markdownフォーマット(高速パース)
- インデックスファイル(index.json)による高速検索
- ZIPアーカイブによる効率的な配布
- 言語別アーカイブ(ダウンロードサイズ削減)
スケーラビリティ
- 6,000以上のページを管理
- 38言語への対応
- 1,000人以上のコントリビューター
- 月間数百万のダウンロード
- CDN経由の配布(GitHub Releases)
制限事項
- ページあたり8例まで
- 簡潔さ重視(詳細な説明は含まない)
- プレースホルダー記法の制約
- 画像やダイアグラムは使用不可
評価・所感
技術的評価
強み
- シンプルで統一されたフォーマット
- 優れたコミュニティガバナンス
- 多言語・マルチプラットフォーム対応
- 豊富なクライアント選択肢
- 厳格な品質管理
- オフライン対応
改善の余地
- インタラクティブな例の欠如
- 画像やダイアグラムのサポート不足
- コマンド間の相互参照機能
- バージョン固有の情報管理
向いている用途
- コマンドの基本的な使い方の確認
- よく使うオプションのクイックリファレンス
- 新しいツールの学習
- コマンドライン初心者の学習支援
- オフライン環境でのドキュメント参照
- 多言語環境でのチーム開発
向いていない用途
- 詳細な技術仕様の確認
- 全オプションの網羅的な説明
- トラブルシューティング
- 高度なユースケース
- プログラミングAPIリファレンス
総評
tldr-pagesは、「シンプルさ」と「実用性」を追求したドキュメントプロジェクトの成功例です。従来のmanページが抱える「情報過多」「実例不足」という問題を、コミュニティの力で解決しています。統一されたフォーマット、厳格な品質管理、多様なアクセス方法により、世界中の開発者に愛用されています。特に、初心者にとってはコマンドラインツールへの入門として、経験者にとってはクイックリファレンスとして価値があります。プロジェクトの持続可能性も高く、1,000人を超えるコントリビューターと明確なガバナンスモデルにより、長期的な発展が期待できます。「Too Long; Didn't Read」という名前が示すとおり、必要な情報に素早くアクセスできることの価値を証明したプロジェクトと言えるでしょう。