Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Rakunator
- // @namespace http://huh
- // @description left/right arrow page nav
- // @include https://course.raku.org/*
- // ==/UserScript==
- let pages = [
- "/essentials/what-is-raku/",
- "/essentials/raku-vs-rakudo/",
- "/essentials/how-to-install-rakudo/",
- "/essentials/editors-and-ides/",
- "/essentials/conventional-file-extensions/",
- "/essentials/hello-world/",
- "/essentials/on-unicode/",
- "/essentials/running-programs/",
- "/essentials/running-programs/from-command-line/",
- "/essentials/running-programs/from-repl/",
- "/essentials/running-programs/from-ide/",
- "/essentials/running-programs/using-docker/",
- "/essentials/running-programs/using-online-services/",
- "/essentials/simple-input-output/",
- "/essentials/simple-input-output/say/",
- "/essentials/simple-input-output/prompt/",
- "/essentials/comments/",
- "/essentials/comments/single-line/",
- "/essentials/comments/multi-line/",
- "/essentials/comments/embedded/",
- "/essentials/scalar-variables/",
- "/essentials/scalar-variables/declaring-a-variable/",
- "/essentials/scalar-variables/assigning-a-value/",
- "/essentials/scalar-variables/declaration-with-initialization/",
- "/essentials/scalar-variables/defined-or-operator/",
- "/essentials/scalar-variables/identifiers/",
- "/essentials/strings/",
- "/essentials/strings/string-concatenation/",
- "/essentials/strings/variable-interpolation/",
- "/essentials/strings/code-interpolation/",
- "/essentials/strings/escaping-special-characters/",
- "/essentials/strings/string-length/",
- "/essentials/numbers/",
- "/essentials/numbers/integers/",
- "/essentials/numbers/rats/",
- "/essentials/numbers/numeric/",
- "/essentials/numbers/operations/",
- "/essentials/booleans/",
- "/essentials/booleans/operations/",
- "/essentials/booleans/boolean-operations-other-types/",
- "/essentials/ranges/",
- "/essentials/ranges/excluding-endpoints/",
- "/essentials/ranges/matching-against-a-range/",
- "/essentials/code-blocks/",
- "/essentials/code-blocks/lexical-scope/",
- "/essentials/code-blocks/global-variables/",
- "/essentials/code-blocks/local-variables/",
- "/essentials/conditional-checks/",
- "/essentials/conditional-checks/if/",
- "/essentials/conditional-checks/else/",
- "/essentials/conditional-checks/elsif/",
- "/essentials/conditional-checks/unless/",
- "/essentials/conditional-checks/modifiers/",
- "/essentials/conditional-checks/comparing-numbers/",
- "/essentials/conditional-checks/comparing-strings/",
- "/essentials/conditional-checks/ternary-operator/",
- "/essentials/loops/",
- "/essentials/loops/while/",
- "/essentials/loops/until/",
- "/essentials/loops/repeat/",
- "/essentials/loops/modifiers/",
- "/essentials/loops/loop/",
- "/essentials/loops/infinite-loops/",
- "/essentials/loops/for/",
- "/essentials/loops/topic/",
- "/essentials/loops/postfix-for/",
- "/essentials/coercion/",
- "/essentials/coercion/what/",
- "/essentials/coercion/methods/",
- "/essentials/coercion/new/",
- "/essentials/coercion/prefixes/",
- "/essentials/typed-variables/",
- "/essentials/typed-variables/type-constraints/",
- "/essentials/typed-variables/using-of/",
- "/essentials/typed-variables/coercion/",
- "/essentials/typed-variables/allomorphs/",
- "/essentials/positionals/",
- "/essentials/positionals/arrays/",
- "/essentials/positionals/nested-arrays/",
- "/essentials/positionals/args-array/",
- "/essentials/positionals/interpolating-arrays/",
- "/essentials/positionals/quoting-string-arrays/",
- "/essentials/positionals/lists/",
- "/essentials/positionals/subscripting-ranges/",
- "/essentials/associatives/",
- "/essentials/associatives/pairs/",
- "/essentials/associatives/hashes/",
- "/essentials/associatives/nested-hashes/",
- "/essentials/associatives/interpolating-hashes/",
- "/essentials/functions/",
- "/essentials/functions/identifiers/",
- "/essentials/functions/function-parameters/",
- "/essentials/functions/return-result/",
- "/essentials/functions/positional-parameters/",
- "/essentials/functions/named-parameters/",
- "/essentials/functions/default-values/",
- "/essentials/more-on-functions/",
- "/essentials/more-on-functions/mind-the-space/",
- "/essentials/more-on-functions/typed-parameters/",
- "/essentials/more-on-functions/return-type/",
- "/essentials/more-on-functions/multi-functions/",
- "/essentials/built-in-functions-for-printing/",
- "/essentials/built-in-functions-for-printing/say/",
- "/essentials/built-in-functions-for-printing/print/",
- "/essentials/built-in-functions-for-printing/put/",
- "/essentials/built-in-functions-for-printing/note/",
- "/essentials/the-main-function/",
- "/essentials/the-main-function/reading-command-line-arguments/",
- "/essentials/the-main-function/multi-main-functions/",
- "/essentials/the-main-function/using-unit-sub/"
- ];
- var now = location.pathname;
- var pos = pages.findIndex( el => (el == now) );
- if (pos < 0)
- exit;
- document.onkeydown = function(ev)
- {
- if (ev.key == 'ArrowLeft' && pos > 0)
- pos--;
- else
- if (ev.key == 'ArrowRight' && pos < pages.length-1)
- pos++;
- else
- return;
- location.pathname = pages[pos];
- }
Advertisement
Add Comment
Please, Sign In to add comment