MD ファイル形式とは?
拡張子 .md を持つファイルには、Markdown言語を使用して作成されたプレーンテキストドキュメントが含まれています。Markdownには多くの「方言」が存在しますが、すべて同じ一連の慣習と類似した構文を使用しています。Markdownタグは、次のようなテキスト整形要素を定義します:
- 太字および斜体属性
- ヘッダー(見出し)
- テーブル形式
- リスト
- 引用ブロック
- 画像および HTML コードの埋め込み
.md ファイルは .MARKDOWN サフィックスを使用することもできます。.md ファイルは RTF や PDF 形式に簡単に変換できますが、もともとMarkdownは主にHTMLドキュメント(通常はヘルプファイル)を生成するために使用されていました。.md はプレーンテキストファイルであるため、任意のテキストエディタで開いて編集し、整形されたドキュメントを作成できます。Markdownはシンプルで読みやすい構文を使用しています。
Markdownは2004年にJohn Gruberによって、Aaron Swartzの協力を得て開発されました。この言語の設計者の主な目標は、ドキュメントの編集や作成において、例えばHTMLとは異なり、ユーザーにシンプルで直感的なマークアップシステムを提供することでした。.md ファイルをHTMLドキュメントに変換する最初の .md ファイルインタープリタはPerlで書かれました。それ以来、Markdown言語の多くのバリエーションが開発されてきました。2016年に RFC 7763 が text/markdown MIMEタイプを登録し、RFC 7764 が CommonMark、GFM、Markdown Extraなどを含む主要なMarkdownバリアントをカタログ化しました。
セキュリティと安全性
リスク: LOW.md ファイルはプレーンテキストであり、コードを実行することはできないため、開いても安全です。唯一の注意点として、Markdownは生のHTMLを許可しているため、レンダリングされたプレビューにHTML/JavaScriptや外部に通信する画像が含まれる可能性がありますが、信頼できるレンダラー(GitHub、VS Code)はこれを除去(サニタイズ)します。常に、未知のソースからのドキュメント内にあるリンクをクリックする前には注意してください。
形式の詳細
概要MD ファイルを開くプログラム
技術的詳細
詳細仕様| MIMEタイプ | text/markdown(RFC 7763、2016年により登録) |
| 文字エンコーディング | UTF-8 プレーンテキスト。バイナリヘッダーやマジックバイトはなく、.md 拡張子と慣習的な構文によって識別されます |
| 構文スタイル | 軽量マークアップ - ソースはパーサーやレンダラーがなくても人間が読める形式です |
| 主な出力ターゲット | Markdownプロセッサによって生成されるHTML。二次的なターゲットには、Pandocなどのツールを介したPDFやEPUBが含まれます |
| 一般的な方言 | CommonMark、GitHub Flavored Markdown (GFM)、Markdown Extra、MultiMarkdown、R Markdown (.Rmd) |
| フロントマターのサポート | --- フェンスで囲まれた YAML フロントマターは、静的サイトジェネレーター(Jekyll、Hugo、Eleventy)でページのメタデータを保存するために広く使用されています |
| 見出し構文 | ATXスタイル(# H1、## H2)とSetextスタイル(= または - によるアンダーライン)の両方が基本仕様で有効です |
| リンク構文 | インライン [テキスト](url)、参照スタイル [テキスト][id]、および自動リンク <url> の3つの形式すべてがコア仕様の一部です |
| コードブロック構文 | フェンス(3つのバックティックまたはチルダ)または4つのスペースのインデント。開始フェンスの後の言語識別子により構文ハイライトが有効になります |
| テーブルのサポート | 2004年のオリジナル仕様には存在しませんでした。GFM拡張として導入され、後に CommonMark のオプション拡張となりました |
| 画像構文 |  - URL参照のみを保存します。画像自体は .md ファイルに埋め込まれません |
| 打ち消し線 | ~~テキスト~~ - GFM拡張であり、基本のMarkdown仕様にはありません |
| 数式 / LaTeX サポート | $インライン$ および $$ブロック$$ 構文は Obsidian、Jupyter、VS Code 拡張機能で認識されますが、コア仕様外です |
| 改行ルール | 空行がブロック要素を区切ります。強制改行には、行末に2つのスペースを入れるか、改行の前に \ を置く必要があります(CommonMark) |
| 拡張子の競合 | .md は時折、メタデータやマシン記述ツールによって使用されることがありますが、ファイルの内容とコンテキストでMarkdownの使用を区別できます |
| リリース日 | 2004 (Markdown by John Gruber); CommonMark spec 2014; GitHub Flavored Markdown 2017 |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | spec.commonmark.org |