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. +

+ + +
+ +
+ +
+

日本語

+

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

+ + +
+
+ + + + 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 f884ab5..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 30eb2ee..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); }