Added vim-like navigation (#11)
This commit is contained in:
parent
797fb83258
commit
8d2abf9b3b
|
@ -9,6 +9,14 @@ This is a static site generated using [Hugo](https://gohugo.io/). There's a publ
|
||||||
[here](https://github.com/alejandro-angulo/alejandr0angul0.dev). Nothing fancy going on. I'm planning on using this site as a sort
|
[here](https://github.com/alejandro-angulo/alejandr0angul0.dev). Nothing fancy going on. I'm planning on using this site as a sort
|
||||||
of personal documentation. Hopefully what I write here will be useful to whoever stumbles upon it.
|
of personal documentation. Hopefully what I write here will be useful to whoever stumbles upon it.
|
||||||
|
|
||||||
|
For you vim fans, this site supports scrolling vertically with vim bindings (as long as you allow this site to run javascript). As
|
||||||
|
of now the following are supported:
|
||||||
|
|
||||||
|
- `j` (scrolls down)
|
||||||
|
- `k` (scrolls up)
|
||||||
|
- `gg` (scrolls to top)
|
||||||
|
- `G` (scrolls to bottom)
|
||||||
|
|
||||||
## Me
|
## Me
|
||||||
|
|
||||||
I'm Alejandro Angulo, a code monkey living in the Los Angeles area. When I'm not ~~introducting bugs~~ writing beautiful,
|
I'm Alejandro Angulo, a code monkey living in the Los Angeles area. When I'm not ~~introducting bugs~~ writing beautiful,
|
||||||
|
@ -18,4 +26,3 @@ I like to pass the time binge watching TV shows on Hulu/Netflix and starting (bu
|
||||||
### Contact
|
### Contact
|
||||||
|
|
||||||
I can be reached at `iam@<the domain of this site>`.
|
I can be reached at `iam@<the domain of this site>`.
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
<script src="/js/keynav.js"></script>
|
45
themes/alejandro-angulo/static/js/keynav.js
Normal file
45
themes/alejandro-angulo/static/js/keynav.js
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
/*
|
||||||
|
* Adds vim-like keyboard navigation.
|
||||||
|
*
|
||||||
|
* Currently supports:
|
||||||
|
* - j (scroll down)
|
||||||
|
* - k (scroll up)
|
||||||
|
* - gg (scroll to top)
|
||||||
|
* - G (scroll to bottom)
|
||||||
|
*/
|
||||||
|
|
||||||
|
const scroll_vertical = 100;
|
||||||
|
const scroll_behavior = "smooth";
|
||||||
|
let last_key = null;
|
||||||
|
|
||||||
|
document.addEventListener("keydown", (e) => {
|
||||||
|
console.log(e);
|
||||||
|
|
||||||
|
let scroll_factor = 1;
|
||||||
|
|
||||||
|
if (e.key === "k") {
|
||||||
|
scroll_factor *= -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (e.key) {
|
||||||
|
case "j":
|
||||||
|
case "k":
|
||||||
|
window.scrollBy({
|
||||||
|
top: scroll_factor * scroll_vertical,
|
||||||
|
behavior: scroll_behavior,
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "g":
|
||||||
|
if (last_key === "g") {
|
||||||
|
window.scroll(0, 0);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "G":
|
||||||
|
window.scroll(0, document.body.scrollHeight);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
last_key = e.key;
|
||||||
|
});
|
Loading…
Reference in a new issue