Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {{FrontSide}}
- <br>
- <hr id=answer />
- <!-- Start -->
- <div id="usage">
- <div id="kanjis"></div>
- <div id="front" class="font-big">
- <a href="https://jpdb.io/search?q={{front}}">{{edit:Reading}}</a>
- <!-- No link Replace {{edit:Reading}} -->
- </div>
- <div style="line-height: 40%">
- <br>
- </div>
- <!-- This text is only shown if Glossary-Selected has text in it -->
- <div id="glossary" class="font-small">
- {{#Glossary-Selected}}
- {{edit:Glossary-Selected}}
- {{/Glossary-Selected}}
- </div>
- <!-- This text is only shown if Glossary-Selected is empty -->
- <div id="glossary" class="font-small">
- {{^Glossary-Selected}}
- {{edit:Glossary}}
- {{/Glossary-Selected}}
- </div>
- <!-- These Glossaries are for monolingual-transitional yomichan -->
- <!-- This is only shown if Glossary(non-bilingual) is empty -->
- <div id="glossDict" class="font-small">
- {{^Glossary}}
- {{#Shinjirin}}
- <br>
- {{Shinjirin}}
- <hr>
- {{/Shinjirin}}
- {{/Glossary}}
- </div>
- <!-- If Shinjirin is empty, Oukoku shows -->
- <div id="glossDict" class="font-small">
- {{^Shinjirin}}
- {{#Oukoku}}
- {{edit:Oukoku}}
- <hr>
- {{/Oukoku}}
- {{/Shinjirin}}
- </div>
- <!-- If both Shinjirin and Oukoku is empty, Daijisen shows -->
- <div id="glossDict" class="font-small">
- {{^Shinjirin}}
- {{^Oukoku}}
- {{#Daijisen}}
- {{edit:Daijisen}}
- <hr>
- {{/Daijisen}}
- {{/Oukoku}}
- {{/Shinjirin}}
- </div>
- <!-- If Shinjirin, Oukoku, Daijisen is empty, Meikyou shows -->
- <div id="glossDict" class="font-small">
- {{^Shinjirin}}
- {{^Oukoku}}
- {{^Daijisen}}
- {{#Meikyou}}
- {{edit:Meikyou}}
- <hr>
- {{/Meikyou}}
- {{/Daijisen}}
- {{/Oukoku}}
- {{/Shinjirin}}
- </div>
- <!-- If Shinjirin, Oukoku, Daijisen, Meikyou is empty, Jitsuyou shows -->
- <div id="glossDict" class="font-small">
- {{^Shinjirin}}
- {{^Oukoku}}
- {{^Daijisen}}
- {{^Meikyou}}
- {{#Jitsuyou}}
- {{edit:Jitsuyou}}
- <hr>
- {{/Jitsuyou}}
- {{/Meikyou}}
- {{/Daijisen}}
- {{/Oukoku}}
- {{/Shinjirin}}
- </div>
- <!-- If Shinjirin, Oukoku, Daijisen, Meikyou, Jitsuyou is empty, Kenkyusha shows -->
- <div id="glossDict" class="font-small">
- {{^Shinjirin}}
- {{^Oukoku}}
- {{^Daijisen}}
- {{^Meikyou}}
- {{^Jitsuyou}}
- {{#Kenkyusha}}
- {{edit:Kenkyusha}}
- <hr>
- {{/Kenkyusha}}
- {{/Jitsuyou}}
- {{/Meikyou}}
- {{/Daijisen}}
- {{/Oukoku}}
- {{/Shinjirin}}
- </div>
- <div id="hintDict" class="font-small">
- {{^Glossary}}
- <details id="hintDict">
- <summary>Shinmeikai</summary>
- <p>{{edit:Shinmeikai}}</p>
- </details>
- <hr> <!-- hr line divider -->
- {{/Glossary}}
- </div>
- <div id="hintDict" class="font-small">
- {{^Glossary}}
- <!-- remove <details /> if you want to always show hint -->
- <details id="hintDict">
- <summary>JMDict</summary>
- <p>{{edit:JMDict}}</p>
- </details>
- {{/Glossary}}
- </div>
- <!-- If Picture is empty put spacing -->
- {{^Picture}}
- <div style="line-height: 60%">
- <br>
- </div>
- {{/Picture}}
- <div class="main_image {{Tags}}">
- {{Picture}}
- </div>
- <div style="line-height: 10%;">
- <br>
- </div>
- </div>
- <!-- End -->
- <div class="sentence">
- <br>
- <div class="font-medium">
- <a href="https://jisho.org/search/{{Sentence}}">{{edit:Sentence}}</a>
- <!-- No link replace: {{edit:Sentence}} -->
- </div>
- </div>
- <div id="extra">
- <div id="pitch" class="pitch-size">
- {{Pitch-Graph}}
- </div>
- {{Audio}} {{SentenceAudio}}
- </div>
- <!-- Script for bolding/underlining the front kanji specifically in the Sentence field -->
- <script>
- (function () {
- const expression = '{{front}}';
- const furigana = '{{Reading}}';
- const kanjiRegex = /[\u4e00-\u9faf]/g;
- const kanjiHTML = (kanji) =>
- `<div class="kanjiLink"><a href="https://jpdb.io/kanji/${kanji}">${kanji}</a></div>`;
- let innerHTML = '';
- const kanjiInExpression = expression.match(kanjiRegex);
- if (kanjiInExpression) {
- for (const kanji of kanjiInExpression) {
- innerHTML += kanjiHTML(kanji);
- }
- document.getElementById('kanjis').innerHTML = innerHTML;
- }
- // sentence
- const sentenceElement = document.querySelector('#sentence a');
- const sentence = sentenceElement.innerHTML;
- if (!sentence.match('<strong>')) {
- let replace = expression;
- // shorten kanji expression
- replace = shorten(replace, sentence, 1);
- // try furi if kanji didnt work
- replace = sentence.match(replace) ? replace : shorten(furigana, sentence, 2);
- // try katakana
- replace = sentence.match(replace)
- ? replace
- : shorten(hiraganaToKatakana(furigana), sentence, 2);
- sentenceElement.innerHTML = sentenceElement.innerHTML.replace(
- new RegExp(replace, 'g'),
- `<strong>${replace}</strong>`
- );
- }
- })();
- // takes an expression and shortens it until it's in the sentence
- function shorten(expression, sentence, minLength) {
- while (expression.length > minLength && !sentence.match(expression)) {
- expression = expression.substr(0, expression.length - 1);
- }
- return expression;
- }
- function hiraganaToKatakana(hiragana) {
- return hiragana.replace(/[\u3041-\u3096]/g, function (c) {
- return String.fromCharCode(c.charCodeAt(0) + 0x60);
- });
- }
- if ("{{Conjugated}}" != "")
- {document.getElementById("sentence").innerHTML=document.getElementById("sentence").innerHTML.replace("{{Conjugated}}",'<strong>{{Conjugated}}</strong>')};
- </script>
Advertisement
Add Comment
Please, Sign In to add comment