Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 12 additions & 6 deletions src/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -283,15 +283,16 @@ document.addEventListener('keydown', e => {
btnToggleToc.click()
}
// 다이어그램 확대 보기가 열려 있으면 줌 숏컷은 다이어그램에 적용
if ((e.ctrlKey || e.metaKey) && e.key === '+') {
// '='는 Shift 없이 +키를 누른 경우 — 브라우저 관례대로 확대로 처리
if ((e.ctrlKey || e.metaKey) && (e.key === '+' || e.key === '=')) {
e.preventDefault()
diagramViewerOpen() ? diagramZoomIn() : doZoomIn()
}
if ((e.ctrlKey || e.metaKey) && e.key === '-') {
e.preventDefault()
diagramViewerOpen() ? diagramZoomOut() : doZoomOut()
}
if ((e.ctrlKey || e.metaKey) && (e.key === '0' || e.key === '=')) {
if ((e.ctrlKey || e.metaKey) && e.key === '0') {
e.preventDefault()
diagramViewerOpen() ? diagramZoomReset() : doZoomReset()
}
Expand Down Expand Up @@ -1124,17 +1125,22 @@ function attachDiagramZoomButtons(block) {
b.className = `mermaid-zoom-btn ${pos}`
b.title = '다이어그램 크게 보기'
b.innerHTML = DIAGRAM_EXPAND_ICON
b.addEventListener('click', e => {
e.stopPropagation()
openDiagramViewer(block)
})
return b
}
block.appendChild(mk('top'))
// 세로로 긴 다이어그램은 아래쪽에도 버튼을 둬서 스크롤 없이 접근 가능하게
if (block.offsetHeight > 240) block.appendChild(mk('bottom'))
}

// 클릭은 위임으로 처리 — 탭 캐시 복원(innerHTML 재주입) 시 버튼 노드가
// 재생성되면서 개별 리스너가 사라지므로, preview에 리스너를 1회만 등록한다
preview.addEventListener('click', e => {
const btn = e.target.closest('.mermaid-zoom-btn')
if (!btn) return
const block = btn.closest('.mermaid')
if (block) openDiagramViewer(block)
})

function diagramNaturalWidth(svg) {
const vb = svg.viewBox && svg.viewBox.baseVal
if (vb && vb.width) return vb.width
Expand Down
6 changes: 3 additions & 3 deletions src/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
<span id="file-name-text"></span>
<div id="zoom-controls">
<button id="btn-zoom-out" title="Zoom Out (Ctrl+-)">-</button>
<span id="zoom-level">100%</span>
<span id="zoom-level" title="Reset Zoom (Ctrl+0)">100%</span>
<button id="btn-zoom-in" title="Zoom In (Ctrl+=)">+</button>
</div>
<button id="btn-refresh" title="Refresh (F5)">
Expand Down Expand Up @@ -75,9 +75,9 @@
<table id="about-shortcuts">
<tr><td><kbd>Ctrl</kbd>+<kbd>B</kbd></td><td>Toggle Sidebar</td></tr>
<tr><td><kbd>Ctrl</kbd>+<kbd>T</kbd></td><td>Toggle TOC</td></tr>
<tr><td><kbd>Ctrl</kbd>+<kbd>+</kbd></td><td>Zoom In</td></tr>
<tr><td><kbd>Ctrl</kbd>+<kbd>+</kbd>/<kbd>=</kbd></td><td>Zoom In</td></tr>
<tr><td><kbd>Ctrl</kbd>+<kbd>-</kbd></td><td>Zoom Out</td></tr>
<tr><td><kbd>Ctrl</kbd>+<kbd>=</kbd></td><td>Reset Zoom</td></tr>
<tr><td><kbd>Ctrl</kbd>+<kbd>0</kbd></td><td>Reset Zoom</td></tr>
<tr><td><kbd>F5</kbd></td><td>Refresh</td></tr>
<tr><td><kbd>F11</kbd></td><td>Fullscreen</td></tr>
<tr><td><kbd>Ctrl</kbd>+<kbd>P</kbd></td><td>Print</td></tr>
Expand Down