Conversation
## 概要 文書ファイルの配置を `docs/` 配下へ整理し、関連リンクと構成説明を更新します。あわせて、`xlsx2md` 用の TODO 文書を新規追加します。 ## 変更内容 - `docs/TODO.md` を新規追加 - 実装タスク - 未対応事項 - 方針未確定 - レイアウト系の整理 - 進捗メモ - 参照 を整理した TODO 文書を追加 - 文書ファイルを `docs/` 配下へ移動 - `local-data-review.md` → `docs/local-data-review.md` - `xlsx-formula-subset.md` → `docs/xlsx-formula-subset.md` - `xlsx2md-impl-spec.md` → `docs/xlsx2md-impl-spec.md` - `xlsx2md-spec.md` → `docs/xlsx2md-spec.md` - `README.md` を更新 - 文書一覧の参照先を `docs/` 配下へ変更 - 「方針」の文言を `docs/` 配下前提へ更新 - 構成イメージを現行のディレクトリ構成に合わせて更新 - `local-data/` や関連文書への参照先を更新 - 移動後の各文書を更新 - 相対リンクを新配置に合わせて修正 - `src/`、`tests/`、`local-data/` などのパス表記を現行配置に合わせて更新 - 文書内の構成説明を `docs/` 配下前提に更新 ## 影響範囲 - `README.md` - `docs/TODO.md` - `docs/local-data-review.md` - `docs/xlsx-formula-subset.md` - `docs/xlsx2md-impl-spec.md` - `docs/xlsx2md-spec.md`
文書を `docs/` 配下へ移動し、README と TODO を整理
## 概要 `index.html` の紹介文を見直し、説明内容を現在の表現に合わせて更新しました。 ## 変更内容 - `h1` 直下のリード文を削除 - 英語の説明文を、`Single-file Web App` を含む表現へ更新 - 英語の箇条書きを、`narrative text, tables, and images` を抽出する説明へ更新 - 日本語の説明文を、`地の文と表と画像を Markdown として抽出する Single-file Web App` という表現へ更新 - 日本語の箇条書きを、`地の文と表と画像を Markdown として抽出` する説明へ更新 ## 対象ファイル - `index.html`
index.html の紹介文を実装に合わせて更新し、Single-file Web App の説明を追加
## 概要 `README.md` と `index.html` にスクリーンショットを追加し、入力・変換結果・プレビューの流れが分かるようにしました。 ## 変更内容 - `docs/screenshots/` に以下の画像を追加 - `xlsx2md_1.png` - `xlsx2md_2a.png` - `xlsx2md_2b.png` - `README.md` に `Screenshots` セクションを追加 - `README.md` で各スクリーンショットの役割を追記 - 入力の `.xlsx` ブック - 変換後の Markdown テキスト - Markdown のプレビュー画面 - `index.html` に `Screenshots` セクションを追加 - `index.html` にスクリーンショット表示用のスタイルを追加 - `index.html` で各スクリーンショットに対応するキャプションと `alt` テキストを追加 ## 対象ファイル - `README.md` - `index.html` - `docs/screenshots/xlsx2md_1.png` - `docs/screenshots/xlsx2md_2a.png` - `docs/screenshots/xlsx2md_2b.png`
README.md と index.html にスクリーンショットを追加
## 概要 `README.md` と `index.html` の説明内容を見直し、`xlsx2md` の概要、目的、実現方法、スクリーンショットを整理しました。 ## 変更内容 - `README.md` の冒頭説明を更新 - `README.md` に概要の箇条書きを追加 - `README.md` に `目的` セクションを追加 - `README.md` に `実現方法` セクションを追加 - `README.md` の `Screenshots` セクションに `xlsx2md` プログラム本体の画像を追加 - `docs/screenshots/xlsx2md_0.png` を追加 - `index.html` の英語説明を更新 - `index.html` の英語セクションに `Purpose` と `How It Works` を追加 - `index.html` の日本語セクションに `目的` と `実現方法` を追加 - `index.html` に `Screenshots` セクションを追加し、`xlsx2md_0.png` を含むスクリーンショットを表示 - `index.html` のスクリーンショット表示を、広い画面では 2 列表示になるよう更新 - `index.html` の構成を、英語一式、`Screenshots`、日本語一式の順に整理 ## 対象ファイル - `README.md` - `index.html` - `docs/screenshots/xlsx2md_0.png`
README.md と index.html の説明構成を更新し、スクリーンショットと目的・実現方法を追加
## 概要 `README.md` の詳細説明を整理し、入口として読みやすい構成へ見直しました。 あわせて、README から外した詳細内容を `docs/xlsx2md-readme-details.md` に移しました。 ## 変更内容 - `README.md` から詳細説明の大部分を削除 - README に以下の構成を追加または整理 - `Usage` - `関連文書` - `LICENSE` - `README.md` の `Usage` を 4 手順に整理 - `README.md` の `関連文書` を箇条書き形式に整理 - `README.md` の `LICENSE` に `xlsx2md` と `ClosedXML.Parser` の説明を追加 - `docs/xlsx2md-readme-details.md` を新規追加 - `README.md` から外した以下の内容を `docs/xlsx2md-readme-details.md` に移動 - 文書の役割 - 現在の状態 - 主な特徴 - 方針 - 使い方 - UI の考え方 - Markdown 出力上の補助識別子 - 出力モード - モード選択の目安 - 出力例 - 保存名の扱い - レイアウト中心シートの扱い - 既知の制約 - 図形 SVG 対応の進め方 - 現在の構成イメージ - `local-data/` に関する補足 ## 対象ファイル - `README.md` - `docs/xlsx2md-readme-details.md`
README を簡潔化し、詳細説明を docs/xlsx2md-readme-details.md へ分離
## Summary `core.ts` に集約されていた処理を複数の TS/JS モジュールへ切り出し、各モジュールに対応する専用テストを追加します。 ## Changes - `core.ts` の責務を分割し、以下のモジュールを追加 - `border-grid` - `zip-io` - `narrative-structure` - `table-detector` - `markdown-export` - `styles-parser` - `shared-strings` - `worksheet-tables` - `core.ts` と `main.ts` を、切り出した helper を利用する構成に更新 - `scripts/build-xlsx2md.mjs` と `xlsx2md-src.html` を更新し、追加したモジュールをビルド対象・読み込み対象に追加 - 生成物として `src/xlsx2md/js/*.js` と `xlsx2md.html` を更新 - 既存の `tests/xlsx2md-main.test.js` を更新 - 追加した各モジュールに対する専用テストを追加 - `tests/xlsx2md-border-grid.test.js` - `tests/xlsx2md-zip-io.test.js` - `tests/xlsx2md-narrative-structure.test.js` - `tests/xlsx2md-table-detector.test.js` - `tests/xlsx2md-markdown-export.test.js` - `tests/xlsx2md-styles-parser.test.js` - `tests/xlsx2md-shared-strings.test.js` - `tests/xlsx2md-worksheet-tables.test.js` ## Purpose - `core.ts` の肥大化を抑える - 罫線処理、ナラティブ構造、表検出、ZIP I/O、Markdown 出力、スタイル解析、shared strings、worksheet table 解析を責務ごとに分離する - モジュール単位で直接テストできる状態にする ## Notes - 主目的は機能追加よりも、`xlsx2md` の内部構造整理とテスト強化です。
Refactor xlsx2md core into helper modules and add direct tests
… coverage ## Summary `xlsx2md` の表検出、Markdown 出力正規化、UI 設定を見直し、あわせて直接テストを拡充します。 ## Changes - 表検出を調整 - 罫線ありセルを優先して table candidate を作るように変更 - 罫線のないタイトル行が、罫線付きテーブルの先頭に巻き込まれにくいように先頭側トリムを追加 - 広すぎる重複 candidate を prune する処理を追加 - Shape 出力の UI 設定を追加 - `Conversion Settings` に `Include shape details in Markdown` スイッチを追加 - デフォルトは `ON` - `OFF` のときは `## Shape Blocks` / `## Shapes` を Markdown に出力しない - Markdown 正規化を追加 - `markdown-normalize.ts` を新規追加 - 改行、タブ、制御文字、Markdown 出力で危ない Unicode の不可視/制御系を半角空白へ置換 - 空白圧縮や `trim` は行わない方針に変更 - 表セル、narrative、見出し、箇条書きがこの正規化を通るように更新 - UI のボタン配色を調整 - `Convert to Markdown` を `Save Markdown` と同じ色に変更 - `Save ZIP with Markdown and Assets` をより濃い secondary 系配色に変更 - `docs/TODO.md` に Markdown エスケープ/正規化統一のタスクを追加 ## Tests - 既存テストを更新 - `tests/xlsx2md-table-detector.test.js` - `tests/xlsx2md-markdown-export.test.js` - `tests/xlsx2md-sheet-markdown.test.js` - `tests/xlsx2md-main.test.js` - 新規の直接テストを追加 - `tests/xlsx2md-markdown-normalize.test.js` - `tests/xlsx2md-office-drawing.test.js` - `tests/xlsx2md-main-ui.test.js`
Improve xlsx2md table boundaries, markdown normalization, and UI/test…
### 概要 以下の対応を行います。 - 隣接する罫線表が 1 つの大きな表候補として残るケースを抑制 - `tests/fixtures/table/` を新設し、表検出用の Excel fixture とスクリーンショットを追加 - fixture ベースの回帰テストを追加 - 関連ドキュメントと TODO を更新 - ビルド成果物の `xlsx2md.html` を同期 ### 変更内容 #### 1. 表検出ロジックの調整 - `src/xlsx2md/ts/table-detector.ts` - `src/xlsx2md/js/table-detector.js` - `xlsx2md.html` `pruneRedundantCandidates(...)` と fallback 候補の扱いを調整し、複数の小さい表候補が大部分を占める場合に、外側の大きな候補を残しにくくしました。 追加された主な考え方: - 複数候補の合計面積を用いる `getCombinedCandidateArea(...)` を追加 - 内包された候補が複数あり、かつ合計面積が一定割合を超える場合は外側候補を除外 - fallback 候補でも、複数の bordered candidate に十分覆われている場合は採用しない #### 2. fixture 追加 - `tests/fixtures/table/` を追加 - 以下の fixture とスクリーンショットを追加 - `table-basic-sample01.xlsx` / `.png` - `table-basic-sample02.xlsx` / `.png` - `table-basic-sample03.xlsx` / `.png` - `table-basic-sample11.xlsx` / `.png` - `table-basic-sample12.xlsx` / `.png` - `table-basic-sample13.xlsx` / `.png` - `table-basic-sample14.xlsx` / `.png` - `table-basic-sample15.xlsx` / `.png` - `table-basic-sample16.xlsx` / `.png` #### 3. テスト追加 - `tests/xlsx2md-table-detector.test.js` - `tests/xlsx2md-main.test.js` 追加した確認内容: - 複数の bordered table が面積の大半を占める場合に広い fallback candidate を残さないこと - 隣接表の縦配置、横配置、2x2 配置 - merge を多用した方眼紙風テーブル - 一部の結合漏れを含むケース - 縦結合を含むケース - merge gap により余分な列が残る現状挙動 ### ドキュメント更新 - `tests/fixtures/README.md` - `table/` fixture の説明を追加 - `docs/TODO.md` - `merge-multiline-sample01.xlsx` の追加予定 - 結合セル内改行の Markdown 表現方針の検討項目を追加
表検出の過剰な一体化を抑制し、`table` fixture を追加する
## 概要 `README.md` と `index.html` の説明構成を見直し、日英で整理しました。あわせて、第三者ソフトウェアおよび参考資料の記載を `THIRD_PARTY_NOTICES.md` に分離しました。 ## 変更内容 - `README.md` を日英併記の構成へ再編成 - `README.md` に以下の見出し構成を追加 - `What is this?` - `Features` - `Use Cases` - `How to use` - `Tech Stack` - `How it works` - `Example` - `License` - `README.md` の `How it works` を、英語版・日本語版ともに同じ順序の詳細な項目構成へ統一 - `README.md` の `Example` を、各スクリーンショットの意味が分かる説明付きの構成へ変更 - `README.md` のライセンス記載を簡潔化し、第三者関連の記載先を `THIRD_PARTY_NOTICES.md` へ変更 - `THIRD_PARTY_NOTICES.md` を新規追加 - `THIRD_PARTY_NOTICES.md` に以下を記載 - `Material Web (@material/web)` を第三者ソフトウェアとして記載 - `ClosedXML.Parser` を参考資料として記載 - 英語版と日本語版の両方を記載 - `index.html` を `README.md` に合わせた日英構成へ再編成 - `index.html` に以下の見出し構成を反映 - 英語版: `What is this?` / `Features` / `Use Cases` / `How to use` / `How it works` - 共通: `Example` - 日本語版: `What is this?` / `Features` / `Use Cases` / `How to use` / `How it works` - `index.html` の `Example` を、各スクリーンショットに対して英語説明と日本語説明を併記する形式へ変更 - `index.html` のスタイルを更新し、配色・余白・角丸・ボタン・カード表現を調整 ## 影響範囲 - ドキュメント: `README.md` - ランディングページ: `index.html` - 第三者告知: `THIRD_PARTY_NOTICES.md`
README と index の日英ドキュメント構成を整理し、第三者告知ファイルを追加
## 概要 `docs/screenshots/` 配下の `xlsx2md` スクリーンショット画像を更新しました。 ## 変更内容 - `docs/screenshots/xlsx2md_0.png` を更新 - `docs/screenshots/xlsx2md_1.png` を更新 - `docs/screenshots/xlsx2md_2a.png` を更新 - `docs/screenshots/xlsx2md_2b.png` を更新 ## 影響範囲 - スクリーンショット画像のみ - 対象ディレクトリ: `docs/screenshots/`
README / index 用スクリーンショットを更新
## 概要 `docs/articles` 配下に、Qiita / Note 向けの記事作成メモと記事を追加します。 ## 変更内容 - `docs/articles/README.md` を追加 - 記事作成用ディレクトリの用途 - 基本方針 - 命名案 - `docs/articles/qiita/README.md` を追加 - Qiita 向け草稿の方針 - 想定テーマ - 草稿ファイル一覧 - `docs/articles/note/README.md` を追加 - Note 向け草稿の方針 - 想定テーマ - 想定読者の切り口 - `docs/articles/qiita/20260320-xlsx2md-intro.md` を追加 - `xlsx2md` 紹介記事メモ - 掲載先情報 - Qiita 掲載用属性情報 - 本文草稿 - `docs/articles/qiita/20260320-vscode-gpt54-chat-dev.md` を追加 - VS Code + GPT-5.4 開発体験記事メモ - 掲載先情報 - Qiita 掲載用属性情報 - 本文草稿 - Appendix ## 変更ファイル - `docs/articles/README.md` - `docs/articles/note/README.md` - `docs/articles/qiita/README.md` - `docs/articles/qiita/20260320-xlsx2md-intro.md` - `docs/articles/qiita/20260320-vscode-gpt54-chat-dev.md`
docs/articles 配下に記事作成用ディレクトリと Qiita 記事を追加
## 概要 `docs/articles/note/20260320-gpt54-app-dev.md` を追加し、生成AI と一緒にアプリを作った体験を Note 向けの読み物として整理します。 ## 変更内容 - `docs/articles/note/20260320-gpt54-app-dev.md` を追加 - 記事テーマ、想定読者、書きたい観点、タイトル案、見出し案を記載 - Note 掲載用属性情報を記載 - 本文草稿を記載 - 関連する Qiita 記事 2 本へのリンクを記載 - 使用した生成AIとして OpenAI GPT-5.4 を記載 ## 対象ファイル - `docs/articles/note/20260320-gpt54-app-dev.md` ## 補足 - 掲載先情報には Note の URL 記載あり - `https://note.com/toshikiigaa/n/ncc28f9a0fcbd`
docs/articles/note に生成AI開発体験の Note 記事草稿を追加
## 概要 `xlsx2md` に Experimental Node CLI を追加するとともに、ブラウザ / Node / CLI から共通の変換コアを利用しやすいよう、モジュールレジストリベースの構成へ整理します。 ## 変更内容 ### 1. Node CLI の追加 - `scripts/xlsx2md-cli.mjs` を追加 - `package.json` に `npm run cli` を追加 - README に Experimental Node CLI の利用例を追記 - Markdown 出力に加えて ZIP 出力にも対応 ### 2. Node 実行基盤の追加 - `scripts/lib/xlsx2md-node-runtime.mjs` を追加 - Node 環境で `DOMParser`、`Blob`、`DecompressionStream` などを補う初期化処理を追加 - `XLSX2MD_CORE_JS_ORDER` に従ってコア JS を読み込み、レジストリから `xlsx2md` API を取得する仕組みを追加 ### 3. モジュールレジストリ基盤の導入 - `src/xlsx2md/ts/module-registry.ts` を追加 - `src/xlsx2md/ts/module-registry-access.ts` を追加 - `src/xlsx2md/ts/runtime-env.ts` を追加 - 各モジュールの依存解決を、`globalThis.__xlsx2md...` 直接参照中心の形から、モジュールレジストリ経由の取得に寄せる変更を実施 ### 4. コア構成の整理 - `src/xlsx2md/ts/core.ts` を中心に、依存モジュール取得と typed accessor の整理を実施 - `src/xlsx2md/ts/main.ts` を含む複数の TS / JS ファイルで、共通 accessor を利用する形へ整理 - `scripts/lib/xlsx2md-module-order.mjs` を追加し、コア読み込み順を明示化 ### 5. ブラウザ読み込み順の調整 - `xlsx2md-src.html` に `module-registry.js` / `module-registry-access.js` / `runtime-env.js` の読み込みを追加 - 単一 HTML 生成物 `xlsx2md.html` にも反映 ### 6. テスト追加・更新 - `tests/xlsx2md-cli.test.js` を追加 - `tests/xlsx2md-node-runtime.test.js` を追加 - `tests/helpers/module-registry.js` を追加 - 既存テスト群を、モジュールレジストリ前提の構成に合わせて更新 ## 期待される効果 - GUI だけでなく、Node からのバッチ実行経路を持てるようになる - 変換コアを browser / Node / CLI で共有しやすくなる - `globalThis.__xlsx2md...` 依存を減らし、構造の見通しを改善できる ## 影響範囲 - `README.md` - `package.json` - `scripts/` - `src/xlsx2md/js/` - `src/xlsx2md/ts/` - `tests/` - `xlsx2md-src.html` - `xlsx2md.html` ## 補足 - README 上の CLI 表記は `Experimental Node CLI`
CLI実行基盤とモジュールレジストリを導入し、`xlsx2md` の共通コア構成を整理
## 概要 `scripts/xlsx2md-cli.mjs` のヘルプとエラーメッセージを整理し、CLI の利用方法を `README.md` に明記します。あわせて、CLI のテストケースを追加して、既存の挙動を確認しやすくします。 ## 変更内容 ### CLI ヘルプの整理 - `scripts/xlsx2md-cli.mjs` の `--help` 表示を更新 - `--include-shape-details` の説明を明確化 - `--no-header-row` の説明を調整 - `--help` の説明を `Show this help and exit` に変更 - `Exit codes` として `0: Success` / `1: Error` を追加 - 複数入力時のエラーメッセージを `Specify exactly one input workbook.` に変更 ### CLI のエラーメッセージ改善 - 入力ファイル名を含むエラーメッセージ形式を導入 - 少なくとも以下の段階を区別する形に整理 - `read failed` - `parse failed` - `convert failed` - `zip write failed` - `markdown write failed` - `failed` ### CLI 実装の整理 - Markdown 出力用の `writeTextFile(...)` を追加 - バイナリ出力用の `writeBinaryFile(...)` を追加 - サマリー表示用の `printWorkbookSummary(...)` を追加 - エラーメッセージ整形用の `formatWorkbookError(...)` を追加 ### README の更新 - `README.md` の Experimental Node CLI 節を更新 - CLI は UNIX 的に小さく保つ方針で、1 回につき 1 つのワークブックを処理することを明記 - オプション一覧を英語版・日本語版の両方に追記 - exit code `0` / `1` を英語版・日本語版の両方に追記 - `--output-mode both --include-shape-details` の使用例を英語版・日本語版の両方に追記 ### テスト追加 - `tests/xlsx2md-cli.test.js` に以下のケースを追加 - ZIP 出力 - 入力ファイル名付きの失敗メッセージ - `--help` - 未知オプション - `--summary` - `--output-mode both` と `--include-shape-details` - 無効な `--output-mode` ## 期待される効果 - CLI 単体で使い方を把握しやすくなる - 失敗時にどの段階で失敗したかを判断しやすくなる - CLI の主要な挙動をテストで確認しやすくなる ## 影響範囲 - `README.md` - `scripts/xlsx2md-cli.mjs` - `tests/xlsx2md-cli.test.js`
CLI ドキュメントとヘルプを整備し、エラーメッセージとテストを強化
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
devel 成果を main に反映