Commit Graph

513 Commits

Author SHA1 Message Date
toasted-nutbread
d4296a34cc Fix scroll position when header is visible 2020-01-16 22:39:26 -05:00
toasted-nutbread
7686e56c00 Move display templates into a single file 2020-01-16 22:39:26 -05:00
toasted-nutbread
d512c111f6 Update how content display is changed 2020-01-16 22:39:26 -05:00
toasted-nutbread
97f7df3302 Don't use document fragment 2020-01-16 22:39:26 -05:00
toasted-nutbread
7a6f85879e Update content assignment to use unique token 2020-01-16 22:39:26 -05:00
toasted-nutbread
dbbcfa5739 Only use Display.setContent 2020-01-16 22:39:26 -05:00
toasted-nutbread
c53947a94a Only instantiate the first child 2020-01-16 22:39:26 -05:00
toasted-nutbread
24832be636 Update how spinner visibility is controlled 2020-01-16 22:39:26 -05:00
toasted-nutbread
a50e2fb0f1 Fix furigana segmentation 2020-01-16 22:39:26 -05:00
toasted-nutbread
56ee7f8df4 Update display content generation to use HTML templates 2020-01-16 22:39:26 -05:00
siikamiika
8292be92d8 use TextScanner in QueryParser 2020-01-16 23:22:38 +02:00
toasted-nutbread
0d7ccf25b8 Update license info URL 2020-01-01 12:00:31 -05:00
toasted-nutbread
899ef167d1 Update copyright 2020-01-01 12:00:00 -05:00
toasted-nutbread
d2da4f7e62 Add apiOptionsSchemaGet 2019-12-29 12:33:15 -05:00
toasted-nutbread
2519f99f54 Update how orphan state is observed 2019-12-20 13:44:33 -05:00
toasted-nutbread
2a95f1420f Move optionsUpdate message handler into Yomichan class 2019-12-20 13:36:54 -05:00
toasted-nutbread
e14bd75a4f Change how getUrl message is handled 2019-12-20 13:15:26 -05:00
toasted-nutbread
cab2a39981 Simplify options passed to docRangeFromPoint 2019-12-17 20:56:32 -05:00
toasted-nutbread
ce51fe7eca Use a single api.js 2019-12-13 23:11:56 -05:00
toasted-nutbread
4177b63726 Remove redundant getUrl handlers 2019-12-13 23:11:56 -05:00
toasted-nutbread
a9c4ce724c Update display key handlers 2019-12-13 23:11:56 -05:00
toasted-nutbread
a2263e5729 Update display message handlers 2019-12-13 23:11:56 -05:00
toasted-nutbread
47feb95842 Add timer class for debugging 2019-12-10 19:40:40 -05:00
toasted-nutbread
bb334acab6 Use substring instead of slice 2019-12-08 16:01:29 -05:00
toasted-nutbread
1659340898 Add support for prefix wildcards 2019-12-07 14:34:35 -05:00
toasted-nutbread
20679255b0 Add class for dispatching custom events 2019-12-07 13:59:47 -05:00
siikamiika
e99c8c40a1 navigate history with wheel only over buttons 2019-12-07 17:41:14 +02:00
siikamiika
f6d0503604 simplify with inheritance 2019-12-06 21:39:29 +02:00
siikamiika
595636c40b move text selection to TextScanner 2019-12-05 22:48:05 +02:00
siikamiika
e5be42d3de scan decoupling 2019-12-05 22:12:43 +02:00
siikamiika
02a34bb4bc initial text scanner extract 2019-12-05 03:58:35 +02:00
siikamiika
d8935b6aa9 fix serialization errors on Chrome 2019-12-04 21:49:51 +02:00
Alex Yatskov
a24146538c
Merge pull request #291 from toasted-nutbread/cloze-fixes
Cloze fixes
2019-12-03 14:19:33 -08:00
siikamiika
403b86675d fix entry scroll index 0 bug
Introduced in 4e7d08ff2c because the
range-limited index value isn't kept in the same scope.
2019-12-01 15:03:37 +02:00
siikamiika
abe70e3b8c always update current position on term lookup 2019-12-01 06:08:05 +02:00
siikamiika
5929018fac move Display context to a new class 2019-12-01 05:38:23 +02:00
siikamiika
be23ad7213 remove dead code 2019-11-30 04:59:36 +02:00
siikamiika
ff9510356e rewrite history as a doubly linked list 2019-11-30 04:49:37 +02:00
siikamiika
8a94d186c3 fix context type inconsistencies 2019-11-29 01:36:14 +02:00
siikamiika
1dd88763de clear Display history on new lookup 2019-11-28 18:24:24 +02:00
siikamiika
f1ecb4cd39 correct X scroll direction for history navigation 2019-11-28 15:54:55 +02:00
siikamiika
86ff831600 preventDefault correctly 2019-11-28 15:24:00 +02:00
siikamiika
beea89a421 store popped context history in Display 2019-11-28 15:20:18 +02:00
siikamiika
4e7d08ff2c set current entry even when disableScroll is true 2019-11-28 13:22:47 +02:00
siikamiika
e37ffb6cf5 fix scroll issues in Display.entryScrollIntoView
- Save scroll context before scrolling to top
- Explicit null check for scroll param to handle scrolling to y=0
correctly
2019-11-28 12:38:25 +02:00
toasted-nutbread
5a1046bc90 Update arrow-parens to always 2019-11-26 22:06:27 -05:00
toasted-nutbread
acb70f126c Update unused arguments 2019-11-26 22:06:27 -05:00
toasted-nutbread
527595f79b Remove unnecessary escapes from regex literals 2019-11-26 22:06:27 -05:00
toasted-nutbread
943350a1f6 Use single quotes 2019-11-26 22:06:27 -05:00
toasted-nutbread
0aed27b66d Replace hasOwnProperty with simplified hasOwn function 2019-11-26 22:06:27 -05:00
toasted-nutbread
4110a848f5 Move additional utility functions to DOM 2019-11-26 18:59:52 -05:00
toasted-nutbread
96aad50340 Create DOM utility file 2019-11-26 18:59:52 -05:00
siikamiika
c2ff25b0ec use fallback for ambiguous furigana
fixes #281, fixes #94
2019-11-27 01:20:04 +02:00
toasted-nutbread
50604b25e6 Organize core.js 2019-11-26 17:38:05 -05:00
toasted-nutbread
099847729c utilIsObject => isObject, move to core.js 2019-11-26 17:33:09 -05:00
toasted-nutbread
7e94fca7c7 Rename extension.js to core.js to better reflect its use 2019-11-26 17:29:52 -05:00
toasted-nutbread
3a7ef6c560 Simplify clozeBuild 2019-11-26 12:35:17 -05:00
toasted-nutbread
afddec66eb Update cloze.body to use original sentence text 2019-11-26 12:35:17 -05:00
toasted-nutbread
befee9ceca Pass kanji character to clozeBuild 2019-11-26 12:35:17 -05:00
toasted-nutbread
cb9f9b585a Update how source terms are navigated 2019-11-26 12:31:20 -05:00
toasted-nutbread
c7cb1b3d9e Require context for setContentTerms and setContentKanji 2019-11-26 12:31:17 -05:00
siikamiika
3423ed7d67
Merge pull request #279 from siikamiika/query-parser-1
Search page query parser
2019-11-26 18:31:35 +02:00
toasted-nutbread
cf18e3b42e Replace string.substr and string.slice with string.substring
Improves semantic clarity, and it's recommended to not use substr.
2019-11-24 11:02:52 -05:00
siikamiika
cc8221c6ea add reading modes 2019-11-23 17:50:46 +02:00
siikamiika
84f30113e4 give names to complex slices 2019-11-23 17:50:46 +02:00
siikamiika
1700318988 remove unneeded feature
Unidic actually has a field for the base form of the input
2019-11-23 17:45:44 +02:00
siikamiika
41020289ab add mecab support 2019-11-23 17:45:44 +02:00
siikamiika
408aa73cce fix default params for term clicking 2019-11-23 17:43:30 +02:00
siikamiika
c35a05cd62 add kana to text 2019-11-23 17:40:52 +02:00
siikamiika
f63e8e4be0 add simple query parser 2019-11-23 16:56:10 +02:00
Alex Yatskov
b1659522b3
Merge pull request #274 from toasted-nutbread/lookup-wildcards
Lookup wildcards
2019-11-13 18:51:50 -08:00
siikamiika
29c38b06b2 only paste Japanese text from clipboard 2019-11-13 13:51:47 +02:00
toasted-nutbread
3a225c3f91 Add details field to apiTermsFind 2019-11-10 14:02:43 -05:00
toasted-nutbread
d9b4404075 Create functions for the cases of isMouseButton
jshint was showing a warning that there was no break statement
after the first case, which there doesn't need to be.

The most straightforward way to fix this without using the unclear
// jshint ignore:line
is to just have two functions.

This change also updates invocations of isMouseButton to use
the exact case function, as this will remove the need to check
the case of mosueEvent.type. This was done because onMouseMove
is invoked at a high frequency.
2019-11-10 14:00:44 -05:00
toasted-nutbread
dad685dba4 Fix overwriting const value 2019-11-10 13:56:06 -05:00
toasted-nutbread
d6cdd693c8 Fix several warnings about name conflicts 2019-11-10 13:55:37 -05:00
toasted-nutbread
6f53030469 Use for of loop instead of forEach 2019-11-10 12:25:28 -05:00
sabs
fd17a0fccd Remove Download check when resolving Audio data
There is a bug (seemingly unreported) in Yomichan where an Anki card
will not contain any audio if the JapanesePod101 audio source trumps
a secondary audio source (e.g. JapanesePod101-alternate) where
the jpod101 source can't find the word requested.

For example, そして has an audio entry in the alternate source but not
the standard source.

(Alternatively, there may be a bug in the jpod101 audioUrlBuilder,
because I've only noticed this problem with hiragana-only expressions.
JPod101 may not host those on the same url scheme any more.  I'm not
sure how to fix that, though, and the bug I'm addressing here does
still persist).

The reason this happens is that audioGetFromUrl uses downloaded audio
to effectively check for a 404 (by examining the audio duration), but
that check doesn't happen when an Anki card is being created (i.e.
"download" is set, which I've changed to "willDownload" here).

This change removes that check, but retains the will-download intent
information to prevent attempts to download tts data, which AnkiConnect
cannot do. I've also added a short explanation as to why the download
check happens where it does.

I think the unused audio object will get garbage collected since it's
not referenced again, but I've explicitly unset it as well.
2019-11-09 20:58:09 -05:00
toasted-nutbread
4d7940e8e4 Optimize dictFieldFormat 2019-11-08 22:25:03 -05:00
siikamiika
83460bcdad refactoring and optimization 2019-11-04 02:15:33 +02:00
siikamiika
f4a987912a prevent accidental lookup on glossary text select 2019-11-03 18:56:22 +02:00
toasted-nutbread
1039536cfb Create promise version of setTimeout 2019-10-28 17:03:42 -04:00
siikamiika
a716a52cab make non-hotkey keys focus input on search page
The issue was that scanning on search page introduced a way to lose
focus of the query input, and the new feature that the search page
hotkey focuses an existing search page instead of opening a new one made
it more obvious.

Now every key that isn't a hotkey focuses the query input, and typing
text into the box scrolls it into view in case it wasn't there when
searching.

There is an accessibility issue that this can cause, because now tab
also focuses the query input before it focuses the next element. I
didn't implement a workaround for that because it would have been more
complicated than this simple fix.

Fixes #263
2019-10-26 01:26:56 +03:00
toasted-nutbread
dbec4bffda Make the search button reuse an open search tab if it exists 2019-10-19 22:28:23 -04:00
toasted-nutbread
598cd32946 Update *show* APIs to unified showContent and setContent 2019-10-17 18:40:43 -04:00
toasted-nutbread
7bae3824e7 Add support for text-to-speech playback 2019-10-13 12:21:19 -04:00
toasted-nutbread
54d4c65854 Rename audioGetFromSources's createAudioObject argument to download 2019-10-13 12:20:56 -04:00
toasted-nutbread
21a2730cde Add option for text-to-speech 2019-10-13 12:20:56 -04:00
toasted-nutbread
883226b045 Update how custom CSS is applied 2019-10-12 19:00:24 -04:00
toasted-nutbread
c90bc75eb8 Create themes 2019-10-12 19:00:24 -04:00
toasted-nutbread
537d2ef532 Remove Display.dependencies 2019-10-12 15:31:29 -04:00
toasted-nutbread
6da7683552 Don't pass options around for calls to termsShow, kanjiShow, etc. 2019-10-12 15:31:29 -04:00
toasted-nutbread
a5b208fb89 Check if objects are properly initialized before showing content 2019-10-12 15:31:29 -04:00
toasted-nutbread
3e249e19ac Update Display initialization process 2019-10-12 15:31:29 -04:00
toasted-nutbread
89a8494208 Add function for (de)activating event listeners in Display 2019-10-12 11:25:24 -04:00
toasted-nutbread
50252ec627 Update title with info about what the audio source was 2019-10-10 21:30:38 -04:00
toasted-nutbread
1d516b3b24 Implement audio fallbacks 2019-10-10 21:30:38 -04:00
toasted-nutbread
8ae1da4277 Update audio options format 2019-10-10 21:30:35 -04:00
toasted-nutbread
22b218d172 Pass optionsContext to audioBuildUrl handlers 2019-10-09 22:03:56 -04:00
toasted-nutbread
7ce54864f3 Show the viewer button for anki notes which already exist 2019-10-09 20:31:09 -04:00
toasted-nutbread
c5d6b9452d Create utility function for logging errors 2019-10-08 22:38:05 -04:00
toasted-nutbread
6a6e200ef9 Update rejections to use Error 2019-10-08 21:44:25 -04:00
toasted-nutbread
88de427184 Throw Error instead of string 2019-10-08 21:32:08 -04:00
toasted-nutbread
9d488e1916 Validate that key is a string
On Chrome, when clicking an autocomplete dropdown menu option, a keydown event is generated which is not of type KeyboardEvent.
2019-10-08 19:32:44 -04:00
toasted-nutbread
cd6d4e7ee1 Update how popup visibility works 2019-10-05 21:59:37 -04:00
toasted-nutbread
2255fadf52 Rename Popup.setVisible to setVisibleOverride 2019-10-05 21:40:10 -04:00
toasted-nutbread
7380ada1f1 Simplify onWheel handler 2019-10-02 21:12:24 -04:00
toasted-nutbread
a628610cbd Use KeyboardEvent.key for onKeyDown handlers 2019-10-02 19:49:52 -04:00
Alex Yatskov
3c3a2c9474
Merge pull request #230 from toasted-nutbread/edge-fixes
Use toIterable for cross-window origin objects
2019-09-30 19:54:27 -07:00
toasted-nutbread
8b7558a757 Use toIterable for cross-window origin objects 2019-09-29 15:26:57 -04:00
toasted-nutbread
e358c94882 Clean up event listeners 2019-09-27 21:41:00 -04:00
toasted-nutbread
8db830b468 Change how current entry is indicated 2019-09-27 21:41:00 -04:00
toasted-nutbread
3ca84e3a85 Remove jQuery calls from adderButtonFind and viewerButtonFind 2019-09-27 21:41:00 -04:00
toasted-nutbread
946e577e42 Implement custom window scroll 2019-09-27 21:41:00 -04:00
toasted-nutbread
9fc69395c5 Use raw event listeners 2019-09-27 21:41:00 -04:00
toasted-nutbread
95a7fd81f5 Use raw element references for container and spinner 2019-09-27 21:41:00 -04:00
toasted-nutbread
355fb29c3b Use entryIndexFind without jQuery 2019-09-27 21:40:59 -04:00
odehjoseph
62b95a656f Add option to enable Alt+B lookup 2019-09-26 21:33:33 -07:00
toasted-nutbread
6d3037f3d6 Remove destructuring from searchAt, containsPoint, docRangeFromPoint 2019-09-14 14:27:25 -04:00
toasted-nutbread
bc8793eb56 Add a context object for all calls to fetch options 2019-09-10 20:09:33 -04:00
toasted-nutbread
171e3f1097 Add option for enabling deep scanning 2019-09-02 11:43:48 -04:00
toasted-nutbread
ad0dca7bb1 Make the imposter element tracked using TextSourceRange 2019-08-31 14:57:50 -04:00
Alex Yatskov
cd75f5b97d
Merge pull request #188 from toasted-nutbread/edge-support
Add support for Edge browser
2019-08-28 19:41:30 -07:00
toasted-nutbread
a39a1fa9e4 Add support for Edge browser 2019-08-26 21:58:03 -04:00
Alex Yatskov
9ec711b780
Merge pull request #176 from toasted-nutbread/selection-touch-scan-disable
Don't scan when touching the current selection
2019-08-17 14:12:11 -07:00
Alex Yatskov
8ebac935e8
Merge pull request #182 from toasted-nutbread/anki-screenshot
Anki screenshot
2019-08-17 09:05:33 -07:00
toasted-nutbread
c22f8252b9 Handle case where docRangeFromPoint returns null 2019-08-16 17:44:35 -04:00
toasted-nutbread
cd1f367798 Focus if context is falsy or focus field isn't false 2019-08-16 17:36:55 -04:00
toasted-nutbread
3a5b06bd10 Add screenshot settings 2019-08-15 19:56:14 -04:00
toasted-nutbread
0f0adf750c Add ability to save screenshot to anki cards 2019-08-15 19:39:58 -04:00
toasted-nutbread
345b9c6f9d Disable focus of popup when using touch
Context menu on Firefox will not target the text properly if the focus is on the popup window.
2019-08-09 22:29:14 -04:00
siikamiika
3b07a9000c add source term button to terms 2019-08-03 19:54:01 +03:00
siikamiika
683bb5b620 scroll back to exact position in source term view 2019-08-03 19:46:54 +03:00
siikamiika
ec1441434f allow multi level context 2019-08-03 15:50:49 +03:00
siikamiika
afc771de9f inject doc functions as dependencies 2019-08-03 15:06:28 +03:00
siikamiika
0ee6d05cb1 Revert "use ES6 import and export"
This reverts commit 04f4607922.
2019-08-03 14:57:17 +03:00
siikamiika
04f4607922 use ES6 import and export 2019-08-02 00:04:39 +03:00
siikamiika
e500a647a2 fix term lookup for terms with one gloss only 2019-08-01 20:41:06 +03:00
siikamiika
b8df9896e6 allow looking up terms from within terms
resolves #167, resolves #139, resolves #75, resolves #151
2019-08-01 02:20:09 +03:00
guidocella
15b93060c7 Add option to play audio automatically 2017-12-16 19:56:53 +01:00
0b602925ab cleanup 2017-10-28 08:11:33 -07:00
siikamiika
7913b094b7 scrap tagLineBreak option 2017-10-15 10:38:30 +03:00
siikamiika
0404b42f61 compact glossaries, line break after tags: on/off 2017-10-15 09:45:00 +03:00
siikamiika
b9d589374c merged mode: support audio hotkey Alt+P 2017-10-10 04:13:36 +03:00
siikamiika
7b9ad61352 merged mode: fix regression (voice), tweak hover
Alt+P now works again in grouped/split mode

In merged mode, 「、」 is added even after the last term, but it's
hidden for that. This ensures consistent behavior with voice button and
tags
2017-10-08 03:37:28 +03:00
siikamiika
94d590fc85 merged mode: support audio and tags for terms 2017-10-07 07:02:50 +03:00
siikamiika
b24c705234 basic structure for feature-merge-similar-results 2017-09-29 05:41:29 +03:00
siikamiika
62c881cfeb Go to next and previous result with Alt+wheel
Analogous to Alt+up/down which does the same thing
2017-09-25 23:47:53 +03:00
8ba8397170 update error handling 2017-09-22 19:39:05 -07:00
f6df5db556 . 2017-08-26 12:21:28 -07:00
190c749527 improved furigana support 2017-08-26 11:57:34 -07:00
a4c3ba434a fixing syntax issues 2017-08-23 20:56:52 -07:00
Yoitsumi
c89678f5db Improve {furigana} marker for anki export 2017-08-20 16:07:55 +02:00
0c650dac82 don't show busy spinner while waiting for card info
smoother cursor movement in firefox
2017-08-17 19:05:31 -07:00
8ed3ca6fd4 cleanup 2017-08-15 21:40:41 -07:00
e19933f980 jisho.org audio support 2017-08-15 21:36:30 -07:00
61dde5b3b7 upgrade to wanikana 2.2.3 (fixes #42) 2017-08-14 23:10:59 -07:00
bdf231082f lots of fixes to backend 2017-08-14 21:43:09 -07:00
aac2a58b5f wip 2017-08-13 16:11:51 -07:00
32680c58b8 cleanup 2017-07-23 22:48:33 -07:00
fe137e94c9 cleanup 2017-07-19 21:28:09 -07:00
26e1cc517f refactor 2017-07-18 23:07:46 -07:00
39f1f30dc9 refactor bg/js/util.js 2017-07-16 13:14:28 -07:00
516c7f5381 refactor mixed/js/util.js 2017-07-16 12:48:27 -07:00
1ed8997240 work on audio 2017-07-10 16:48:26 -07:00
d57c5530b7 view added notes 2017-07-01 18:27:49 -07:00
72c02c39c7 fix audio card creation for kana-only definitions 2017-06-08 23:04:25 -07:00
5de9ac1712 add debug logging 2017-05-23 21:27:20 -07:00
957c283d8a fix #44, fix #45 2017-04-09 11:36:52 -07:00
1ba458ea82 fixing cloze bug 2017-04-08 12:25:18 -07:00
c4b1a4a5b4 wip 2017-04-07 21:17:13 -07:00
bbe4afecf6 wip 2017-04-06 21:07:55 -07:00
e6b592b4c0 fix problem creating notes with audio when audio is disabled 2017-04-03 09:15:06 -07:00
9ac55fb5d1 support for multiple audio sources, version bump 2017-04-02 12:08:15 -07:00
4de9e5e9e0 support for audio volume adjustment (fixes #39) 2017-04-01 12:01:34 -07:00
f556c95038 improve ctrl + c behavior 2017-04-01 11:20:58 -07:00
405e487a73 ctrl + c to copy 2017-03-31 21:48:10 -07:00
f15f30019b version bump, cloze support 2017-03-28 20:49:26 -07:00
063f3d4dbf version bump, finishing up keyboard shortcuts 2017-03-25 18:18:31 -07:00
9d31801b73 more hotkey work 2017-03-25 18:08:42 -07:00
2580dd8e7f keyboard shortcuts 2017-03-25 17:53:25 -07:00
f5a8383d2a wip 2017-03-25 17:18:55 -07:00
218db0771f cleanup, firefox scrolling 2017-03-25 16:45:43 -07:00
b8d0788144 wip 2017-03-25 15:59:33 -07:00
90eaae1725 wip 2017-03-25 15:22:28 -07:00
4a232151e0 more keyboard shortcuts 2017-03-25 12:21:25 -07:00
83a6c30d0e audio improvements 2017-03-25 12:01:20 -07:00
20d062329b more audio handling improvements 2017-03-25 10:46:59 -07:00
0e16787692 refactor 2017-03-25 10:05:03 -07:00
4e5ded5735 fix audio playback bug 2017-03-25 09:45:05 -07:00
5989c5faae cleanup 2017-03-24 22:49:14 -07:00
a9cc121860 Merge branch 'master' into dev 2017-03-23 21:13:29 -07:00
77b0487912 wip 2017-03-23 20:03:50 -07:00
633c5a64f7 wip 2017-03-23 19:54:36 -07:00
80d864d6b1 wip 2017-03-22 22:28:22 -07:00
046b1b45a5 work on getting audio working again 2017-03-22 21:57:16 -07:00
55309c1cb3 wip 2017-03-19 15:45:30 -07:00
6d55767191 wip 2017-03-18 18:21:02 -07:00
1a4c94209b wip 2017-03-18 18:08:09 -07:00
ad313fd182 polish 2017-03-18 17:53:21 -07:00
ad17b0603b scrolling 2017-03-18 17:40:48 -07:00
e782a43432 fix kanji back button on search page 2017-03-18 10:10:49 -07:00
f39323126d cleanup 2017-03-18 09:48:53 -07:00
a55b74c92e adding back link on kanji defs 2017-03-17 21:03:52 -07:00
1dbcb35eb7 wip 2017-03-17 20:45:47 -07:00
8893db14ca wip 2017-03-15 21:13:58 -07:00
5daf2accf4 wip 2017-03-04 20:10:49 -08:00
e799aa5e5f cleanup 2017-03-04 19:53:28 -08:00
158818713a fixes 2017-03-04 19:27:54 -08:00
db7e80dabf wip 2017-03-04 19:16:19 -08:00
30999c13d3 wip 2017-03-04 18:24:57 -08:00
b039d30024 wip 2017-03-04 17:56:10 -08:00
c8eb77cfd9 wip 2017-03-04 17:30:10 -08:00