Guest User

rakunator

a guest
Jan 14th, 2021
285
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name           Rakunator
  3. // @namespace      http://huh
  4. // @description    left/right arrow page nav
  5. // @include        https://course.raku.org/*
  6. // ==/UserScript==
  7.  
  8. let pages = [
  9. "/essentials/what-is-raku/",
  10. "/essentials/raku-vs-rakudo/",
  11. "/essentials/how-to-install-rakudo/",
  12. "/essentials/editors-and-ides/",
  13. "/essentials/conventional-file-extensions/",
  14. "/essentials/hello-world/",
  15. "/essentials/on-unicode/",
  16. "/essentials/running-programs/",
  17. "/essentials/running-programs/from-command-line/",
  18. "/essentials/running-programs/from-repl/",
  19. "/essentials/running-programs/from-ide/",
  20. "/essentials/running-programs/using-docker/",
  21. "/essentials/running-programs/using-online-services/",
  22. "/essentials/simple-input-output/",
  23. "/essentials/simple-input-output/say/",
  24. "/essentials/simple-input-output/prompt/",
  25. "/essentials/comments/",
  26. "/essentials/comments/single-line/",
  27. "/essentials/comments/multi-line/",
  28. "/essentials/comments/embedded/",
  29. "/essentials/scalar-variables/",
  30. "/essentials/scalar-variables/declaring-a-variable/",
  31. "/essentials/scalar-variables/assigning-a-value/",
  32. "/essentials/scalar-variables/declaration-with-initialization/",
  33. "/essentials/scalar-variables/defined-or-operator/",
  34. "/essentials/scalar-variables/identifiers/",
  35. "/essentials/strings/",
  36. "/essentials/strings/string-concatenation/",
  37. "/essentials/strings/variable-interpolation/",
  38. "/essentials/strings/code-interpolation/",
  39. "/essentials/strings/escaping-special-characters/",
  40. "/essentials/strings/string-length/",
  41. "/essentials/numbers/",
  42. "/essentials/numbers/integers/",
  43. "/essentials/numbers/rats/",
  44. "/essentials/numbers/numeric/",
  45. "/essentials/numbers/operations/",
  46. "/essentials/booleans/",
  47. "/essentials/booleans/operations/",
  48. "/essentials/booleans/boolean-operations-other-types/",
  49. "/essentials/ranges/",
  50. "/essentials/ranges/excluding-endpoints/",
  51. "/essentials/ranges/matching-against-a-range/",
  52. "/essentials/code-blocks/",
  53. "/essentials/code-blocks/lexical-scope/",
  54. "/essentials/code-blocks/global-variables/",
  55. "/essentials/code-blocks/local-variables/",
  56. "/essentials/conditional-checks/",
  57. "/essentials/conditional-checks/if/",
  58. "/essentials/conditional-checks/else/",
  59. "/essentials/conditional-checks/elsif/",
  60. "/essentials/conditional-checks/unless/",
  61. "/essentials/conditional-checks/modifiers/",
  62. "/essentials/conditional-checks/comparing-numbers/",
  63. "/essentials/conditional-checks/comparing-strings/",
  64. "/essentials/conditional-checks/ternary-operator/",
  65. "/essentials/loops/",
  66. "/essentials/loops/while/",
  67. "/essentials/loops/until/",
  68. "/essentials/loops/repeat/",
  69. "/essentials/loops/modifiers/",
  70. "/essentials/loops/loop/",
  71. "/essentials/loops/infinite-loops/",
  72. "/essentials/loops/for/",
  73. "/essentials/loops/topic/",
  74. "/essentials/loops/postfix-for/",
  75. "/essentials/coercion/",
  76. "/essentials/coercion/what/",
  77. "/essentials/coercion/methods/",
  78. "/essentials/coercion/new/",
  79. "/essentials/coercion/prefixes/",
  80. "/essentials/typed-variables/",
  81. "/essentials/typed-variables/type-constraints/",
  82. "/essentials/typed-variables/using-of/",
  83. "/essentials/typed-variables/coercion/",
  84. "/essentials/typed-variables/allomorphs/",
  85. "/essentials/positionals/",
  86. "/essentials/positionals/arrays/",
  87. "/essentials/positionals/nested-arrays/",
  88. "/essentials/positionals/args-array/",
  89. "/essentials/positionals/interpolating-arrays/",
  90. "/essentials/positionals/quoting-string-arrays/",
  91. "/essentials/positionals/lists/",
  92. "/essentials/positionals/subscripting-ranges/",
  93. "/essentials/associatives/",
  94. "/essentials/associatives/pairs/",
  95. "/essentials/associatives/hashes/",
  96. "/essentials/associatives/nested-hashes/",
  97. "/essentials/associatives/interpolating-hashes/",
  98. "/essentials/functions/",
  99. "/essentials/functions/identifiers/",
  100. "/essentials/functions/function-parameters/",
  101. "/essentials/functions/return-result/",
  102. "/essentials/functions/positional-parameters/",
  103. "/essentials/functions/named-parameters/",
  104. "/essentials/functions/default-values/",
  105. "/essentials/more-on-functions/",
  106. "/essentials/more-on-functions/mind-the-space/",
  107. "/essentials/more-on-functions/typed-parameters/",
  108. "/essentials/more-on-functions/return-type/",
  109. "/essentials/more-on-functions/multi-functions/",
  110. "/essentials/built-in-functions-for-printing/",
  111. "/essentials/built-in-functions-for-printing/say/",
  112. "/essentials/built-in-functions-for-printing/print/",
  113. "/essentials/built-in-functions-for-printing/put/",
  114. "/essentials/built-in-functions-for-printing/note/",
  115. "/essentials/the-main-function/",
  116. "/essentials/the-main-function/reading-command-line-arguments/",
  117. "/essentials/the-main-function/multi-main-functions/",
  118. "/essentials/the-main-function/using-unit-sub/"
  119. ];
  120.  
  121. var now = location.pathname;
  122. var pos = pages.findIndex( el => (el == now) );
  123.  
  124. if (pos < 0)
  125.   exit;
  126.  
  127. document.onkeydown = function(ev)
  128. {
  129.   if (ev.key == 'ArrowLeft' && pos > 0)
  130.     pos--;
  131.   else
  132.   if (ev.key == 'ArrowRight' && pos < pages.length-1)
  133.     pos++;
  134.   else
  135.     return;
  136.  
  137.   location.pathname = pages[pos];
  138. }
  139.  
Advertisement
Add Comment
Please, Sign In to add comment