6.0.8 • Published 10 months ago

js-mdict v6.0.8

Weekly downloads
9
License
MIT
Repository
github
Last release
10 months ago

js-mdict

npm version GitHub issues GitHub forks GitHub stars GitHub license

mdict (*.mdd *.mdx) file reader based on jeka-kiselyov/mdict .

Thanks to fengdh and jeka-kiselyov.

Latest Version

v6.0.7 (2025-03-15)

Usage

npm install js-mdict

ESM

import { MDX } from "js-mdict";

const mdict = new MDX("resources/oald7.mdx");

const def = mdict.lookup("ask");
console.log(def.definition);


/*
<head><link rel="stylesheet" type="text/css" href="O7.css"/></head><body><span class="hw"> ask </span hw><span class="i_g"> <img src="key.gif"/>  /<a class="i_phon" href="sound://aask_ggv_r1_oa013910.spx">ɑ:sk</a i_phon><span class="z">; </span z><i>NAmE</i> <a class="y_phon" href="sound://aask_ggx_r1_wpu01057.spx">æsk</a y_phon>​/ </span i_g><span class="cls"> verb</span cls><br><span class="sd">QUESTION<span class="chn"> 问题</span chn></span sd>
<div class="define"><span class="numb">1</span numb><span class="cf"> ~ <span class="bra">(</span bra>sb<span class="bra">)</span bra> <span class="bra">(</span bra>about sb/ sth<span class="bra">)</span bra> </span cf><span class="d">to say or write sth in the form of a question, in order to get information<span class="chn"> 问;询问</span chn></span d></div define>
<span class="phrase"><span class="pt">  [<span class="pt_inside">V <span class="pt_bold">speech</span></span><span>]</span> </span pt></span phrase>
<span class="sentence_eng">'Where are you going?' she asked. </span sentence_eng>
<span class="sentence_chi">"你去哪里?"她问道。</span sentence_chi>
<span class="phrase"><span class="pt"> [<span class="pt_inside">VN <span class="pt_bold">speech</span></span><span>]</span> </span pt></span phrase>
<span class="sentence_eng">'Are you sure?' he asked her. </span sentence_eng>
...
</body>
  */
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.ts

NOTE: 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

const { MDX } = require('js-mdict');

const mdict = new MDX('resources/oald7.mdx');

const def = mdict.lookup('ask');
console.log(def.definition);

/*
<head><link rel="stylesheet" type="text/css" href="O7.css"/></head><body><span class="hw"> ask </span hw><span class="i_g"> <img src="key.gif"/>  /<a class="i_phon" href="sound://aask_ggv_r1_oa013910.spx">ɑ:sk</a i_phon><span class="z">; </span z><i>NAmE</i> <a class="y_phon" href="sound://aask_ggx_r1_wpu01057.spx">æsk</a y_phon>​/ </span i_g><span class="cls"> verb</span cls><br><span class="sd">QUESTION<span class="chn"> 问题</span chn></span sd>
<div class="define"><span class="numb">1</span numb><span class="cf"> ~ <span class="bra">(</span bra>sb<span class="bra">)</span bra> <span class="bra">(</span bra>about sb/ sth<span class="bra">)</span bra> </span cf><span class="d">to say or write sth in the form of a question, in order to get information<span class="chn"> 问;询问</span chn></span d></div define>
<span class="phrase"><span class="pt">  [<span class="pt_inside">V <span class="pt_bold">speech</span></span><span>]</span> </span pt></span phrase>
<span class="sentence_eng">'Where are you going?' she asked. </span sentence_eng>
<span class="sentence_chi">"你去哪里?"她问道。</span sentence_chi>
<span class="phrase"><span class="pt"> [<span class="pt_inside">VN <span class="pt_bold">speech</span></span><span>]</span> </span pt></span phrase>
<span class="sentence_eng">'Are you sure?' he asked her. </span sentence_eng>
...
</body>
  */

Command Line

npm install -g js-mdict

> js-mdict ~/Downloads/uu89ug_folder/大辞泉202304.mdx 新語      
> <head><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="srej.css"><script src="srej.js"></script></head><srejm class="srejm">☞<a href="entry://しんご【新語】">しんご【新語】</a><hr/>☞<a href="entry://しんご【新語】[書名]">しんご【新語】[書名]</a></srejm>

> js-mdict ~/Downloads/uu89ug_folder/大辞泉202304.mdd \\srej.css
> dGFibGUuc3JlansgbWFyZ2luOjAgYXV0bztib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Ym9yZGVyLXN0eWxlOmhpZGRlbiB9DQp0...(total: 3976.97265625 KB)

Benchmark

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 PathTitleVersionEncoding'arose' Definition's Length
dict-01-袖珍葡汉汉葡词典(简体版).mdxTitle (No HTML code allowed)2.0UTF-16181
dict-02-红葡汉词典.mdxTitle (No HTML code allowed)2.0UTF-16135
dict-03-ptDict_KeyCaseSensitive.mdxTitle (No HTML code allowed)2.0UTF-16207
new-oxford-en-ch-dict.mdx新牛津英汉双解大词典2.0UTF-8285
oald7.mdxOxford Advanced Learner's Dictionary 7th1.2UTF-8220
oale8.mddOALECD8e2.01513
oale8.mdx2.0UTF-81549
Collins COBUILD Advanced Learner's English-Chinese Dictionary.mdd柯林斯高阶英汉双解学习词典2.013014
Collins COBUILD Advanced Learner's English-Chinese Dictionary.mdxCollins COBUILD Advanced Learner's English-Chinese Dictionary1.2UTF-8495
Oxford Advanced Learner's Dictionary 7th.mddO72.02295
Oxford Advanced Learner's Dictionary 7th.mdxOxford Advanced Learner's Dictionary 7th1.2UTF-8220
The American Heritage Dictionary of English Language.mddundefined1.2undefined1141
The American Heritage Dictionary of English Language.mdxThe American Heritage Dictionary of English Language1.2UTF-161823
Macmillan English Dictionary.mddMacmillan English Dictionary2.044697
Macmillan English Dictionary.mdxMacmillan English Dictionary2.0UTF-8517
Oxford Collocations Dictionary for students of English 2nd.mddOxford Collocations Dictionary for students of English2.043791
Oxford Collocations Dictionary for students of English 2nd.mdxOxford Collocations Dictionary for students of English2.0UTF-8386
Oxford Dictionary of English 2005 2nd.mdxOxford Dictionary of English2.0UTF-81081
Vocabulary.com Dictionary.mddVocabulary.com Dictionary2.0145
Vocabulary.com Dictionary.mdxVocabulary.com Dictionary2.0UTF-82501

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 precisely

BREAKING: 1. the Mdict class don't provide the lookup method now, you should use MDX/MDD class

MDX/MDD Layout

v1.2-v2.0

layout

this is from @ikey4u/wikit

v3.0

layout-v3.0

this is from xwang/mdict-analysis

code by terasum with ❤️

6.0.1

12 months ago

6.0.3

12 months ago

6.0.2

12 months ago

6.0.5

12 months ago

6.0.4

12 months ago

6.0.7

10 months ago

6.0.6

12 months ago

6.0.8

10 months ago

5.0.5

1 year ago

5.0.4

1 year ago

6.0.0-alpha-2

1 year ago

6.0.0-alpha-1

1 year ago

5.0.2

3 years ago

5.0.1

3 years ago

5.0.0

3 years ago

4.0.20

4 years ago

4.0.19

4 years ago

4.0.18

4 years ago

4.0.17

4 years ago

4.0.16

4 years ago

4.0.15

4 years ago

4.0.14

5 years ago

4.0.13

5 years ago

4.0.12

5 years ago

4.0.11

5 years ago

4.0.9

5 years ago

4.0.10

5 years ago

4.0.8

5 years ago

4.0.7

5 years ago

4.0.6

5 years ago

4.0.5

7 years ago

3.1.2

7 years ago

3.1.1

7 years ago

3.1.0

7 years ago

2.0.3

8 years ago

2.0.2

8 years ago

2.0.1

8 years ago

2.0.0

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago