Advertisement
Xelieu

(Modern - Back) Mining Deck (Xelieu's)

Aug 24th, 2022 (edited)
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.58 KB | None | 0 0
  1. {{FrontSide}}
  2.  
  3. <br>
  4. <hr id=answer />
  5.  
  6. <!-- Start -->
  7. <div id="usage">
  8.  
  9. <div id="kanjis"></div>
  10.  
  11. <div id="front" class="font-big">
  12. <a href="https://jpdb.io/search?q={{front}}">{{edit:Reading}}</a>
  13. <!-- No link Replace {{edit:Reading}} -->
  14. </div>
  15.  
  16. <div style="line-height: 40%">
  17. <br>
  18. </div>
  19.  
  20.  
  21.  
  22. <!-- This text is only shown if Glossary-Selected has text in it -->
  23. <div id="glossary" class="font-small">
  24. {{#Glossary-Selected}}
  25. {{edit:Glossary-Selected}}
  26. {{/Glossary-Selected}}
  27. </div>
  28.  
  29. <!-- This text is only shown if Glossary-Selected is empty -->
  30. <div id="glossary" class="font-small">
  31. {{^Glossary-Selected}}
  32. {{edit:Glossary}}
  33. {{/Glossary-Selected}}
  34. </div>
  35.  
  36.  
  37.  
  38. <!-- These Glossaries are for monolingual-transitional yomichan -->
  39. <!-- This is only shown if Glossary(non-bilingual) is empty -->
  40. <div id="glossDict" class="font-small">
  41. {{^Glossary}}
  42. {{#Shinjirin}}
  43. <br>
  44. {{Shinjirin}}
  45. <hr>
  46. {{/Shinjirin}}
  47. {{/Glossary}}
  48. </div>
  49.  
  50. <!-- If Shinjirin is empty, Oukoku shows -->
  51. <div id="glossDict" class="font-small">
  52. {{^Shinjirin}}
  53. {{#Oukoku}}
  54. {{edit:Oukoku}}
  55. <hr>
  56. {{/Oukoku}}
  57. {{/Shinjirin}}
  58. </div>
  59.  
  60. <!-- If both Shinjirin and Oukoku is empty, Daijisen shows -->
  61. <div id="glossDict" class="font-small">
  62. {{^Shinjirin}}
  63. {{^Oukoku}}
  64. {{#Daijisen}}
  65. {{edit:Daijisen}}
  66. <hr>
  67. {{/Daijisen}}
  68. {{/Oukoku}}
  69. {{/Shinjirin}}
  70. </div>
  71.  
  72. <!-- If Shinjirin, Oukoku, Daijisen is empty, Meikyou shows -->
  73. <div id="glossDict" class="font-small">
  74. {{^Shinjirin}}
  75. {{^Oukoku}}
  76. {{^Daijisen}}
  77. {{#Meikyou}}
  78. {{edit:Meikyou}}
  79. <hr>
  80. {{/Meikyou}}
  81. {{/Daijisen}}
  82. {{/Oukoku}}
  83. {{/Shinjirin}}
  84. </div>
  85.  
  86. <!-- If Shinjirin, Oukoku, Daijisen, Meikyou is empty, Jitsuyou shows -->
  87. <div id="glossDict" class="font-small">
  88. {{^Shinjirin}}
  89. {{^Oukoku}}
  90. {{^Daijisen}}
  91. {{^Meikyou}}
  92. {{#Jitsuyou}}
  93. {{edit:Jitsuyou}}
  94. <hr>
  95. {{/Jitsuyou}}
  96. {{/Meikyou}}
  97. {{/Daijisen}}
  98. {{/Oukoku}}
  99. {{/Shinjirin}}
  100. </div>
  101.  
  102. <!-- If Shinjirin, Oukoku, Daijisen, Meikyou, Jitsuyou is empty, Kenkyusha shows -->
  103. <div id="glossDict" class="font-small">
  104. {{^Shinjirin}}
  105. {{^Oukoku}}
  106. {{^Daijisen}}
  107. {{^Meikyou}}
  108. {{^Jitsuyou}}
  109. {{#Kenkyusha}}
  110. {{edit:Kenkyusha}}
  111. <hr>
  112. {{/Kenkyusha}}
  113. {{/Jitsuyou}}
  114. {{/Meikyou}}
  115. {{/Daijisen}}
  116. {{/Oukoku}}
  117. {{/Shinjirin}}
  118. </div>
  119.  
  120. <div id="hintDict" class="font-small">
  121. {{^Glossary}}
  122. <details id="hintDict">
  123. <summary>Shinmeikai</summary>
  124. <p>{{edit:Shinmeikai}}</p>
  125. </details>
  126. <hr> <!-- hr line divider -->
  127. {{/Glossary}}
  128. </div>
  129.  
  130. <div id="hintDict" class="font-small">
  131. {{^Glossary}}
  132. <!-- remove <details /> if you want to always show hint -->
  133. <details id="hintDict">
  134. <summary>JMDict</summary>
  135. <p>{{edit:JMDict}}</p>
  136. </details>
  137. {{/Glossary}}
  138. </div>
  139.  
  140. <!-- If Picture is empty put spacing -->
  141. {{^Picture}}
  142. <div style="line-height: 60%">
  143. <br>
  144. </div>
  145. {{/Picture}}
  146.  
  147.  
  148. <div class="main_image {{Tags}}">
  149. {{Picture}}
  150. </div>
  151.  
  152. <div style="line-height: 10%;">
  153. <br>
  154. </div>
  155.  
  156. </div>
  157. <!-- End -->
  158.  
  159. <div class="sentence">
  160. <br>
  161. <div class="font-medium">
  162. <a href="https://jisho.org/search/{{Sentence}}">{{edit:Sentence}}</a>
  163. <!-- No link replace: {{edit:Sentence}} -->
  164. </div>
  165. </div>
  166.  
  167. <div id="extra">
  168. <div id="pitch" class="pitch-size">
  169. {{Pitch-Graph}}
  170. </div>
  171.  
  172. {{Audio}} {{SentenceAudio}}
  173. </div>
  174.  
  175.  
  176.  
  177. <!-- Script for bolding/underlining the front kanji specifically in the Sentence field -->
  178. <script>
  179. (function () {
  180. const expression = '{{front}}';
  181. const furigana = '{{Reading}}';
  182.  
  183. const kanjiRegex = /[\u4e00-\u9faf]/g;
  184. const kanjiHTML = (kanji) =>
  185. `<div class="kanjiLink"><a href="https://jpdb.io/kanji/${kanji}">${kanji}</a></div>`;
  186. let innerHTML = '';
  187. const kanjiInExpression = expression.match(kanjiRegex);
  188. if (kanjiInExpression) {
  189. for (const kanji of kanjiInExpression) {
  190. innerHTML += kanjiHTML(kanji);
  191. }
  192. document.getElementById('kanjis').innerHTML = innerHTML;
  193. }
  194.  
  195. // sentence
  196. const sentenceElement = document.querySelector('#sentence a');
  197. const sentence = sentenceElement.innerHTML;
  198.  
  199. if (!sentence.match('<strong>')) {
  200. let replace = expression;
  201. // shorten kanji expression
  202. replace = shorten(replace, sentence, 1);
  203. // try furi if kanji didnt work
  204. replace = sentence.match(replace) ? replace : shorten(furigana, sentence, 2);
  205. // try katakana
  206. replace = sentence.match(replace)
  207. ? replace
  208. : shorten(hiraganaToKatakana(furigana), sentence, 2);
  209.  
  210. sentenceElement.innerHTML = sentenceElement.innerHTML.replace(
  211. new RegExp(replace, 'g'),
  212. `<strong>${replace}</strong>`
  213. );
  214. }
  215. })();
  216. // takes an expression and shortens it until it's in the sentence
  217. function shorten(expression, sentence, minLength) {
  218. while (expression.length > minLength && !sentence.match(expression)) {
  219. expression = expression.substr(0, expression.length - 1);
  220. }
  221. return expression;
  222. }
  223.  
  224. function hiraganaToKatakana(hiragana) {
  225. return hiragana.replace(/[\u3041-\u3096]/g, function (c) {
  226. return String.fromCharCode(c.charCodeAt(0) + 0x60);
  227. });
  228. }
  229.  
  230. if ("{{Conjugated}}" != "")
  231. {document.getElementById("sentence").innerHTML=document.getElementById("sentence").innerHTML.replace("{{Conjugated}}",'<strong>{{Conjugated}}</strong>')};
  232. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement