掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1900|回复: 4

[经验交流] GoldenDict + Markdown(or 任何格式化良好的文本)

[复制链接]

该用户从未签到

发表于 2017-11-28 09:50:55 | 显示全部楼层 |阅读模式
本帖最后由 Oeasy 于 2017-11-28 09:52 编辑 2 z& H6 r( C' O# H1 l7 b. h

- _& _, |! C' n; C: }6 I3 f3 B* \  f* f
一个想法,暂未实践。$ O- e; `; f6 G
2 z- ~7 y6 }5 v" V0 h( v5 M/ ]2 k2 W; k
https://github.com/evilstreak/markdown-js/' a+ S7 v# [5 H

7 R4 h9 X4 M, f$ b! B6 \note.md1 v, }. K! O2 e* K! @# p/ l& d( k
#词头1
* {; \4 K; t/ F* H! K4 p……
6 j" L& ]" b6 R' |( v#词头2$ `1 n. b: A! I1 j; h. ?' |
……! {; O, T( Q5 \! x
#词头3
8 s) O" |8 O* t, M! X& ~1 U9 E/ ?……7 e. A5 r+ L* l; u! [" O

0 ^* V* z' u; p7 _利用外部程序,查询词头,读取 note.md ,就将词头下的词条内容(Markdown 格式),利用 markdown-js 转为 html ,呈现在 GoldenDict 中。- [; r" b8 \) q- c" V

& H; R% ~  ~7 c4 v, L用处就是,用 Markdown 做单词笔记,笔记也可以在 GoldenDict 里查,而且笔记内容更新,查到的内容也即时更新。
5 S3 G! Y% k, S: j! f
! @# d& L3 E8 `' h2 Y当然,本质 note.md 可以是任何格式化良好的文本,类似于自创的词典格式。% k+ n& @* {; h* }1 h; _

7 B( Z+ P# o" M5 W& v2 Z( ~在外部程序那里做做文章,搞搞交互,说不定可以实现在 GoldenDict 里编辑词典内容。# @7 D2 M, X! w. Z4 X
( L, }1 p7 }$ o; g6 }
  • TA的每日心情
    慵懒
    2021-8-25 10:07
  • 签到天数: 1227 天

    [LV.10]以坛为家III

    发表于 2017-11-30 14:57:57 | 显示全部楼层
    本帖最后由 大橙子 于 2017-11-30 15:12 编辑
    : I1 T  b) R! u% n4 t0 C  i9 d8 K( m) p  [
    按照楼主的思路,成功了 ^_^  d" p) g4 i' |! [! i
    ' c0 t# Z6 M$ m4 j9 G
    可以在词条下面显示针对该词条做的笔记
    - o% t, t2 U9 Z  [7 M
    % c5 c* i  c: P: ]1 P, m# S/ O$ R* L, h0 m/ O- g
    8 I3 N' r0 F- K+ g
    ——————————————————————————————7 R2 n9 f* N% k+ v9 c4 S
    我习惯用 php,贴上我的设置,感兴趣的可自行继续钻研,或自行改成 python 等。& e! W7 K" {6 Z3 `$ q
    补充 :又仔细看了一下,跟楼主说的其实差不少,我根本没用到 md,也不需要调外部 js 转 html。个人需求只要能纯文本记笔记就行了~有类似需求的可以抄,不能满足需求的也请不要喷我,谢谢……
    2 i/ w. {1 \# s
    ( E/ S; n7 s( V) T: {' P2 K1 H9 }笔记文件格式如下:( \4 Q0 H( s( D9 i- Q
    1. # 立つ #
      " j4 I9 F/ t/ J* i4 V- h
    2. 出发,离开
      / z% b' ?8 E3 J9 x

    3. % D0 \/ P" X8 h9 y8 O6 C7 L" ^
    4. # 努める #
      4 y4 w0 M; [$ y) b( d
    5. 努力2 \6 n9 [6 V3 I! s& q
    复制代码

      H0 t$ M7 A0 ^' N
    6 Y6 e9 B, u# i" y1 r/ u& gphp 代码如下:& c2 Y$ L. l$ @/ h
    1. <?php
      8 @0 ~+ P0 y, V; y, ~0 k

    2. % U; e9 _7 |( W. G) l( r
    3. // 因为 Windows 默认编码是 GB2312,所以本项目全部转换成此编码,包括 php 内部编码、本文件以及 note 文件保存的编码。
      ; ~- a' \. C% k9 b" @
    4. // 最后输出时给 GoldenDict 时,不是很懂 GD 的编码机制,反正试验结果是:外部程序类型选纯文本时,必须输出 gb 格式;类型选 html 时,必须转换成 utf-8 输出给它……尝试全部使用 utf-8,但怎么试都是乱码,所以只好过程用 gb,最后一步转成 utf-8 给它。
      : F( h5 ^4 R% F" A) b
    5. mb_internal_encoding('GB2312');
        B8 B( h! W- [' P7 U

    6. * X) `- p& n& M7 @6 z& M
    7. // 从传过来的参数中获取查询词
      ' X$ u6 x( w- E
    8. $word = $argv[1];
      0 W; O- y& [, o
    9. : p. T1 T3 |* }/ a& ?" @
    10. // 读取 note 记录文件,从中寻找该查询词
        q/ w. @- X/ z; n* ?% I& V6 [
    11. $filename = 'E:\mynotes.txt';  //这里换成你的笔记文件地址
      2 w# R; r  D) ]3 |- W/ x) P8 {
    12. $content = file_get_contents($filename);
      4 N+ P2 B0 g9 m2 f* v' M4 N% i# r! V
    13. ( ~- p9 o/ t1 ]' U- i4 l8 g0 [) A) h
    14. $pos = mb_strpos($content, '# '.$word.' #');
      " O( N2 T' P! S7 y( C
    15. $result = '';
      " p( F) i9 ~/ X1 k' ?$ \

    16. * a5 S* n$ z7 h* `$ t: q/ h
    17. // 如果找到,则提取出对应 note4 b) y2 c' N0 I, y7 K
    18. if ($pos !== false) {) q2 Q- L# Y5 m1 x5 p  N( B
    19.         // 起始处是下一行5 ~4 r% z+ Q' _& R; s
    20.         $start = $pos + 4 + mb_strlen($word);" V; f9 y0 U  C4 I& F
    21.         // 结束处是下一个 '# ' 之前,或文件末尾0 L/ u1 c, r2 L2 z; Z
    22.         $next_pos = mb_strpos($content, '# ', $start);
      / q2 C3 C6 ^- F+ m6 E
    23.         if ($next_pos !== false) {
      2 q) v; D+ o" e0 b4 C! Z
    24.                 $result = mb_substr($content, $start, $next_pos - $start);' }! A+ |' F0 X5 q1 L
    25.         } else {
      6 b3 X( m% E8 E& G0 |. ]9 s& m
    26.                 $result = mb_substr($content, $start);
      , D  ?" D. ^$ \) k
    27.         }
      ) o: [# L7 U9 J  K- h+ ?
    28. }, e' }9 s  y- v9 q2 {

    29. + h4 t+ Z$ s) U
    30. $result = mb_convert_encoding($result, 'utf-8');+ O9 N* e9 T% T. r3 G& i
    31. echo $result;( [7 C4 F, G$ o8 `/ q

    32. . d6 ~  u! U8 K( ^" H
    33. ?>
    复制代码
    ! T1 e8 i. Z6 v# Z8 X# A. T4 ]$ i2 Q

    & j4 S. J; j" Z- b8 z把上面的 php 代码复制粘贴存成 gd-note.php 文件+ I2 ^3 V+ X4 _. Z
    + v2 J' X( I2 a2 \' c" x/ N
    GD 里的设置如下:
    8 z" k. V. p, d; J5 D2 v: Y6 ~" B0 u$ a% v9 T- v, l4 \
    : X2 R9 p: f  s6 ]3 i" ^0 L- [
    命令行处写的是:php E:\Develop\Git\gd-note\gd-note.php %GDWORD%
    . }% q3 f$ s8 U2 V0 m. O8 C* f中间的文件地址换成刚才保存的 php 文件的地址。: X( q) ?, G) c$ K  b
      J8 G; h# v' p" X' ~. W, d! m9 S
    所有文件都要存成 gb2312 格式,否则乱码。

    本帖子中包含更多资源

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

    x

    评分

    2

    查看全部评分

    该用户从未签到

    发表于 2017-11-28 10:05:51 | 显示全部楼层
    本帖最后由 henices 于 2017-11-28 10:11 编辑 ' `2 {) }" f& O, d' ?# h
    . O6 v# ~2 T" C; D" m# w, \0 a
    想法是不错,但是就我自己而言笔记都是一大篇的,希望能够重头到尾阅读。
    ! [% A( J0 k( ~1 S3 O" B我自己记笔记也使用 markdown 格式,O 大的场景应该适用于短篇幅的笔记片段。' v% B. {+ ?" G5 h" Y$ k7 B
    5 Y* u+ U' C2 Z. E; C* \5 X; i
    md 转 html 推荐使用 pandoc,一个非常 nb 的工具。

    评分

    1

    查看全部评分

    该用户从未签到

    发表于 2017-11-28 20:18:44 | 显示全部楼层
    什么时候能实现,期待呀?就差一个能在GoldenDict或其他词典软件中编辑词条的插件了。
  • TA的每日心情
    开心
    2024-5-5 22:32
  • 签到天数: 760 天

    [LV.10]以坛为家III

    发表于 2017-11-28 21:06:07 | 显示全部楼层
    其实自己还可以定义一个数据格式,加密都没问题
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-5-14 22:04 , Processed in 0.635807 second(s), 10 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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