Lichess Full Coords

Displays full coordinates on each square.

  1. // ==UserScript==
  2. // @name Lichess Full Coords
  3. // @description Displays full coordinates on each square.
  4. // @author amogus
  5. // @license Apache-2.0
  6. // @include http://lichess.org/*
  7. // @include https://lichess.org/*
  8. // @include http://*.lichess.org/*
  9. // @include https://*.lichess.org/*
  10. // @run-at document-start
  11. // @version 0.0.2
  12. // @namespace https://gf.qytechs.cn/users/28185
  13. // ==/UserScript==
  14. (function() {
  15. let css = `
  16. cordgrid {
  17. height: 100% !important;
  18. }
  19.  
  20. coords.grid {
  21. bottom: 0 !important;
  22. left: 0 !important;
  23. width: 100% !important;
  24. height: 100% !important;
  25. display: grid !important;
  26. grid-template-columns: auto auto auto auto auto auto auto auto !important;
  27. grid-auto-flow: row !important;
  28. grid-auto-flow: dense !important;
  29. }
  30.  
  31. .orientation-white coords.grid.black {
  32. display: none !important;
  33. }
  34.  
  35. .orientation-black coords.grid.white {
  36. display: none !important;
  37. }
  38.  
  39. coords.grid coord {
  40. padding-left: 4px !important;
  41. color: var(--cg-ccw); !important;
  42. font-size: 0.8em;
  43. }
  44.  
  45. coords.grid coord:nth-child(16n+1),
  46. coords.grid coord:nth-child(16n+3),
  47. coords.grid coord:nth-child(16n+5),
  48. coords.grid coord:nth-child(16n+7),
  49. coords.grid coord:nth-child(16n+10),
  50. coords.grid coord:nth-child(16n+12),
  51. coords.grid coord:nth-child(16n+14),
  52. coords.grid coord:nth-child(16n) {
  53. color: var(--cg-ccb); !important;
  54. }
  55.  
  56. coords.files, coords.ranks {
  57. display: none !important;
  58. }
  59. `;
  60. let html = `
  61. <coords class='grid white'>
  62. <coord>a8</coord>
  63. <coord>b8</coord>
  64. <coord>c8</coord>
  65. <coord>d8</coord>
  66. <coord>e8</coord>
  67. <coord>f8</coord>
  68. <coord>g8</coord>
  69. <coord>h8</coord>
  70. <coord>a7</coord>
  71. <coord>b7</coord>
  72. <coord>c7</coord>
  73. <coord>d7</coord>
  74. <coord>e7</coord>
  75. <coord>f7</coord>
  76. <coord>g7</coord>
  77. <coord>h7</coord>
  78. <coord>a6</coord>
  79. <coord>b6</coord>
  80. <coord>c6</coord>
  81. <coord>d6</coord>
  82. <coord>e6</coord>
  83. <coord>f6</coord>
  84. <coord>g6</coord>
  85. <coord>h6</coord>
  86. <coord>a5</coord>
  87. <coord>b5</coord>
  88. <coord>c5</coord>
  89. <coord>d5</coord>
  90. <coord>e5</coord>
  91. <coord>f5</coord>
  92. <coord>g5</coord>
  93. <coord>h5</coord>
  94. <coord>a4</coord>
  95. <coord>b4</coord>
  96. <coord>c4</coord>
  97. <coord>d4</coord>
  98. <coord>e4</coord>
  99. <coord>f4</coord>
  100. <coord>g4</coord>
  101. <coord>h4</coord>
  102. <coord>a3</coord>
  103. <coord>b3</coord>
  104. <coord>c3</coord>
  105. <coord>d3</coord>
  106. <coord>e3</coord>
  107. <coord>f3</coord>
  108. <coord>g3</coord>
  109. <coord>h3</coord>
  110. <coord>a2</coord>
  111. <coord>b2</coord>
  112. <coord>c2</coord>
  113. <coord>d2</coord>
  114. <coord>e2</coord>
  115. <coord>f2</coord>
  116. <coord>g2</coord>
  117. <coord>h2</coord>
  118. <coord>a1</coord>
  119. <coord>b1</coord>
  120. <coord>c1</coord>
  121. <coord>d1</coord>
  122. <coord>e1</coord>
  123. <coord>f1</coord>
  124. <coord>g1</coord>
  125. <coord>h1</coord>
  126. </coords>
  127.  
  128. <coords class='grid black'>
  129. <coord>h1</coord>
  130. <coord>g1</coord>
  131. <coord>f1</coord>
  132. <coord>e1</coord>
  133. <coord>d1</coord>
  134. <coord>c1</coord>
  135. <coord>b1</coord>
  136. <coord>a1</coord>
  137. <coord>h2</coord>
  138. <coord>g2</coord>
  139. <coord>f2</coord>
  140. <coord>e2</coord>
  141. <coord>d2</coord>
  142. <coord>c2</coord>
  143. <coord>b2</coord>
  144. <coord>a2</coord>
  145. <coord>h3</coord>
  146. <coord>g3</coord>
  147. <coord>f3</coord>
  148. <coord>e3</coord>
  149. <coord>d3</coord>
  150. <coord>c3</coord>
  151. <coord>b3</coord>
  152. <coord>a3</coord>
  153. <coord>h4</coord>
  154. <coord>g4</coord>
  155. <coord>f4</coord>
  156. <coord>e4</coord>
  157. <coord>d4</coord>
  158. <coord>c4</coord>
  159. <coord>b4</coord>
  160. <coord>a4</coord>
  161. <coord>h5</coord>
  162. <coord>g5</coord>
  163. <coord>f5</coord>
  164. <coord>e5</coord>
  165. <coord>d5</coord>
  166. <coord>c5</coord>
  167. <coord>b5</coord>
  168. <coord>a5</coord>
  169. <coord>h6</coord>
  170. <coord>g6</coord>
  171. <coord>f6</coord>
  172. <coord>e6</coord>
  173. <coord>d6</coord>
  174. <coord>c6</coord>
  175. <coord>b6</coord>
  176. <coord>a6</coord>
  177. <coord>h7</coord>
  178. <coord>g7</coord>
  179. <coord>f7</coord>
  180. <coord>e7</coord>
  181. <coord>d7</coord>
  182. <coord>c7</coord>
  183. <coord>b7</coord>
  184. <coord>a7</coord>
  185. <coord>h8</coord>
  186. <coord>g8</coord>
  187. <coord>f8</coord>
  188. <coord>e8</coord>
  189. <coord>d8</coord>
  190. <coord>c8</coord>
  191. <coord>b8</coord>
  192. <coord>a8</coord>
  193. </coords>
  194. `;
  195.  
  196. let css_node = document.createElement("style");
  197. css_node.type = "text/css";
  198. css_node.appendChild(document.createTextNode(css));
  199.  
  200. let html_node = document.createElement("div");
  201. html_node.classList.add("cordgrid");
  202. html_node.innerHTML = html;
  203.  
  204. // todo: support iframes
  205. document.head.appendChild(css_node);
  206.  
  207. function update() {
  208. let elems = document.querySelectorAll("cg-container");
  209. for (let i = 0; i < elems.length; i++) {
  210. if (elems[i].querySelector("div.cordgrid") == null) {
  211. elems[i].appendChild(html_node.cloneNode(true));
  212. }
  213. }
  214. }
  215.  
  216. setInterval(update, 200);
  217. setTimeout(update, 700);
  218. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址