Commit Graph

3413 Commits

Author SHA1 Message Date
toasted-nutbread
31e20c889e
ESlint JSdoc (#2148)
* Install eslint-plugin-jsdoc

* Initial rules setup

* Update lists

* Use @returns rather than @return

* Remove error throwing code which is never executed

* Fix issues relating to @throws

* General error fixes

* Update Display type documentation

* Various doc fixes

* Fix invalid tuple syntax

* Doc updates

* Remove unused

* Doc updates

* Enable jsdoc/require-returns

* Update rules

* Update remaining rules
2022-05-20 10:28:38 -04:00
toasted-nutbread
ae0ad227c0
Add mode documentation about the types used by Translator (#2147) 2022-05-19 20:16:40 -04:00
toasted-nutbread
6e239638bb
DOMTextScanner updates (#2146)
* JSDoc updates

* Move function

* Simplify

* Refactor return type

* Refactor getElementSeekInfo return type
2022-05-18 21:43:19 -04:00
toasted-nutbread
a33a00f5ae
CssStyleApplier updates (#2145)
* Update internal structure of _styleData

* Rename parameter

* Rename

* Add docs
2022-05-18 19:40:47 -04:00
toasted-nutbread
18beb241a7
Fix this._horizontalTextPositionBelow being assigned incorrectly (#2144) 2022-05-18 19:12:24 -04:00
toasted-nutbread
bd53f2bbfb
Update _getNodeNoteIds to return integer IDs (#2142) 2022-05-16 22:20:53 -04:00
toasted-nutbread
63d37c872b
Popup positioning improvements (#2135)
* Rename elementRect to sourceRect

* Add getRects function to TextSourceElement and TextSourceRange

* Add jsdocs

* Remove unnecessary valid parameter

* Remove default parameter

* Make optionsContext optional

* Remove unnecessary checks

* Update sourceRect to use left/right rather than x/y

* Update the return type of Popup*.getFrameRect

* Rename some unrelated rect vars for disambiguation

* Disambiguate between Popup.Rect and Popup.ValidRect

* Move sourceRect destructuring

* Pass multiple source rects

* Simplify

* Change Rect to use right/bottom rather than width/height

* Update how popup offset is applied

* Simplify frame offset

* Remove _applyFrameOffset

* Use right/bottom rather than width/height

* Simplify some positioning settings

* Update parameter names for clarity

* Fix typos

* Refactor data type for _getPosition* functions

* Support using multiple source rects

* Combine _getPosition functions

* Refactor

* Expose after dataset value

* Consistently use this's property

* Add jsdoc
2022-05-16 21:45:22 -04:00
toasted-nutbread
96f5a06c80
Dependency update (#2141)
* Update dependencies

* Update JSZip to 3.9.1
2022-05-16 21:36:30 -04:00
toasted-nutbread
9941d583a0
Parse5 update (#2140)
* Update build-libs.js

* Add a test for build-libs.js

* Update parse5

* Rebuild parse5

* Update build-libs.js to generate consistent path names

* Rebuild
2022-05-16 21:25:05 -04:00
toasted-nutbread
84c9231a5e
Update some JSON schemas to be more compliant to the spec (#2136) 2022-05-16 19:56:02 -04:00
toasted-nutbread
fd75e91e75
Ignore DOMExceptions thrown by assigning an invalid dataset property (#2133) 2022-05-14 18:16:13 -04:00
toasted-nutbread
8b6f526dc6
Regex optimizations (#2132)
* Remove regex construction for SimpleDOMParser.getElementsByClassName

* Remove regex construction for CssStyleApplier._getRulesForClass

* Rename, add jsdoc for clarity
2022-05-14 18:13:04 -04:00
toasted-nutbread
5dcc2315d2
Structured content auto language (#2131)
* Pass JapaneseUtil instance to StructuredContentGenerator

* Move body of createStructuredContent to an internal function

* Create _createStructuredContentGenericElement

* Wrap structured content in a <span>

* Change _createStructuredContent to _appendStructuredContent

* Add public appendStructuredContent function

* Add missing return

* Remove unused _createDocumentFragment

* Automatically assign lang=ja for content with Japanese characters
without an explicit language

* Add test
2022-05-14 18:12:57 -04:00
Stephen Kraus
6a74746113
Add new structured content features: lists and the HTML lang attribute (#2129)
* Add support for structured content lists and `list-style-type` style

A full list of supported style types is documented here:
https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-type

There's nothing in this code preventing a term bank from assigning,
for example, a `list-style-type` style to a `div` element, but it
doesn't seem like browsers will complain about things like that.

* Add support for `lang` attribute in structured content

Support added for the following node types:

"ruby", "rt", "rp", "table", "thead", "tbody", "tfoot", "tr", "td",
"th", "span", "div", "ol", "ul", "li", "a"

I couldn't get it to work for the alt-hover text on "img" tags.

Tests are included in the file
"test/data/dictionaries/valid-dictionary/term_bank_1.json"

* Add styles for structured content lists

* Add override rules for new structured-content list styles

see: https://github.com/FooSoft/yomichan/pull/2129

Co-authored-by: stephenmk <stephenmk@users.noreply.github.com>
2022-05-14 09:59:38 -04:00
toasted-nutbread
1256e4bab7 Update version 2022-04-04 19:17:43 -04:00
toasted-nutbread
e5b53bb238
Hide popup on cursor exit (#2109)
* Update phrasing

* Add new options

* Add settings

* Implement
2022-04-03 22:52:53 -04:00
toasted-nutbread
77c4d135c7
Add a warning about the future of the Google docs workaround (#2108) 2022-04-03 21:49:33 -04:00
toasted-nutbread
b896724aac
Update Popup to not store the full options object (#2106) 2022-04-03 17:09:51 -04:00
toasted-nutbread
f61690ea2c
Theme updates (#2105)
* Change siteColor to siteTheme

* Fix potential null exception

* Simplify

* Update display theme assignment

* Add a data-browser-theme attribute

* Add "browser" option for theme

* Create ThemeController

* Add theme-controller.js to relevant pages

* Use ThemeController

* Simplify

* Fix 'light' being used instead of 'default'

* Update the settings values to more accurately reflect their usage

* Change default site theme in display.js

* Remove async

* Restore async for consistency
2022-04-03 16:20:55 -04:00
toasted-nutbread
3150da92fe
Update input action prevention settings (#2104)
* Update styles for the input action prevention modal

* Add information
2022-04-02 15:24:59 -04:00
toasted-nutbread
eb80fb233b
Settings advanced indicators (#2103)
* Update the advanced toggle to have a custom color

* Add indicators to advanced-only settings
2022-04-02 14:59:16 -04:00
toasted-nutbread
ea1d64c9dd
Settings page mobile layout updates (#2102)
* Remove use of --settings-group-inner-vertical-margin

* Update alignment
2022-04-02 14:48:57 -04:00
toasted-nutbread
6b88501afd
Text scanner event capture (#2101)
* Add capture parameter to event listeners

* Enable capture
2022-04-02 13:10:39 -04:00
toasted-nutbread
8a1dcbc9f5
Workaround for Google Docs canvas rendering updates (#2096) 2022-04-02 09:38:40 -04:00
toasted-nutbread
7a2ab86609
Structured content links (#2089)
* Update CSS to JSON converter to generalize the remove-property comment

* Fix navigation not being updated when _clearContent is run

* Add structured content schema for link tags

* Add test links

* Add external-link icon

* Pass Display instance to DisplayContentManager

* Update structured content generation

* Update link styles
2022-03-17 19:01:59 -04:00
toasted-nutbread
8aa060337c
AnkiTemplateRendererContentManager (#2088)
* Make function private

* Update comments

* Refactor the content manager that is provided to StructuredContentGenerator in AnkiTemplateRenderer

* Update function to not be async, for API parity
2022-03-14 22:32:08 -04:00
toasted-nutbread
4e15f92329
Rename MediaLoader to DisplayContentManager (#2087) 2022-03-14 21:42:33 -04:00
toasted-nutbread
59ae55252e
Update ClipboardReader.getImage implementation (#2085) 2022-03-13 21:17:48 -04:00
toasted-nutbread
f98f5f9395
Improve Anki storeMediaFile (#2084)
* Use the return value of storeMediaFile

* Update documentation
2022-03-13 21:17:41 -04:00
toasted-nutbread
1590f5218c
Add additional Anki card marker aliases (#2083) 2022-03-13 21:17:35 -04:00
toasted-nutbread
48b2807120
Add support for logging Anki errors on the settings page (#2073) 2022-02-20 09:35:54 -05:00
toasted-nutbread
89a939eb39
Update anki card frequency (#2065)
* Prefer to use displayValue for Anki card frequency values

* Update test data
2022-02-05 21:35:03 -05:00
toasted-nutbread
d48ea4dece Update version 2022-02-02 20:44:08 -05:00
toasted-nutbread
89ac85afd0
Update copyright date (#2062)
* Update eslint settings

* Update 2021 files

* Update other files
2022-02-02 20:43:10 -05:00
toasted-nutbread
258f1b629a
Update sentence termination characters (#2059)
* Add vertical punctuation to terminationCharacters

* Upgrade settings

* Update tests
2022-02-02 20:09:13 -05:00
archiif
faa5ed7184
Set Content-Type header of AnkiConnect requests to application/json 2022-01-05 01:44:47 +07:00
toasted-nutbread
0e52a1f509
Scanning wildcards (#2042)
* Add scanning.matchTypePrefix option

* Update TextScanner to use matchTypePrefix option

* Add setting

* Update warning
2021-12-18 12:38:39 -05:00
toasted-nutbread
8a377cabe6
matchType/deinflect distinction (#2040)
* Pass a "deinflect" option to findTerms

* Update Translator to use deinflect option

* Fix test input options
2021-12-17 17:02:13 -05:00
toasted-nutbread
8e548a17eb
Dictionary database term source info (#2039)
* Update DictionaryDatabase._findMultiBulk's createResult callback signature

* Simplify _splitField use

* Update sequence

* Expose new fields 'matchType' and 'matchSource' as part of term data

* Expose matchType and matchSource as part of TermSource

* Update sourceTermExactMatchCount calculation

* Update test data

* Expose matchType and matchSource info in HTML attributes

* Add primaryMatchTypes attribute
2021-12-17 16:44:14 -05:00
toasted-nutbread
19ab9df6e4
Replace 'wildcard' parameter with 'matchType' (#2038) 2021-12-17 16:11:19 -05:00
toasted-nutbread
fced59a213
Fix source name not being used (#2036) 2021-12-14 22:03:34 -05:00
toasted-nutbread
ecbbfa39a2
Fix non-text <input> elements being included in scanning content (#2034) 2021-12-14 14:55:24 -05:00
toasted-nutbread
0356241362
Fix typo in comments (#2032) 2021-12-14 14:54:36 -05:00
toasted-nutbread
f2102ade4c
Add AccessibilityController class, which dynamically registers (#2024)
and unregisters the google-docs.js content script
2021-11-23 22:23:14 -05:00
toasted-nutbread
d454b52a18
Google Docs accessibility refactor (#2023)
* Skip urlRegex if it's used as a filter

* Add getRequiredContentScriptRegistrationPermissions function

* Add a reentrant check to google-docs.js

* Remove script node

* Move forceGoogleDocsHtmlRendering check into google-docs.js

* Replace document-start.js usage with google-docs.js

* Remove documentStart handling

* Add missing parameter descriptions
2021-11-23 22:08:30 -05:00
toasted-nutbread
ecc994a8bb
ScriptManager updates (#2022)
* Fix spacing

* Add more parameters to injectStylesheet

* Add more parameters to injectScript

* Update ScriptManager to support content script registration

* Add webNavigation as an optional permission
2021-11-23 16:16:13 -05:00
toasted-nutbread
cedf6b25c4
ScriptManager (#2021)
* Create ScriptManager class

* Use ScriptManager in Backend
2021-11-22 19:29:20 -05:00
toasted-nutbread
b0a0184334
Update sentence parsing settings (#2020)
* Update description

* Update descriptions of the parsing algorithms
2021-11-21 22:09:58 -05:00
toasted-nutbread
005f9658d9
Action handler name disambiguation (#2018)
* Disambiguate PopupFactory action handlers

* Update HotkeyHandler action names

* Disambiguate Frontend action handlers

* Disambiguate Display action handlers

* Disambiguate PopupPreviewFrame action handlers

* Disambiguate Yomichan action handlers

* Disambiguate Frontend action handlers

* Disambiguate Display action handlers

* Disambiguate SearchDisplayController action handlers
2021-11-21 15:54:58 -05:00
toasted-nutbread
06e70c1cd8
FrameOffsetForwarder fixes (#2017)
* Fix handling of null iframe rect

* Handle errors inside of getOffset
2021-11-21 15:08:39 -05:00
toasted-nutbread
36967b1839
General refactoring (#2016)
* Remove // Public comments

* Fix errors

* Remove source parameter from Popup*.setOptionsContext
2021-11-21 12:34:57 -05:00
toasted-nutbread
3c798ae36d
Refactor isExtensionUrl (#2015)
* Update isExtensionUrl to work even if the extension is unloaded

* Simplify
2021-11-21 12:27:29 -05:00
toasted-nutbread
70ac6c51f9
Don't clear the selection before the text scanner has been enabled (#2006) 2021-11-13 11:11:33 -05:00
toasted-nutbread
657292733d
Fix search page not being cleared properly (#2005) 2021-11-13 09:29:58 -05:00
toasted-nutbread
c1a51ae41f Update version 2021-10-31 21:47:00 -04:00
toasted-nutbread
2dc8394c72
JSDoc update (#1996)
* Update core.js docs to include types.

* Update docs
2021-10-31 21:45:57 -04:00
toasted-nutbread
f978819a33
Don't stop audio playback when hiding a popup (#1995) 2021-10-21 19:56:43 -04:00
toasted-nutbread
9ae38bd8e9
Display menu button (#1992)
* Implement new menu which includes a debug log option

* Update wording
2021-10-17 09:55:13 -04:00
toasted-nutbread
ca4ed0300b
Display button updates (#1991)
* Update display buttons

* Remove use of _addMultipleEventListeners
2021-10-17 00:15:43 -04:00
toasted-nutbread
75aabd983d
String frequency support (#1989)
* Restore support for string frequency values

* Add support for {value, displayValue} frequencies

* Update test data

* Improve number parsing of string frequencies

* Improve reading detection

* Expose a displayValue property for frequency information

* Update docs

* Expose displayValue to Anki note data

* Fix translator

* Update display generation

* Update test data

* Update counts
2021-10-14 21:26:53 -04:00
toasted-nutbread
11f7591a7f
Fix query being set to null when an empty search page is opened (#1988) 2021-10-14 21:16:40 -04:00
Shadowlauch
b3d38fce47
fix DOMRect for vertical position calculation (#1986) 2021-10-14 19:29:52 -04:00
toasted-nutbread
0a8992d215
Search query back button (#1981)
* Always allow history to go back/forward when using browser history

* Add a back button which is visible when using the query parser
2021-10-09 17:06:51 -04:00
toasted-nutbread
0e4b769390
Search CSS updates (#1979)
* Update styles

* Limit the height of the query parser
2021-10-09 14:32:56 -04:00
toasted-nutbread
e3986196e1
Disable background clipboard monitor, mecab, and anki if disabled (#1977) 2021-10-03 16:46:22 -04:00
toasted-nutbread
be8ef53e90
Display refactoring (#1978)
* Refactor _setContentTermsOrKanji

* Update query assignment

* Simplify

* Remove redundant _updateQueryParser

* Reorder query assignment

* Remove isTerms, replace with isKanji

* Simplify defaults

* Refactor events

* Update DisplayAnki to use events

* Simplify

* Update DisplayAudio to use events

* Simplify

* Move audio hotkeys

* Add frameVisibilityChange event

* Fix name

* Add logDictionaryEntryData event

* Move clearAutoPlayTimer handler

* Fix call

* Externalize DisplayAnki and DisplayAudio from Display

* Simplify clear
2021-10-03 16:46:15 -04:00
toasted-nutbread
d14268eb57 Update version 2021-09-30 21:13:12 -04:00
toasted-nutbread
52e4bc8e6a
Add disable-popup-preview option to the settings page (#1974) 2021-09-30 21:12:26 -04:00
toasted-nutbread
19eb990aeb
DOMRect update (#1973)
* Compare using left/top rather than x/y

* Simplify

* Update Popup*.getFrameRect to return a custom structure

* Don't use x/y on DOMRect
2021-09-30 21:05:34 -04:00
toasted-nutbread
6cf01555e7
Make accessibility settings non-advanced (#1972) 2021-09-30 19:41:26 -04:00
toasted-nutbread
55a7e7f9a8
Hotkey dictionary navigation fix (#1970)
* Add getRect function to ScrollElement

* Update _focusEntry to take a definition index

* Update behaviour of (next|previous)EntryDifferentDictionary
2021-09-30 19:31:45 -04:00
toasted-nutbread
b0f6c41f5d
Search query offset value (#1968)
* Add type property to TextSource* classes

* Use type property rather than instanceof

* Expose a sentence offset value

* Use offset added to URL

* Improve fallback sentence for Anki note context
2021-09-27 19:07:28 -04:00
toasted-nutbread
b784e5b11a
Katakana to hiragana conversion options (#1965)
* Refactor convertKatakanaToHiragana

* Add keepProlongedSoundMarks option

* Test keepProlongedSoundMarks option

* Refactor

* Add keepProlongedSoundMarks option to hiragana handlebars helper

* Update documentation
2021-09-27 18:19:53 -04:00
toasted-nutbread
729abbf561
Remove display query post process (#1967)
* Remove search query post-processing

* Remove _rawQuery, as it is redundant with _query
2021-09-26 22:14:52 -04:00
toasted-nutbread
ba267a545c
Rename dictionary import steps (#1966) 2021-09-26 20:08:16 -04:00
toasted-nutbread
247c929bba
Update document-start.js to only run for docs.google.com (#1964)
* Update document-start.js to only run for docs.google.com

* Update manifest
2021-09-26 18:23:57 -04:00
toasted-nutbread
c364714c81
Fix hotkey input field conflict (#1963)
* Move comment

* Add DocumentUtil.isInputElement

* Use DocumentUtil.isInputElement

* Fix simple hotkeys (shift or no modifier) preventing text field input

* Improve input detection

* Validate key is an input character before blocking hotkey

* Simplify

* Fix incorrect property
2021-09-26 18:14:00 -04:00
toasted-nutbread
d739ccd63f
Fix japanese codepoint range issues (#1960)
* Add CJK_COMPATIBILITY_IDEOGRAPHS_RANGE

* Rename CJK_UNIFIED_IDEOGRAPHS_RANGES => CJK_IDEOGRAPH_RANGES

* Simplify isKana check

* Update tests
2021-09-26 13:29:55 -04:00
toasted-nutbread
25fe3ba514
Revert term/reading string normalization due to undesirable changes (#1959) 2021-09-26 13:29:50 -04:00
toasted-nutbread
076170cc38
Fix regexMatch and regexReplace handlebars helper functions (#1958) 2021-09-26 12:15:00 -04:00
toasted-nutbread
6694a9d9c3
Enable frequency dictionaries to specify the frequency mode (#1944) 2021-09-26 11:08:25 -04:00
toasted-nutbread
c15683d206
Ensure frequency values are always numbers (#1943) 2021-09-26 11:08:21 -04:00
toasted-nutbread
9899727d7d
Frequency dictionary sort (#1938)
* Add sortDictionary/sortDictionaryOrder options

* Update options

* Add API.getTermFrequencies

* Add settings

* Implement frequency dictionary sorting

* Update test

* Update test data

* Fix handling of undefined rank-based frequencies
2021-09-26 11:08:16 -04:00
toasted-nutbread
88e71f8223
Add data-is-primary attribute to headwords (#1946) 2021-09-11 12:51:51 -04:00
toasted-nutbread
6661933d47
Display button updates (#1945)
* Use span rather than div for button badges

* Update action button icons

* Rename class

* Update current entry indicator
2021-09-10 20:48:03 -04:00
toasted-nutbread
dfddf3792e
Fix redundant secondary term lookups (#1942) 2021-09-09 23:29:41 -04:00
toasted-nutbread
7883d39496
Normalize terms and readings during import (#1941) 2021-09-09 23:25:24 -04:00
toasted-nutbread
069ca1a97b
Anki field templates suggestions (#1940)
* Remove unused

* Bold the suggested default field value
2021-09-08 20:12:26 -04:00
toasted-nutbread
6b566e0329
Rename _onDocumentStart => _onApiDocumentStart for consistency (#1939) 2021-09-08 14:49:00 -04:00
toasted-nutbread
ac12b50939
Dictionary import count details (#1935)
* Store count information when importing a dictionary

* Add importDate

* Update property ordering

* Update tests

* Update importDate
2021-09-07 11:12:58 -04:00
toasted-nutbread
c91831a817
Anki template regex helper updates (#1934)
* Update regexReplace and regexMatch to support content arguments

* Update documentation
2021-09-05 22:59:46 -04:00
toasted-nutbread
b988417031
Fix incorrect index being used for headword removal (#1933) 2021-09-05 21:07:23 -04:00
toasted-nutbread
97a80276f6
Database readwrite transaction updates (#1932)
* Add _readWriteTransaction helper

* Improve deleteDictionary order

* Make onProgress event optional

* Simplify progress rate parameter
2021-09-05 20:00:08 -04:00
toasted-nutbread
f68ad1f843
Structured content data (#1930)
* Add support for structured-content data attributes

* Assign dataset properties

* Don't remove data-sc attributes

* Use helper functions

* Update test data
2021-09-04 12:43:56 -04:00
toasted-nutbread
eb457caea9
Fix repeated note IDs shown on the "View Note" button (#1927) 2021-09-03 22:42:27 -04:00
toasted-nutbread
0331374241
Dictionary media import improvements (#1926)
* Add base64ToArrayBuffer to StringUtil

* Remove unnecessary media-util.js import

* Run async requirements in serial rather than parallel

* Update API.getMedia handler to convert ArrayBuffer content to base64

* Rename getImageResolution to getImageDetails

* Change parameter order of getImageDetails

* Pre-process and store media as an ArrayBuffer

* Remove MediaUtil.createBlobFromBase64Content

* Fix Anki media injection
2021-09-03 22:33:58 -04:00
toasted-nutbread
764d59df13 Update version 2021-08-31 21:49:57 -04:00
toasted-nutbread
1599ec1f15
Fix dictionary import total progress (#1921)
* Fix incorrect total count for final step of dictionary import

* Update tests to validate progress args
2021-08-31 21:42:18 -04:00
toasted-nutbread
02194fcb9f
Add support for structured content margins (#1920) 2021-08-31 21:08:30 -04:00
toasted-nutbread
ce1a862df4
Fix empty sentence on some search page URLs (#1919) 2021-08-31 20:45:29 -04:00