allow looking up terms from within terms
resolves #167, resolves #139, resolves #75, resolves #151
This commit is contained in:
parent
7cfcfb3bf3
commit
b8df9896e6
@ -36,6 +36,8 @@
|
|||||||
|
|
||||||
<script src="/fg/js/api.js"></script>
|
<script src="/fg/js/api.js"></script>
|
||||||
<script src="/fg/js/util.js"></script>
|
<script src="/fg/js/util.js"></script>
|
||||||
|
<script src="/fg/js/document.js"></script>
|
||||||
|
<script src="/fg/js/source.js"></script>
|
||||||
<script src="/mixed/js/display.js"></script>
|
<script src="/mixed/js/display.js"></script>
|
||||||
|
|
||||||
<script src="/fg/js/float.js"></script>
|
<script src="/fg/js/float.js"></script>
|
||||||
|
@ -123,6 +123,41 @@ class DisplayFloat extends Display {
|
|||||||
parent.appendChild(this.styleNode);
|
parent.appendChild(this.styleNode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async onTermLookup(e) {
|
||||||
|
try {
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
const clickedElement = $(e.target);
|
||||||
|
const textSource = docRangeFromPoint({x: e.clientX, y: e.clientY});
|
||||||
|
textSource.setEndOffset(this.options.scanning.length);
|
||||||
|
|
||||||
|
const {definitions, length} = await apiTermsFind(textSource.text());
|
||||||
|
if (definitions.length === 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
textSource.setEndOffset(length);
|
||||||
|
|
||||||
|
const sentence = docSentenceExtract(textSource, this.options.anki.sentenceExt);
|
||||||
|
|
||||||
|
const context = {
|
||||||
|
source: {
|
||||||
|
definitions: this.definitions,
|
||||||
|
index: Display.entryIndexFind(clickedElement)
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
if (this.context) {
|
||||||
|
context.sentence = sentence;
|
||||||
|
context.url = this.context.url;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.termsShow(definitions, this.options, context);
|
||||||
|
} catch (e) {
|
||||||
|
this.onError(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
window.yomichan_display = new DisplayFloat();
|
window.yomichan_display = new DisplayFloat();
|
||||||
|
@ -265,6 +265,7 @@ class Display {
|
|||||||
$('.action-view-note').click(this.onNoteView.bind(this));
|
$('.action-view-note').click(this.onNoteView.bind(this));
|
||||||
$('.action-play-audio').click(this.onAudioPlay.bind(this));
|
$('.action-play-audio').click(this.onAudioPlay.bind(this));
|
||||||
$('.kanji-link').click(this.onKanjiLookup.bind(this));
|
$('.kanji-link').click(this.onKanjiLookup.bind(this));
|
||||||
|
$('.glossary li').click(this.onTermLookup.bind(this));
|
||||||
|
|
||||||
await this.adderButtonUpdate(['term-kanji', 'term-kana'], sequence);
|
await this.adderButtonUpdate(['term-kanji', 'term-kana'], sequence);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
Loading…
Reference in New Issue
Block a user