Obsidian Publish 마크다운에서 스크립트 실행을 별도 지원하지 않는다. 대신 `publish.js` 파일을 활용하여 실행이 가능하다. Obsidian Publish 페이지(document) 렌더링은 html에서 담당하지 않고 별도 렌더러를 거쳐서 그려진다. 때문에 스크립트가 로딩될 때 일반적인 라이브러리 초기화 과정으로 동작이 불가능했다. 이미지 줌인 라이브러리 [medium-zoom](https://github.com/francoischalifour/medium-zoom) 사용하기로 결정했다. 모든 코드는 `publish.js` 인라인으로 삽입한다. `img` 태그의 `alt` 속성에 `"📷"`이 있다면 줌인 동작하도록 세팅하였다. ## publish.js ```javascript document.addEventListener('click', (ev) => { const container = document.querySelector('.markdown-preview-view'); const { tagName, alt } = ev.target; if (tagName === 'IMG' && alt.includes('📷') && container.contains(ev.target)) { ev.target.zzoom = ev.target.zzoom || mediumZoom(ev.target); ev.target.zzoom.open(); } }); ``` ## publish.css ```css .markdown-preview-view img[alt*="📷"] { cursor: zoom-in; } ``` ## Markdown ```markdown ![Zooming this image 📷](https://dummyimage.com/600x400) ``` ## Example ![📷](https://cdn.chorr.net/assets/hhkb.webp)