https://github.com/terasum/js-mdict
*.mdx/*.mdd interpreter js implements, support mdict index file
https://github.com/terasum/js-mdict
dictionary es6 glodendict javascript mdd mdict mdx npm-package
Last synced: about 1 month ago
JSON representation
*.mdx/*.mdd interpreter js implements, support mdict index file
- Host: GitHub
- URL: https://github.com/terasum/js-mdict
- Owner: terasum
- License: mit
- Created: 2018-02-22T17:51:43.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2025-03-15T09:32:57.000Z (3 months ago)
- Last Synced: 2025-04-12T06:15:39.216Z (3 months ago)
- Topics: dictionary, es6, glodendict, javascript, mdd, mdict, mdx, npm-package
- Language: TypeScript
- Homepage:
- Size: 1.9 MB
- Stars: 167
- Watchers: 7
- Forks: 19
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# js-mdict
[](https://badge.fury.io/js/js-mdict)
[](https://github.com/terasum/js-mdict/issues)
[](https://github.com/terasum/js-mdict/network)
[](https://github.com/terasum/js-mdict/stargazers)
[](https://github.com/terasum/js-mdict/blob/develop/LICENSE)mdict (\*.mdd \*.mdx) file reader based on [jeka-kiselyov/mdict](https://github.com/jeka-kiselyov/mdict) .
Thanks to [fengdh](https://github.com/fengdh/mdict-js) and [jeka-kiselyov](https://github.com/jeka-kiselyov/mdict).
## Latest Version
v6.0.7 (2025-03-15)
## Usage
```bash
npm install js-mdict
```### ESM
```javascript
import { MDX } from "js-mdict";const mdict = new MDX("resources/oald7.mdx");
const def = mdict.lookup("ask");
console.log(def.definition);/*
ask/ɑ:sk; NAmE æsk/ verb
QUESTION 问题
1 ~ (sb) (about sb/ sth) to say or write sth in the form of a question, in order to get information 问;询问
[V speech]
'Where are you going?' she asked.
"你去哪里?"她问道。
[VN speech]
'Are you sure?' he asked her.
...*/
import { MDD } from '../dist/cjs/index.js';const mdx = new MDD('./tests/data/oale8.mdd');
console.log(mdx.locate('\\Logo.jpg'));/*
$ git clone github.com/terasum/js-mdict
$ cd js-mdict
$ npx tsx ./example/oale8-mdd-example.tsNOTE: the mdd's definition is base64 encoded bytes,
if your target is css/js content, please decode base64 and get the original text
if your target is images, you can use dataurl to show the images{
keyText: '\\Logo.jpg',
definition: '/9j/4AAQSkZJRgABAgAAAQABAAD//gAEKgD/4gIcSUNDX1BST0ZJTEUAAQEAAAIMbGNtcwIQ...'
}
*/```
### CommonJS
```javascript
const { MDX } = require('js-mdict');const mdict = new MDX('resources/oald7.mdx');
const def = mdict.lookup('ask');
console.log(def.definition);/*
ask/ɑ:sk; NAmE æsk/ verb
QUESTION 问题
1 ~ (sb) (about sb/ sth) to say or write sth in the form of a question, in order to get information 问;询问
[V speech]
'Where are you going?' she asked.
"你去哪里?"她问道。
[VN speech]
'Are you sure?' he asked her.
...*/
```### Command Line
``` bash
npm install -g js-mdict> js-mdict ~/Downloads/uu89ug_folder/大辞泉202304.mdx 新語
> ☞しんご【新語】
☞しんご【新語】[書名]> js-mdict ~/Downloads/uu89ug_folder/大辞泉202304.mdd \\srej.css
> dGFibGUuc3JlansgbWFyZ2luOjAgYXV0bztib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Ym9yZGVyLXN0eWxlOmhpZGRlbiB9DQp0...(total: 3976.97265625 KB)
```## Benchmark
```angular2html
Mdict#loading time: 0 sec
Mdict#lookup x 20,288 ops/sec ±0.44% (93 runs sampled)
Mdict#prefix x 3,279 ops/sec ±17.69% (92 runs sampled)
Mdict#associate x 6,436 ops/sec ±0.40% (98 runs sampled)
Mdict#loadDict
average load time:0.0522899 s
Mdict#decodeRecordBlock
average decode time:0.19147 s
```
## Tested Passed Dictionaries| File Path | Title | Version | Encoding | 'arose' Definition's Length |
| --------- | ----- | ------- | -------- | --------------------------- |
|dict-01-袖珍葡汉汉葡词典(简体版).mdx|Title (No HTML code allowed)|2.0|UTF-16|181|
|dict-02-红葡汉词典.mdx|Title (No HTML code allowed)|2.0|UTF-16|135|
|dict-03-ptDict_KeyCaseSensitive.mdx|Title (No HTML code allowed)|2.0|UTF-16|207|
|new-oxford-en-ch-dict.mdx|新牛津英汉双解大词典|2.0|UTF-8|285|
|oald7.mdx|Oxford Advanced Learner's Dictionary 7th|1.2|UTF-8|220|
|oale8.mdd|OALECD8e|2.0||1513|
|oale8.mdx||2.0|UTF-8|1549|
|Collins COBUILD Advanced Learner's English-Chinese Dictionary.mdd|柯林斯高阶英汉双解学习词典|2.0||13014|
|Collins COBUILD Advanced Learner's English-Chinese Dictionary.mdx|Collins COBUILD Advanced Learner's English-Chinese Dictionary|1.2|UTF-8|495|
|Oxford Advanced Learner's Dictionary 7th.mdd|O7|2.0||2295|
|Oxford Advanced Learner's Dictionary 7th.mdx|Oxford Advanced Learner's Dictionary 7th|1.2|UTF-8|220|
|The American Heritage Dictionary of English Language.mdd|undefined|1.2|undefined|1141|
|The American Heritage Dictionary of English Language.mdx|The American Heritage Dictionary of English Language|1.2|UTF-16|1823|
|Macmillan English Dictionary.mdd|Macmillan English Dictionary|2.0||44697|
|Macmillan English Dictionary.mdx|Macmillan English Dictionary|2.0|UTF-8|517|
|Oxford Collocations Dictionary for students of English 2nd.mdd|Oxford Collocations Dictionary for students of English|2.0||43791|
|Oxford Collocations Dictionary for students of English 2nd.mdx|Oxford Collocations Dictionary for students of English|2.0|UTF-8|386|
|Oxford Dictionary of English 2005 2nd.mdx|Oxford Dictionary of English|2.0|UTF-8|1081|
|Vocabulary.com Dictionary.mdd|Vocabulary.com Dictionary|2.0||145|
|Vocabulary.com Dictionary.mdx|Vocabulary.com Dictionary|2.0|UTF-8|2501|## Release
### v6.0.6 (2025-01-06)
1. fix mdd not found case bug### v6.0.5 (2025-01-04)
1. fix fuzzy_word search method### v6.0.4 (2025-01-04)
1. add example### v6.0.3 (2025-01-04)
1. fix tests and benchmarks### v6.0.2
1. implements with TypeScript
2. fix some overflow bug
3. resort the keyword order internally (may cost more memory), search word preciselyBREAKING:
1. the `Mdict` class don't provide the `lookup` method now, you should use `MDX/MDD` class## MDX/MDD Layout
### v1.2-v2.0
> this is from [@ikey4u/wikit](https://github.com/ikey4u/wikit)
### v3.0
> this is from [xwang/mdict-analysis](https://bitbucket.org/xwang/mdict-analysis/src/master/MDict3.svg)
code by terasum with ❤️