Commit Graph

154 Commits

Author SHA1 Message Date
toasted-nutbread
8c68fa4d94
Anki text furigana parsing and {sentence-furigana} marker (#1814)
* Add support for textFurigana media

* Add readingMode parameter

* Implement readingMode

* Add {sentence-furigana} marker

* Fallback to sentence if furigana isn't available

* Update test data
2021-07-09 17:48:27 -04:00
toasted-nutbread
0d16709547
JapaneseUtil updates (#1813)
* Rename test file

* Use shorthand

* Add support checking functions

* Remove convertReading from JapaneseUtil
2021-07-09 17:31:16 -04:00
toasted-nutbread
24ec22b2e1
Text parse updates (#1811)
* Expose more settings to QueryParser

* Rename textParse to parseText

* Refactor

* Convert reading inside QueryParser rather than Backend

* Remove use of readingMode from backend

* Rename

* Update parseText args

* Simplify

* Update results

* Move use of optionsContext

* Run mecab and internal parser in parallel

* Added "dictionary-reading" reading mode

* Update romaji conversion case
2021-07-09 16:05:57 -04:00
toasted-nutbread
8d1596cdf8
Fix incorrect resultOutputMode (#1804) 2021-07-06 21:49:57 -04:00
toasted-nutbread
e88d63fc6d
Template renderer media updates (#1802)
* Add TemplateRendererMediaProvider to abstract media-related functionality

* Update representation of injected media

* Update templates

* Update upgrade file

* Update tests

* Update test data

* Force media to be an object

* Update test data
2021-07-06 19:43:53 -04:00
toasted-nutbread
54808d4a2d
Pass requirements to note generation (#1800)
* Update structure

* Pass requirements to _createNote

* Show an error for requirements that weren't fulfilled
2021-07-05 16:59:30 -04:00
toasted-nutbread
da13a2ebff
DisplayAnki note requirements (#1799)
* Update how errors are collected from _formatField

* Expose requirements
2021-07-05 15:08:11 -04:00
toasted-nutbread
0491de12d4
Store anki note details (#1798)
* Update error handling of _areDictionaryEntriesAddable

* Store note details

* Remove promise after use

* Rename function

* Clear stored details

* Rename function

* Rename function
2021-07-05 14:41:11 -04:00
toasted-nutbread
b8478857aa
Refactor DisplayAnki.setupEntriesComplete params and implementation (#1794) 2021-07-04 11:11:05 -04:00
toasted-nutbread
468c923277
Update the note context object generation process to ensure consistency (#1792) 2021-07-03 20:09:22 -04:00
toasted-nutbread
ea47cb8248
DisplayAnki (#1791)
* Remove anki functionality from display

* Rename function

* Display API updates

* Use DisplayAnki

* TODO
2021-07-03 19:32:11 -04:00
toasted-nutbread
f7d177e6d0
Refactor createNote (#1789)
* Update createNote to return a wrapper object

* Update how createNote creates errors
2021-07-03 11:30:48 -04:00
toasted-nutbread
ace46503be
Make Display.authenticateMessageData private (#1780) 2021-06-29 22:17:14 -04:00
toasted-nutbread
1f1a958a71
Update CSS rules for images (#1777) 2021-06-28 22:12:17 -04:00
toasted-nutbread
9f3d267e24
Fix incorrect aspect ratio of structured-content images (#1776) 2021-06-28 21:46:54 -04:00
toasted-nutbread
24ef820ba8
Update structured content CSS styles (#1770) 2021-06-27 15:01:35 -04:00
toasted-nutbread
e5284988e2
Structured content generation updates (#1760)
* Simplify _createElement, fix misuse of classList

* Don't use templates to generate image content

* Omit templates
2021-06-26 15:49:23 -04:00
toasted-nutbread
f389b3c232
Fix missing error logging when logging debug info (#1758) 2021-06-26 15:27:33 -04:00
toasted-nutbread
8d1d428ed4
Move structured-content generation code into a separate file (#1757) 2021-06-26 14:40:37 -04:00
toasted-nutbread
435af3a485
Improve what info is logged when debugging a definition (#1756) 2021-06-26 14:10:18 -04:00
toasted-nutbread
5756885fa9
Structured content updates (#1753)
* Update schema

* Update content generation

* Update styles

* Update test data

* Update style names
2021-06-25 17:24:29 -04:00
toasted-nutbread
cf70b3de64
Fix search input focus not working properly (#1752) 2021-06-25 16:49:47 -04:00
toasted-nutbread
7ae964c830
Structured content updates (#1733)
* Add support for imageRendering

* Make crisp-edges appearance on Firefox more similar to Chrome

* Refactor

* Add background option

* Move data-image-rendering attribute

* Restructure

* Organize

* Add support for appearance

* Update test dictionary

* Update tests
2021-06-06 14:47:48 -04:00
toasted-nutbread
5bf82a5b81
Primary audio fixes (#1719)
* Fix case when subIndex is not assigned

* Fix incorrect assignment of primary card audio

* Improve opacity style

* Improve styles for :focus-visible
2021-05-30 13:29:55 -04:00
toasted-nutbread
cca01e85a3
Improve multiple audio sources (#1718)
* Add url/voice options to audio sources

* Add help for TTS

* Remove old settings

* Update tests

* Update use of audio source URL

* Improve labels for sources with the same type
2021-05-30 12:41:19 -04:00
toasted-nutbread
efd35de67f
Refactor display audio options (#1717)
* Update how options are updated and stored in DisplayAudio

* Add source list

* Improve menus for custom json

* Clear cache after options update

* Move function

* Update public API

* Simplify playing audio from a specific source

* Simplify audio list

* Refactor audio source usage

* Refactoring

* Refactor argument names

* Fix incorrect source usage

* Remove unused

* Remove return value

* Simplify details

* Simplify Anki card audio details

* Update the data that is passed to AudioDownloader

* Simplify schema handling

* Remove unnecessary details
2021-05-30 12:15:07 -04:00
toasted-nutbread
0232325f96
Refactor json audio source (#1711)
* Move sources to the end of audio options object

* Add custom-json audio source type

* Add support for downloading custom-json

* Remove customSourceType
2021-05-26 20:38:15 -04:00
toasted-nutbread
24d43c123d
Fix incorrect selector causing invalid headword index to be used (#1705) 2021-05-23 13:20:38 -04:00
toasted-nutbread
be23acf499
Structured content image size units (#1692)
* Add support for sizeUnits on image content

* Update test data
2021-05-20 19:33:08 -04:00
toasted-nutbread
6184bcb812
Selection clear improvements (#1690)
* Update selection clear process

* Clean up old clearSelection API

* Update clear order

* Add clear event handling
2021-05-19 20:09:37 -04:00
toasted-nutbread
eddd028864
Add support for definitions with structured content (#1689)
* Add structured content to schema

* Add support for generating custom content

* Update importer

* Update test data

* Add verticalAlign property
2021-05-19 18:24:50 -04:00
toasted-nutbread
f3cf4d10c7
Dictionary image display refactoring (#1687)
* Generalize image definition generation

* Enable optional aspect ratio

* Move styles

* Update styles

* Add more options for collapsing images

* Add image options for collapsing

* Improve layout for images that are collapsed
2021-05-18 17:41:27 -04:00
toasted-nutbread
76276e78da
Expose search query to anki template renderer (#1686)
* Expose query and fullQuery to Anki context

* Add {search-query} marker

* Update test data

* Update tests

* Wrap search query in multiLine
2021-05-17 20:18:37 -04:00
toasted-nutbread
76c29134b3
Revert "Add support for custom text type generation (#1683)" (#1684)
This reverts commit 39cabc4db6.
2021-05-16 19:52:08 -04:00
toasted-nutbread
39cabc4db6
Add support for custom text type generation (#1683) 2021-05-16 15:52:39 -04:00
toasted-nutbread
2c752fd89d
Popup action search (#1678)
* Set up search page in the action popup

* Fix a style causing incorrect overflow

* Fix error when trying to take a screenshot

* Fix popup size on Firefox
2021-05-15 16:30:33 -04:00
toasted-nutbread
bc6fb4e7d7
Fix incorrect _updateClipboardMonitorEnabled invocation (#1677) 2021-05-15 15:31:54 -04:00
toasted-nutbread
8442a8ba22
Add SearchPersistentStateController (#1676) 2021-05-15 15:11:42 -04:00
toasted-nutbread
46f60619d5
Display fixes (#1648)
* Fix incorrect tabId/frameId being used

* Only enable nested popups if the tabId is valid

* Remove unused APIs
2021-05-01 17:30:17 -04:00
toasted-nutbread
c514bbc4fb
Flags profile conditions (#1647)
* Generalize modifier keys

* Optimize bindings

* Add support for flags

* Add clipboard flag

* Update tests

* Add tests
2021-05-01 15:54:31 -04:00
toasted-nutbread
c433819c1b
Update search tags to always be displayed in a consistent manner (#1645) 2021-05-01 11:53:56 -04:00
toasted-nutbread
8ee470caa0
Remove the mouseover tags that are shown in merge mode (#1644) 2021-05-01 11:41:10 -04:00
soriac
ba3f7b3e96
Show any custom tags on words that have anki cards created (#1628)
* Proof-of-concept for showing card tags (#1626)

* Resolved most PR comments:
- Added a snackbar notification when clicking tag button
- Replaced magnifying glass icon with new tag icon
- Button now contains a span w/icon, to use text color
- Removed unnecessary attributes from button
- Backend now returns full noteInfos object
- Frontend now handles filtering tags

* Add options to show/hide tag button & filter tags

* Do not show tags button if, after filtering, we have zero tags.

* Change tags option to enums, optimize tags intersection check & fix code style.

* Update options-util.js to include new tag options.

* Fix wording on new tag setting.

* Add CSS to remove hidden buttons from the display layout.

* getAnkiNoteInfo extra parameter for additional info.

* Add new tag option to tests.

* Remove unnecessary changes related to anki tags option.

* Code style fixes.
2021-04-30 17:57:53 -04:00
toasted-nutbread
40b29cb0d3
Add pitch categories template helper (#1636)
* Move utility function

* Expose dictionary entry as a hidden property for internal use

* Add pitchCategories helper
2021-04-28 21:57:49 -04:00
toasted-nutbread
38ed4dc5c7
Improve kifuku detection to not include suru nouns (#1621) 2021-04-26 20:00:03 -04:00
toasted-nutbread
609d4fe334
Replace furigana with reading (#1614)
* Use "reading" instead of "furigana" for reading distribution

* Update tests
2021-04-13 20:32:24 -04:00
toasted-nutbread
c73ee13086
More terminology updates (#1600)
* Update terminology

* Update display

* Rename expression-list to headword-list

* Rename expression-current-indicator

* Rename expression classes

* Update dictionary entry container

* Rename glossary => gloss

* Rename heading

* Rename gloss classes to gloss-content
2021-04-08 19:59:55 -04:00
toasted-nutbread
e444141511
Fix autofocus sometimes not working on the search page (#1597) 2021-04-07 19:07:42 -04:00
toasted-nutbread
e14b52ef84
Update dictionary entry terminology (#1592)
* Update terminology

* Update terminology in display.js

* Update terminology in display-audio.js

* Update terminology in text-scanner.js

* Update terminology in backend.js

* Update terminology in mecab.js

* Update terminology in audio-downloader.js

* Update terminology in translator-vm.js

* Update terminology in dictionary-data-util.js

* Update terminology in dictionary-database.js

* Update terminology in japanese-util.js

* Change/upgrade {expression} to {term}

* Update terminology in test-japanese.js

* Update terminology in test-database.js

* Update terminology in anki-templates-controller.js

* Update terminology in anki-note-builder.js

* Update terminology in backend.js

* Update terminology in text-scanner.js

* Update terminology in display.js

* Update terminology in display.js
2021-04-04 16:22:35 -04:00
toasted-nutbread
8de1e9b3d8
Update logged data name to dictionaryEntry (#1590) 2021-04-03 15:23:55 -04:00
toasted-nutbread
a9fe2d03b2
Update dictionary settings structure (#1587)
* Update dictionary settings structure to use an array instead of an object

* Update ensureDictionarySettings implementation

* Remove some usage of ObjectPropertyAccessor
2021-04-03 13:02:49 -04:00
toasted-nutbread
8179846e38
Refactor template rendering (#1583)
* Update _errorToJson to _serializeError

* Remove async

* Refactor render

* Simplify _getModifiedData

* Rename data => commonData

* Rename templates => template for consistency

* Improve errors check

* Update tests
2021-04-02 12:42:06 -04:00
toasted-nutbread
c66fe71ee0 Remove debug statements (#1582) 2021-04-01 19:17:53 -04:00
toasted-nutbread
5d7309ed54
Log Anki data (#1579)
* Remove unused modifierPost

* Add _getModifier

* Add _getModifiedData

* Add getModifiedData

* Add getRenderingData

* Update logging to also log anki note data

* Fix dangling comma
2021-03-31 20:07:11 -04:00
toasted-nutbread
da612bbdd7
Fix missing document title on the search page (#1578) 2021-03-31 19:58:33 -04:00
toasted-nutbread
bcbd413e57
Definition collapsing when overflowing (#1575)
* Add double-down-chevron.svg

* Add options

* Update dictionary importers

* Update settings

* Add support for collapsible definitions

* Improve case when there is a very small amount of overflow

* Fix incorrect enabled state of newly imported dictionaries
2021-03-31 18:17:28 -04:00
toasted-nutbread
cbcfdcacaf
Fix incorrect state assignment when unbinding wanakana (#1573) 2021-03-29 18:46:32 -04:00
toasted-nutbread
b4d6a5d3b4
Toggle option hotkey (#1571)
* Set up toggleOption hotkey action settings

* Update styles

* Disable spell check and autocomplete

* Add OptionToggleHotkeyHandler

* Improve auto-close behaviour
2021-03-28 14:04:20 -04:00
toasted-nutbread
98994d0b65
Add playAudioFromSource hotkey (#1570) 2021-03-28 11:27:37 -04:00
toasted-nutbread
2098d2faae
Hotkey arguments (#1565)
* Update display

* Move scope definitions

* Update scopes button after changing action

* Don't show menu if empty

* Improve scope updating

* Update style

* Simplify

* Add argument to settings

* Update convertToNumber implementation

* Add support for arguments

* Pass argument to action handler

* Update hotkey action definitions

* Remove x3 options
2021-03-27 22:30:45 -04:00
toasted-nutbread
90f7d5ba07
Add part of speech info (#1561)
* Add part of speech info to headwords

* Expose parts of speech to Anki template rendering

* Expose parts of speech

* Update pitch accent categories

* Update docs

* Add part-of-speech

* Update options and tests

* Update markers

* Update test data
2021-03-26 19:50:54 -04:00
toasted-nutbread
482dd8c8d8
Display fixes (#1560)
* Fix _getDefinitionDetailsForNote

* Fix _getExpressionAndReading
2021-03-26 19:31:19 -04:00
toasted-nutbread
6af0ee26b9
Fix tag disambiguation (#1556)
* Update display generator to use new data format for tag disambiguation

* Add separator for multiple disambiguations
2021-03-25 20:54:39 -04:00
toasted-nutbread
4be5c8fd9f
Refactor Translator and dictionary entry format (#1553)
* Update test data

* Move translator.js

* Create new version of Translator

* Update Backend

* Update DictionaryDataUtil

* Update DisplayGenerator

* Create AnkiNoteDataCreator

* Replace AnkiNoteData with AnkiNoteDataCreator

* Update tests

* Remove AnkiNoteData

* Update test data

* Remove translator-old.js

* Add TypeScript interface definitions for the new translator data format
2021-03-25 19:55:31 -04:00
toasted-nutbread
e7035dcff4
Enable audio menu shift click (#1555)
* Expose modifier keys

* Add updateMenuItems

* Don't close menu if shift key is held

* Add _createMenuItems

* Simplification

* Maintain a list of open popup menus

* Expose expression/reading

* Reuse existing items

* Update menu after a cache update

* Update menu position
2021-03-25 19:22:34 -04:00
toasted-nutbread
28f97ba40b
Update display results style (#1536)
* Expose resultOutputMode

* Update display styles
2021-03-16 18:48:24 -04:00
toasted-nutbread
643dbfb12a
Refactor term frequency data (#1503)
* Add getTermFrequency

* Update DisplayGenerator to use getTermFrequency

* Remove termFrequency from Translator data

* Backwards compatibility

* Update tests
2021-03-07 20:38:40 -05:00
toasted-nutbread
19f6bf5a3a
Refactor furigana segment data (#1502)
* Remove redundant language assignment

* Segment furigana from DisplayGenerator

* Remove furiganaSegments from translator data

* Add backwards compatibility for furiganaSegments

* Update tests
2021-03-07 17:55:51 -05:00
toasted-nutbread
16217728af
Improve empty reading handling (#1497)
* Handle empty readings earlier in the definition creation process

* Remove empty reading check

* Remove special handling of empty readings
2021-03-06 15:53:45 -05:00
toasted-nutbread
01f74510f0
Separate display resizer (#1494)
* Make invokeContentOrigin public

* Move display resizer functionality into a new class: DisplayResizer

* Simplify field names

* Use parent frame instead of content origin

* Remove unused
2021-03-06 14:31:23 -05:00
toasted-nutbread
6e00b5d765
Fix multiline copying (#1493)
* Change order

* Update multiline text assignment
2021-03-06 13:41:38 -05:00
toasted-nutbread
ca4d5a2ac1
Fix text being overwritten when generating the query parser content (#1483) 2021-03-03 18:06:12 -05:00
toasted-nutbread
571b865ae5
Fix enter key causing duplicate text when typing using an IME (#1477) 2021-03-02 18:18:31 -05:00
toasted-nutbread
90da87f378
Add support for resizing the popup window using touch events (#1471) 2021-02-28 17:13:11 -05:00
toasted-nutbread
c192b4a4c1
Wrap host selection copy in a try-catch (#1470) 2021-02-28 16:51:48 -05:00
toasted-nutbread
8f057c63fe
Improve text parser (#1469)
* Merge ungrouped characters

* Update iteration

* Fix incorrect code point handling

* Simplify text

* Specify language

* Update how parsed status is represented
2021-02-28 16:38:01 -05:00
toasted-nutbread
1dfcd3e435
Fix missing details causing frequency tags to not be clickable (#1467) 2021-02-28 14:44:44 -05:00
toasted-nutbread
704db45e29
Remove the now-unused hotkey forwarding functionality (#1466) 2021-02-28 14:29:43 -05:00
toasted-nutbread
4806414f95
Text source element scanning improvements (#1464)
* Add api.textHasJapaneseCharacters

* Add support for empty query

* Add support for showing the query parser for TextSourceElement
with content that does not start with Japanese text
2021-02-28 14:18:18 -05:00
toasted-nutbread
6f76645f4c
Use a Set instead of an array (#1463) 2021-02-28 13:33:33 -05:00
toasted-nutbread
445f87ebdb
Get categorization of pitch accents (#1462) 2021-02-28 13:26:34 -05:00
toasted-nutbread
c4b2e83cb4
Organize display styles (#1452)
* Improve grouping for inflection and expression styles

* kanji-link => expression-kanji-link

* Remove unnecessary entry-header2 and entry-header3

* Move tag list into header for consistency with term definitions

* Move styles

* Add clear
2021-02-27 16:54:15 -05:00
toasted-nutbread
8d3436fca3
Refactor display styles (#1451)
* term-expression => expression

* term-pitch-accent => pitch-accent

* term-reason => inflection, term-reasons => inflection-list

* term-details => expression-list-details

* term-glossary => glossary

* Update tag list classes

* term-definition => definition
2021-02-27 16:32:44 -05:00
toasted-nutbread
1a7c264165
Add standalone reading (#1448)
* Add option

* Update display

* Hide redundant readings

* Improve label and description
2021-02-27 14:04:52 -05:00
toasted-nutbread
782b945905
Header lint (#1444)
* Add eslint-plugin-header

* Add rule for header format

* Add missing header

* Fix header issues
2021-02-25 20:21:05 -05:00
toasted-nutbread
ec495bd7b2
Improve frequency display (#1438)
* Add frequencyDisplayMode option

* Update tests

* Add setting

* Update frequency display styles

* Improve wrapping
2021-02-25 17:48:39 -05:00
toasted-nutbread
6bda81b422
Improve note addability (#1440)
* Add valid field

* Add isNoteDataValid function

* Update _areDefinitionsAddableForcedValue to return proper valid values

* Refactor isAnkiConnected check

* Force canAdd to false if not valid
2021-02-24 22:23:40 -05:00
toasted-nutbread
ae92e0b378
AnkiUtil (#1439)
* Add AnkiUtil

* Update AnkiConnect to use AnkiUtil

* Use AnkiUtil in AnkiNoteBuilder

* Replace containsAnyMarker with AnkiUtil.stringContainsAnyFieldMarker

* Add AnkiUtil.getFieldMarkers

* Add fieldsObjectContainsMarker to AnkiUtil

* Remove unused global

* Remove unused parameter: enabled

* Add cloneFieldMarkerPattern
2021-02-24 21:54:58 -05:00
toasted-nutbread
b778974938
Improve tag styles (#1431)
* Update tag styles

* Refactor _createTag

* Update padding
2021-02-21 13:57:28 -05:00
toasted-nutbread
b9e92a2528
Improve key press to focus the search query input (#1424) 2021-02-19 21:20:58 -05:00
toasted-nutbread
6a6d7ba84e
Fix wanakana.unbind throwing an error (#1422) 2021-02-19 18:39:36 -05:00
toasted-nutbread
53d02ca3d3
Fix search tags in split and grouped display modes (#1412) 2021-02-16 21:19:52 -05:00
toasted-nutbread
3a86601c88
Improve primary audio assignment when audio isn't available (#1407) 2021-02-15 21:46:55 -05:00
toasted-nutbread
55f5182ca9
Audio popup menu primary card audio selection (#1406)
* Add card icon to audio menu items

* Update cache data format

* Create _getCacheItem

* Add _playAudioFromSource function

* Implement default card audio info

* Specify exact audio to download when an override is assigned

* Abstract using _getMenuItemSourceInfo

* Update downloadability check

* Update the main audio menu buttons to also assign the default source
2021-02-15 21:34:10 -05:00
toasted-nutbread
f2a387237b
Update audio downloading to support specifying an exact array index (#1405) 2021-02-15 20:47:35 -05:00
toasted-nutbread
7027d537a9
Display audio menu refactor (#1404)
* Update display and generation of the audio menu

* Wrap menu items in a div to allow for horizontal layout groupings
2021-02-15 14:31:16 -05:00
toasted-nutbread
48b59375eb
Cleanup yomichan api (#1394)
* Move invokeMessageHandler to core.js

* Move getMessageResponseResult to backghend.js

* Replace getTemporaryListenerResult
2021-02-14 18:18:02 -05:00
toasted-nutbread
9279ced686
Log refactoring (#1393)
* Create Logger class and log instance

* Replace yomichan.logWarning with log.warn

* Replace yomichan.logError with log.error

* Replace yomichan.log with log.log

* Update the Yomichan class to use the global log object

* Update lint rules
2021-02-14 17:52:01 -05:00
toasted-nutbread
286534e648
Move api to yomichan object (#1392)
* Move cross frame API from API to Yomichan

* Add API instance to Yomichan

* Move api global to yomichan.api

* Pass yomichan to API

* Remove IIFE
2021-02-14 15:53:35 -05:00
toasted-nutbread
efe8140f10
Api prepare refactor (#1391)
* Refactor API preparation

* Run yomichan.prepare manually in the entry point function
2021-02-14 15:19:31 -05:00