mirror of https://github.com/explosion/spaCy.git
50 lines
1.9 KiB
JavaScript
50 lines
1.9 KiB
JavaScript
import { navigate } from 'gatsby'
|
|
|
|
import './src/styles/layout.sass'
|
|
import Juniper from './src/components/juniper'
|
|
|
|
// 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)
|
|
}
|
|
}
|