Advertisement
Xelieu

(Outdated) Bilingual Handlebar for old-JMdict {test}

Jul 1st, 2022 (edited)
265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.66 KB | None | 0 0
  1. {{#*inline "test"}}
  2. {{~#scope~}}
  3. {{~#set "first-dictionary" null}}{{/set~}}
  4. {{~#if modeKanji~}}
  5. ...
  6. {{~else if (op "||" group merge)~}}
  7. {{~#each definition.definitions~}}
  8. {{~#if (op "===" null (get "first-dictionary"))~}}
  9. {{~#set "first-dictionary" dictionary~}}{{~/set~}}
  10. {{~/if~}}
  11. {{~#if (op "===" dictionary (get "first-dictionary"))~}}
  12. {{> glossary-single brief=../brief compactGlossaries=../compactGlossaries noDictionaryTag=true data=../.}}
  13. {{~/if~}}
  14. {{~/each~}}
  15. {{~else~}}
  16. {{~> glossary-single definition brief=brief compactGlossaries=compactGlossaries noDictionaryTag=true data=.~}}
  17. {{~/if~}}
  18. {{~/scope~}}
  19. {{/inline}}
  20.  
  21. {{#*inline "glossary-single"}}
  22. {{~#unless brief~}}
  23. {{~#scope~}}
  24. {{~#set "any" false}}{{/set~}}
  25. {{~#each definitionTags~}}
  26. {{~#if (op "||" (op "!" @root.compactTags) (op "!" redundant))~}}
  27. {{~#if (get "any")}}, {{else}}<i>({{/if~}}
  28. {{name}}
  29. {{~#set "any" true}}{{/set~}}
  30. {{~/if~}}
  31. {{~/each~}}
  32. {{~#unless noDictionaryTag~}}
  33. {{~#if (op "||" (op "!" @root.compactTags) (op "!==" dictionary (get "previousDictionary")))~}}
  34. {{~#if (get "any")}}, {{else}}<i>({{/if~}}
  35. {{dictionary}}
  36. {{~#set "any" true}}{{/set~}}
  37. {{~/if~}}
  38. {{~/unless~}}
  39. {{~#if (get "any")}})</i> {{/if~}}
  40. {{~/scope~}}
  41. {{~#if only~}}({{#each only}}{{.}}{{#unless @last}}, {{/unless}}{{/each}} only) {{/if~}}
  42. {{~/unless~}}
  43. {{~#if (op "<=" glossary.length 1)~}}
  44. {{#regexReplace "&#x;" "'"}}
  45. {{#regexReplace "(.*)\." "$1"}}
  46. {{#regexReplace "<br>(.*)" "$1"}}
  47. {{#regexReplace "<br><br>" "<br>"}}
  48. {{#regexReplace "(((( |)〘[^〘]*〙)+( |))|(( |)(→|↔)([^0-9]+)([0-9]|)( |))|(( |)[0-9]+( |))| \.\.\.)" ""}}
  49. {{#each glossary}}{{#formatGlossary ../dictionary}}{{#regexReplace "^[^\n].*\n" ""}}{{{.}}}{{/regexReplace}}{{/formatGlossary}}{{/each}}
  50. {{/regexReplace}}
  51. {{/regexReplace}}
  52. {{/regexReplace}}
  53. {{/regexReplace}}
  54. {{/regexReplace}}
  55.  
  56. {{~else if @root.compactGlossaries~}}
  57. {{#regexReplace "&#x;" "'"}}
  58. {{#regexReplace "(.*)\." "$1"}}
  59. {{#regexReplace "<br>(.*)" "$1"}}
  60. {{#regexReplace "<br><br>" "<br>"}}
  61. {{#regexReplace "(((( |)〘[^〘]*〙)+( |))|(( |)(→|↔)([^0-9]+)([0-9]|)( |))|(( |)[0-9]+( |))| \.\.\.)" ""}}
  62. {{#each glossary}}{{#formatGlossary ../dictionary}}{{#regexReplace "^[^\n].*\n" ""}}{{{.}}}{{/regexReplace}}{{/formatGlossary}}{{#unless @last}} | {{/unless}}{{/each}}
  63. {{/regexReplace}}
  64. {{/regexReplace}}
  65. {{/regexReplace}}
  66. {{/regexReplace}}
  67. {{/regexReplace}}
  68. {{~else~}}
  69. <ul>{{#each glossary}}<li>{{#formatGlossary ../dictionary}}{{{.}}}{{/formatGlossary}}</li>{{/each}}</ul>
  70. {{~/if~}}
  71. {{~#set "previousDictionary" dictionary~}}{{~/set~}}
  72. {{/inline}}
  73.  
  74. {{#*inline "audio"}}
  75. {{~#if (hasMedia "audio")~}}
  76. [sound:{{#getMedia "audio"}}{{/getMedia}}]
  77. {{~/if~}}
  78. {{/inline}}
  79.  
  80. {{#*inline "character"}}
  81. {{~definition.character~}}
  82. {{/inline}}
  83.  
  84. {{#*inline "dictionary"}}
  85. {{~definition.dictionary~}}
  86. {{/inline}}
  87.  
  88. {{#*inline "expression"}}
  89. {{~#if merge~}}
  90. {{~#if modeTermKana~}}
  91. {{~#each definition.reading~}}
  92. {{{.}}}
  93. {{~#unless @last}}、{{/unless~}}
  94. {{~else~}}
  95. {{~#each definition.expression~}}
  96. {{{.}}}
  97. {{~#unless @last}}、{{/unless~}}
  98. {{~/each~}}
  99. {{~/each~}}
  100. {{~else~}}
  101. {{~#each definition.expression~}}
  102. {{{.}}}
  103. {{~#unless @last}}、{{/unless~}}
  104. {{~/each~}}
  105. {{~/if~}}
  106. {{~else~}}
  107. {{~#if modeTermKana~}}
  108. {{~#if definition.reading~}}
  109. {{definition.reading}}
  110. {{~else~}}
  111. {{definition.expression}}
  112. {{~/if~}}
  113. {{~else~}}
  114. {{definition.expression}}
  115. {{~/if~}}
  116. {{~/if~}}
  117. {{/inline}}
  118.  
  119. {{#*inline "furigana"}}
  120. {{~#if merge~}}
  121. {{~#each definition.expressions~}}
  122. <span class="expression-{{termFrequency}}">{{~#furigana}}{{{.}}}{{/furigana~}}</span>
  123. {{~#unless @last}}、{{/unless~}}
  124. {{~/each~}}
  125. {{~else~}}
  126. {{#furigana}}{{{definition}}}{{/furigana}}
  127. {{~/if~}}
  128. {{/inline}}
  129.  
  130. {{#*inline "furigana-plain"}}
  131. {{~#if merge~}}
  132. {{~#each definition.expressions~}}
  133. <span class="expression-{{termFrequency}}">{{~#furiganaPlain}}{{{.}}}{{/furiganaPlain~}}</span>
  134. {{~#unless @last}}、{{/unless~}}
  135. {{~/each~}}
  136. {{~else~}}
  137. {{#furiganaPlain}}{{{definition}}}{{/furiganaPlain}}
  138. {{~/if~}}
  139. {{/inline}}
  140.  
  141. {{~#*inline "glossary"~}}
  142. <div style="text-align: left;">
  143. {{~#scope~}}
  144. {{~#if (op "===" definition.type "term")~}}
  145. {{~> glossary-single definition brief=brief noDictionaryTag=noDictionaryTag ~}}
  146. {{~else if (op "||" (op "===" definition.type "termGrouped") (op "===" definition.type "termMerged"))~}}
  147. {{~#if (op ">" definition.definitions.length 1)~}}
  148. <ol>{{~#each definition.definitions~}}<li>{{~> glossary-single . brief=../brief noDictionaryTag=../noDictionaryTag ~}}</li>{{~/each~}}</ol>
  149. {{~else~}}
  150. {{~#each definition.definitions~}}{{~> glossary-single . brief=../brief noDictionaryTag=../noDictionaryTag ~}}{{~/each~}}
  151. {{~/if~}}
  152. {{~else if (op "===" definition.type "kanji")~}}
  153. {{~#if (op ">" definition.glossary.length 1)~}}
  154. <ol>{{#each definition.glossary}}<li>{{.}}</li>{{/each}}</ol>
  155. {{~else~}}
  156. {{~#each definition.glossary~}}{{.}}{{~/each~}}
  157. {{~/if~}}
  158. {{~/if~}}
  159. {{~/scope~}}
  160. </div>
  161. {{~/inline~}}
  162.  
  163. {{#*inline "glossary-no-dictionary"}}
  164. {{~> glossary noDictionaryTag=true ~}}
  165. {{/inline}}
  166.  
  167. {{#*inline "glossary-brief"}}
  168. {{~> glossary brief=true ~}}
  169. {{/inline}}
  170.  
  171. {{#*inline "kunyomi"}}
  172. {{~#each definition.kunyomi}}{{.}}{{#unless @last}}, {{/unless}}{{/each~}}
  173. {{/inline}}
  174.  
  175. {{#*inline "onyomi"}}
  176. {{~#each definition.onyomi}}{{.}}{{#unless @last}}, {{/unless}}{{/each~}}
  177. {{/inline}}
  178.  
  179. {{#*inline "reading"}}
  180. {{~#unless modeTermKana~}}
  181. {{~#if merge~}}
  182. {{~#each definition.reading~}}
  183. {{{.}}}
  184. {{~#unless @last}}、{{/unless~}}
  185. {{~/each~}}
  186. {{~else~}}
  187. {{~definition.reading~}}
  188. {{~/if~}}
  189. {{~/unless~}}
  190. {{/inline}}
  191.  
  192. {{#*inline "sentence"}}
  193. {{~#if definition.cloze}}{{definition.cloze.sentence}}{{/if~}}
  194. {{/inline}}
  195.  
  196. {{#*inline "cloze-prefix"}}
  197. {{~#if definition.cloze}}{{definition.cloze.prefix}}{{/if~}}
  198. {{/inline}}
  199.  
  200. {{#*inline "cloze-body"}}
  201. {{~#if definition.cloze}}{{definition.cloze.body}}{{/if~}}
  202. {{/inline}}
  203.  
  204. {{#*inline "cloze-suffix"}}
  205. {{~#if definition.cloze}}{{definition.cloze.suffix}}{{/if~}}
  206. {{/inline}}
  207.  
  208. {{#*inline "tags"}}
  209. {{~#mergeTags definition group merge}}{{this}}{{/mergeTags~}}
  210. {{/inline}}
  211.  
  212. {{#*inline "url"}}
  213. <a href="{{definition.url}}">{{definition.url}}</a>
  214. {{/inline}}
  215.  
  216. {{#*inline "screenshot"}}
  217. {{~#if (hasMedia "screenshot")~}}
  218. <img src="{{#getMedia "screenshot"}}{{/getMedia}}" />
  219. {{~/if~}}
  220. {{/inline}}
  221.  
  222. {{#*inline "document-title"}}
  223. {{~context.document.title~}}
  224. {{/inline}}
  225.  
  226. {{! Pitch Accents }}
  227. {{#*inline "pitch-accent-item"}}
  228. {{~#pronunciation format=format reading=reading downstepPosition=position nasalPositions=nasalPositions devoicePositions=devoicePositions~}}{{~/pronunciation~}}
  229. {{/inline}}
  230.  
  231. {{#*inline "pitch-accent-item-disambiguation"}}
  232. {{~#scope~}}
  233. {{~#set "exclusive" (spread exclusiveExpressions exclusiveReadings)}}{{/set~}}
  234. {{~#if (op ">" (property (get "exclusive") "length") 0)~}}
  235. {{~#set "separator" ""~}}{{/set~}}
  236. <em>({{#each (get "exclusive")~}}
  237. {{~#get "separator"}}{{/get~}}{{{.}}}
  238. {{~/each}} only) </em>
  239. {{~/if~}}
  240. {{~/scope~}}
  241. {{/inline}}
  242.  
  243. {{#*inline "pitch-accent-list"}}
  244. {{~#if (op ">" pitchCount 0)~}}
  245. {{~#if (op ">" pitchCount 1)~}}{{~/if~}}
  246. {{~#each pitches~}}
  247. {{~#each pitches~}}
  248. {{~#if (op ">" ../../pitchCount 1)~}}{{~/if~}}
  249. {{~> pitch-accent-item-disambiguation~}}
  250. {{~> pitch-accent-item format=../../format~}}
  251. {{~#if (op ">" ../../pitchCount 1)~}}{{~/if~}}
  252. {{~/each~}}
  253. {{~/each~}}
  254. {{~#if (op ">" pitchCount 1)~}}{{~/if~}}
  255. {{~else~}}
  256. {{~/if~}}
  257. {{/inline}}
  258.  
  259. {{#*inline "pitch-accents"}}
  260. {{~> pitch-accent-list format='text'~}}
  261. {{/inline}}
  262.  
  263. {{#*inline "pitch-accent-graphs"}}
  264. {{~> pitch-accent-list format='graph'~}}
  265. {{/inline}}
  266.  
  267. {{#*inline "pitch-accent-positions"}}
  268. {{#regexReplace "<(.|\n)*?>" ""}}{{~> pitch-accent-list format='position'~}}{{/regexReplace}}
  269. {{/inline}}
  270. {{! End Pitch Accents }}
  271.  
  272. {{#*inline "clipboard-image"}}
  273. {{~#if (hasMedia "clipboardImage")~}}
  274. <img src="{{#getMedia "clipboardImage"}}{{/getMedia}}" />
  275. {{~/if~}}
  276. {{/inline}}
  277.  
  278. {{#*inline "clipboard-text"}}
  279. {{~#if (hasMedia "clipboardText")}}{{#regexReplace "\n(?!$)" "<br>"}}{{#getMedia "clipboardText"}}{{/getMedia}}{{/regexReplace}}{{/if~}}
  280. {{/inline}}
  281.  
  282. {{#*inline "conjugation"}}
  283. {{~#if definition.reasons~}}
  284. {{~#each definition.reasons~}}
  285. {{~#if (op ">" @index 0)}} « {{/if~}}
  286. {{.}}
  287. {{~/each~}}
  288. {{~/if~}}
  289. {{/inline}}
  290.  
  291. {{#*inline "frequencies"}}
  292. {{~#if (op ">" definition.frequencies.length 0)~}}
  293. <ul style="text-align: left;">
  294. {{~#each definition.frequencies~}}
  295. <li>
  296. {{~#if (op "!==" ../definition.type "kanji")~}}
  297. {{~#if (op "||" (op ">" ../uniqueExpressions.length 1) (op ">" ../uniqueReadings.length 1))~}}(
  298. {{~#furigana expression reading~}}{{~/furigana~}}
  299. ) {{/if~}}
  300. {{~/if~}}
  301. {{~dictionary}}: {{frequency~}}
  302. </li>
  303. {{~/each~}}
  304. </ul>
  305. {{~/if~}}
  306. {{/inline}}
  307.  
  308. {{#*inline "stroke-count"}}
  309. {{~#scope~}}
  310. {{~#set "found" false}}{{/set~}}
  311. {{~#each definition.stats.misc~}}
  312. {{~#if (op "===" name "strokes")~}}
  313. {{~#set "found" true}}{{/set~}}
  314. Stroke count: {{value}}
  315. {{~/if~}}
  316. {{~/each~}}
  317. {{~#if (op "!" (get "found"))~}}
  318. Stroke count: Unknown
  319. {{~/if~}}
  320. {{~/scope~}}
  321. {{/inline}}
  322.  
  323. {{#*inline "part-of-speech-pretty"}}
  324. {{~#if (op "===" . "v1")~}}Ichidan verb
  325. {{~else if (op "===" . "v5")~}}Godan verb
  326. {{~else if (op "===" . "vk")~}}Kuru verb
  327. {{~else if (op "===" . "vs")~}}Suru verb
  328. {{~else if (op "===" . "vz")~}}Zuru verb
  329. {{~else if (op "===" . "adj-i")~}}I-adjective
  330. {{~else if (op "===" . "n")~}}Noun
  331. {{~else~}}{{.}}
  332. {{~/if~}}
  333. {{/inline}}
  334.  
  335. {{#*inline "part-of-speech"}}
  336. {{~#scope~}}
  337. {{~#if (op "!==" definition.type "kanji")~}}
  338. {{~#set "first" true}}{{/set~}}
  339. {{~#each definition.expressions~}}
  340. {{~#each wordClasses~}}
  341. {{~#unless (get (concat "used_" .))~}}
  342. {{~> part-of-speech-pretty . ~}}
  343. {{~#unless (get "first")}}, {{/unless~}}
  344. {{~#set (concat "used_" .) true~}}{{~/set~}}
  345. {{~#set "first" false~}}{{~/set~}}
  346. {{~/unless~}}
  347. {{~/each~}}
  348. {{~/each~}}
  349. {{~#if (get "first")~}}Unknown{{~/if~}}
  350. {{~/if~}}
  351. {{~/scope~}}
  352. {{/inline}}
  353.  
  354. {{#*inline "search-query"}}
  355. {{~#multiLine}}{{context.fullQuery}}{{/multiLine~}}
  356. {{/inline}}
  357.  
  358. {{#*inline "selection-text"}}
  359. {{~#if (hasMedia "selectionText")}}{{#getMedia "selectionText"}}{{/getMedia}}{{/if~}}
  360. {{/inline}}
  361.  
  362. {{#*inline "sentence-furigana"}}
  363. {{~#if definition.cloze~}}
  364. {{~#if (hasMedia "textFurigana" definition.cloze.sentence)~}}
  365. {{#getMedia "textFurigana" definition.cloze.sentence escape=false}}{{/getMedia}}
  366. {{~else~}}
  367. {{definition.cloze.sentence}}
  368. {{~/if~}}
  369. {{~/if~}}
  370. {{/inline}}
  371.  
  372. {{~> (lookup . "marker") ~}}
  373.  
  374. {{#*inline "freq"}}
  375. {{~#scope~}}
  376. {{~#set "ignored-freq-dict-regex"~}} ^(JLPT_Level)$ {{~/set~}}
  377. {{~#set "min-freq" 0~}}{{~/set~}}
  378. {{~#each definition.frequencies~}}
  379.  
  380. {{~#set "rx-match-ignored-freq" ~}}
  381. {{~#regexMatch (get "ignored-freq-dict-regex") "gu"~}}{{this.dictionary}}{{~/regexMatch~}}
  382. {{/set~}}
  383.  
  384. {{~#if
  385. (op "&&"
  386. (op "||"
  387. (op "===" (get "min-freq") 0)
  388. (op ">" (op "+" (get "min-freq")) (op "+" (regexMatch "\d" "g" this.frequency)))
  389. )
  390. (op "===" (get "rx-match-ignored-freq") "")
  391. )
  392. ~}}
  393. {{~#set "min-freq" (op "+" (regexMatch "\d" "g" this.frequency))}}{{/set~}}
  394. {{~/if~}}
  395. {{~/each~}}
  396. {{~get "min-freq"~}}
  397. {{~/scope~}}
  398. {{/inline}}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement