gd-tools/README.md

190 lines
5.7 KiB
Markdown
Raw Normal View History

2024-02-04 18:24:04 +00:00
# GoldenDict tools
2024-02-04 18:11:05 +00:00
2024-02-04 18:24:04 +00:00
A set of helpful programs to enhance goldendict for immersion learning.
2024-02-06 22:49:52 +00:00
This is a fork from the original program made by tatsumoto
# Some significant features of this fork
- replace libfmt by a native function, making it 3x faster than the original version
- a sane build system using cmake
2024-02-07 15:23:29 +00:00
- system-agnostic, means it can even run on [windows](https://www.mediafire.com/file/h1v7owj7np9j7wg/gd-tools_windows.zip/file)
2024-02-06 22:49:52 +00:00
2024-02-04 18:24:04 +00:00
## Table of Contents
- [Installation](#installation)
- [gd-marisa](#gd-marisa)
- [gd-mecab](#gd-mecab)
- [gd-images](#gd-images)
- [gd-strokeorder](#gd-strokeorder)
- [gd-handwritten](#gd-handwritten)
- [gd-massif](#gd-massif)
- [gd-ankisearch](#gd-ankisearch)
## Installation
First, [install goldendict-ng](https://tatsumoto-ren.github.io/blog/setting-up-goldendict.html).
2024-02-06 22:49:52 +00:00
### Gnu Guix
2024-02-07 20:38:05 +00:00
gd-tools is available in our [channel](https://codeberg.org/hashirama/ajatt-tools-guix)
2024-02-04 18:24:04 +00:00
2024-02-14 13:10:03 +00:00
### Microsoft Windows
2024-02-14 13:13:42 +00:00
Refer to [Build on MinGW](BUILDING.md) in Build Instructions
2024-02-14 13:10:03 +00:00
### Apple Mac
2024-02-14 13:13:42 +00:00
Refer to [Build on Mac](BUILDING.md) in Build Instructions
2024-02-14 13:10:03 +00:00
2024-02-06 22:49:52 +00:00
### Other Unix systems
2024-02-04 18:24:04 +00:00
2024-02-14 13:10:03 +00:00
[Build instructions](BUILDING.md)
2024-02-04 18:24:04 +00:00
## Setup
Open GoldenDict, press "Edit" > "Dictionaries" > "Programs" and add the installed executables.
Set type to `html`.
2024-02-07 17:36:37 +00:00
Command Line: `gd-tools <name of the program> --word %GDWORD% --sentence %GDSEARCH%`.
2024-02-07 17:34:02 +00:00
Optionally add arguments, such as: `gd-tools marisa --word %GDWORD% --sentence %GDSEARCH% `.
2024-02-04 18:24:04 +00:00
These programs are treated as dictionaries and you can add them under "Dictionaries" or "Groups".
## gd-marisa
This script outputs the sentence with clickable characters
and searches for the longest available dictionary entry
(from a predefined list) beginning at that character.
2024-02-07 20:39:04 +00:00
For deinflection it currently relies on [rdricpp]https://codeberg.org/hashirama/rdricpp).
2024-02-04 18:24:04 +00:00
It also provides links of available entries of smaller substrings.
![demo](https://user-images.githubusercontent.com/50422430/229341045-96283fc9-8ecb-49bb-a011-abd2d3e4e43e.gif)
**Usage**
```
2024-02-07 17:32:04 +00:00
gd-tools marisa --word %GDWORD% --sentence %GDSEARCH%
2024-02-04 18:24:04 +00:00
```
The path to the `.dic` is an optional argument and defaults to `/usr/share/gd-tools/marisa_words.dic`
**Dependencies**
[marisa-trie](https://github.com/s-yata/marisa-trie).
The official Arch Linux package is called [marisa](https://archlinux.org/packages/community/x86_64/marisa/),
but it's already a dependency of goldendict.
**Building an own index from a set of words**
If you would like to make changes to found words,
you can also create an own index from a newline-separated list of words (here called `keyset.txt`):
```
marisa-build < keyset.txt > keyset.dic
```
More information at https://www.s-yata.jp/marisa-trie/docs/readme.en.html
2024-02-07 17:32:04 +00:00
## gd-ankisearch
2024-02-04 18:24:04 +00:00
2024-02-07 17:32:04 +00:00
This script searches Anki cards in your collection that contain %GDWORD%.
2024-02-04 18:24:04 +00:00
2024-02-07 17:32:04 +00:00
![screenshot](https://github.com/Ajatt-Tools/gd-tools/assets/69171671/45a6b3a1-97de-439c-8f17-bd6f81d81d73)
2024-02-04 18:24:04 +00:00
2024-02-07 17:32:04 +00:00
**Arguments:**
2024-02-04 18:24:04 +00:00
2024-02-07 17:32:04 +00:00
* `--field-name` `NAME` optional field to limit search to.
* `--deck-name` `NAME` optional deck to limit search to.
* `--show-fields` `VocabKanji,SentKanji` optional comma-separated list of fields to show.
2024-02-04 18:24:04 +00:00
2024-02-07 17:32:04 +00:00
**Example invocation:**
2024-02-04 18:24:04 +00:00
```
2024-02-07 17:32:04 +00:00
gd-tools ankisearch --field-name VocabKanji --show-fields VocabKanji,SentKanji,Image,SentAudio --word %GDWORD%
2024-02-04 18:24:04 +00:00
```
## gd-images
This script shows the top 5 pictures from Bing images for the given search string.
![image](https://user-images.githubusercontent.com/50422430/224940994-eb3e1be6-9cd8-4776-88cf-850c78648e81.png)
## gd-strokeorder
This script shows the search string in the `KanjiStrokeOrders` font.
![screenshot](https://user-images.githubusercontent.com/69171671/224840590-b740a1b6-8526-49ed-b4cd-efe03689a132.png)
Font source: https://www.nihilist.org.uk/
**Arguments**:
* `--max-len` `5` maximum size of the input string.
* `--font-size` `10rem` font size. It has to be large in order to see the stroke numbers.
**How to call**:
```
2024-02-07 17:32:04 +00:00
gd-tools strokeorder --word %GDWORD%
2024-02-04 18:24:04 +00:00
```
## gd-handwritten
This script displays the handwritten form of each character
![screenshot](https://user-images.githubusercontent.com/53496273/254959907-4aa7d72d-2d58-4bd3-8b3a-c2f6f3186834.png)
Font source: [ArmedLemon](https://github.com/Ajatt-Tools/gd-tools/blob/main/res/ArmedLemon.ttf).
**How to call**:
```
2024-02-07 17:32:04 +00:00
gd-tools handwritten --word %GDWORD%
2024-02-04 18:24:04 +00:00
```
## gd-massif
This script shows example sentences from https://massif.la/
![image](https://user-images.githubusercontent.com/50422430/226018360-e46605f0-2fb4-481c-801e-73aca84fae70.png)
2024-02-07 17:32:04 +00:00
## gd-mandarin
2024-02-04 18:24:04 +00:00
2024-02-07 17:32:04 +00:00
This script passes a sentence through mecab in order to make every part of the sentence clickable.
It also automatically converts the sentence to traditional characters.
2024-02-04 18:24:04 +00:00
2024-02-07 17:32:04 +00:00
![image](https://github.com/KonstantinDjairo/gd-tools/assets/53496273/20921976-9221-416e-820a-b6bb22db906b)
2024-02-04 18:24:04 +00:00
2024-02-07 17:32:04 +00:00
To use `gd-mandarin`,
you need to install `gd-tools` by running `./quickinstall.sh --mandarin`.
2024-02-04 18:24:04 +00:00
2024-02-07 17:32:04 +00:00
## gd-mecab
2024-02-04 18:24:04 +00:00
This script passes a sentence through mecab in order to make every part of the sentence clickable.
2024-02-07 17:32:04 +00:00
https://user-images.githubusercontent.com/50422430/226139459-0c8bcf0e-e68f-491e-8171-bae3f50a7ae1.mp4
2024-02-04 18:24:04 +00:00
2024-02-07 17:32:04 +00:00
**Dependencies**
This script requires [MeCab](https://taku910.github.io/mecab/) and the IPA dictionary to be installed.
If you are on an Arch Linux system you can simply install the AUR package `mecab-ipa` to obtain both.
**Command format**
Add this script to GoldenDict under "Dictionaries" > "Programs" (format HTML), like this:
```
gd-tools mecab --word %GDWORD% --sentence %GDSEARCH%
```
**Optional arguments**
* `--font-size SIZE` the font size to be used, e.g. `30px`.
* `--user-dict FILE` full path to the user_dic.dic file. This is done automatically if you install via make.
2024-02-07 21:57:28 +00:00
2024-02-07 21:58:40 +00:00
### Disclaimer
2024-02-07 21:58:19 +00:00
Most of the effort was done by ```アーニャ``` through my guidance.
2024-02-07 21:57:28 +00:00