Fix: zoom-image target elements (#640)

- Ignore images outside of main content area (e.g. logo, sidenav icons, etc.)
- Ignore linked images (previous behavior broke linked images)

Fixes #520
This commit is contained in:
John Hildenbiddle 2018-10-23 00:28:03 -07:00 • committed by cinwell.li
commit 63876c601d

View file

@ -1,14 +1,20 @@
import mediumZoom from 'medium-zoom' import mediumZoom from 'medium-zoom'
const matchesSelector = Element.prototype.matches || Element.prototype.webkitMatchesSelector || Element.prototype.msMatchesSelector
function install(hook) { function install(hook) {
let zoom let zoom
hook.doneEach(_ => { hook.doneEach(_ => {
let elms = Array.apply(null, document.querySelectorAll('.markdown-section img:not(.emoji):not([data-no-zoom])'))
elms = elms.filter(elm => matchesSelector.call(elm, 'a img') === false)
if (zoom) { if (zoom) {
zoom.detach() zoom.detach()
} }
zoom = mediumZoom('img:not(.emoji):not([data-no-zoom])') zoom = mediumZoom(elms)
}) })
} }