Advertisement
Guest User

Untitled

a guest
Jun 29th, 2017
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.34 KB | None | 0 0
  1. Front template:
  2.  
  3. <!-- Use this to assist in making changes: http://codepen.io/hssm/pen/rrrkpR -->
  4.  
  5. <div id="questionSide">
  6. <div id="vol_and_page">{{volume}} {{page}}</div>
  7. <div id="concept">{{grammatical concept}}</div>
  8. <!-- We fill this in with JavaScript -->
  9. <div id="questionBox"></div>
  10. <div id="answerBox">
  11. <!-- Anchor to this on card flip -->
  12. <div id="answer"></div>
  13. <div id="usage">{{usage}}<p id="equiv">{{equivalent}}</p></div>
  14. {{#expression_jp}}
  15. <div class="example" id="expression">
  16. <div class="example_jp">{{expression_jp}}</div>
  17. <div class="example_en">{{expression_en}}</div>
  18. </div>
  19. {{/expression_jp}} {{#example 1_jp}}
  20. <div class="example">
  21. <div class="example_jp">{{example 1_jp}}</div>
  22. <div class="example_en">{{example 1_en}}</div>
  23. </div>
  24. {{/example 1_jp}} {{#example 2_jp}}
  25. <div class="example">
  26. <div class="example_jp">{{example 2_jp}}</div>
  27. <div class="example_en">{{example 2_en}}</div>
  28. </div>
  29. {{/example 2_jp}} {{#example 3_jp}}
  30. <div class="example">
  31. <div class="example_jp">{{example 3_jp}}</div>
  32. <div class="example_en">{{example 3_en}}</div>
  33. </div>
  34. {{/example 3_jp}} {{#example 4_jp}}
  35. <div class="example">
  36. <div class="example_jp">{{example 4_jp}}</div>
  37. <div class="example_en">{{example 4_en}}</div>
  38. </div>
  39. {{/example 4_jp}} {{#example 5_jp}}
  40. <div class="example">
  41. <div class="example_jp">{{example 5_jp}}</div>
  42. <div class="example_en">{{example 5_en}}</div>
  43. </div>
  44. {{/example 5_jp}} {{#example 6_jp}}
  45. <div class="example">
  46. <div class="example_jp">{{example 6_jp}}</div>
  47. <div class="example_en">{{example 6_en}}</div>
  48. </div>
  49. {{/example 6_jp}} {{#example 7_jp}}
  50. <div class="example">
  51. <div class="example_jp">{{example 7_jp}}</div>
  52. <div class="example_en">{{example 7_en}}</div>
  53. </div>
  54. {{/example 7_jp}} {{#example 8_jp}}
  55. <div class="example">
  56. <div class="example_jp">{{example 8_jp}}</div>
  57. <div class="example_en">{{example 8_en}}</div>
  58. </div>
  59. {{/example 8_jp}} {{#example 9_jp}}
  60. <div class="example">
  61. <div class="example_jp">{{example 9_jp}}</div>
  62. <div class="example_en">{{example 9_en}}</div>
  63. </div>
  64. {{/example 9_jp}} {{#example 10_jp}}
  65. <div class="example">
  66. <div class="example_jp">{{example 10_jp}}</div>
  67. <div class="example_en">{{example 10_en}}</div>
  68. </div>
  69. {{/example 10_jp}} {{#example 11_jp}}
  70. <div class="example">
  71. <div class="example_jp">{{example 11_jp}}</div>
  72. <div class="example_en">{{example 11_en}}</div>
  73. </div>
  74. {{/example 11_jp}} {{#example 12_jp}}
  75. <div class="example">
  76. <div class="example_jp">{{example 12_jp}}</div>
  77. <div class="example_en">{{example 12_en}}</div>
  78. </div>
  79. {{/example 12_jp}} {{#example 13_jp}}
  80. <div class="example">
  81. <div class="example_jp">{{example 13_jp}}</div>
  82. <div class="example_en">{{example 13_en}}</div>
  83. </div>
  84. {{/example 13_jp}} {{#example 14_jp}}
  85. <div class="example">
  86. <div class="example_jp">{{example 14_jp}}</div>
  87. <div class="example_en">{{example 14_en}}</div>
  88. </div>
  89. {{/example 14_jp}} {{#example 15_jp}}
  90. <div class="example">
  91. <div class="example_jp">{{example 15_jp}}</div>
  92. <div class="example_en">{{example 15_en}}</div>
  93. </div>
  94. {{/example 15_jp}}
  95. <div id="bookImage">{{notes}}</div>
  96.  
  97. <script>
  98. // Make a mutable array of fields
  99. var fields = [];
  100. var nodes = document.getElementsByClassName("example");
  101. for (i = 0; i < nodes.length; i++) {
  102. fields.push(nodes[i]);
  103. }
  104. var count = Math.floor(1 + (fields.length / 4));
  105.  
  106. // Here is some garbage for ensuring the random indices are
  107. // the same for each day and different for each card.
  108. // -- --
  109. var oneDayInMs = 1000 * 60 * 60 * 24;
  110. var currentTimeInMs = new Date().getTime();
  111. var timeInDays = Math.floor(currentTimeInMs / oneDayInMs);
  112. var numberForToday = timeInDays % 9999;
  113. // This should be """"random enough""""
  114. var seed = numberForToday + fields[0].innerHTML.length;
  115. function random() {
  116. var x = Math.sin(seed++) * 10000;
  117. return x - Math.floor(x);
  118. }
  119. // -- End of garbage --
  120.  
  121. // Pluck out random examples and insert them in our question container
  122. var qBox = document.getElementById("questionBox");
  123. for (i = 0; i < count; i++) {
  124. // Min:Max = 1:field.length-1
  125. var r = Math.floor(random() * fields.length - 1) + 1;
  126. qBox.appendChild(fields[r]);
  127. fields.splice(r, 1); // Remove to avoid dupes
  128. }
  129. </script>
  130. </div>
  131. </div>
  132.  
  133.  
  134.  
  135.  
  136. Styling template:
  137.  
  138. /* Change the fonts to suit your preference. I like VL PGothic for both. */
  139. @font-face { src: url('_VLPGothic.ttf'); font-family: jpfont; }
  140. @font-face { src: url('_VLPGothic.ttf'); font-family: engfont; }
  141.  
  142. html { height: 100%; }
  143. .card {
  144. height: 100%;
  145. display: -webkit-box;
  146. -webkit-box-align: stretch;
  147. -webkit-box-pack: center;
  148. -webkit-box-orient: vertical;
  149. margin: 0;
  150. padding: 0;
  151. font-family: engfont;
  152. text-align: center;
  153. background-color: #fcfaf0;
  154. }
  155. .card.night_mode {
  156. background-color: #000;
  157. }
  158.  
  159. #vol_and_page {
  160. color: #666;
  161. font-size: 80%;
  162. position: absolute;
  163. top: 0.5em;
  164. right: 0.5em;
  165. }
  166. .night_mode #vol_and_page {
  167. color: #ccc;
  168. }
  169.  
  170. #concept {
  171. font-size: 140%;
  172. color: #6B3948;
  173. font-weight: bold;
  174. margin: 1.5em 0;
  175. }
  176. .night_mode #concept {
  177. color: #5566EE;
  178. }
  179.  
  180. .example {
  181. position: relative;
  182. padding: 1em 0;
  183. margin: 1% 3% 1% 3%;
  184. border-radius: .3em;
  185. background-color: #fffff6;
  186. }
  187. .night_mode .example {
  188. background-color: #111;
  189. }
  190.  
  191. .example .example_jp {
  192. font-size: 140%;
  193. font-family: jpfont;
  194. color: #346;
  195. }
  196. .night_mode .example .example_jp {
  197. color: #ccd;
  198. }
  199.  
  200. .example .example_en {
  201. font-size: 110%;
  202. color: #343;
  203. padding: 0.2em;
  204. visibility: hidden;
  205. }
  206. .night_mode .example_en {
  207. color: #888;
  208. }
  209. .example:hover .example_en {
  210. visibility: visible;
  211. }
  212.  
  213. /* Put a marker on the key sentence*/
  214. #expression:after {
  215. content: "KS";
  216. font-size: 60%;
  217. color: #aaaaaa;
  218. position: absolute;
  219. left: 1em;
  220. bottom: 0.5em;
  221. }
  222. .night_mode #expression:after {
  223. color: #555;
  224. }
  225.  
  226. .cloze {
  227. color: #6B3948;
  228. }
  229. .night_mode .cloze {
  230. color: #5566EE;
  231. }
  232.  
  233. #usage {
  234. padding: 3% 10%;
  235. margin: 3% 5%;
  236. color: #000;
  237. background-color: #fdffff;
  238. }
  239. .night_mode #usage {
  240. color: #efe;
  241. background-color: #151515;
  242. }
  243.  
  244. #bookImage {
  245. margin-top: 2em;
  246. text-align: center;
  247. }
  248. .night_mode #bookImage {
  249. filter: invert(1); -webkit-filter:invert(1);
  250. }
  251.  
  252. /* Make better use of space when on mobile. */
  253. @media screen and (orientation:portrait) {
  254. .mobile #content { margin: 0; }
  255. .mobile .example {
  256. font-size: 85%;
  257. margin: 1% 0.5%;
  258. }
  259. }
  260.  
  261. /* This is so the usage box isn't at the very top when the card
  262. is flipped. It looks better if it's as far down as its padding. '*/
  263. #answer {
  264. position: relative;
  265. top: -1em;
  266. }
  267.  
  268. /* Hide the answer side if we're on the question side. */
  269. :not(#answerSide) > #questionSide #answerBox {
  270. display: none;
  271. }
  272.  
  273.  
  274.  
  275.  
  276.  
  277. Rear template:
  278.  
  279. <div id="answerSide">
  280. {{FrontSide}}
  281. </div>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement