このプロジェクトの主な変更履歴をまとめます。
形式は Keep a Changelog を参考にし、バージョニングは SemVer に準拠します。
- コードフェンスの終端判定を修正
- 開始フェンスの記号種別と本数を保持し、閉じフェンスを「同一記号」「開始時以上の長さ」「後続は空白のみ」の条件で判定するよう改善
- 4連以上のバッククォートで囲まれたコードブロック内に含まれる3連バッククォートを、終端ではなく本文として正しく出力するよう修正
- コードブロック途中で終端誤判定が発生した場合に、背景色や罫線が一部の行へ適用されない問題を修正
- コードブロック全体に対して背景色・罫線が一貫して適用されるよう改善
- 既存の通常 Markdown 変換処理との後方互換性を維持
- 破壊的変更なし
- 閉じていない強調記法(
*,_,**,__)が、行内で不正に斜体・太字として解釈される場合がある不具合を修正しました。 - 次行継続を伴わない未閉じ強調記号が、文字として出力されず装飾状態だけが残ることがある問題を修正しました。
a*b,*c,_f,g**h,**i,__lのような入力が、CommonMark に沿ってリテラル文字列として出力されるよう修正しました。
- 未解決の強調開始記号を次行継続として扱うのは、行末のハード改行または
<br>により継続が明示される場合のみに限定しました。
- 改行をまたぐ強調記法の書式継続を修正しました。
**bold***italic*__bold___italic_
- 複数行にまたがる強調記法が、各行で通常フォントとして出力されてしまう問題を修正しました。
- 以下のような Markdown で、各行の文字列部分に対して意図した太字・斜体が適用されるようにしました。
## title
**a
b**- 行末のハード改行を含むケースでも、開いている強調状態を次行へ適切に引き継ぐように改善しました。
- 行末
<br>を含むケースでも、強調記法の継続状態が正しく維持されるようにしました。
- 箇条書きの継続行が同一セルに追記される場合があった不具合を修正。
- 継続行は縦方向の新規行として出力し、別セルに分かれるよう変更。
## title
* test
text
text修正前:
- C4:
text text
修正後:
- C4:
text - C5:
text
*/_の強調判定を、逐次トグル方式から CommonMark 寄りの delimiter run 解決方式へ変更- delimiter run 判定で Unicode の whitespace / punctuation を考慮
_の強調について追加条件(誤検出抑止)を反映- delimiter run の rule of 3 を反映
***/___などの複合 run(太字+斜体)に対応
<br>による縦展開(改行分割)をまたぐ際、開いている強調だけを閉じて次行で再オープンするように修正(意図しない装飾崩れの抑止)
- 箇条書き
-(先頭が-+ 空白の行)のレンダリングに対応(既存の*と同等の扱い) - 箇条書き
+(先頭が++ 空白の行)のレンダリングに対応(既存の*/-と同等の扱い) - インライン強調の対応を拡張し、斜体
*...*/_..._、太字__...__、太字+斜体の組み合わせをサポート - 打ち消し線
~~...~~のインライン装飾に対応 - 行末の「半角スペース2個以上」または「バックスラッシュ
\」によるハード改行に対応
- パッケージ構成を整理(例:
md2excel.app/md2excel.config/md2excel.excel/md2excel.markdown/md2excel.render) - エントリポイント(main)の完全修飾クラス名が変更
md2excel.MarkdownToExcel→md2excel.app.MarkdownToExcel
- パッケージ分割に伴い、外部参照が必要なクラス/メンバを
public化(例:MdStyleのスタイル、RenderContext、MarkdownRenderer.renderなど) - 設定の読み込み方式を変更:常にダイアログ(GUI)で設定するように変更(CLI 引数は使用しない)
- 番号付きリスト判定を拡張し、
1.に加えて1)形式も認識するように変更 - 見出し判定を拡張し、ATX 見出しの行末の閉じ
#を取り除いて見出しテキストとして扱うように変更(例:## title ##) - 水平線判定を拡張し、
---に加えて***/___/- - -/* * *など、空白・タブを含む 3 個以上の同一記号も水平線として認識するように変更 - フェンスコードブロック判定を拡張し、バッククォートフェンスに加えてチルダフェンス(
~~~)も認識するように変更 - フェンスコードブロックの対応範囲を整理し、開始フェンス後ろの info string を許容する実装であることを明記
- インラインコード判定を拡張し、複数長のバッククォート列を使ったコードスパンを解釈するように変更
<br>分割時のインライン装飾の継続処理を拡張し、斜体・太字斜体・打ち消し線も保持するように変更- テーブル判定を拡張し、先頭 / 末尾の
|がない行でも、インラインコード外に|が 1 つ以上あればテーブル行として扱うように変更 - テーブルの行分割処理を変更し、先頭 / 末尾の
|は存在する場合のみ除去するように変更
- CLI 引数モード(
input.md [output.xlsx] [mergeCols] [fontName])による設定
- 起動クラス名(FQCN)や import は新しいパッケージに合わせて更新してください
- 本バージョンでは、実行時に引数を渡しても設定には使用されません(常にダイアログが表示されます)
- 引用は従来どおり
trimmed.startsWith(">")ベースで判定しているため、>の直後に空白がない形式も既に認識対象です(挙動変更なし)
- Markdown(UTF-8)を Excel(.xlsx)に変換する基本機能(出力シート:
spec) - 見出し
#/##/###/####+のスタイル出力 - 箇条書き
*と番号付きリスト1.の出力(インデントに応じたネスト) - 引用
>のブロック出力(左罫線+背景) - コードブロック(``` フェンス)の出力(背景+外枠罫線、ASCII/CJK フォント切替)
- テーブル(
|...|)の出力(ヘッダ/ボディの罫線・スタイル)- セル内
\|の復元、`...`内の|を区切りにしない処理
- セル内
- インライン装飾(セル内リッチテキスト)
- 太字
**...** - インラインコード
`...`(赤字、等幅、ASCII/CJK フォント切替)
- 太字
<br>の扱い- インラインコード外の
<br>を改行として解釈し、縦方向展開 - 行末
<br>による次行への継続(見出し/引用/リスト/通常文)
- インラインコード外の
- 実行モード
- CLI 引数モード:
input.md [output.xlsx] [mergeCols] [fontName] - GUI 設定モード(引数なし): ファイル選択、列数、フォント、縦位置、フォントサイズ設定
- CLI 引数モード:
- GUI(Swing)を使用するため、headless 環境では調整が必要な場合があります(完了ダイアログを含む)
- 箇条書きは
*のみ対応(-/+は非対応) - インライン Markdown は太字とインラインコードのみ対応(斜体・リンク等は未対応)
- コードブロックは ``` フェンスのみ対応