mirror of
				https://github.com/explosion/spaCy.git
				synced 2025-11-04 09:57:26 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import { navigate } from 'gatsby'
 | 
						|
 | 
						|
import './src/styles/layout.sass'
 | 
						|
import Juniper from './src/components/juniper'
 | 
						|
import 'intersection-observer'
 | 
						|
 | 
						|
// Workaround to rewrite anchor links
 | 
						|
const clientSideRewrites = {
 | 
						|
    '/usage/linguistic-features/#rule-based-matching': '/usage/rule-based-matching',
 | 
						|
}
 | 
						|
 | 
						|
/* eslint-disable */
 | 
						|
import HKGroteskSemiBoldWOFF from './src/fonts/hkgrotesk-semibold.woff'
 | 
						|
import HKGroteskSemiBoldWOFF2 from './src/fonts/hkgrotesk-semibold.woff2'
 | 
						|
import HKGroteskSemiBoldItalicWOFF from './src/fonts/hkgrotesk-semibolditalic.woff'
 | 
						|
import HKGroteskSemiBoldItalicWOFF2 from './src/fonts/hkgrotesk-semibolditalic.woff2'
 | 
						|
import HKGroteskBoldWOFF from './src/fonts/hkgrotesk-bold.woff'
 | 
						|
import HKGroteskBoldWOFF2 from './src/fonts/hkgrotesk-bold.woff2'
 | 
						|
import HKGroteskBoldItalicWOFF from './src/fonts/hkgrotesk-bolditalic.woff'
 | 
						|
import HKGroteskBoldItalicWOFF2 from './src/fonts/hkgrotesk-bolditalic.woff2'
 | 
						|
/* eslint-enable */
 | 
						|
 | 
						|
export const onInitialClientRender = () => {
 | 
						|
    // Importing Juniper in the component currently causes various problems
 | 
						|
    // because of the global window reference in its dependencies. So this
 | 
						|
    // is kinda hacky at the moment.
 | 
						|
    window.Juniper = Juniper
 | 
						|
}
 | 
						|
 | 
						|
export const onRouteUpdate = ({ location }) => {
 | 
						|
    window.dispatchEvent(new Event('resize')) // for progress
 | 
						|
    window.dispatchEvent(new Event('scroll')) // for progress
 | 
						|
    if (location.hash) {
 | 
						|
        // Client-side rewrites
 | 
						|
        const rewrite = clientSideRewrites[location.pathname + location.hash]
 | 
						|
        if (rewrite) {
 | 
						|
            navigate(rewrite)
 | 
						|
            return
 | 
						|
        }
 | 
						|
        setTimeout(() => {
 | 
						|
            const el = document.querySelector(`${location.hash}`)
 | 
						|
            if (el) {
 | 
						|
                // Navigate to targeted element
 | 
						|
                el.scrollIntoView()
 | 
						|
                // Force recomputing :target pseudo class with pushState/popState
 | 
						|
                window.location.hash = location.hash
 | 
						|
            }
 | 
						|
        }, 0)
 | 
						|
    }
 | 
						|
}
 |