仕様書

## 1. 概要
このプログラムは、Microsoft PowerPointのプレゼンテーションファイル(.pptx)をマークダウン形式のテキストファイル(.md)に変換するツールです。選択したPowerPointファイルを解析し、その内容をマークダウン形式で出力します。

## 2. 主な機能
### 1. PowerPointファイルの選択
   * Tkinterを使用したグラフィカルユーザーインターフェース(GUI)を通じて、ファイルを選択できます。
   * 変換対象は.pptxファイルのみです。

### 2. スライドの変換
   * 各スライドを個別のセクションとして処理します。
   * マークダウンでは、各スライドの番号はレベル1の見出しとして表示されます(例:`# Slide 1`、`# Slide 2`、`# Slide 3`)。

### 3. スライドタイトルの処理
   * マークダウンでは、スライドタイトルはレベル2の見出しとして表示されます(例:`## スライドタイトル`)。

### 4. テキストボックスの処理
   * テキストボックス内のテキストが箇条書き、番号付きリスト、レベル3の見出し、またはその他の形式であるかを判断します。
   * 箇条書きは、マークダウンでハイフン(`-`)と字下げを使用して表します。
     - 例:
       ```
       - りんご
       - バナナ
       ```
   * ネストされた箇条書きは、さらに字下げを追加します。
     - 例:
       ```
       - 果物
         - りんご
         - バナナ
       ```
   * 番号付きリストは、マークダウンで数字と字下げを使用して表します。
     - 例:
       ```
       1. 果物
          1. りんご
          2. バナナ
       ```
   * 単純なテキストや見出しとして識別されないテキストボックスの内容は、通常の段落として出力します。

### 5. 強調とリンクの処理
   * テキストボックス内の太字やアンダーラインは、マークダウンの強調表現として二重アスタリスク(`**`)を使用します。
   * URLを検出し、マークダウンのリンク形式に変換します(例:`[リンクテキスト](URL)`)。

### 6. 出力
   * 変換したマークダウン内容は新しいファイルとして保存されます。
   * 元のファイル名を基に、拡張子を.mdに変更して保存します。

## 3. 使用方法
1. プログラムを実行します。
2. ファイル選択ダイアログが表示され、変換したいPowerPointファイル(.pptx)を選択します。
3. 選択が完了すると、変換処理が開始されます。
4. 変換が完了すると、元のファイルと同じディレクトリに、同じ名前で拡張子が.mdのファイルが作成されます。
5. 処理の結果(成功または失敗)がコンソールに表示されます。

## 4. 出力形式
* 各スライドは`# Slide X`(Xはスライド番号)で始まります。
* スライドのタイトルは`## タイトル内容`として記録されます。
* テキストボックスの内容は、通常のテキスト、箇条書き、番号付きリスト、または見出しとして変換されます。

## 5. エラー処理
* ファイルが選択されなかった場合、プログラムは終了します。
* 指定されたファイルが存在しない場合、エラーメッセージを表示します。
* 変換処理中にエラーが発生した場合、エラーの内容をコンソールに表示します。

## 6. 注意事項
* 複雑なレイアウト、アニメーション、その他の高度な機能は保持されません。

このプログラムを使用することで、PowerPointプレゼンテーションの内容をマークダウン形式に変換し、テキストベースの文書として再利用できます。