3ステップでREADME.mdをPDFに変換
Markdownファイルをアップロードするか内容を貼り付け、SolConverterに管理されたレイアウトでレンダリングさせ、ドキュメントをダウンロードすることで、READMEをPDFに変換します。
- READMEをアップロードします。 デバイスから
README.mdまたはその他の.mdファイルを選択します。 - PDFを作成します。 SolConverterが管理されたPDFレイアウトを適用し、自動的に変換を開始します。
- プレビューとダウンロード。 変換を開始し、PDFを確認し、完成したファイルをダウンロードします。
最終的なPDFを共有する前に、バッジ、画像、およびリポジトリ相対リンクを確認してください。リポジトリのREADMEは、GitHubや元のリポジトリの外部では動作が異なるアセットやURLに依存している場合があります。
README.mdファイルとは?
README.mdファイルは、プロジェクト、リポジトリ、パッケージ、アプリケーション、データセット、またはワークフローについて説明するMarkdownドキュメントです。
READMEファイルには一般的に以下が含まれます:
- プロジェクトのタイトルと概要;
- インストール手順;
- 使用例;
- コマンドラインのスニペット;
- 設定例;
- 機能リスト;
- タスクリスト;
- テーブル;
- スクリーンショット;
- バッジ;
- コントリビューション(貢献)手順;
- ライセンスまたはサポート情報;
- ドキュメントやリリースへのリンク。
.md拡張子は、ファイルがMarkdownで記述されていることを意味します。これをPDFに変換すると、編集可能なバージョンとしてのMarkdownソースを保持しながら、固定レイアウトのドキュメントを作成できます。
なぜREADMEをPDFに変換するのか?
PDFは、READMEを元のリポジトリの外に持ち出す必要がある場合や、ページベースのドキュメントとして確認する必要がある場合に便利です。
一般的な理由には以下があります:
- クライアントや関係者とプロジェクト文書を共有する;
- 電子メールやチケットに技術的な概要を添付する;
- レビューや承認のためにドキュメントを提出する;
- 特定時点におけるリポジトリのオフラインスナップショットを作成する;
- セットアップ手順や運用ランブックを印刷する;
- リリースドキュメントをアーカイブする;
- GitHubを使用しない読者にREADMEを配布する;
- 長いコード、数式、ダイアグラム、およびテーブルを固定レイアウトで確認する。
オリジナルのREADMEは、メンテナンス可能なソースとして維持する必要があります。READMEが変更された後にPDFを再生成してください。
PDFでサポートされているREADMEフォーマット
SolConverterは、READMEファイルでよく使用されるMarkdown要素をサポートしています。
これらには以下が含まれます:
- ATXおよびSetextの見出し;
- 太字、斜体、および打ち消し線;
- 番号付きリストおよび箇条書きリスト;
- 入れ子になったリスト;
- GFMタスクリスト;
- 引用;
- Markdownリンクおよび自動リンク;
- インラインコード;
- バックティックまたはチルダを使用したフェンス付きコードブロック;
- コードフェンスの言語ラベル;
- 配置付きのGFMテーブル;
- 安全な生のHTMLテーブル;
detailsおよびsummaryセクション;kbd、sub、sup、figure、およびfigcaption;- 見出しアンカー;
- ソースの先頭にあるYAMLフロントマター。
ドル記号やLaTeXのようなデリミタを含むコードフェンスは、数式として解釈されることなくコードとして維持されます。
READMEコード例の保持
READMEファイルには、インストールコマンド、設定ファイル、APIの例、環境変数、およびソースコードのスニペットが含まれていることがよくあります。
SolConverterは、コードフェンスの言語が認識されると、Highlight.jsを使用して構文ハイライトを適用します。認識されない言語はオリジナルのソースを安全に保持します。
コードブロックは専用の等幅フォントと、周囲の説明から分離する印刷スタイルを使用します。コードは、右書き(RTL)のREADMEであっても左書き(LTR)のまま維持されます。
技術的なREADME内の数式のレンダリング
技術的なREADMEには、数式、行列、科学的表記、確率の式、または化学式が含まれる場合があります。
SolConverterは、一般的なMarkdown数式デリミタ、AMS数式環境、Presentation MathML、基本的なContent MathML、および\ce{...}で記述された化学式に対するMathJax SVG出力をサポートしています。
サポートされている数式には以下が含まれます:
$...$および\(...\)インライン式;$$...$$および\[...\]ディスプレイ式;- 数式および整列(align)環境;
- 分数、根、総和、積分、極限、および行列;
- ドキュメントスコープのマクロ;
- 改行が必要な長い加算式。
数式はPDF内で鮮明さを保つためにSVGとしてレンダリングされます。無効な数式は、READMEの残りの部分の処理を自動的に停止させることなく、ローカルにフォールバックできます。
MermaidおよびZenUMLダイアグラムのレンダリング
READMEファイルでは、アーキテクチャ、シーケンス、状態、ワークフロー、またはコンポーネント間の関係を説明するためにダイアグラムが頻繁に使用されます。
サポートされているMermaidフェンスブロックは、ローカルでSVGとしてレンダリングされます。ZenUMLは、バンドルされたMermaid統合を介してサポートされます。ダイアグラムは使用可能なページ幅に制限され、独立して処理されます。
1つのダイアグラムが無効な場合、変換ツールはソースを含むフォールバックを挿入し、残りのセクションのレンダリングを続行します。
PlantUML、Graphviz、D2、WaveDrom、BPMN、Nomnoml、および完全なTikZは現在サポートされておらず、このページで紹介されるべきではありません。
READMEの画像やバッジはどうなりますか?
変換ツールは、公開されているHTTPおよびHTTPS画像、ならびにPNG、GIF、JPEG、WebP、およびSVG形式の有効なbase64データ画像をサポートしています。
画像はページに収まるようにスケーリングされ、アスペクト比が維持されます。図、キャプション、代替テキスト(alt)、タイトル、安全な寸法、および配置を保持できます。
しかし、多くのリポジトリREADMEでは以下のような相対パスが使用されています:
./images/screenshot.png
docs/architecture.svg
../assets/demo.gif
現在のアップロードワークフローはリポジトリフォルダをパッケージ化せず、それらの相対アセットを自動的に解決することもありません。PDFを作成する前に、公開画像URLまたはサポートされているbase64データ画像に変換してください。
バッジは通常、公開画像URLを使用しており、画像ホストがパブリックにアクセス可能であればレンダリングされる場合があります。バッジや画像が読み込めない場合、SolConverterはローカルのプレースホルダーを挿入して変換を続行します。
リポジトリの相対リンクの確認
README内のMarkdownリンクには、絶対リンク、リポジトリ相対リンク、またはページ断片(フラグメント)リンクがあります。
絶対HTTPおよびHTTPSリンクは、リポジトリの外部でも意味を持ちます。./docs/setup.mdや../CONTRIBUTING.mdのような相対リンクは、READMEがスタンドアロンのPDFになった後は、有用な宛先を指さなくなる可能性があります。
PDFを共有する前に:
- 重要な相対リンクを公開絶対URLに置き換える;
- リンクされたファイルのみに依存するのではなく、重要な指示を書き出す;
- レンダリング後に行き先の見出しリンクを確認する;
- リポジトリのナビゲーションがなくてもドキュメントの意味が通じるか確認する;
- PDFをアーカイブとして利用する場合は、バージョンやリリース情報を含める。
GitHubのREADMEをPDFに変換
GitHubのREADMEもMarkdownファイルですが、GitHubはアップロードされたファイル自体には含まれていないリポジトリのコンテキストを追加する場合があります。
PDFは、テーブル、タスクリスト、フェンス付きコード、自動リンク、見出しなど、サポートされているGFM構造を保持できます。また、サポートされているMathJax式やMermaidダイアグラムもレンダリングできます。
変換ツールはすべてのGitHubインターフェース要素を再現するわけではありません。リポジトリのタブ、問題(issue)数、リリースウィジェット、ブランチセレクタ、動的に生成されるカード、およびその他のGitHubページの装飾(クローム)は、Markdownソースの一部ではありません。
最もきれいなスタンドアロンのPDFにするために、READMEのドキュメント自体にプロジェクトのアイデンティティ、バージョンのコンテキスト、および重要なリンクが含まれていることを確認してください。
ソフトウェアドキュメント用のREADME to PDF
READMEのPDFは、読者が以下を必要とする際の簡潔な技術的引き継ぎとして機能します:
- プロジェクトの概要;
- インストールおよびセットアップ手順;
- コマンドの例;
- 設定要件;
- アーキテクチャダイアグラム;
- APIの例;
- 運用上の注意事項;
- トラブルシューティング手順;
- 貢献またはサポートの詳細。
大規模なドキュメントセットの場合、すべてのガイドを1つのファイルに詰め込むのではなく、READMEをエントリドキュメントとして扱ってください。非常に長いREADMEから生成されたPDFも有用ですが、ドキュメントを分割した方がメンテナンスやナビゲーションが容易になる場合があります。
リリースアーカイブ用のREADME to PDF
リポジトリは時間の経過とともに変化します。READMEをPDFに変換することで、リリース、納品、レビュー、またはマイルストーンに関連付けられた読みやすいスナップショットを作成できます。
アーカイブする前に:
- プロジェクトまたはパッケージのバージョンを追加する;
- 関連する日付またはリリース識別子を含める;
- コマンドおよび設定例を検証する;
- 一時的なリンクを置き換える;
- 画像、ダイアグラム、および数式を確認する;
- 最終的なPDFを生成して検査する;
- リリース記録の横にPDFを保存する。
生成されたPDFはスナップショットであり、ソース管理されたREADMEの代わりになるものではありません。
READMEコンテンツの安全なレンダリング
READMEファイルには、生のHTML、リモートの画像URL、および不適切な形式のブロックが含まれている可能性があります。
SolConverterは、レンダリングされたHTMLをサニタイズし、スクリプトやイベントハンドラを削除し、安全でないURLを拒否し、生のHTMLを許可リスト(アローリスト)に制限し、テーブルのスパンを制限し、制限的なコンテンツセキュリティポリシー(CSP)を適用し、許可された画像ポリシーから外れるブラウザリクエストをブロックします。
ローカルファイル、localhost宛先、プライベートIPリテラル、javascript: URL、およびサポートされていないリソーススキームはブロックされます。無効な画像、数式、およびダイアグラムは、残りのREADMEのレンダリングを続行できるように、可能な限りローカルで処理されます。
READMEファイル用PDF設定
SolConverterは、READMEファイルに一貫したドキュメントレイアウトを適用します。
現在のウェブフォームは以下を使用します:
- A4ページサイズ;
- ポートレート(縦向き);
- 読みやすい出力のための管理された余白;
current / totalページ番号;- READMEファイル名に基づく出力タイトル;
- 背景の印刷。
ポートレートレイアウトは一般的な閲覧用に設計されています。ダウンロードする前に、必ず幅の広いテーブルやコードをプレビューしてください。
README to PDFか、メインのMarkdown to PDF変換ツールか?
ソースがプロジェクトのREADMEであり、コードフェンス、GFM構造、バッジ、リポジトリ相対画像、およびリポジトリリンクについてのガイダンスが必要な場合は、このREADMEに焦点を当てたページを使用してください。
レポート、数学文書、技術メモ、提案書、多言語ドキュメント、および一般的な.mdファイルには、メインのMarkdown PDF 変換ツールを使用してください。
どちらのページも同じコア変換機能を使用していますが、異なるユーザータスクに対応し、異なる準備ガイダンスを提供しています。
よくある質問
README.mdをPDFに変換できますか?
はい。README.mdファイルをアップロードし、利用可能なPDF設定を選択し、変換を開始し、結果をプレビューして、生成されたPDFをダウンロードします。
GitHub Flavored Markdownをサポートしていますか?
レンダラーは、タスクリスト、フェンス付きコード、自動リンク、打ち消し線、テーブルなど、READMEファイルでよく使用されるGFM構造をサポートしています。
コードブロックはフォーマットを保持しますか?
はい。フェンス付きコードブロックは等幅スタイルを使用し、言語ラベルが認識されると構文ハイライトが適用されます。
READMEにMathJaxの数式を含めることはできますか?
はい。変換ツールは、一般的なインラインおよびディスプレイ数式デリミタ、複数の数式環境、MathML、化学式、およびドキュメントスコープのマクロをサポートしています。
READMEからMermaidダイアグラムをレンダリングできますか?
はい。サポートされているMermaidフェンスブロックはローカルでSVGとしてレンダリングされます。ZenUMLもサポートされています。
GitHubのバッジはPDFに表示されますか?
バッジは、公開されているアクセス可能なサポート対象の画像URLを使用している場合にレンダリングできます。バッジのホストがブロックされているか、利用不可であるか、または画像ポリシーの範囲外である場合、バッジはプレースホルダーに置き換えられる場合があります。
リポジトリの相対パス画像は機能しますか?
自動的には機能しません。アップロードにはリポジトリのアセットフォルダが含まれません。変換を行う前に、重要な相対画像を公開URLまたはサポートされているbase64データ画像に変更してください。
他のリポジトリファイルへのリンクは機能しますか?
相対的なリポジトリリンクは、スタンドアロンのPDFでは有用ではない場合があります。重要なリンクを公開絶対URLに置き換えるか、必要な情報をREADMEに直接含めてください。
PDFはGitHubのREADMEページとまったく同じように見えますか?
いいえ。変換ツールはGitHubインターフェース全体をコピーするのではなく、Markdownドキュメントをレンダリングします。サポートされているMarkdown構造はPDF出力用にスタイル設定されますが、リポジトリの装飾(クローム)や動的なGitHubコンポーネントは含まれません。
カスタムCSSを追加できますか?
現在のところ、ユーザーが提供する任意のCSSはサポートされていません。変換ツールは、管理されたドキュメントスタイルおよび印刷スタイルを使用します。
PDFの目次は作成されますか?
自動目次生成およびPDFブックマークは現在サポートされていません。手動で記述された目次セクションは、通常のMarkdownコンテンツとして表示されます。
ダイアグラム、数式、または画像が破損している場合はどうなりますか?
変換ツールはサポートされているエラーの種類を隔離し、ローカルフォールバックを挿入して、破損したブロックに続く有効なコンテンツのレンダリングを続行できます。
アップロードされたREADMEは永久に保存されますか?
未処理のアップロードは15分後に期限切れになります。変換が成功すると、出力が確認された後にソースが削除されます。完成したPDFは2時間後に期限切れになります。失敗した入力は、元の15分間のアップロードウィンドウ内で期限切れになります。
READMEのファイルサイズ制限はありますか?
変換ツールによるファイルサイズ制限は設定されていません。非常に大きなREADMEファイルは、ブラウザ、デバイス、およびネットワークの状況によって、アップロード、処理、プレビュー、およびダウンロードに時間がかかる場合があります。
README.mdファイルをPDFに変換
READMEをアップロードし、レンダリングされたドキュメントを確認して、リポジトリの外部で共有しやすいPDFをダウンロードします。
READMEをPDFに変換