aboutsummaryrefslogtreecommitdiff
path: root/readme.md
blob: f27e247d4ad6cc4bc906368a74236f988ac69927 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# Yomikun

> This project is very much a work in progress. Crossed out text in this
> document is for features that will be implemented, but aren't. See [the
> dream](#the-dream) for ideas/features that are in the works. Documentation is
> currently also incomplete, but is intended to be fixed before an official
> 'dev-ready' pre-release.

Yomikun is a spiritual successor to Yomichan, but implemented from scratch.
Because Yomichan is no longer maintained, and extension manifest v2 is being
deprecated, this project was created. Yomikun aims to provide all the original
features of Yomichan, but in a standalone application for tighter integration
with OS services and other applications. ~Yomikun has a very flexible extension
API~, and aims to provide extra features that help with immersion and sentence
mining on top of the base word lookup that Yomichan provided. **While Yomikun's
scope is larger than Yomichan, it's still focused on Japanese only.**

## TODO

- [x] working proof of concept sentence lookup using deno/sqlite3
- [ ] port dictionaries for more advanced testing
    - [x] JMdict (WIP)
    - [ ] JMNedict
- [ ] add separate kanji readings/info table
- [ ] add separate frequency dictionary
- [ ] add more deinflections to db/deinflections.sql
- [x] set up unit tests for sentence reading generation
- [x] port server-internal API to simple HTTP JSON API
- [ ] create primitive search page ui
- [ ] add code formatter config
- [ ] complete documentation
- [ ] remove makefiles for database initialization
- [ ] replace .sql script files with typescript sql query generation library

## ~New features (from Yomichan)~

NONE OF THESE ARE IMPLEMENTED YET

- [ ] standalone server/client architecture for integration outside of browsers
- [ ] text input from other sources than clipboard and manual input
    - [ ] integration with accessibility frameworks provided by OSes to extract
      text from applications without using OCR
    - [ ] OCR for games or manga
    - [ ] subtitle tracking for video players such as YouTube, Jellyfin and MPV
- [ ] dedicated sentence mining features
- [ ] flexible dictionary editing, importing, exporting, toggling and sharing
- [ ] user dictionaries containing series-specific words or readings of kanji
- [ ] support for front-end UI translations
- [ ] slightly more accurate automatic reading generation
- [ ] bookmark words/sentences
- [ ] support for extensions

## Documentation

Some general documentation is done in markdown, but other general documentation
should be done in JSDoc format in the corresponding code files. The
documentation also makes frequent references to, and uses terminology from [Tae
Kim's Japanese grammar guide][taekim], which is abbreviated to [taekim] instead
of copying the link into the source code each time. Tae Kim uses slightly
different terms for grammatical concepts. The 'Tae Kim-version' of these terms
is used for named constants in code. See [tags.ts](language/tags.ts) for an
overview of relevant grammatical terms for the Yomikun parser.

## The dream

Here's a Figma mockup for what the search page could look like (contains
questionable content/translations, this image is mainly for illustration
purposes)

!["the dream"](assets/the-dream.png)

[taekim]: https://guidetojapanese.org/learn/