@@ -6,6 +6,7 @@ import { join } from "path";
66import { buildPageTree, getPage } from "../lib/lib";
77import Markdown from "../components/Markdown";
88import Search from "../components/Search";
9+import { configure, GlobalHotKeys } from "react-hotkeys";
910
1011const breadcrumbs = (posts, paths) => {
1112 const results = [
@@ -108,12 +109,19 @@ function ContentArea(props) {
108109
109110export default function DocsLayout({ posts, data, content }) {
110111 const [showSearch, toggleSearch] = useState(false);
112+ const toggle = () => toggleSearch((state) => !state);
113+ const keyMap = { search: ["command+k", "ctrl+k", "esc"] };
114+ const handlers = { search: toggle };
115+ configure({
116+ ignoreTags: [],
117+ });
111118 return (
112119 <div className="flex w-screen h-screen min-h-screen w-screen overflow-hidden">
120+ <GlobalHotKeys keyMap={keyMap} handlers={handlers} />
113121 <Head>
114122 <title>Documentation / Urbit.org</title>
115123 </Head>
116− {showSearch && <Search toggleSearch={() => toggleSearch(!showSearch)} />}
124+ {showSearch && <Search toggleSearch={() => toggleSearch(false)} />}
117125 <Sidebar>{childPages("/docs", posts.children)}</Sidebar>
118126 <ContentArea
119127 breadcrumbs={breadcrumbs(posts, [])}