From b6c99bf89d093a20c8ad1d37877eab4880b2778a Mon Sep 17 00:00:00 2001 From: irof Date: Sun, 8 Feb 2026 02:56:02 +0900 Subject: [PATCH 1/3] feat: add glossary link column to package table MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - パッケージ概要に用語集リンク列を追加 - glossaryへのアンカーリンク生成 --- jig-core/src/main/resources/templates/assets/package.js | 7 +++++++ jig-core/src/main/resources/templates/assets/style.css | 3 +++ jig-core/src/main/resources/templates/package.html | 2 ++ 3 files changed, 12 insertions(+) diff --git a/jig-core/src/main/resources/templates/assets/package.js b/jig-core/src/main/resources/templates/assets/package.js index 3ee31da21..b84385914 100644 --- a/jig-core/src/main/resources/templates/assets/package.js +++ b/jig-core/src/main/resources/templates/assets/package.js @@ -450,6 +450,13 @@ function buildPackageTableRowElement(spec, applyFilter, applyRelatedFilterForRow nameTd.textContent = spec.name; tr.appendChild(nameTd); + const glossaryTd = document.createElement('td'); + const glossaryLink = document.createElement('a'); + glossaryLink.href = `glossary.html#${encodeURIComponent(spec.fqn)}`; + glossaryLink.textContent = '用語集'; + glossaryTd.appendChild(glossaryLink); + tr.appendChild(glossaryTd); + const classCountTd = document.createElement('td'); classCountTd.textContent = String(spec.classCount); classCountTd.className = 'number'; diff --git a/jig-core/src/main/resources/templates/assets/style.css b/jig-core/src/main/resources/templates/assets/style.css index 7a8b31583..901561552 100644 --- a/jig-core/src/main/resources/templates/assets/style.css +++ b/jig-core/src/main/resources/templates/assets/style.css @@ -378,6 +378,9 @@ label { .package-list table .col-action { width: 2.5em; } +.package-list table .col-glossary { + width: 6em; +} .package-list table th.no-sort { cursor: default; } diff --git a/jig-core/src/main/resources/templates/package.html b/jig-core/src/main/resources/templates/package.html index 3b84be2e1..dda96e0db 100644 --- a/jig-core/src/main/resources/templates/package.html +++ b/jig-core/src/main/resources/templates/package.html @@ -82,6 +82,7 @@

パッケージ概要

+ @@ -92,6 +93,7 @@

パッケージ概要

関連のみ表示 完全修飾名 名称 + 用語集 クラス数 関連数(依存元) 関連数(依存先) From 7e112327fd8d4605d82bf9fe15a5ba7c71ce539a Mon Sep 17 00:00:00 2001 From: irof Date: Sun, 8 Feb 2026 02:59:48 +0900 Subject: [PATCH 2/3] feat: replace glossary label with icon MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 用語集リンクをアイコン表示に変更 --- .../src/main/resources/templates/assets/package.js | 7 ++++++- .../src/main/resources/templates/assets/style.css | 13 +++++++++++++ jig-core/src/main/resources/templates/package.html | 2 +- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/jig-core/src/main/resources/templates/assets/package.js b/jig-core/src/main/resources/templates/assets/package.js index b84385914..58828d208 100644 --- a/jig-core/src/main/resources/templates/assets/package.js +++ b/jig-core/src/main/resources/templates/assets/package.js @@ -452,8 +452,13 @@ function buildPackageTableRowElement(spec, applyFilter, applyRelatedFilterForRow const glossaryTd = document.createElement('td'); const glossaryLink = document.createElement('a'); + glossaryLink.className = 'glossary-link-icon'; glossaryLink.href = `glossary.html#${encodeURIComponent(spec.fqn)}`; - glossaryLink.textContent = '用語集'; + glossaryLink.setAttribute('aria-label', '用語集'); + const glossaryText = document.createElement('span'); + glossaryText.className = 'screen-reader-only'; + glossaryText.textContent = '用語集'; + glossaryLink.appendChild(glossaryText); glossaryTd.appendChild(glossaryLink); tr.appendChild(glossaryTd); diff --git a/jig-core/src/main/resources/templates/assets/style.css b/jig-core/src/main/resources/templates/assets/style.css index 901561552..055a58fa5 100644 --- a/jig-core/src/main/resources/templates/assets/style.css +++ b/jig-core/src/main/resources/templates/assets/style.css @@ -351,6 +351,19 @@ label { .package-list button.related-icon:hover { background-color: #f5f5f5; } +.package-list a.glossary-link-icon { + display: inline-block; + width: 1.8em; + height: 1.8em; + border-radius: 999px; + border: 1px solid #999; + background: #fff no-repeat center; + background-image: url("data:image/svg+xml;utf8,"); + text-decoration: none; +} +.package-list a.glossary-link-icon:hover { + background-color: #f5f5f5; +} .package-list .mutual-dependencies { margin: 12px 0 16px 0; padding: 8px 12px; diff --git a/jig-core/src/main/resources/templates/package.html b/jig-core/src/main/resources/templates/package.html index dda96e0db..011ea4740 100644 --- a/jig-core/src/main/resources/templates/package.html +++ b/jig-core/src/main/resources/templates/package.html @@ -93,7 +93,7 @@

パッケージ概要

関連のみ表示 完全修飾名 名称 - 用語集 + 用語集 クラス数 関連数(依存元) 関連数(依存先) From b6bcc20624f79835219a448aac1fda0efb98f72e Mon Sep 17 00:00:00 2001 From: irof Date: Sun, 8 Feb 2026 03:09:02 +0900 Subject: [PATCH 3/3] fix: tighten glossary icon column MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 用語集列の幅を縮小 - アイコンの表示位置を調整 - テストの列位置を更新 --- .../src/main/resources/templates/assets/package.js | 1 + jig-core/src/main/resources/templates/assets/style.css | 7 ++++++- jig-core/src/test/js/package.test.js | 10 +++++++--- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/jig-core/src/main/resources/templates/assets/package.js b/jig-core/src/main/resources/templates/assets/package.js index 58828d208..59a2f8c55 100644 --- a/jig-core/src/main/resources/templates/assets/package.js +++ b/jig-core/src/main/resources/templates/assets/package.js @@ -451,6 +451,7 @@ function buildPackageTableRowElement(spec, applyFilter, applyRelatedFilterForRow tr.appendChild(nameTd); const glossaryTd = document.createElement('td'); + glossaryTd.className = 'glossary-cell'; const glossaryLink = document.createElement('a'); glossaryLink.className = 'glossary-link-icon'; glossaryLink.href = `glossary.html#${encodeURIComponent(spec.fqn)}`; diff --git a/jig-core/src/main/resources/templates/assets/style.css b/jig-core/src/main/resources/templates/assets/style.css index 055a58fa5..71630dae4 100644 --- a/jig-core/src/main/resources/templates/assets/style.css +++ b/jig-core/src/main/resources/templates/assets/style.css @@ -355,11 +355,13 @@ label { display: inline-block; width: 1.8em; height: 1.8em; + box-sizing: border-box; border-radius: 999px; border: 1px solid #999; background: #fff no-repeat center; background-image: url("data:image/svg+xml;utf8,"); text-decoration: none; + vertical-align: middle; } .package-list a.glossary-link-icon:hover { background-color: #f5f5f5; @@ -392,7 +394,10 @@ label { width: 2.5em; } .package-list table .col-glossary { - width: 6em; + width: 2.5em; +} +.package-list td.glossary-cell { + text-align: center; } .package-list table th.no-sort { cursor: default; diff --git a/jig-core/src/test/js/package.test.js b/jig-core/src/test/js/package.test.js index 3efec694a..8b66b0cd5 100644 --- a/jig-core/src/test/js/package.test.js +++ b/jig-core/src/test/js/package.test.js @@ -234,6 +234,10 @@ function setupDiagramEnvironment(doc, context) { const mutual = doc.createElement('div'); mutual.id = 'mutual-dependency-list'; doc.elementsById.set('mutual-dependency-list', mutual); + const transitiveReductionToggle = doc.createElement('input'); + transitiveReductionToggle.id = 'transitive-reduction-toggle'; + transitiveReductionToggle.type = 'checkbox'; + doc.elementsById.set('transitive-reduction-toggle', transitiveReductionToggle); global.window = { mermaid: { initialize() { @@ -652,9 +656,9 @@ test.describe('package.js', () => { assert.equal(tbody.children.length, 2); assert.equal(tbody.children[0].children[3].textContent, 'A'); - assert.equal(tbody.children[0].children[4].textContent, '2'); - assert.equal(tbody.children[0].children[5].textContent, '0'); - assert.equal(tbody.children[0].children[6].textContent, '2'); + assert.equal(tbody.children[0].children[5].textContent, '2'); + assert.equal(tbody.children[0].children[6].textContent, '0'); + assert.equal(tbody.children[0].children[7].textContent, '2'); }); }); });