mirror of
https://github.com/gluster/glusterdocs.git
synced 2026-02-06 00:48:24 +01:00
41 lines
1.2 KiB
JavaScript
41 lines
1.2 KiB
JavaScript
// Add ability to copy the current URL using vim like shortcuts
|
|
// There already exists navigation related shortcuts like
|
|
// F/S -- For Searching
|
|
// P/N -- For navigating to previous/next pages
|
|
// This patch just extends those features
|
|
|
|
// Expose the internal notification API of mkdocs
|
|
// This API isn't exposed publically, IDK why
|
|
// They use it internally to show notifications when user copies a code block
|
|
// I reverse engineered it for ease of use, takes a string arg `msg`
|
|
const notifyDOM = (msg) => {
|
|
if (typeof alert$ === "undefined") {
|
|
console.error("Clipboard notification API not available");
|
|
return;
|
|
}
|
|
|
|
alert$.next(msg);
|
|
};
|
|
|
|
// Extend the keyboard shortcut features
|
|
keyboard$.subscribe((key) => {
|
|
// We want to allow the user to be able to type our modifiders in search
|
|
// Disallowing that would be hilarious
|
|
if (key.mode === "search") {
|
|
return;
|
|
}
|
|
|
|
const keyPressed = key.type.toLowerCase();
|
|
|
|
// Y is added to honor vim enthusiasts (yank)
|
|
if (keyPressed === "c" || keyPressed === "y") {
|
|
const currLocation = window.location.href;
|
|
if (currLocation) {
|
|
navigator.clipboard
|
|
.writeText(currLocation)
|
|
.then(() => notifyDOM("Address copied to clipboard"))
|
|
.catch((e) => console.error(e));
|
|
}
|
|
}
|
|
});
|