掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 3315|回复: 4

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

[复制链接]

该用户从未签到

发表于 2017-11-28 09:50:55 | 显示全部楼层 |阅读模式
本帖最后由 Oeasy 于 2017-11-28 09:52 编辑
& H3 L  E& q( J, s: Z; T" B1 `
+ {. Z% t/ b7 u9 |+ C  R4 e! b; c$ D
一个想法,暂未实践。# X0 U$ c3 w+ e. ?' w
0 C* v$ K5 W3 y8 T- D# R( o5 j
https://github.com/evilstreak/markdown-js/
7 j* p* u$ h1 P0 M1 q& V9 J. a" q, m$ v0 O( m
note.md
! o  Z6 V5 ?8 a: Q#词头1: c. C9 F+ [& m" q
……
! ~6 b" k( f5 p9 B& n+ j#词头2+ ?+ T& g4 C9 q
……
  |) c8 Q" A) A' [7 r#词头36 J0 K" S; H5 ~$ t2 o9 k
……
. [4 H1 x% _8 b/ ~1 C6 n* G- p
' v" |; P. y  s, T利用外部程序,查询词头,读取 note.md ,就将词头下的词条内容(Markdown 格式),利用 markdown-js 转为 html ,呈现在 GoldenDict 中。
4 E0 A. s5 k8 o" G: ^  v' P( A" M3 M1 r- K% r7 w' T% k: w# x1 [- K
用处就是,用 Markdown 做单词笔记,笔记也可以在 GoldenDict 里查,而且笔记内容更新,查到的内容也即时更新。
. T# v# I5 j) I: `* L8 r3 D+ N8 E7 ~6 X/ f1 r% ^1 L
当然,本质 note.md 可以是任何格式化良好的文本,类似于自创的词典格式。6 V2 y  H9 k! ?2 c) Y0 g- i

+ y( j) E& s0 F8 u. i在外部程序那里做做文章,搞搞交互,说不定可以实现在 GoldenDict 里编辑词典内容。
/ z2 O4 ^) R! m2 g5 q
, C6 u3 C: t& Z) h) Q% b
  • TA的每日心情
    慵懒
    2021-8-25 10:07
  • 签到天数: 1227 天

    [LV.10]以坛为家III

    发表于 2017-11-30 14:57:57 | 显示全部楼层
    本帖最后由 大橙子 于 2017-11-30 15:12 编辑 3 i, s% u; |, _
    $ G- |! _/ R" @& Q4 D
    按照楼主的思路,成功了 ^_^
    4 |' j" B7 W# s1 j- z$ c- B' [! U# ?1 Z8 n" L! M( D5 T
    可以在词条下面显示针对该词条做的笔记2 Q4 p# f6 d8 P& F' E/ Y2 V6 [

    * J5 \) N# u& E0 R
    1 [3 s* b* X9 F, H' H7 z  x0 g; j7 {5 }- `& x" L5 b) [  j* T
    ——————————————————————————————' p3 z+ e2 |/ [' H/ y; e- S
    我习惯用 php,贴上我的设置,感兴趣的可自行继续钻研,或自行改成 python 等。  K, i5 E  C: k4 R9 i
    补充 :又仔细看了一下,跟楼主说的其实差不少,我根本没用到 md,也不需要调外部 js 转 html。个人需求只要能纯文本记笔记就行了~有类似需求的可以抄,不能满足需求的也请不要喷我,谢谢……. n; ^. x6 P0 X  W3 ]) G0 ~

    ' g' `5 S9 T% L) b, s& y6 O笔记文件格式如下:
    8 z# x6 @3 t% ]4 q3 n
    1. # 立つ #
      : p, \* g( ^* D9 I9 g* E4 q
    2. 出发,离开
      4 S3 x- }9 m9 Z; J' X" Q& y. D

    3. 1 X9 _  P$ E- |" M& ~. A% |- U
    4. # 努める #
      ; u5 q# [( F7 f& y# t# |6 K
    5. 努力. g1 d) m" F6 G, `. s9 n/ Z, T
    复制代码

    ! ^* _1 s' {4 F8 s( F7 V0 ^4 `5 u- O# d
    php 代码如下:
    & ^5 \. R2 [0 l% ]3 a/ T! ?* x
    1. <?php / X5 G' p1 Z* T; [; S. ]4 F, W

    2. * y% d2 ?2 R$ x, y+ _0 ~- D  u/ K' m
    3. // 因为 Windows 默认编码是 GB2312,所以本项目全部转换成此编码,包括 php 内部编码、本文件以及 note 文件保存的编码。% Q- G! C5 p1 {4 K/ B- d
    4. // 最后输出时给 GoldenDict 时,不是很懂 GD 的编码机制,反正试验结果是:外部程序类型选纯文本时,必须输出 gb 格式;类型选 html 时,必须转换成 utf-8 输出给它……尝试全部使用 utf-8,但怎么试都是乱码,所以只好过程用 gb,最后一步转成 utf-8 给它。, M/ L' k2 }+ T& W# x
    5. mb_internal_encoding('GB2312');" N# `* U  @# x6 J$ Y
    6. / R6 y6 e6 J+ A% j9 n
    7. // 从传过来的参数中获取查询词
      0 U$ U" Z, T& |
    8. $word = $argv[1];. u/ I% f( q% b: C' y1 y3 C

    9. 1 f2 ^8 c; [4 a  n: s- h: G5 n
    10. // 读取 note 记录文件,从中寻找该查询词
      $ [4 ?& P' O$ D: u4 i: R
    11. $filename = 'E:\mynotes.txt';  //这里换成你的笔记文件地址$ D0 v" q. ]" c  D# j# p- N
    12. $content = file_get_contents($filename);
      , |) T2 ~* J& F( B$ v3 V8 z

    13. + G+ L8 V8 o, X* i" i% y
    14. $pos = mb_strpos($content, '# '.$word.' #');
      / T6 M  [3 m1 [+ Z
    15. $result = '';+ Y' Z, v8 D& X8 z# G

    16. 4 R; [- H3 u! M) [( |
    17. // 如果找到,则提取出对应 note5 K3 a8 ~* C2 [8 G7 i
    18. if ($pos !== false) {5 R+ |5 u# {5 W2 Q6 z  i0 [) u
    19.         // 起始处是下一行1 E7 O2 y( v7 c
    20.         $start = $pos + 4 + mb_strlen($word);! s7 ]4 e; @  {/ F
    21.         // 结束处是下一个 '# ' 之前,或文件末尾
      7 L+ B3 s% {9 n+ B4 A0 {
    22.         $next_pos = mb_strpos($content, '# ', $start);
      * r+ r1 e" S  ^/ F; ~
    23.         if ($next_pos !== false) {
      9 d2 B$ w8 E  S* l
    24.                 $result = mb_substr($content, $start, $next_pos - $start);5 {( C: J: B4 b0 u+ \2 F$ q' ~& o+ f
    25.         } else {
      : u2 Q9 N9 M5 O+ J
    26.                 $result = mb_substr($content, $start);* n6 |2 X: b; |/ h' W6 y
    27.         }, S; x3 o, {! `3 a, l" `( s1 B
    28. }
      0 v& F. b) p) ], ^! @

    29.   ^: _: @1 |5 U1 C- `! `7 h
    30. $result = mb_convert_encoding($result, 'utf-8');
      2 s* M' A+ x% i( e+ B
    31. echo $result;
      6 n2 |; n  R1 ?8 X

    32. 4 u5 T! R) j# m% O
    33. ?>
    复制代码

    8 z  a0 d1 _& S% ]9 w5 z
    5 p4 o) L& v$ ]8 o把上面的 php 代码复制粘贴存成 gd-note.php 文件0 ]  c. ]- s1 j1 I  A5 z
    8 m( i0 v3 {2 v/ W+ b
    GD 里的设置如下:
    1 f5 ?( r* x1 ^! I6 i+ m6 t+ W
    7 i  m" _( l8 m
    " C* Y  Y2 n4 ]1 j) ^7 U( Q! I命令行处写的是:php E:\Develop\Git\gd-note\gd-note.php %GDWORD%
    " D0 c" b# q5 t# ?& G中间的文件地址换成刚才保存的 php 文件的地址。! G, e4 E6 K5 b! e4 t& H. l% u
    ! c/ y1 S. O) f
    所有文件都要存成 gb2312 格式,否则乱码。

    本帖子中包含更多资源

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

    x

    评分

    2

    查看全部评分

    该用户从未签到

    发表于 2017-11-28 10:05:51 | 显示全部楼层
    本帖最后由 henices 于 2017-11-28 10:11 编辑
    ( k9 i1 a5 o9 p$ s4 {! L3 I2 A* @+ ^* H4 g( G
    想法是不错,但是就我自己而言笔记都是一大篇的,希望能够重头到尾阅读。4 L) E* w# O. ?5 a) }
    我自己记笔记也使用 markdown 格式,O 大的场景应该适用于短篇幅的笔记片段。" }) C% x; b  R9 d

    ' [* ~# ]$ C+ K8 H6 c8 @% f2 Wmd 转 html 推荐使用 pandoc,一个非常 nb 的工具。

    评分

    1

    查看全部评分

    该用户从未签到

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

    [LV.10]以坛为家III

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

    本版积分规则

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

    GMT+8, 2026-8-17 05:40 , Processed in 0.025923 second(s), 34 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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