mdview プログラム仕様

Markdown Viewerアプリケーション

概要: このモジュールは、MarkdownファイルをHTML形式で表示するためのシンプルなTkinterアプリケーションを提供します。 画像の動的なリサイズ、フォントサイズの調整、INIファイルによる設定の永続化などの機能を備えています。

詳細説明: コマンドライン引数でファイルパスを指定して直接ファイルを開くことも、 アプリケーション起動後にメニューからファイルを開くことも可能です。 画像は指定された幅に自動的にリサイズされ、一時ディレクトリに保存されます。 終了時には一時ディレクトリがクリーンアップされ、現在のウィンドウの状態や設定がINIファイルに保存されます。

関連リンク: mdview.py 技術ドキュメント

class Viewer.mdview.MarkdownViewerApp(master, md_filename=None, image_width=None, font_size=None)[ソース]

ベースクラス: object

MarkdownファイルをHTML形式で表示するTkinterアプリケーション

INIファイルからの設定読み込み、画像の動的なリサイズ、フォントサイズ調整などの機能を提供します。 アプリケーションのウィンドウ作成、メニューバーの構築、ファイルの読み込みと表示を行います。

create_menu()[ソース]

メニューバーを作成し、アプリケーションに設定する

「ファイル」メニュー(開く、更新、終了)と「設定」メニュー(画像幅設定、フォントサイズ設定)を追加します。

戻り値:

(None)

load_markdown_file(file_path)[ソース]

指定されたMarkdownファイルを読み込み、HTMLに変換して表示する

ファイルを読み込み、`process_images`で画像を処理した後、 MarkdownをHTMLに変換します。見出しタグには動的にフォントサイズを適用し、 HTML全体を基準フォントサイズで表示します。

パラメータ:

file_path -- (str) 読み込むMarkdownファイルのパス。

戻り値:

(None)

load_settings()[ソース]

INIファイルからアプリケーション設定を読み込む

`mdview.ini`ファイルからウィンドウのジオメトリ、最終開いたディレクトリ、 画像の表示幅、基準フォントサイズを読み込み、インスタンス変数に設定します。 設定が見つからない場合はデフォルト値を使用します。

戻り値:

(None)

on_closing()[ソース]

アプリケーション終了時の処理を実行する

現在のウィンドウのジオメトリ、最後に開いたディレクトリ、画像幅、フォントサイズをINIファイルに保存します。 また、一時画像を保存したディレクトリを削除してからアプリケーションを終了します。

戻り値:

(None)

open_file()[ソース]

ファイル選択ダイアログを開き、Markdownファイルを選択して表示する

ユーザーにファイルダイアログを通してMarkdownファイルを選択させ、 選択されたファイルを`load_markdown_file`メソッドで読み込み、表示を更新します。

戻り値:

(None)

open_font_size_dialog()[ソース]

基準フォントサイズを設定するためのダイアログを開く

ユーザーから新しい基準フォントサイズを整数値で入力させます。 入力が有効な場合は`font_size`を更新し、Markdownファイルが 開かれている場合は再読み込みして変更を適用します。 ファイルが開かれていない場合は初期表示テキストのフォントサイズを変更します。

戻り値:

(None)

open_image_width_dialog()[ソース]

画像表示幅を設定するためのダイアログを開く

ユーザーから新しい画像表示幅を整数値で入力させます。 入力が有効な場合は`image_width`を更新し、Markdownファイルが 開かれている場合は再読み込みして変更を適用します。

戻り値:

(None)

process_images(markdown_text, base_dir)[ソース]

Markdownテキスト内の画像を処理し、必要に応じてリサイズして一時ファイルに保存する

Markdownの画像構文(![alt](path))を解析し、指定された`image_width`を超える画像を 一時ディレクトリにリサイズして保存します。Markdown内の画像パスを一時ファイルのパスに書き換え、 元の画像のアスペクト比を維持します。

パラメータ:
  • markdown_text -- (str) 処理対象のMarkdownテキスト。

  • base_dir -- (str) Markdownファイルが存在するディレクトリのパス。相対パス解決の基準となる。

戻り値:

(str) 処理されたMarkdownテキスト。

reload_file()[ソース]

現在開いているMarkdownファイルを再読み込みする

`md_filename`が設定されている場合、そのファイルを再度読み込み表示を更新します。

戻り値:

(None)

replace_heading_size(match)[ソース]

見出しタグのサイズを基準フォントサイズに基づいて計算し、スタイルを適用する

正規表現のマッチオブジェクトから見出しレベル(h1, h2など)と内容を取得し、 基準フォントサイズに応じた計算で新たなフォントサイズを設定したHTMLタグを返します。

パラメータ:

match -- (re.Match) 見出しタグにマッチした正規表現オブジェクト。

戻り値:

(str) スタイルが適用された見出しタグのHTML文字列。

Viewer.mdview.parse_arguments()[ソース]

コマンドライン引数を解析する

`argparse`モジュールを使用して、Markdownファイルパス、画像幅、 基準フォントサイズなどのコマンドライン引数を解析します。

戻り値:

(argparse.Namespace) 解析された引数を含むオブジェクト。

Viewer.mdview.read_ini_file(filename)[ソース]

INIファイルから設定を読み込む

INIファイルからキーと値のペアを読み込み、辞書として返します。 ファイルが存在しない場合は空の辞書を返します。

パラメータ:

filename -- (str) 読み込むINIファイルのパス。

戻り値:

(dict) 読み込まれた設定の辞書。

Viewer.mdview.write_ini_file(filename, settings)[ソース]

設定をINIファイルに書き込む

指定された辞書の内容をINIファイル形式で書き込みます。 各キーと値は「キー=値」の形式で1行に書き出されます。

パラメータ:
  • filename -- (str) 書き込むINIファイルのパス。

  • settings -- (dict) 書き込む設定を含む辞書。

戻り値:

(None)