md2html プログラム仕様

md2html.py

Markdownファイル(LaTeX数式を含む)をスタンドアロンのHTMLファイルに変換します。

このスクリプトは、指定されたMarkdownファイルを読み込み、Python-Markdownライブラリと pymdownx.arithmatex拡張機能を使用してHTMLに変換します。 生成されたHTMLファイルには、MathJax (CDN) スクリプトと、デフォルトまたはユーザー指定のCSSが`<head>`セクションに挿入されます。 これにより、数式が正しくレンダリングされ、基本的なスタイルが適用されたHTMLドキュメントが生成されます。 デフォルトのCSSはダークモードに対応しており、`--css-file`オプションで独自のCSSファイルを指定するか、 `--no-css`オプションでCSSの埋め込みを無効にすることができます。

Requirements:

pip install markdown pymdown-extensions

Usage:

python md2html.py input.md -o output.html

# Options: python md2html.py input.md -o output.html --title "My Notes" --lang ja --mathjax-url https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js --css-file style.css

License: MIT Author: ChatGPT

md2html.py 技術ドキュメント

ai.md2html.build_html(md_text: str, title: str, lang: str, mathjax_url: str, css_text: str | None) str[ソース]

MarkdownテキストをHTMLコンテンツに変換し、MathJaxスクリプトとCSSを組み込みます。

python-markdown`ライブラリと`pymdownx.arithmatex`拡張機能を使用してMarkdownをHTMLボディに変換します。 これにより、LaTeX数式が適切に処理されます。 `extra, toc, sane_lists, attr_list, pymdownx.arithmatex, `codehilite`などの 拡張機能が有効になっています。 指定されたタイトル、言語、MathJax URL、およびCSSスタイルを使用して完全なHTMLドキュメントを構築します。

パラメータ:
  • md_text -- str: HTMLに変換するMarkdownテキスト。

  • title -- str: HTMLドキュメントの`<title>`タグに設定するタイトル。

  • lang -- str: HTMLドキュメントの`lang`属性に設定する言語コード(例: "ja", "en")。

  • mathjax_url -- str: MathJaxのCDNスクリプトのURL。

  • css_text -- Optional[str]: HTMLドキュメントに埋め込むCSSスタイルテキスト。`None`の場合、CSSは埋め込まれません。

戻り値:

str: 生成された完全なHTMLドキュメント文字列。

ai.md2html.derive_title(md_text: str, fallback: str) str[ソース]

MarkdownテキストからHTMLのタイトルを生成します。

Markdownテキストの内容に基づいて、以下の優先順位でタイトルを抽出します。 1. MarkdownのYAMLフロントマターにある`title:フィールドを検索します。 2. 見つからない場合、最初のATXヘディング(`# H1)を検索します。 3. どちらも見つからない場合、提供されたフォールバック文字列を使用します。

パラメータ:
  • md_text -- str: 入力Markdownテキスト。

  • fallback -- str: タイトルが見つからなかった場合にデフォルトとして使用される文字列。

戻り値:

str: 抽出または生成されたHTMLタイトル。

ai.md2html.main()[ソース]

コマンドライン引数を解析し、指定されたMarkdownファイルをHTMLに変換して出力します。

`argparse`を使用して入力Markdownファイル、出力HTMLファイル、タイトル、言語、MathJax URL、 CSSファイルなどのオプションを処理します。 入力ファイルが存在しない場合はエラーで終了します。 タイトルが指定されない場合は、`derive_title`関数を使用してMarkdownの内容からタイトルを自動生成します。 CSSオプションに基づいて、デフォルトのCSSを使用するか、外部CSSファイルを読み込むか、 またはCSSを埋め込まないかを決定します。 `build_html`関数を呼び出してHTMLコンテンツを生成し、指定された出力ファイルに書き込みます。

戻り値:

None: 成功した場合はメッセージを出力し、エラーの場合は`SystemExit`で終了します。