From 123611a02610328ff00caf92e3c8ce7d5ac4c035 Mon Sep 17 00:00:00 2001 From: Toshiki Iga Date: Thu, 19 Mar 2026 00:08:59 +0900 Subject: [PATCH 1/2] =?UTF-8?q?index.html=20=E3=82=92=E8=BF=BD=E5=8A=A0?= =?UTF-8?q?=E3=81=97=E3=80=81xlsx2md=20=E3=81=8B=E3=82=89=E5=90=8C?= =?UTF-8?q?=E4=B8=80=E3=83=95=E3=82=A9=E3=83=AB=E3=83=80=E3=81=AE=E3=83=88?= =?UTF-8?q?=E3=83=83=E3=83=97=E3=81=B8=E6=88=BB=E3=82=8C=E3=82=8B=E3=82=88?= =?UTF-8?q?=E3=81=86=E3=81=AB=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 概要 `index.html` を新規追加し、`xlsx2md` 画面右上メニューの遷移先を同一フォルダの `index.html` に修正します。 ## 変更内容 - `index.html` を新規追加 - `xlsx2md-src.html` の `menu-home-href` を `../index.html` から `./index.html` へ変更 - 生成済みの `xlsx2md.html` の `menu-home-href` を `../index.html` から `./index.html` へ変更 ## 影響範囲 - `index.html` - `xlsx2md-src.html` - `xlsx2md.html` --- index.html | 202 +++++++++++++++++++++++++++++++++++++++++++++++ xlsx2md-src.html | 2 +- xlsx2md.html | 2 +- 3 files changed, 204 insertions(+), 2 deletions(-) create mode 100644 index.html diff --git a/index.html b/index.html new file mode 100644 index 0000000..909aee7 --- /dev/null +++ b/index.html @@ -0,0 +1,202 @@ + + + + + + + + + xlsx2md + + + +
+
Local Browser Tool
+

xlsx2md

+

+ Excel (`.xlsx`) をローカルで読み込み、Markdown へ変換するブラウザベースのツールです。 +

+ +
+

English

+

+ xlsx2md is a browser-based converter that reads Excel (`.xlsx`) files locally and turns them into Markdown. +

+
    +
  • Runs in the browser.
  • +
  • Converts all sheets automatically.
  • +
  • Supports display / raw / both output modes.
  • +
  • Includes analysis-oriented output such as tables, formulas, charts, and shapes.
  • +
+ +
+ +
+ +
+

日本語

+

+ xlsx2md は、Excel (`.xlsx`) をローカルで読み込み、Markdown へ変換するブラウザベースのツールです。 +

+
    +
  • ブラウザ内で動作します。
  • +
  • 全シートを自動で変換します。
  • +
  • `display` / `raw` / `both` の出力モードを持ちます。
  • +
  • 表、数式、グラフ、図形などの解析結果を Markdown に出力します。
  • +
+ +
+
+ + + + diff --git a/xlsx2md-src.html b/xlsx2md-src.html index f884ab5..33181d7 100644 --- a/xlsx2md-src.html +++ b/xlsx2md-src.html @@ -33,7 +33,7 @@ icon="📘" help-label="xlsx2md の説明" help-wide - menu-home-href="../index.html" + menu-home-href="./index.html" menu-home-label="トップへ戻る"> `.xlsx` ファイルをローカルで解析し、地の文抽出・表検出・結合セル補完を行ったうえで Markdown を生成します。 diff --git a/xlsx2md.html b/xlsx2md.html index 30eb2ee..8c3ab6c 100644 --- a/xlsx2md.html +++ b/xlsx2md.html @@ -1459,7 +1459,7 @@ icon="📘" help-label="xlsx2md の説明" help-wide - menu-home-href="../index.html" + menu-home-href="./index.html" menu-home-label="トップへ戻る"> `.xlsx` ファイルをローカルで解析し、地の文抽出・表検出・結合セル補完を行ったうえで Markdown を生成します。 From ee19879f640087369063e775abde978575151ac2 Mon Sep 17 00:00:00 2001 From: Toshiki Iga Date: Thu, 19 Mar 2026 00:21:19 +0900 Subject: [PATCH 2/2] =?UTF-8?q?xlsx2md=20=E3=81=AE=E3=83=98=E3=83=83?= =?UTF-8?q?=E3=83=80=E3=83=BC=E3=81=AB=20GitHub=20=E3=82=A2=E3=82=A4?= =?UTF-8?q?=E3=82=B3=E3=83=B3=E3=83=AA=E3=83=B3=E3=82=AF=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0=E3=81=97=E3=80=81=E3=82=A2=E3=82=A4=E3=82=B3=E3=83=B3?= =?UTF-8?q?=E5=8D=98=E4=BD=93=E8=A1=A8=E7=A4=BA=E3=81=AB=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 概要 `xlsx2md` のページヘッダーに GitHub へのリンクを追加します。あわせて、`lht-page-hero` がラベルなしのアイコン単体リンクを扱えるように調整します。 ## 変更内容 - `xlsx2md-src.html` - GitHub 用の SVG symbol `md-icon-github` を追加 - `lht-page-hero` に `action-href` / `action-aria-label` / `action-icon-id` を追加 - `lht-cmn/js/components.js` - `lht-page-hero` のアクションリンク生成条件を拡張し、`action-label` がなくても `action-icon-id` があれば描画できるように変更 - ラベルなしの場合に `ms-hero-link--icon-only` を付与 - ラベルがある場合のみテキストノードを追加するように変更 - `src/xlsx2md/css/app.css` - `.md-icons` を追加 - `.ms-hero-link` / `.ms-hero-link--icon-only` / `.ms-btn-icon` を追加し、アイコン単体リンク用の見た目を定義 - `xlsx2md.html` - 上記変更の生成物を更新 --- lht-cmn/js/components.js | 13 ++++++--- src/xlsx2md/css/app.css | 38 ++++++++++++++++++++++++++ xlsx2md-src.html | 8 ++++++ xlsx2md.html | 59 +++++++++++++++++++++++++++++++++++++--- 4 files changed, 110 insertions(+), 8 deletions(-) diff --git a/lht-cmn/js/components.js b/lht-cmn/js/components.js index 3f867df..e8f3127 100644 --- a/lht-cmn/js/components.js +++ b/lht-cmn/js/components.js @@ -1524,10 +1524,13 @@ class LhtPageHero extends HTMLElement { titleMain.appendChild(help); } - if (actionHref && actionLabel) { + if (actionHref && (actionLabel || actionIconId)) { const actionLink = document.createElement("a"); actionLink.href = actionHref; actionLink.className = "ms-hero-link"; + if (!actionLabel) { + actionLink.classList.add("ms-hero-link--icon-only"); + } actionLink.target = "_blank"; actionLink.rel = "noopener noreferrer"; if (actionAriaLabel) { @@ -1545,9 +1548,11 @@ class LhtPageHero extends HTMLElement { iconSvg.appendChild(useNode); actionLink.appendChild(iconSvg); } - const labelNode = document.createElement("span"); - labelNode.textContent = actionLabel; - actionLink.appendChild(labelNode); + if (actionLabel) { + const labelNode = document.createElement("span"); + labelNode.textContent = actionLabel; + actionLink.appendChild(labelNode); + } titleMain.appendChild(actionLink); } diff --git a/src/xlsx2md/css/app.css b/src/xlsx2md/css/app.css index 3971993..63f1797 100644 --- a/src/xlsx2md/css/app.css +++ b/src/xlsx2md/css/app.css @@ -12,10 +12,48 @@ margin: 0 auto; } +.md-icons { + position: absolute; + width: 0; + height: 0; + overflow: hidden; +} + .md-surface-card { padding: 28px; } +.ms-hero-link { + display: inline-flex; + align-items: center; + justify-content: center; + color: #52606d; + text-decoration: none; + line-height: 1; + transition: + transform 0.16s ease, + color 0.16s ease, + opacity 0.16s ease; +} + +.ms-hero-link:hover, +.ms-hero-link:focus-visible { + transform: translateY(-1px); + color: #102a43; + opacity: 1; +} + +.ms-hero-link--icon-only { + padding: 0.1rem; + opacity: 0.78; +} + +.ms-btn-icon { + width: 1.05rem; + height: 1.05rem; + flex: 0 0 auto; +} + .md-card { background: rgba(255, 255, 255, 0.96); border: 1px solid rgba(148, 163, 184, 0.18); diff --git a/xlsx2md-src.html b/xlsx2md-src.html index 33181d7..7defee8 100644 --- a/xlsx2md-src.html +++ b/xlsx2md-src.html @@ -25,6 +25,11 @@ +
`.xlsx` ファイルをローカルで解析し、地の文抽出・表検出・結合セル補完を行ったうえで Markdown を生成します。 diff --git a/xlsx2md.html b/xlsx2md.html index 8c3ab6c..2c56e0d 100644 --- a/xlsx2md.html +++ b/xlsx2md.html @@ -1088,10 +1088,48 @@ margin: 0 auto; } +.md-icons { + position: absolute; + width: 0; + height: 0; + overflow: hidden; +} + .md-surface-card { padding: 28px; } +.ms-hero-link { + display: inline-flex; + align-items: center; + justify-content: center; + color: #52606d; + text-decoration: none; + line-height: 1; + transition: + transform 0.16s ease, + color 0.16s ease, + opacity 0.16s ease; +} + +.ms-hero-link:hover, +.ms-hero-link:focus-visible { + transform: translateY(-1px); + color: #102a43; + opacity: 1; +} + +.ms-hero-link--icon-only { + padding: 0.1rem; + opacity: 0.78; +} + +.ms-btn-icon { + width: 1.05rem; + height: 1.05rem; + flex: 0 0 auto; +} + .md-card { background: rgba(255, 255, 255, 0.96); border: 1px solid rgba(148, 163, 184, 0.18); @@ -1451,6 +1489,11 @@ +
`.xlsx` ファイルをローカルで解析し、地の文抽出・表検出・結合セル補完を行ったうえで Markdown を生成します。 @@ -3572,10 +3618,13 @@

Markdown

titleMain.appendChild(help); } - if (actionHref && actionLabel) { + if (actionHref && (actionLabel || actionIconId)) { const actionLink = document.createElement("a"); actionLink.href = actionHref; actionLink.className = "ms-hero-link"; + if (!actionLabel) { + actionLink.classList.add("ms-hero-link--icon-only"); + } actionLink.target = "_blank"; actionLink.rel = "noopener noreferrer"; if (actionAriaLabel) { @@ -3593,9 +3642,11 @@

Markdown

iconSvg.appendChild(useNode); actionLink.appendChild(iconSvg); } - const labelNode = document.createElement("span"); - labelNode.textContent = actionLabel; - actionLink.appendChild(labelNode); + if (actionLabel) { + const labelNode = document.createElement("span"); + labelNode.textContent = actionLabel; + actionLink.appendChild(labelNode); + } titleMain.appendChild(actionLink); }