From 7722306155088966bd2e09a0a7ba910ca9141fd1 Mon Sep 17 00:00:00 2001 From: lonkaars Date: Mon, 30 Jan 2023 16:56:55 +0100 Subject: added shortcuts, fixed duplicate buttons and updated readme --- yomichan-user/conf.d/shortcuts.js | 18 ++++++++++++++++++ yomichan-user/conf.d/word-export.js | 15 ++++++++++++--- yomichan-user/makefile | 2 ++ yomichan-user/readme.md | 21 +++++++++++++++++++++ 4 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 yomichan-user/conf.d/shortcuts.js (limited to 'yomichan-user') diff --git a/yomichan-user/conf.d/shortcuts.js b/yomichan-user/conf.d/shortcuts.js new file mode 100644 index 0000000..0e2d2c8 --- /dev/null +++ b/yomichan-user/conf.d/shortcuts.js @@ -0,0 +1,18 @@ +(() => { + window.addEventListener("keydown", ev => { + if (ev.altKey != true) return; + if (ev.key == "j" || ev.key == "k") { + // alt j/k for moving up/down entries + var currentEntry = document.getElementsByClassName("entry-current")[0]; + var sibling = currentEntry[ev.key == "j" ? "nextSibling" : "previousSibling"]; + if (sibling == null) return; + currentEntry.classList.remove("entry-current"); + sibling.classList.add("entry-current"); + sibling.scrollIntoView({ behavior: "smooth", block: "center" }); + } + else if (ev.key == "g") { + // g for going back to top + document.getElementById("content-scroll").scrollTo({ top: 0, behavior: "smooth" }); + } + }); +})(); diff --git a/yomichan-user/conf.d/word-export.js b/yomichan-user/conf.d/word-export.js index cbaece4..de036e4 100644 --- a/yomichan-user/conf.d/word-export.js +++ b/yomichan-user/conf.d/word-export.js @@ -1,5 +1,4 @@ -function exportWord() { - var entry = this.parentNode.parentNode.parentNode; +function exportWord(entry) { var wordElement = entry.getElementsByClassName("headword-term")[0]; var hasKanji = false; @@ -44,18 +43,23 @@ function exportWord() { function addWordCopyButtons() { var definitions = document.getElementById("dictionary-entries").getElementsByClassName("entry"); for (var definition of definitions) { + if (definition.classList.contains("patched")) continue; var actions = definition.getElementsByClassName("actions")[0]; var button = document.createElement("button"); button.classList.add("action-button"); - button.onclick = exportWord; + button.onclick = function() { exportWord(this.parentElement.parentElement.parentElement); }; var icon = document.createElement("span"); + var title = "Copy definition (Alt + C)"; icon.classList.add("icon"); icon.classList.add("color-icon"); icon.classList.add("action-icon"); icon.setAttribute("data-icon", "copy-bmp"); + icon.setAttribute("title", title); + icon.setAttribute("data-title-default", title); button.appendChild(icon); actions.insertBefore(button, actions.childNodes[0]); + definition.classList.add("patched"); } } @@ -65,4 +69,9 @@ function addWordCopyButtons() { if (ev.data.action == "renderMulti.response") addWordCopyButtons(); }); + window.addEventListener("keydown", ev => { + if (ev.key != "c") return; + if (ev.altKey != true) return; + exportWord(document.getElementsByClassName("entry-current")[0]); + }); })(); diff --git a/yomichan-user/makefile b/yomichan-user/makefile index 4e93d1a..21b41d5 100644 --- a/yomichan-user/makefile +++ b/yomichan-user/makefile @@ -8,6 +8,7 @@ user.css: conf.d/sentence-export.css user.css: conf.d/custom.css user.js: conf.d/word-export.js user.css: conf.d/word-export.css +user.js: conf.d/shortcuts.js include ../common.mk @@ -26,6 +27,7 @@ user.css: cat $^ > $@ header.txt: header.txt.m4 +header.txt: ../.git/HEAD yomichan-user.js: header.txt user.min.js cat $^ > $@ diff --git a/yomichan-user/readme.md b/yomichan-user/readme.md index 6b0e0ed..cead831 100644 --- a/yomichan-user/readme.md +++ b/yomichan-user/readme.md @@ -14,3 +14,24 @@ into [my custom anki card template](../anki-card-template/readme.md). ![new copy button in yomichan search bar](../assets/copy-button-yomichan.png) ![copied sentence in anki](../assets/copy-button-anki.png) +## word export + +adds a copy button to each definition for copying into [my custom anki card +template](../anki-card-template/readme.md). (Should) automatically insert +interpuncts, add pitch accent downfall step (if available), and marker if word +is usually written as kana only. Alt+C to copy currently +selected entry. + +![word copy button in yomichan](../assets/word-copy-yomichan.png) +![copied word in anki](../assets/word-copy-anki.png) +![copied word in anki (card display)](../assets/word-copy-anki-rendered.png) + +## shortcuts + +adds the following shortcuts to yomichan: + +|shortcut|action| +|-|-| +|Alt+J|select next definition (move down)| +|Alt+K|select previous definition (move up)| +|Alt+G|scroll back to top| -- cgit v1.2.3