掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 12670|回复: 76

[工具] 写了个抓取特定单词,生成html或pdf的小工具 MdxConverter v0.0.4

[复制链接]
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-2-28 10:10:04 | 显示全部楼层 |阅读模式
    本帖最后由 noword2k 于 2020-3-9 09:00 编辑
    ' W7 E: R4 W8 L8 U+ L' m& s% |; g2 q! @' a0 z0 I, t, d0 n
    : y7 e0 a! W/ U
    exe下载地址:
      X# O8 e9 q; D" [$ D7 _4 l% E  U# o6 A- p0 b
    7 B% X: g0 R- i
    一个用来从 mdx 字典中抓取所需的单词,并生成 html 或 pdf 文件的小工具。
    2 R+ s7 ]2 f! F  f0 j学新单词的时候,一次生成所需的单词解释、例句。
    : _, P1 [1 P0 O0 g8 F: r  w输入支持xls, xlsx, json, txt,输出支持html和pdf。
    , {9 J  `# ~. ]' x3 n这个工具没有GUI界面,我也没兴趣做一个GUI界面,不会用命令行的同学就忘了这个吧。* Q2 l; G! ?4 d* }4 }- {

    4 J, a5 S7 I+ _+ B3 b$ K关于怎么使用:
    0 e7 D, H8 d7 M9 r比方说你希望收集以下单词5 O" b& }, m% H6 J! M
    Lesson 1:hello world& @$ }8 f1 O* u8 s: E5 k1 [; W
    Lesson 2:this is a test6 N* Y  J1 F" A. t
    Lesson 3: .....
    3 v2 T8 i6 s8 I' |( D# {, S+ j: H6 l, j  T6 g
    你可以编辑一个txt,一个单词一行,课程名称用#开头,格式如下:
    4 Q3 Z) S- N8 L1 A3 u( D3 V7 m#Lesson 1
    3 i( A% z' I" G8 Thello
    ( W% e. f; M3 Fworld
    " m3 c$ Q: H" [6 ~/ u+ ?+ A( _#Lesson 2. S% ]+ W. T6 G
    this7 [/ G5 z5 @0 Z: G* m; M1 o
    is' j6 r4 R- q% s3 f
    a
    $ X& ?: b  J) E7 r" |7 r3 Ctest
    : I+ X3 a( B5 [8 }1 e#Lesson 38 P  [. S! }5 P5 B0 ?
    ....
    ; O8 P! ?$ x& q6 Q/ l' B) a* s+ G+ G1 ~2 a# F
    也可以编辑一个excel表格,一个sheet就是一个课程,sheet名称就是课程名称,单词排列在第一列上
    5 q8 K, H3 q# H2 n也可以编辑一个json文件,不再赘述。3 e8 |8 E( N; S2 J
    % U% e; ]8 K% _6 a% k0 d
    然后在命令行下运行
    2 |: |8 ?- c  {6 {4 V6 KMdxConverter 【mdx字典名称】 【输入的文件名】 【输出的文件名(后缀为.html或.pdf)】
    ! }% `6 f/ L6 e( u& y9 e8 U4 m* J
    9 U9 \* c+ p) q( V注意:如果有mdx词典中不存在的单词,程序会显示报警信息,默认动作是收集到invalid_words.txt中。你可以设置运行参数8 k2 b# k. K) D" A, N, a- S
    --invalid 0 立即退出' g( j7 ?; @% G1 L8 e2 f% p
    --invalid 1 输出警告信息到html/pdf中2 z2 c; S0 C( |6 E

    & b  N$ s4 Y' h3 Z! m用法
    1. usage: MdxConverter.exe [-h] [--type [{pdf,html}]] [--invalid {0,1,2}]; @' s& s9 t5 V" F" l5 V
    2.                         mdx_name input_name [output_name]
      9 F# G5 T. N- j: v
    3. positional arguments:; j  P( Q& S; V) d4 }2 E
    4.   mdx_name
      $ c) Y! Q- _5 s- X
    5.   input_name/ m/ p! m3 @6 J( B& S! [; O3 Q! o- M
    6.   output_name% F" f- f- B  h% C+ s; V
    7. optional arguments:
      4 ?4 l* G, g: ^( u
    8.   -h, --help           show this help message and exit9 d. s6 A$ m( ]# N5 g+ O0 q& U3 z
    9.   --type [{pdf,html}]
      ( X6 ?( N+ G1 N3 u
    10.   --invalid {0,1,2}    action for meeting invalid words) b4 `% Z/ e( D% Q
    11.                        0: exit immediately
      ( g7 J6 `  a2 \- W9 c3 q
    12.                        1: output warnning message- c2 _; X" s) W" [: S
    13.                        2: collect them to invalid_words.txt (default)                        
    复制代码
    % r# \/ i: A+ Q2 s9 w

    & [4 D  u8 S  p0 C2 V/ V8 i# v, q
    例如:
    1. MdxConverter 某某词典.mdx input.xlsx output.pdf
    复制代码
    9 D0 F' ~. K7 q  c  I8 g. P

    0 ]: V6 s& R" T/ C: [/ o, e6 K8 r输入2 k# s8 W, m5 w2 ~" T9 _' V
    txt 示例
    1. #Lesson 1) t5 c; Z$ D: N2 M, B4 A
    2. hello  _. q/ x) {7 n4 ?7 D% [: x
    3. world
      * E) S* T; l6 U; x8 |" U+ D

    4. ( \3 _6 i1 g" X" U; E
    5. #Lesson 2
      3 S' l( T2 @* T( ]. h3 f( o& ?
    6. python
      ) \2 l0 m/ ?3 _( m: R7 N
    7. is
      6 S4 g2 L! c. h; h
    8. awesome
    复制代码
    3 ?; w% j9 ?5 d( {9 @
    json 示例9 Y1 C( Y: Q' R; a. W9 q5 _
    1. [
      0 s8 J7 s* }. N$ v0 ^! I
    2.     {; K; b7 R  w" K) r
    3.         "name": "Lesson 1",
      ! L* h' E* U5 }
    4.         "words": [
      ! _$ Y7 h: S- c& W1 z5 `! c# o
    5.             "hello",
      / V7 J# k3 l& ^- z* e
    6.             "world"
      ! @- A% O4 A% ~$ J' |' I+ K
    7.         ]
      1 A  A& `+ O. A
    8.     },
      ' ^6 B' J% |9 E
    9.     {+ ?' \3 G4 i1 }) z( L' \
    10.         "name": "Lesson 2",
      1 A- u) N% }* c/ K
    11.         "words": [" R0 ~& D! E3 w' U! n# e4 b1 g
    12.             "python",! W  Y: Y0 n+ K% D; {! j" ^& a7 G% e" ?
    13.             "is",: |) N+ D2 L+ V% D9 i: {
    14.             "awesome"8 }) f) F, v/ ]5 a6 O0 [6 s; L9 z
    15.         ]+ v- ?$ X2 L4 U
    16.     }
      6 i# Y4 H, d" P& |7 }: ~
    17. ]
    复制代码
    , O7 {6 {  |% l, R) T+ x8 F" h
    excel 示例3 D! ?+ `+ t2 ]3 m* P! r$ ]$ ?
    6 f( n: v4 ?5 {$ i+ ~- \
    & q) V% n: m  P6 N% o
    输出8 {* G2 h0 ^" }# `; f6 }
    (图片怎么弄都出不出来,我放弃了)
    + J: P: Z% u* t; N6 {HTML( J( v8 }: L4 p: G* s2 m. y/ z
    ' {- i$ j  t. j
    PDF! D. b; y( ?9 s
    ) {7 o/ e1 a9 D- `2 I
    1 z- U3 d! c" O4 y/ d3 P4 a
    4 F; N0 ~2 ~6 F9 R. r7 @, _$ \
    ; B% R' B  r& u4 P( A
    ( ]) ~5 N& n& ^8 O* E$ ?1 A: x0 Y

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?免费注册

    x

    评分

    4

    查看全部评分

    本帖被以下淘专辑推荐:

  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:11:44 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:33
    9 D, W: \5 e* u- h  M6 [; f但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...
    / `( d  m/ \; Y' e
    可能是你选的词典词不够全。+ d. x9 c  q" z" i2 v0 u1 F7 A0 |
    反正开源的,你觉得怎么样好,可以自己改。9 T% R8 ^7 ^0 J  X5 Q# k( m8 r4 S1 [6 @5 |
    这就是一个我给自己家熊孩子写的,让她学新单词时用的的小工具,做好后顺便放出来,现在已经满足我的预期要求了。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-3-22 16:12:31 | 显示全部楼层
    本帖最后由 喬治兄 于 2020-3-22 16:32 编辑 1 k. A. Z+ k8 l5 w# v

    $ d# M; {* ~  d3 Ynoword2k 兄:* f1 M+ r% Y$ X! r5 O- l3 ]
    html 說明圖沒顯示出來.....
    - e, J! x. R" n6 _" P1 f! Y/ Z- X1. 起問是否一個 headword 生成一個 html 檔案 or 多個的 html 檔案根據 headwords 多少個就多少個 html
    # i- `& j$ I0 W  l( N, D4 f2. 若想生成全部的 headwords 該如何使用.....
    / m# v  [/ {3 Z/ x3 j, }, g3. filename  可否和 headword 相同來生成7 Z$ e+ w$ E* ~4 r4 p
    可否再請仁兄指點迷津解惑一下.....
    0 c, i9 k% K5 [5 p) WThanks a lot
      R2 ^5 m5 e+ i  F
    9 U9 T- Z+ ?; ?: o) a  \
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 17:54:45 | 显示全部楼层
    johannhuang 发表于 2020-2-28 15:292 h7 Z1 t" e6 a& @+ w
    热情很棒 不过出错就重新编辑的逻辑有点不好哦 建议加try...catch

    % ]/ H' f4 G; l% ~; g  a: i9 L可以判断返回的结果是不是为空,为空的话输出警告信息什么的。" L- l( `5 U9 v. \
    但是就怕用户不仔细看输出信息,从而漏了单词,干脆出错强制退出。; v) K4 A5 T3 M# p' ~
    不喜欢用try..catch,太丑,开销太大。
  • TA的每日心情
    开心
    2020-3-25 07:07
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-2-28 10:34:18 | 显示全部楼层
    谢谢!下载了.exe后,怎么用?
  • TA的每日心情
    奋斗
    2023-8-12 09:33
  • 签到天数: 1459 天

    [LV.10]以坛为家III

    发表于 2020-2-28 11:11:18 | 显示全部楼层
    这个程序挺实用的,可惜不会python。正在下载exe,不知道有没有比较好的说明书之类的,希望能会用
  • TA的每日心情
    开心
    2021-4-24 08:20
  • 签到天数: 634 天

    [LV.9]以坛为家II

    发表于 2020-2-28 11:28:32 | 显示全部楼层
    谢谢分享   好羡慕楼主  能自己写自己需要的程序
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 11:48:36 | 显示全部楼层
    elusty 发表于 2020-2-28 10:34
    , x, X) m3 e' i, [谢谢!下载了.exe后,怎么用?
    % {/ z/ s: F  X/ X9 }6 V& g
    更新了一下帖子,增加了简单说明
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 11:48:50 | 显示全部楼层
    neilzhu 发表于 2020-2-28 11:11
    6 o% g4 \" c0 I; ]+ a9 t/ f这个程序挺实用的,可惜不会python。正在下载exe,不知道有没有比较好的说明书之类的,希望能会用 ...
    ( A! X& }0 b3 k2 E$ A- S: [
    更新了一下帖子,增加了简单说明
  • TA的每日心情
    慵懒
    2022-1-17 18:55
  • 签到天数: 464 天

    [LV.9]以坛为家II

    发表于 2020-2-28 11:49:46 | 显示全部楼层
    太棒了!支持楼主!
  • TA的每日心情
    慵懒
    2020-5-3 16:00
  • 签到天数: 207 天

    [LV.7]常住居民III

    发表于 2020-2-28 15:29:25 | 显示全部楼层
    热情很棒 不过出错就重新编辑的逻辑有点不好哦 建议加try...catch
  • TA的每日心情
    慵懒
    2020-5-3 16:00
  • 签到天数: 207 天

    [LV.7]常住居民III

    发表于 2020-2-29 05:33:01 | 显示全部楼层
    noword2k 发表于 2020-2-28 17:54
    : |! Q/ N$ z9 ~/ N  {# m# t可以判断返回的结果是不是为空,为空的话输出警告信息什么的。
    / `8 c- w& Q! f) ~1 p0 d- y' Z) J但是就怕用户不仔细看输出信息,从而漏了 ...

    8 `, R" w7 J' p& @+ P但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:45:05 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:33
    4 o% s1 y' w7 v! N1 N4 S( @但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...

    4 v) _$ p( k6 F7 v/ R! D, Z% T- y想了一下,还是从善如流,反正是举手之劳。3 v6 L1 t4 S; k- {  F+ R
    新版的遇到没查到的单词,会显示警告信息,然后继续。
  • TA的每日心情
    奋斗
    2023-8-12 09:33
  • 签到天数: 1459 天

    [LV.10]以坛为家III

    发表于 2020-2-29 10:17:15 | 显示全部楼层
    已经试用了昨天的exe版,新版的正在下载。昨天的那个版本基本能用起来,但经常报错,可能是查不到所列的单词。所以不知能否实现:把能找到的单词全输出来,找不到的单词列在输出文件的最前或最后。多谢!
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 10:31:18 | 显示全部楼层
    neilzhu 发表于 2020-2-29 10:170 O* n7 k  z1 J% Z. r4 G2 C
    已经试用了昨天的exe版,新版的正在下载。昨天的那个版本基本能用起来,但经常报错,可能是查不到所列的单 ...

    * m% w7 [/ t! Z  z& R现在是找不到的单词,在html或pdf中显示 warning 信息。
    ' o! ^1 N- X, B. [9 }3 G' u考虑统一放在最后,单独一组invalid words。
    + N7 K, g: G! ~! m3 W# [等有空再搞。
  • TA的每日心情
    怒
    2021-10-23 19:58
  • 签到天数: 212 天

    [LV.7]常住居民III

    发表于 2020-2-29 11:53:31 | 显示全部楼层
    没有的单词跳过,另存一个文本格式单词表吧,谢谢不断更新,持续围观
  • TA的每日心情
    怒
    2021-10-23 19:58
  • 签到天数: 212 天

    [LV.7]常住居民III

    发表于 2020-3-3 01:11:57 | 显示全部楼层
    给力又热情,高风亮节啊,高兄
  • TA的每日心情
    慵懒
    2 小时前
  • 签到天数: 2517 天

    [LV.Master]伴坛终老

    发表于 2020-3-9 03:20:40 | 显示全部楼层
           谢谢楼主的辛勤劳动与奉献分享,小工具挺实用。! Z" [& v' H0 `) u9 u, K

    ! n9 ?& M4 n, n2 i* R$ O3 s

    该用户从未签到

    发表于 2020-3-11 14:34:44 | 显示全部楼层
    太方便了,如果可以用exe有执行界面就好了。

    该用户从未签到

    发表于 2020-3-16 15:45:29 | 显示全部楼层
    Mac能用不,下载试试
  • TA的每日心情
    怒
    2022-12-20 09:47
  • 签到天数: 375 天

    [LV.9]以坛为家II

    发表于 2020-3-17 16:26:43 | 显示全部楼层
    太棒了! 多谢!楼主!
  • TA的每日心情
    开心
    2026-10-6 11:59
  • 签到天数: 999 天

    [LV.10]以坛为家III

    发表于 2020-3-22 16:34:57 | 显示全部楼层
    楼主太给力了 赞赞赞# c9 O: d; T  f" N% U4 a) e* S. z
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2026-10-17 09:56 , Processed in 0.024964 second(s), 27 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表