掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5765|回复: 100

[工具] 一键制作图片词典 MdxSourceBuilder

[复制链接]
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2020-8-12 16:46:52 | 显示全部楼层 |阅读模式
    本帖最后由 VimVim 于 2020-8-17 12:48 编辑   R, r; w& g. l  P% \7 o) J
    % c# ]2 _* T6 B4 \
    # 发布地址
    & g: T4 p( C8 G- b+ R
    9 y/ R5 u4 S4 V3 O2 Jhttps://github.com/VimWei/MdxSourceBuilder
    & |" S, x" c- g0 ^6 D4 ?
    2 f/ E/ G' o# J7 m) S一键制作图片词典:原始词条==> 标准化词条==> mdx源文件 ==> mdx词典文件& A: j8 {& ^3 {# f6 d

    , g6 @6 K& t! Q9 B4 l# 动图演示! D- O( t( D) `# |3 I4 O+ d

    - l$ l$ w2 r* |* G7 k. ^& {
    , M* Z% T+ q3 P8 f
    ) E4 j: A5 E) R' t! F更多视频演示: https://www.bilibili.com/video/BV1Ki4y1g74X/
    % n9 U) I3 e' s; R; a% U7 [* e
    % H5 G3 H" e  P1 l7 F) R# 缘起8 _9 f0 x$ ^/ N0 v* B, W' ?

    , x& L3 k. z! v; \) v  Z* G图片词典的制作规范与开源工具
    1 T6 b9 L8 M' B, Khttps://www.pdawiki.com/forum/thread-40857-1-1.html
    ) K, R+ Y& \4 D- R% e& x
    % I, x0 r/ q! N; ^) d0 G+ n" l1 p5 W

    / m6 A& e) G! m) X7 O
    2 u& G8 g3 ~% Y# w0 N
    7 Z( p4 [, _  q& h6 M
    . N' q2 l) A1 F% o1 h6 R: ^$ J
    1 }3 C2 W: b/ f( x7 n/ [8 }8 K1 I" }  W

    评分

    3

    查看全部评分

    本帖被以下淘专辑推荐:

  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 17:12:25 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-14 11:29 编辑 1 M4 K" A3 b# [- s8 p/ j
    $ O% f, L6 {1 |( r& L. K9 {( U
    # MdxSourceBuilder
      Y) g  B: s$ {! \5 ?, {% N3 }7 d6 j
    一键制作图片词典:原始词条==> 标准化词条==> mdx源文件 ==> mdx词典文件# |' g) _, z* n3 s+ P$ W% a6 X' }, s
    & _& `! o$ @& z, A1 }& r
    & d6 m1 }& T" `: q7 n$ D& S
    ## 背景% B+ \8 V& l# h: i' C
    5 J- O4 q6 F, _0 K3 h
    ### 需求背景( p  s# N/ x( }  f/ w

    $ G: ~- _" v7 {. f3 T6 Y) C3 m0 K时常遇到一些好资料,怎奈只有纸质版或扫描版之类,希望将这些资料转换为可以检索的mdx词典,既方便使用,也提高利用率。
    ( A# b0 p6 [, m8 X! l/ ^2 Y0 N% L6 o' L1 A  z
    但是,常常在辛苦整理好词条(这是纯苦力活)之后,使用过往技术方案实现的成品却不够理想,不理想之处有两大方面:
    ) J7 S' h% _# S, z# ]5 N
    . s5 k- n2 z3 B8 c# `! @* 导航不理想,极大降低了用户的使用体验! J4 G5 Q7 u% \$ d+ y8 Q1 l
    * 制作修订过程复杂,极大干扰了制作者的热情
    ! n9 z6 w1 m: f1 D: L8 e9 p6 L2 i7 E7 ?! v1 g" ^7 v5 U/ E
    这完全可以通过工具来解决。* t! h9 j& S6 R+ h0 ]

      {+ R: ]4 X1 y6 C### 程序设计背景
    ; a0 o# J2 ?4 a8 U) y' \
    / r) s8 L/ L. r% d- M' i本来我只是提出痛点,希望有高人能出手解决,怎奈高人大都不屑于处理。  N$ a4 E$ A3 d* d

    4 S+ G# _6 W  v, w% [/ I. Y! v3 w, l本非码农,可鉴于实在痛的厉害,只好自己用三脚猫功夫倒腾了人生第一个具有完整功能的程序。在此之前,从来没用过list、dict之类的,连这个github发布,都是现学现卖,还望高人不要耻笑,多提点才是。若有高人能够弄个更好的程序或是python版的或是GUI版的,那大家就有福了,我这纯粹抛砖引玉。: B3 [( l7 L1 p. d6 ^
      W, @' w, A6 p/ b5 }% [6 z
    非码农的好处,或许是可以有更好的用户视角:既考虑词典终端用户的使用体验,也考虑普通的词典制作者的使用体验。虽不能解决所有问题,但至少已能解决我自己的大部分诉求,希望也能解决众多mdx词典用户的些许痛点。5 A) _9 H) h9 [5 t- F5 O' J
      d3 U! [! f, U! r3 c  m7 k4 y3 I' P
    ## 解决方案
    ; D% K7 E* I$ C# S( _2 o
    1 U: f: T( P# D6 d" H% c" x" r8 l# z基本思路: 1.原始词条==> 2.标准化词条==> 3.mdx源文件 ==> 4.mdx词典文件( @( ~8 ~5 S% Z" c% Q: U: r/ H

    ; o! H, O; c. }8 z, W1. 原始词条:鉴于资料的多样性,原始词条的获取方式也是多种多样,有OCR来的,有手工输入的,也有从其他人的资料转编译来的,也有是因为制作人的喜好或用的工具不同,导致原始词条的格式完全不同。这个特点造就了解决方案必须:(1)兼容多样性,将最常见的词条样式纳入进来;(2)开放性,用户可以根据需要自定义更多个性化的原始词条样式。
    / S3 s9 Q" s' b4 F' L1 S; e* `
    " P) i3 m5 A) |4 z# g* r# X    目前,本程序已经实现了对三种原始词条样式的兼容,用户也可以根据需要自定义添加。
    + T* d. o1 t9 [! U' c! D; ]+ z! W/ B; R- s
    2. 标准化词条:若能将多样化的原始词条转化为标准化的词条,那么后续就可以标准化处理了。因此如何定义标准化词条就变得很重要,它是实现后续程序的基础。
    8 F! ]# F& {1 Z4 z- i) Y2 W6 P; a5 X2 p  s1 E  k( B# K. r7 ]& C
        目前,本程序已经提出了一个1.0版的最基本词条标准:一行页码,之后跟随多行关键词,每行一个关键词,如此往复。之所以说1.0版仅仅是最基本的标准,是因为这个标准还未能兼容如分栏、多层级词条等更复杂的情形,这些都有待后续有高人继续升级完善。
    , w+ _6 H6 l* l$ M" C
    : Z2 w; K7 i/ ^9 j- w- ^3. mdx源文件:这个txt文件与其他技术方案的最大区别是——包含了足够优良的页面导航、关键词导航以及用户自由定义的导航信息,极大提升用户对图片词典的使用体验。图片导航如何设计仁者见仁智者见智,因此,解决方案必须:(1)足够优良,不能太简陋,能用机器实现的定位,就不要浪费肉眼定位、繁琐操作定位等人类的精力;(2)兼容多样性,将最常见的导航样式纳入进来,比如封面附录等无需关键词导航、正文等需要关键词导航、拼音等则无需导航直接转链接到现有页面即可;(3)开放性,用户可以根据需要自定义CSS样式,或者添加更多个性化的导航样式。
    8 P. {, v. M! }  j( l( o3 _% G; j7 S9 I" L5 E
        目前,本程序已经实现了三种导航样式,满足一本常见词典的基本需求,同时本程序会输出配套的精细CSS,方便用户个性化定制,此外用户也可以自由添加、改造导航样式。
    9 e6 N" Y& Q: N( Y& k( K* n" O7 d
    4. mdx词典文件:这个步骤是可选项,但一步到位可以极大提升用户的体验,更重要的是使用这个工具可以实现跨平台制作mdx词典了,不必局限于Windows,Linux、Mac统统不在话下。当然要说明的是,这一环节用到了另一个开源工具, https://github.com/liuyug/mdict-utils ,功劳统统属于他!
    + P8 E/ ~9 w& I" @# R
    / G0 K, \7 X) L4 f& `7 s## 程序文件及安装
    4 P' O9 V+ i+ R- }+ @6 V1 C
    5 Z- h; e3 t6 s/ e' K, `: f  p% q根本谈不上安装,因为整个程序就是3个Vim脚本文件而已,下载后,直接将这些脚本文件放在与词条文件同一个目录即可。
    5 t- U& }/ G4 \7 r, i) f- J6 z7 @! {" g! W. k; t
    * MdxSourceBuilder.vim  这是入口文件:上半部分是配置文件,需要用户定义词典参数;下半部分是主程序,通常无需理会
    " [6 w4 H1 b' G9 i! A6 r* MdxSourceBuilderCore.vim  这是主程序调用的程序,仅当需要高级定制时修改,通常无需理会
    - T2 C$ Y1 E; T! V% H% Z) u5 n7 b2 ^* MdxSourceBuilderCSS.vim  这是CSS文件,样式文件可以在这里定义,通常无需理会
    4 i' D$ \0 |. f& c, |* n$ ~+ @' ^# ^8 d4 p8 O6 c
    其他文件,都是附带的Readme、动图演示、参考资料、案例词典之类,可以忽略。$ k9 E0 }) h, G) P

    $ u2 ^. T; |4 w7 y/ o2 e1 I## 体验案例“火星词典”9 L/ A6 l, j+ ?% T2 |% J- G
    : n9 |$ _) P* y7 B
    为展示程序的特点,特制作了“火星词典”,供观摩使用。! U/ _& |! m' ?
    * z' f4 @/ ~& O0 ]: L/ g9 S
    * 案例词条文件:以"火星词典"开头的所有.txt和.html文件,其中body.part1、body.part2、Pinyin三个文件展示了不同的词条格式/ h, o! v) W2 I! q
    * 程序及词典配置文件:以"MdxSourceBuilder"开头的所有.vim文件,其中MdxSourceBuilder.vim已经包含了案例词典的配置信息% s- ^: t9 |. e/ C; y, [- S

    0 u4 i( E. w9 _  j# ^8 L" @  L案例使用:打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。; d* u# O: s# O9 d
    $ P) p3 _: E4 |) x( _  D. f; J; C
    * 你会看到,仅仅使用上述一个命令,就会输出3个成品文件:MarsDict.css,火星词典.txt,火星词典.mdx/ W; I. d. M" ?. @* A
    * 你若没有复现上述效果,也别着急,可能是vim、python和mdict-utils没有安装配置好,继续往下看说明文件即可解决
    3 o2 j! b7 N( A: W2 \( F4 b* 之后你只要照猫画虎,即可制作自己的图片词典了
    : A! B# Q/ x$ S  p7 a; M" Y: _0 F: B  T2 p7 t* M; c3 A, S
    ## 使用说明) D) t0 m+ s0 ~: m
    + W; S, [' _6 _
    ### 极简使用说明1 F9 j( {# m! R+ P$ k! c
    8 i7 c* T4 N1 m7 X: s' P
    打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。2 R( L4 Z1 x, H: t  h3 L( K* `- F& K

    # w( S! n4 K/ v### 概要使用说明
    8 s; e6 r8 ^0 N+ N  L5 r
    3 G2 B, l6 I3 R1. 按格式要求准备好词条文件, o! ]; J7 w8 l- |' D6 r
    2. 使用任意文本编辑器配置好 MdxSourceBuilder.vim 中的词典参数$ D1 D! z3 ]; ]1 \$ |) Z
    3. 打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。
    & {3 ]2 m3 J; ]7 y. t4 J& `4 ^  g0 Z* i/ K7 _5 x
    ### 详细使用说明+ [4 W3 @+ p# m% q$ t7 `

    1 C& @* n) ?  Z5 ?1 X* 直接打开查阅 MdxSourceBuilder.vim,其中“使用方法”及“词典参数配置”两个部分自带详细使用说明。3 t9 b4 Z. J* u0 d6 w
    * 若想深度定制,把所有以"MdxSourceBuilder"开头的.vim文件看一遍就知道怎么处理了,即使不懂VimL语言,看注释也能猜个差不离。
    ( J! C# P) h; p$ ]$ `, j/ u) Y8 a$ J
    ### Tips: 使用更便捷快速的命令0 g5 [6 \  D/ v* r' A

    " Y; d: Z: {/ W* G7 N* 若觉得如下步骤还要寻找MdxSourceBuilder.vim,有些麻烦
    $ l' Z5 F7 {0 @/ I, S( a
    & |+ P$ t# ~# w* B) ^打开Vim,输入命令 `:bro so`,找到MdxSourceBuilder.vim,打开,结束。
    0 D1 b$ i% t; d) l3 c  ^1 K2 ^
    * 那么建议使用如下更快的方法(自动寻址):1 j9 w9 c- Y2 P6 S9 m3 f. ~

    5 X$ k" U3 R8 o( P4 n! ~用 Vim 打开 MdxSourceBuilder.vim,新建文档`:new`,输入命令`:so MdxSourceBuilder.vim`
    # y8 J" o9 i" w: g) ^1 ^+ s  ]
    1 n5 f: _; m- o. k/ D甚至输入`:so mdx` 之后,按Tab键即可自动补全命令 `:so MdxSourceBuilder.vim`3 Y; o2 J/ Y' n+ z3 s
    + W  o# O0 S, e2 u# W' A& x
    这个新方法的逻辑,其实是利用Vim首次打开一个文件时,会将该文件所在目录设置为Vim当前工作目录。
    - Q- B. z# E. o$ Y6 x: ^  m* R) R% E, F3 }+ W& U8 c1 ?) l8 j1 O, n
    也可以使用系统命令 `:cd` 来更换Vim的工作目录,如 `:cd d:\火星词典`
    + ?9 q( X3 e8 |$ p0 p0 b# A7 M' D2 I6 l  B: i$ B0 T- G
    若您使用附带的`_vimrc`,还可以直接使用自定义的命令 `:CD` 将Vim的工作目录切换为当前文件所在目录。$ ^) P( S- a5 H6 G* i1 K) u4 b

    ; v4 ?! L/ _, R
    1 ]$ D) y( V  j
    ### 相关FAQ
    3 \' z7 X% h# Q2 Z/ M7 ^4 Z; R5 r+ O; Y. Z: `; Z& ?. R3 c
    1. 关于Vim的使用:号称编辑器之神,要想完全掌握确实有难度,但本程序要用到的Vim知识则少的可怜,不必顾虑。
    4 v' M/ q- p4 s' y5 F' r" I4 ]: U  U* b- Y! u
    * Q: vim出现乱码+ s7 d: P' b1 s# W, _# ^
    * A: 请将`_vimrc`文件复制到`$HOME`目录下,Windows下即是`c:\Users\YourName\`
    & ^* J7 z0 T$ A2 L# J! p1 [- t; C. D2 ]
         其中必备行是 set encoding=utf-8,其他可选,用于提升Vim使用体验
    5 b. v2 T5 ]0 }6 y/ h/ B/ z/ A& m0 {- x5 W: W; k
    2. 关于mdict-utils的使用:除了打包,还有很多其他解包、读取等功能,大家可以尽情挖掘改造。
    ! M2 d: y+ R. T0 d+ m7 k
    ; V6 M; h* f  S8 K## 社区讨论与反馈2 B8 @2 j, S9 R8 q; I2 X
    * f& t$ ~% E4 E0 L$ P
    * Github: https://github.com/VimWei/MdxSourceBuilder+ {4 ]/ ~& N# q1 M4 `3 k, X4 `
    * 讨论社区: https://www.pdawiki.com/forum/thread-41287-1-1.html4 R; B$ v( _* s! T! l5 N, x, S) |# E4 n
    # [% b. J  Q& Z1 X
    ## LICENSE
    2 ]- f3 `8 I# m+ C$ `7 b, F$ p6 j
    [GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html). E% J+ j5 a3 M% }  J& L% M" \

    , [- r! t' n$ Y; W
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 18:22:09 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-13 18:49 编辑 # ~& p+ l9 l% b9 }2 e9 {1 l
    VimVim 发表于 2020-8-13 12:25# R# t! Y8 y. G5 C2 ^
    进一步更新程序。解决Vim乱码以及满足常见的Vim用户需求。" D" _5 R3 p. |& s. _

      @4 C4 `0 w% ?0 C. {请将 _vimrc 文件复制到 $HOME 目录下,Window ...
    + ^) q7 N# d$ ]
    请问Vim能否实现以下更改呀?方便的话,能否帮忙写一下vim的更改实现方法,现在我只会逐行手动更改,没法实现全文件批量修改
    " y1 |0 V5 l% O/ G2 l. q查找含有<div class="HW_L_C" style="margin-top:(.*?)">的所有行,然后将同一行中的所有margin-top:44.43%中的数字减去<div class="HW_L_C" style="margin-top:后面的数字,保留两位小数
    + a2 x! m3 A4 @6 i+ m7 N3 q+ x9 S( k# b/ y$ Z) b6 F7 D& a" U- P1 B
    <a name="2313_L1" href="entry://qualify on"><div class="HW_L" style="margin-top:44.43%"></div></a><a name="2313_L2" href="entry://qualify oneself"><div class="HW_L_C" style="margin-top:52.42%"></div></a><a name="2313_L3" href="entry://qualify to do sth"><div class="HW_L" style="margin-top:68.5%"></div></a><a name="2313_L4" href="entry://qualify with"><div class="HW_L" style="margin-top:81.82%"></div></a><a name="2313_L5" href="entry://quality control"><div class="HW_L" style="margin-top:97.95%"></div></a><a name="2313_L6" href="entry://quality, the"><div class="HW_L" style="margin-top:111.37%"></div></a><a name="2313_L7" href="entry://quamdiuse bene gesserit"><div class="HW_L" style="margin-top:124.73%"></div></a><a name="2313_L8" href="entry://quand meme"><div class="HW_L" style="margin-top:130.2%"></div></a><a name="2313_L9" href="entry://Quanti est Sapere"><div class="HW_L" style="margin-top:135.1%"></div></a>: y  f) ^$ n2 r4 ?. M

    ' C4 i" `' W$ K- |. ^5 ~- r  i5 t5 p/ z4 r

    点评

    不要在这个MdxSourceBuilder帖子里回复这个内容了,楼歪了。  发表于 2020-8-13 19:41
    你得发我两个文件:一个是原文件(多来几行真实的案例),一个是你希望实现的目标描述。 这个帖子案例不好,这是只有一行还是好多行?看不清  发表于 2020-8-13 19:40
    当然可以  发表于 2020-8-13 18:33
  • TA的每日心情
    开心
    7 小时前
  • 签到天数: 2220 天

    [LV.Master]伴坛终老

    发表于 2020-8-12 17:21:01 | 显示全部楼层
    我是起哄的。:) 目测这个利器要火!工欲善其事,必先利其器!猜测K大是会加1000米还是10000米,以鼓励此类原创型工具,以及由此衍生出的各种词典大作。
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 17:33:03 | 显示全部楼层
    RickVincent 发表于 2020-8-12 17:21
    3 T& L- U% R8 Z3 {. Y* ~8 W/ G我是起哄的。:) 目测这个利器要火!工欲善其事,必先利其器!猜测K大是会加1000米还是10000米,以鼓励此类 ...
    : V- U/ i4 F7 b/ ^  }0 _
    感谢支持。
    ; \* ]8 ^" g7 ]0 f9 P( a8 E" f3 v) p( ^: J  C( B3 I6 b1 E
    若能有这样的工具,我想目前的图片词典将发生极大的变化:
    ' D* Q/ H& ~; Y: x3 n1 D( B% a/ E# M+ w
    1、新的图片词典制作将非常容易,基本人人皆可上手,而且生成的质量都还很不错,这些将促进新词典的产生。- Q# B) B/ |! _
    2、对于已有的图片词典,非常容易转换为新标准下的导航,且实现个性化处理,这将极大提升词典的使用体验。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-8-12 18:00:30 | 显示全部楼层
    VimVim 发表于 2020-8-12 17:33+ J) {" R# [" p4 L: M; T
    感谢支持。
    : }' [, J$ G& m2 p! s
    VimVim 兄,相當棒的工具,創意十足,漂亮
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 18:52:06 | 显示全部楼层
    喬治兄 发表于 2020-8-12 18:00  ~) F% E% Z. N8 q/ A
    VimVim 兄,相當棒的工具,創意十足,漂亮
    1 x" K( K2 }+ V% u4 M2 I, v9 {* h
    其实,很大一部分是借鉴自你最初的创意(页面导航和关键字导航),我只是将其拼接在一起,使其更加开放(开源、可融入更多工具链)、兼容(多种词条格式及容错)和扩展(高度自定义、跨平台)。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-8-12 19:06:40 | 显示全部楼层
    VimVim 发表于 2020-8-12 18:52  _- F2 _+ {+ W) d* f
    其实,很大一部分是借鉴自你最初的创意(页面导航和关键字导航),我只是将其拼接在一起,使其更加开放( ...

    : {. @$ l  d; J. `5 A* C! @3 EVimVim兄,太客气了,自從有VBA都用VBA生成,導航其實也可以弄,只是很懶的再搞了...,小弟對於粗配的要求沒有太高,只要排序正確就算及格了,哈!哈哈哈哈哈!
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-12 19:30:49 | 显示全部楼层
    多谢分享制作工具,不过Vim对于大多数人学习难度有点高吧。
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 19:35:48 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-12 20:03 编辑 " m4 G* Q; L' c2 a6 t1 _5 v2 |
    wjl 发表于 2020-8-12 19:303 L6 i4 P$ b/ z5 A2 o$ `
    多谢分享制作工具,不过Vim对于大多数人学习难度有点高吧。
    9 e5 n' \0 \* C7 u
    所需要的所有Vim知识已经在动图演示的字幕中显示了,总结就是:# x- C1 P! t( O
    ; z1 h, {' Z7 v; ?" l9 i
    :new
    - O: I1 G+ @( ~; W:so MdxSourceBuilder; q. g2 E: n1 o1 j8 M8 C9 d

    : E' \# `: O6 b) z* ]$ E/ u$ J随便找个识字的人都能照着这些字按顺序输入,不难吧。
    * }; a2 A; B/ K+ R1 n; ]3 e8 {- ^- G% s; X6 B5 i% V7 ~( h
    我要吃肉,是不需要学会打猎或养牛养羊甚至当个厨师,只要会拿起筷子或刀叉送到嘴里就好了。) L/ C& L9 b/ C
    我要浏览个网页,是不需要学习计算机原理、HTTP协议或制作网站之类,只要会点击超链接就好了。0 }$ n. B0 u' `2 c( m' p
    ( Q  R6 A" i& H; u1 K2 j4 U; g4 x
    3 R1 s( I' t+ m& v3 f4 t; C. k. K4 e
  • TA的每日心情
    擦汗
    2022-3-25 11:07
  • 签到天数: 66 天

    [LV.6]常住居民II

    发表于 2020-8-12 20:03:06 | 显示全部楼层
    RickVincent 发表于 2020-8-12 17:21
    " S/ A! y, G/ h5 ^" H我是起哄的。:) 目测这个利器要火!工欲善其事,必先利其器!猜测K大是会加1000米还是10000米,以鼓励此类 ...

    2 u' X4 p( Y0 U0 h$ W! SK大从来不会吝啬的,我觉得可以加十朵浮云,那个更给力
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-12 20:10:39 | 显示全部楼层
    惊得我赶忙回去看了下,看看电脑上不知多少年前装的GVim还在不
  • TA的每日心情
    开心
    2019-10-10 05:35
  • 签到天数: 328 天

    [LV.8]以坛为家I

    发表于 2020-8-12 21:27:40 | 显示全部楼层
    本帖最后由 Jiangxi 于 2020-8-12 21:38 编辑
    ) O7 y) g8 c) p3 ~# R3 u' G
    VimVim 发表于 2020-8-12 17:12% b6 U, S+ y. |( `, t8 [; E
    # MdxSourceBuilder
      T% V3 j6 f1 b  o# d% X
    ) x# [: ^5 N8 e. Y" Qmdx图片词典制作工具:使用一个命令,实现从原始词条==> 标准化词条==> mdx源文件 ==> ...
    # a0 F5 Q3 L1 E; _; I  a$ f( d8 [
    菜鸟一问:4 O/ K0 P( f/ J$ L5 j' u; X) U6 e1 O
    用Gvim打开MdxSourceBuilder.vim,显示乱码,是缺啥字体么?
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 21:57:31 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-12 22:17 编辑 4 ?( l# Q7 O+ q% }! m2 h
    Jiangxi 发表于 2020-8-12 21:270 C" l9 h7 S8 q* c
    菜鸟一问:8 w# |" p$ W7 V
    用Gvim打开MdxSourceBuilder.vim,显示乱码,是缺啥字体么?
    . C# I/ d# X* y% g/ Y# ^. @
    不是字体的问题。
    2 V7 Z/ _, e2 |- r5 @你找到vim安装目录下有个_vimrc文件,用任意文本编辑器打开,随便在哪加入一行(比如最顶部或最后一行):0 k3 x  ]& l9 I/ `& v" q) y6 Z

    ! g: \$ V1 A, D" t8 J# X" f* Zset encoding=utf-8' y, p6 s% N' n8 H
    5 d7 E" ]) H6 J- u$ V2 `# }5 N& A* C9 Q
    以后就不会有乱码问题了。* O7 d' l: E; f2 K8 t3 G8 H

    点评

    谢谢,加了set encoding=utf-8后,打开显示正常了。但Gvim软件的所有菜单变成乱码了  发表于 2020-8-12 22:34
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-12 23:20:19 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-12 23:39 编辑
    $ S' D8 k! W8 T! J# {) G/ p( U$ I) d, _1 r" H
    不用管什么菜单,不影响使用这个工具。, Y/ p# p* A1 k% {3 w9 T

    ) G9 {& A! |; E0 u0 B9 m4 _若仅仅是解决菜单乱码或者是根治中文乱码有关的常见问题,建议vimrc文件加入如下内容:! y* c: U0 O3 O4 o0 Y4 g; j9 {
    3 [: q5 C  p  g# j9 M7 ?3 T
    1. " Basic Setting -----------------------------------------------------------{{{1& |3 G. t0 |: h6 O
    2. set nocompatible    "启用不兼容Vi模式
      + t6 \* h) U: q- S% C. E+ r
    3. syntax on
      8 ^- m$ [* ?/ K6 {2 p% k# O2 e
    4. filetype plugin indent on   "文件类型自动识别,并使用相关插件和自动缩进: a3 I- P( b$ ?5 |& l8 Z. {! {1 ^
    5. 3 ~) X8 y2 n7 s, B
    6. " Encoding related --------------------------------------------------------{{{1
      7 p# C; |$ C+ ~' o/ u, ^& M
    7. set encoding=utf-8  "Vim 内部工作编码' |5 ]+ z6 |. X
    8. set fileencoding=utf-8  "设置此缓冲区所在文件的字符编码;新文件默认编码
      & R! Q  g( G$ b' E3 C/ G  s2 b* Q5 T
    9. " 打开文件时自动尝试下面顺序的编码: U- N- x$ w) m- o9 ?
    10. set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1; s& A! P% Z- l1 N7 J
    11. source $VIMRUNTIME/delmenu.vim
      # H$ z% g- d' d- q
    12. set langmenu=zh_CN.UTF-8    "指定菜单语言,若需要英文则none' E/ b, p) m! h* s  b0 O6 \- x# V
    13. source $VIMRUNTIME/menu.vim/ y: s$ O4 C& E% K. I/ o& X# ~
    14. " language message en_US.ISO_8859-1 "指定提示信息语言
      . y4 N$ b% \" H' ~* X4 g* r
    15. language message zh_CN.UTF-8    "指定提示信息语言
      0 w$ b: W0 E: j* s1 J3 ]% }  p
    16. set ambiwidth=double    "使用US-ASCII字符两倍的宽度显示宽度不明的字符
      , v. B) S% i2 n3 {' e. J0 M
    17. set nobomb    "取消UTF的BOMB文件头- G- a: I( Z8 C7 b/ A0 r% H
    18. set ffs=unix,dos,mac    " 文件换行符,默认使用 unix 换行符
      2 B3 v5 e5 k. ]3 @
    19. set cm=blowfish2    "设置新的加密算法
      . q& U5 ]; \7 J; q, ^
    复制代码

    4 r  K0 f8 T" d0 d/ a8 s- ]$ w4 Q  W  E- Z( E: Z8 v
    若要解决Vim的各种问题,并按照自己的心意来,那么就需要下功夫学会定制vimrc文档。不过使用Vim初期,可以简单的复制别人的vimrc文件直接使用,网络一搜一大堆。5 k* x) s% m, y0 E+ @

    & v) ?. ?( U) r% a1 _- L" S  ~* x. |6 z7 l  e
    & m/ c9 u. \+ z* T  u" t
  • TA的每日心情

    2020-11-25 15:28
  • 签到天数: 86 天

    [LV.6]常住居民II

    发表于 2020-8-13 03:55:48 | 显示全部楼层
    真是个狠人。。谢谢。
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 09:17:56 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-13 09:39 编辑
    0 `2 d7 {" b" ~+ ?2 f! L9 O$ ^  ~+ x: g
    , W" c9 W3 |% h0 `' p我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事3 v0 r$ W% V& m& v  J
    操作方式是在gvim_8.2.1424_x64_signed中单击“运行vim脚本”按钮,选择MdxSourceBuilder.vim,图片链接无法访问吗?https://s1.ax1x.com/2020/08/13/azemGR.gif
    / d: g6 ~2 O; N" b& v我电脑上安装了python,没有安装mdict-utils,这应该不影响生成 MarsDict.css,火星词典.txt  这两个文件吧+ B" [' B3 g5 d8 U* t

    . c/ Y% {# g- v: I( O7 X/ F, z& j: X. u' F5 }
    ) ?! d4 Y* |  a) e" h$ l9 g8 f

    : {8 l! e" G2 G% r4 z  b; i& D* ~

    点评

    前面我理解错了,原来MarsDict.css和火星词典.txt都是空的。需要看到你的复现步骤,以及结果截图。  发表于 2020-8-13 09:29
    MarsDict.css能够输出,说明一切正常。但火星词典.txt内容是空的,有点奇怪。还请说说你是如何操作的?复现的具体步骤。  发表于 2020-8-13 09:25
    生成火星词典.mdx需要安装python和mdict-utils  发表于 2020-8-13 09:24
    看不见截图,建议传输图片到图床:https://sm.ms/  发表于 2020-8-13 09:23
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 09:41:13 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-13 09:47 编辑 # S! ?# p# t: M8 u
    wjl 发表于 2020-8-13 09:173 K  z: S+ [+ d9 q" |/ [9 z
    我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事+ e  V4 _& |8 C. a. ~6 Z+ x
    ...
    : u$ u8 x* {# D* L$ u( g" r, C
    看到视频了。* p* Q  \$ ^2 j$ s
    - k& B) A7 z  J# w  F, d7 J0 s; ~
    你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。% D; f' Y5 B$ z0 n; E5 q( }& L6 K

    * U  L# u6 b! p4 d! X: K' O估计你的vim“工作路径”错了。请严格按照步骤来。
    " T/ \2 d: P1 {7 L" N1 R8 d- g6 C9 ^. a! d
    1、关闭所有vim程序。9 {5 S" q$ I4 r" [0 @) l
    2、右键MdxSourceBuilder.vim,使用vim打开(必须这样,才能保证vim的工作路径就是当前的词典目录,而非vim程序目录)
    - o/ K- C: W! E! ~' e3、使用 :new 新建文档  k5 E* d! {, }
    4、执行 :so MdxSourceBuilder.vim
    & t1 F9 E) g' f0 C9 D$ M- G3 d) w7 L& V  M8 l; x; N, a. u2 S
    或者你如果会更改vim的工作路径,那么第二步想怎么打开就怎么打开:
    8 j% v8 z* X0 s- h- Q1、输入命令 :pwd   可以看到当前的vim工作路径
    - n+ V# {" N9 Y6 o2、输入命令 :cd..  将工作目录变更为上层目录 或  :cd c:\test 将工作路径变更为test目录,如此类推。命令:cd 后加上词典目录即可将vim的工作目录变更到词典所在目录,与dos 或 windows的cmd的cd命令一样。
      a0 G/ H- D5 ]8 Y
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 09:59:26 | 显示全部楼层
    VimVim 发表于 2020-8-13 09:412 K( r! p( D! W$ H6 W
    看到视频了。
    * m, [+ i& J  b/ e! N8 w1 f! L+ W. @
    你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。

    9 o  l% U' O+ Q4 M如果你希望你这样的操作也可以,更改MdxSourceBuilder.vim,添加如下最后两行(确保位置如下所示):
    + ]9 h0 D4 o! `6 O: d8 B" ======================================================" Q  D. Z6 m/ {# i3 p: k$ _
    " 以下为程序正文,不熟悉Vim的用户请勿动
    / }$ ^4 U  _3 m. o5 K# m" ======================================================
    - I5 U& ^; z; T5 n"' H7 ]9 K- m* X& J+ M
    "! B7 [8 F# l+ u/ z( v
    " 取得本文件所在的目录,并设置为当前工作目录- z' e+ x" f" @+ v. y( I$ g
    let s:home = fnamemodify(resolve(expand('<sfile>:p')), ':h')
    . J6 j& \. {# ^execute 'cd ' . s:home& b8 W- R1 D- f. t
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 10:01:12 | 显示全部楼层
    VimVim 发表于 2020-8-13 09:41/ y0 Q6 b5 S7 W% M9 D% d: l: S
    看到视频了。& S7 B: B9 x+ p* s
    ; T8 [) ?& _4 s' }) i+ ^0 z/ E: F5 U
    你的操作步骤很奇怪。输出的结果也不应该出现在vim的程序目录下,而是词典目录下。
    ! o  ?9 J) M; Q8 Y. C
    多谢,严格按照你给出的步骤,现在可以正常生成 MarsDict.css,火星词典.txt 了# i9 ~" O; U1 C; Y  ~0 Q

    ; ]" N& G" e5 Z" @4 P+ N( q* x8 Jhttps://s1.ax1x.com/2020/08/13/azMjaT.gif
    ; r% K- H# W" f' u* g5 r1 U- V7 j; [+ q  L6 S# C! T

    * l$ A2 b: t2 w
    3 i' E8 l6 N' I+ x8 A
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 10:07:47 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-13 10:18 编辑 3 l6 k+ V: I0 I; e( {& \/ m. `
    wjl 发表于 2020-8-13 10:01, @& U) |; Y* j5 U7 u
    多谢,严格按照你给出的步骤,现在可以正常生成 MarsDict.css,火星词典.txt 了
    $ r. O& u! {6 S9 v% b9 ~1 ]3 b% }( s0 ~+ F4 k
    https://s1.ax1x.com/20 ...
    : i. }# A7 L+ n! t: }7 j: c, j
    我一会更新一下程序(就是上贴所说),让其兼容各种操作。而且,以后不必打开MdxSourceBuilder.vim文件(我原来的设想是通过这个步骤自动设置工作目录,没想到你们却是另一种操作,以致失效),即可使用。
    % A/ S* {! n0 m0 ]; J) v8 f, M) j% z- Q& u7 n9 S: O, v
    此外,你已经有Python(需要与vim版本配对,vim的下载页面都有标识支持的python版本;同时python安装时要将其加入系统的path目录),安装 mdict-utilis 就很简单了,只要在windows cmd中输入如下命令,回车即可:5 T- [  Z% J! F& O1 y& F) D

    / L  F2 M+ W1 m. A# G$ m6 ~! Upip install mdict-utils
    ' ^. e1 `- U  p& ~; X) `
    4 v$ V" [! V4 ?  S0 W9 s. a5 g6 o2 C) p+ W) y0 X6 z4 D! T
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 10:49:30 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-13 12:50 编辑 5 o' c2 \: D" d5 \, _
    wjl 发表于 2020-8-13 09:17
      H$ S6 c: R* H& P7 l- I5 h% e2 l2 s我执行脚本后,生成的MarsDict.css,火星词典.txt,内容都是空的,没有生成 火星词典.mdx 不知道怎么回事
    ' N- n+ O, ]/ r, M9 V' ] ...
    3 ]5 C: N  ^5 {
    已更新程序和说明文档,现在按照你这种操作方法也可以了,更简单,而且不容易出错。/ v$ d- `3 }1 d3 f1 ^( i

    6 n3 q0 O+ k! v6 s9 b' h0 Q6 g- M4 t打开Vim,单击 “运行vim脚本” 按钮  或  输入命令 :bro so ,找到MdxSourceBuilder.vim,确定,结束。
    & h( }# N5 l& S4 X
    + V9 J& l/ N; r$ A8 ]注:原来的操作方法(如GIF Demo所示)依然是可行的,熟悉Vim的用户会更喜欢,因为会自动寻址。
    4 R% D9 K% b/ R& N; k
    7 E+ N1 s4 y  G+ y6 W9 t$ P$ ?. E$ ]! P/ E9 u
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-13 11:32:35 | 显示全部楼层
    VimVim 发表于 2020-8-13 10:49  D8 B- Z- A/ i5 J
    已更新程序和说明文档,现在按照你这种操作方法也可以了,更简单,而且不容易出错。% z" {/ [* l5 Y1 `4 H
    $ P4 F( P' H, Y6 I6 D
    打开Vim,单击 “运 ...

    / k* ~' h- V+ j! k2 f现在可以直接选择vim脚本来生成mdx,不用手工输入命令也可执行生成操作了8 N3 q5 j% Q9 p
    https://s1.ax1x.com/2020/08/13/azsapd.gif! [  O, v/ R5 d9 n4 r# o  I

    点评

    这个词典的奥妙你可能没发现:词典的最底下还有不一样的导航。  发表于 2020-8-13 11:42
    是的,更方便像你这样喜欢GUI的用户,我自己已经习惯命令行模式,甚至隐藏菜单和工具栏。  发表于 2020-8-13 11:39
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-13 12:25:34 | 显示全部楼层
    本帖最后由 VimVim 于 2020-8-13 17:13 编辑
    3 W: C' h/ D) H3 n  g# E5 V
    VimVim 发表于 2020-8-12 23:203 q! d. \. F% d, T, B( F# c" k
    不用管什么菜单,不影响使用这个工具。; S' m" M- U! V
    3 i$ B6 L9 ]' P; M, ~# y! c% p
    若仅仅是解决菜单乱码或者是根治中文乱码有关的常见问题,建议vimr ...

    , W% H- W/ v: C进一步更新程序。解决Vim乱码以及满足常见的Vim用户需求。
    + [1 T" |! s2 d- l7 ~4 S- v
    1 F/ k  R6 R8 f请将 _vimrc 文件复制到 $HOME 目录下,Windows下即是 c:\Users\YourName\
  • TA的每日心情
    开心
    2019-10-10 05:35
  • 签到天数: 328 天

    [LV.8]以坛为家I

    发表于 2020-8-13 21:50:54 | 显示全部楼层
    wjl 发表于 2020-8-13 11:32/ m2 ^" M6 Z4 e" H( |( ^
    现在可以直接选择vim脚本来生成mdx,不用手工输入命令也可执行生成操作了; g" O$ G) j; |0 f, O
    https://s1.ax1x.com/2020/08/1 ...
    . V' Y1 P# b* m0 e* @2 |9 j9 f
    能发一下您的python和Gvim安装文件么?我折腾半天就是生成不了mdx文件,不知是我的vim版本与python不匹配吗。不好意思,太菜了。谢谢。
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-27 07:27 , Processed in 0.096074 second(s), 21 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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