掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 825|回复: 36

[工具] 写了个抓取特定单词,生成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 编辑
    8 c! U" V. E, d* t9 N9 C$ F7 R% @' X
    5 \; R1 L7 S6 N/ s7 g4 S' ]& x# d
    exe下载地址:) z! T2 F0 ^& R; y( t9 S/ T. }

    ' C9 v3 O; U  p; }' I: Z, P: z1 s5 m6 F  F9 W
    一个用来从 mdx 字典中抓取所需的单词,并生成 html 或 pdf 文件的小工具。9 Q2 A8 o# N5 K
    学新单词的时候,一次生成所需的单词解释、例句。
    7 z0 o* n+ n8 ?! u- T输入支持xls, xlsx, json, txt,输出支持html和pdf。) H, _# }8 W$ q2 r# @
    这个工具没有GUI界面,我也没兴趣做一个GUI界面,不会用命令行的同学就忘了这个吧。8 t" U: ~7 n2 x* F+ J2 m
    - u" v% l' P, E' G
    关于怎么使用
    $ ]+ |+ q# z8 F5 H, g, U8 w比方说你希望收集以下单词; ?+ ~0 v, N! t# m
    Lesson 1:hello world
    / t( _$ [9 R+ a4 T9 pLesson 2:this is a test5 a/ P3 P) }3 g. z/ ]$ A
    Lesson 3: ....." b5 P: W( X" T5 R- U
    & C0 N6 a! }  \3 l
    你可以编辑一个txt,一个单词一行,课程名称用#开头,格式如下:
    ( ?/ }" D' y6 L' P7 Z7 x- V#Lesson 1; G6 d3 F0 V: H& U- Y; M
    hello
    8 }* A7 q  T, Y# @/ W, j3 Lworld
    9 V' m7 `6 N. [- J( ?' N' a  T# O$ x#Lesson 26 B' g, l8 ~- I/ S( R! _! j: a9 t
    this
    ; @, j* z3 P: wis4 |8 [9 a; r. d% J7 {$ N
    a
    4 y- {1 s' p; u9 L* V5 Etest
    4 M/ k1 I& E3 |+ |$ H: R/ R) N#Lesson 37 G6 B. R# ?# \% O3 n
    ....2 u- A: o5 S) b9 P  B
    " n+ J- @- m, m: K5 P0 t
    也可以编辑一个excel表格,一个sheet就是一个课程,sheet名称就是课程名称,单词排列在第一列上7 c3 {. j, b! ^2 w" b  ^: \
    也可以编辑一个json文件,不再赘述。
    , ]5 O4 s. b' u" _9 J
    . d6 N9 c9 _8 D. Z- f然后在命令行下运行
      R' F; V' G# K+ s3 WMdxConverter 【mdx字典名称】 【输入的文件名】 【输出的文件名(后缀为.html或.pdf)】
    % n' s0 q' m: x: F* T# E. r9 d- q! F, P) L* _: R5 a
    注意:如果有mdx词典中不存在的单词,程序会显示报警信息,默认动作是收集到invalid_words.txt中。你可以设置运行参数% a, D4 z' @) ~" ?4 x) e
    --invalid 0 立即退出1 ]( D+ A8 N: x: m, }+ e7 P
    --invalid 1 输出警告信息到html/pdf中4 b( a; K: O1 ]9 q; E! }3 @  q
    6 \1 L3 g6 X  H3 c& w
    用法
    1. usage: MdxConverter.exe [-h] [--type [{pdf,html}]] [--invalid {0,1,2}]# X( B* Z+ I$ o- J' |! d
    2.                         mdx_name input_name [output_name]
      , g- ?( E1 A' W$ m& P2 K
    3. positional arguments:  r1 Q) @' @) U* G
    4.   mdx_name
      % M7 J3 Y4 t5 o! |9 M+ k* ]& ^! I
    5.   input_name
      / @$ W- m, _* b1 z
    6.   output_name8 D- g+ F. ~; m
    7. optional arguments:; ]( l6 w* P0 G
    8.   -h, --help           show this help message and exit
      2 p# r. S8 I+ K& ^& P
    9.   --type [{pdf,html}]
      . Y( c  V+ _0 x( {2 `) o, c( o  M
    10.   --invalid {0,1,2}    action for meeting invalid words. A$ m* R' ?7 _" C
    11.                        0: exit immediately& f; |0 U) [% R( V5 ~
    12.                        1: output warnning message4 X8 A8 q* {4 {7 E4 M
    13.                        2: collect them to invalid_words.txt (default)                        
    复制代码

    3 {7 _4 \1 Y; u1 o: j$ c- [1 _' P8 z0 d1 a2 e
    例如:
    1. MdxConverter 某某词典.mdx input.xlsx output.pdf
    复制代码

    $ Z( J0 i* ^6 ~# r9 c
    4 y9 H# S+ U- a  K输入2 @) @2 ]6 u; n3 j& \" `7 }( O
    txt 示例
    1. #Lesson 1
      ! d/ h6 l; C8 d2 v! q8 ?: V! `
    2. hello
      6 R7 h- q% D+ [, B
    3. world
      - ^5 S6 A& E6 i+ ]3 U) w

    4. 1 e6 l+ T, F5 [
    5. #Lesson 2" K# R8 }; X) e6 G1 h/ w! N. y% r
    6. python( B0 Z  h% @# O  H
    7. is
      3 `9 k  h5 c3 j  o5 p
    8. awesome
    复制代码

    " Z: L* C- z8 }- i& j5 Gjson 示例1 |) v! `8 o0 m, d8 E
    1. [
      ) s. e- F$ b# }" m
    2.     {2 y1 q- w1 a: g6 n6 n, P4 _6 [
    3.         "name": "Lesson 1",* U" J1 c/ v8 W9 r( Z; _
    4.         "words": [
      $ ?- I- z- b# z! ]% c; R
    5.             "hello",
      + s) T( v5 j7 D, U3 V
    6.             "world"8 c+ T* g5 u+ Z& e
    7.         ]
      0 N( Y" N4 X1 q0 T9 ]
    8.     },
      ! V8 L& `$ g6 Y3 @" y7 M% \- h; ~
    9.     {
      - S2 J* K( w+ ?+ O. U8 f/ M
    10.         "name": "Lesson 2",
      % y8 C9 v) U4 g2 ~2 P
    11.         "words": [
      ) P9 o! K! P; `* o
    12.             "python",
      : {) X3 p, I; R+ M% q. v1 K
    13.             "is",5 I  ?# I8 p1 D
    14.             "awesome"( p: q8 }+ Z% f9 O
    15.         ], N  R, y2 _! o% ?# }- f3 q
    16.     }
      2 v. j) D) Q' W% U" M
    17. ]
    复制代码
    ) y5 m8 y# _9 R2 f7 }; U7 ^
    excel 示例* y$ i1 R/ ?' O* M  x% h

    8 v8 D" O$ Y2 h" }( T8 d" W% ]# W6 W% R8 S* E+ T
    输出
    5 I, O- ~. k8 R, u0 d% c6 K( v(图片怎么弄都出不出来,我放弃了). B' e  E$ ~- ^) D, i/ E. v
    HTML
    6 G" q# m# p6 J3 }7 h; ?
    / c* }# W* g, @; ?8 G0 QPDF
    ( e' T4 W3 \) l9 C. s  S$ P* r
    , }1 p& `- I- J: `
    ( l& n' h+ q5 M! S# T4 ], {8 j" ~
    0 t9 m: @5 h( u3 s$ k" L$ l; U+ Q" |7 q
    . @$ a  \. K4 @- M) [8 x( e  ]  V6 E. J2 q. x% M. O% a

    本帖子中包含更多资源

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

    x

    评分

    4

    查看全部评分

  • TA的每日心情
    开心
    2020-3-25 07:07
  • 签到天数: 5 天

    [LV.2]偶尔看看I

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

    [LV.9]以坛为家II

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

    [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
    ; K$ T2 v* _% ?谢谢!下载了.exe后,怎么用?
    ' c' N+ }# d# u+ X; A+ K/ |7 N) p" I
    更新了一下帖子,增加了简单说明
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 11:48:50 | 显示全部楼层
    neilzhu 发表于 2020-2-28 11:11# t0 U, ?% A9 N9 X, ?- {( S
    这个程序挺实用的,可惜不会python。正在下载exe,不知道有没有比较好的说明书之类的,希望能会用 ...
      X$ _0 p+ U% q3 r* T
    更新了一下帖子,增加了简单说明
  • TA的每日心情
    奋斗
    18 小时前
  • 签到天数: 347 天

    [LV.8]以坛为家I

    发表于 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-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 17:54:45 | 显示全部楼层
    johannhuang 发表于 2020-2-28 15:29
    1 `. q! }4 M' C8 ]' G$ M热情很棒 不过出错就重新编辑的逻辑有点不好哦 建议加try...catch

    ; _' `7 T  N- t; T9 D可以判断返回的结果是不是为空,为空的话输出警告信息什么的。# {, \' [+ q+ }9 X
    但是就怕用户不仔细看输出信息,从而漏了单词,干脆出错强制退出。
    1 L0 K3 @* W( r3 k% N7 u不喜欢用try..catch,太丑,开销太大。
  • TA的每日心情
    慵懒
    2020-5-3 16:00
  • 签到天数: 207 天

    [LV.7]常住居民III

    发表于 2020-2-29 05:33:01 | 显示全部楼层
    noword2k 发表于 2020-2-28 17:54
      t. b4 [+ B) V8 s* l6 |可以判断返回的结果是不是为空,为空的话输出警告信息什么的。
    & k, D0 ?8 c( z但是就怕用户不仔细看输出信息,从而漏了 ...

    ' q8 Z) P8 d" m; D2 z8 ]6 D" p但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:11:44 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:33; j0 Z$ t: C5 h. k$ W4 w
    但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...
    . L' ~* w, q/ w( Q0 I! w
    可能是你选的词典词不够全。
    3 a3 Q' @& B! n1 D4 d0 i8 `反正开源的,你觉得怎么样好,可以自己改。
    $ T2 H8 j+ J  S5 _$ ^& U这就是一个我给自己家熊孩子写的,让她学新单词时用的的小工具,做好后顺便放出来,现在已经满足我的预期要求了。
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:45:05 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:331 O) [. H0 m: B4 C8 ~9 {8 `" @
    但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...

    8 T- _, ?- t) X' ?* R4 ~  M* ~想了一下,还是从善如流,反正是举手之劳。3 A2 ?6 W1 G7 N. k
    新版的遇到没查到的单词,会显示警告信息,然后继续。
  • TA的每日心情
    奋斗
    昨天 07:12
  • 签到天数: 563 天

    [LV.9]以坛为家II

    发表于 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:17
    9 c* z6 L$ n, b7 ^4 u9 L- Q! X已经试用了昨天的exe版,新版的正在下载。昨天的那个版本基本能用起来,但经常报错,可能是查不到所列的单 ...
    & \  V3 `! B& G3 m9 U( P- F0 t
    现在是找不到的单词,在html或pdf中显示 warning 信息。0 v% x- u+ F1 G# s
    考虑统一放在最后,单独一组invalid words。
    7 V  z7 a4 h* l7 N等有空再搞。
  • TA的每日心情
    擦汗
    2020-8-2 18:01
  • 签到天数: 143 天

    [LV.7]常住居民III

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

    [LV.7]常住居民III

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

    [LV.9]以坛为家II

    发表于 2020-3-9 03:20:40 | 显示全部楼层
           谢谢楼主的辛勤劳动与奉献分享,小工具挺实用。4 b& w. K9 e6 k0 p  w
    ! W$ V# K2 q+ A- ?: t. d$ W

    该用户从未签到

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

    该用户从未签到

    发表于 2020-3-16 15:45:29 | 显示全部楼层
    Mac能用不,下载试试
  • TA的每日心情
    无聊
    2020-6-30 09:41
  • 签到天数: 95 天

    [LV.6]常住居民II

    发表于 2020-3-17 16:26:43 | 显示全部楼层
    太棒了! 多谢!楼主!
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-3-22 16:12:31 | 显示全部楼层
    本帖最后由 喬治兄 于 2020-3-22 16:32 编辑 + h( x3 ?1 j2 N

      d$ ^- d4 Z: ~7 F' n; p( q2 enoword2k 兄:4 I8 z8 K- x$ ^  b5 x
    html 說明圖沒顯示出來.....
    6 z$ z' e) T5 o, O' a: X1. 起問是否一個 headword 生成一個 html 檔案 or 多個的 html 檔案根據 headwords 多少個就多少個 html
    8 c! F9 i; k) Y8 U9 @1 G) }8 F: a( S2. 若想生成全部的 headwords 該如何使用.....
    1 C& w2 }* H5 W3. filename  可否和 headword 相同來生成6 N0 V& M+ x4 U8 `: C6 M9 n0 J5 ^. I/ _1 h
    可否再請仁兄指點迷津解惑一下.....
    : q* N! v* O/ b" s( l0 ]' a  HThanks a lot# d8 a  K/ y6 r/ l$ C

    % O/ W" _9 u* s  v9 p5 n& x
  • TA的每日心情
    开心
    2020-8-6 23:36
  • 签到天数: 673 天

    [LV.9]以坛为家II

    发表于 2020-3-22 16:34:57 | 显示全部楼层
    楼主太给力了 赞赞赞
    # Y" P. S& d) F7 I1 h3 F- e# F" }3 ~
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    顶部qrcode底部
    关注公众号送论坛充值码
    关注微信公众平台
    关注微信公众号 pdawiki,获取邀请码,看文抢积分,抽奖得浮云! Follow our Wechat official account "pdawiki", get invitation codes, and play the lottery to earn points (积分)!

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

    GMT+8, 2020-8-15 23:49 , Processed in 0.076919 second(s), 7 queries , MemCache On.

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

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