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
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
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
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
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
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
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
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
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
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
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
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
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
toasted-nutbread
3e7f3af63c
Fix history replacement issue ( #1917 )
...
* Remove unused "history" field of event details
* Change setContent history parameter to historyMode
2021-08-30 21:55:08 -04:00
toasted-nutbread
87fbb3c01c
Dictionary worker updates ( #1914 )
...
* Add support for running getDictionaryCounts via DictionaryWorker
* Run dictionary integrity checks on a separate thread
* Remove api.getDictionaryCounts
2021-08-28 14:30:50 -04:00
toasted-nutbread
74709296e5
Dictionary database worker refactoring ( #1913 )
...
* Rename DictionaryWorker => DictionaryWorkerHandler
* Rename var
* Rename file
* Simplify
* Rename DictionaryDatabaseModifier => DictionaryWorker
* Rename dictionary-database-modifier.js => dictionary-worker.js
2021-08-28 14:22:16 -04:00
toasted-nutbread
93f193c89e
Fix incorrect dictionary name ordering being used for counts ( #1912 )
2021-08-28 13:47:03 -04:00
toasted-nutbread
dfd52e1ecd
Hiragana & katakana helpers ( #1908 )
...
* Add hiragana and katakana template helpers
* Update documentation
* Fix documentation
2021-08-25 21:58:51 -04:00
toasted-nutbread
b6fc786f9a
Update dictionary importer progress event for step 6 to occur slightly earlier ( #1897 )
2021-08-14 18:16:30 -04:00
toasted-nutbread
4839503d54
Threaded dictionary delete ( #1895 )
...
* Generalize dictionary worker
* Add deleteDictionary functionality
* Update DictionaryController to use DictionaryDatabaseModifier
* Fix incorrect result handling
2021-08-14 12:41:58 -04:00
toasted-nutbread
3e350bd563
Dictionary worker refactor ( #1894 )
...
* Rename dictionary worker files
* Rename classes
* Rename file
* Rename class
* Generalize the _invoke method
* Rename 'import' to 'importDictionary'
* Improve DictionaryImporterMediaLoader usage
* Refactor message handler
* Generalize onProgress event
2021-08-14 11:46:26 -04:00
toasted-nutbread
cd78d56fee
Database improvements to data persistency ( #1893 )
...
* Fix function check
* Rename arguments of getAll, getAllKeys, and their private functions
* Simplify bulkAdd
* Simplify delete
* Simplify bulkDelete
* Remove persistData
2021-08-13 18:35:31 -04:00
toasted-nutbread
9facacfb23
Update CssStyleApplier.prepare to passively fail if it can't read the file ( #1891 )
2021-08-11 20:14:19 -04:00
toasted-nutbread
916189f402
Fix auto-play not working on the search page ( #1882 )
2021-08-10 19:23:05 -04:00
toasted-nutbread
69e448a955
Add support for manifest V3 script injection ( #1878 )
2021-08-07 17:17:53 -04:00
toasted-nutbread
2d5e6f8394
Fix data not being persisted after terminating Worker thread ( #1877 )
2021-08-07 15:25:00 -04:00
toasted-nutbread
5d4141a429
Google Docs accessibility ( #1875 )
...
* Add accessibility option for forcing Google Docs HTML-based rendering
* Update settings
* Send a documentStart message at document start
* Add accessibility script for Google Docs
* Set up accessibility
* Update tests
2021-08-07 12:40:51 -04:00
toasted-nutbread
edb0aaf6b4
Improve audio auto play cancellation ( #1873 )
...
* Cancel automatic audio playback when hiding the popup
* Don't play audio if the popup is hidden
2021-08-02 19:25:10 -04:00
toasted-nutbread
cd3f47a359
Dictionary import progress improvements ( #1868 )
...
* Update loop vars
* Update loop
* Improve progress reporting during the import process
2021-07-31 19:13:41 -04:00
toasted-nutbread
01c5c5c04b
Dictionary importer refactoring ( #1867 )
...
* Remove map of schemas
* Don't reuse dictionary importer instances
* Refactor
* Update how progress callback is used
2021-07-31 18:08:51 -04:00
toasted-nutbread
1d6e437fb2
Dictionary importer refactor ( #1866 )
...
* Move function implementations
* Use file() instead of files[]
* Move functionality into local functions
* Simplify
* Pass dictionary title to conversion functions
* Update how legacy tags are added
2021-07-31 16:53:38 -04:00
toasted-nutbread
8c4a50f68c
DictionaryImporterThreaded ( #1865 )
...
* Create new classes for importing dictionaries from a separate thread
* Use threaded importer
* Update worker tests
2021-07-31 14:46:09 -04:00
toasted-nutbread
11f210375e
DictionaryImporter improvements ( #1862 )
...
* Improve error message
* Simplify URL for JSON fetching
2021-07-31 14:00:19 -04:00
toasted-nutbread
454ffaad96
StringUtil ( #1861 )
...
* Add StringUtil class
* Use StringUtil
2021-07-31 13:04:16 -04:00
toasted-nutbread
00c5ae7983
DictionaryImporterMediaLoader ( #1860 )
...
* Rename param for consistency
* Move media loading functionality into DictionaryImporterMediaLoader
* Create test class for media loading
* Remove unnecessary Blob/Image/URL functionality
2021-07-31 12:30:31 -04:00
toasted-nutbread
2d57d69b9e
Improve dictionary importer ( #1859 )
...
* Optimize dictionary data parsing during import
* Use ArrayBuffer instead of string
* Add missing function for testing
2021-07-31 10:53:35 -04:00
toasted-nutbread
b99850ed54
Call URL.revokeObjectURL for created URLs ( #1858 )
...
* Call URL.revokeObjectURL for created URLs
* Refactor image usage
2021-07-29 21:16:55 -04:00
toasted-nutbread
a0fa67d57c
Update JsonSchema ( #1856 )
...
* Fix issues with validating properties
* Simplify multiple destructuring
* Add an optiona progress callback
* Add functions
* Add more functions
2021-07-28 20:31:36 -04:00