TA的每日心情 | 慵懒 2021-8-25 10:07 |
---|
签到天数: 1227 天 [LV.10]以坛为家III
|
发表于 2017-11-30 14:57:57
|
显示全部楼层
本帖最后由 大橙子 于 2017-11-30 15:12 编辑 + X# D/ g4 _8 I8 R# l
) Z0 F: ^" i7 [1 ^! Z
按照楼主的思路,成功了 ^_^
/ O. H/ C; l0 d0 M' \. l( V, z
, x* w9 L; n( S$ e! x3 A0 n可以在词条下面显示针对该词条做的笔记! v3 S* _" \7 G" U
6 Y; ?5 }, k) q4 z7 C# {# Y
' Q4 j, ?3 }3 q) H7 D/ H3 Q/ u( F$ |* R( l5 | @
——————————————————————————————+ Q9 {+ y) D+ ~$ Z( w
我习惯用 php,贴上我的设置,感兴趣的可自行继续钻研,或自行改成 python 等。
$ [. y$ u7 D0 F! M/ M$ g: W补充 :又仔细看了一下,跟楼主说的其实差不少,我根本没用到 md,也不需要调外部 js 转 html。个人需求只要能纯文本记笔记就行了~有类似需求的可以抄,不能满足需求的也请不要喷我,谢谢…… h9 V- K. T( J S+ b' D+ h2 b, I
6 n9 ~0 I* Q( B+ n q! F0 t" f笔记文件格式如下:
& y' w- _7 L3 G/ N' N" f; J- # 立つ #
! F8 Z6 X0 K( l7 T+ R- [) T - 出发,离开
4 E5 A( v; _( L. u7 d1 `. d+ p
2 Q) h, p% k9 q ^% U- # 努める # q E" z4 k0 l6 n6 h4 S
- 努力
; t" x/ ]# v* w
复制代码 " @6 K" r( q( W2 c
. X# _0 M; z* \& G0 O b) L6 ?! uphp 代码如下:
V9 ^0 M) T. w: E* w/ v# X) ~% s: x- <?php
( r, B( x! M: Q; D - : r: l0 Y7 F$ z/ I! h
- // 因为 Windows 默认编码是 GB2312,所以本项目全部转换成此编码,包括 php 内部编码、本文件以及 note 文件保存的编码。9 T% `$ c! o. @
- // 最后输出时给 GoldenDict 时,不是很懂 GD 的编码机制,反正试验结果是:外部程序类型选纯文本时,必须输出 gb 格式;类型选 html 时,必须转换成 utf-8 输出给它……尝试全部使用 utf-8,但怎么试都是乱码,所以只好过程用 gb,最后一步转成 utf-8 给它。
6 I6 n- c9 m' U$ p - mb_internal_encoding('GB2312');
) f/ m2 i/ H' N& w" D0 f& S# n: u* ^
' Z' }1 E! q0 j. }- // 从传过来的参数中获取查询词6 s+ M5 b. b: o Z
- $word = $argv[1];
! J$ C! p; t& `5 @6 a$ C9 O - & ~2 Z* w7 T9 Z; n4 Q; R; i
- // 读取 note 记录文件,从中寻找该查询词& {8 [+ \( M7 ^' E& R: M8 w
- $filename = 'E:\mynotes.txt'; //这里换成你的笔记文件地址
7 Q7 _1 A7 _; F9 h, c2 T- x" y - $content = file_get_contents($filename);0 U D, ~( M. p# L7 o7 n7 w# l
9 u8 p+ j9 ~! ?& k. e' e4 I, ^+ L Z- $pos = mb_strpos($content, '# '.$word.' #');0 r6 W1 @: S6 w5 Z
- $result = '';
' N9 [& o" |& |- U( L6 D. U
; X$ I. A! `$ z- // 如果找到,则提取出对应 note- T" \/ Z: d( H% ~0 n4 n7 N! O5 |3 F
- if ($pos !== false) {
+ O) p7 u! _7 c) v - // 起始处是下一行
8 }, [' L9 ?0 R6 ~6 t+ V - $start = $pos + 4 + mb_strlen($word);. `- R4 q9 q9 S4 ?( A0 I. n8 G
- // 结束处是下一个 '# ' 之前,或文件末尾 r2 s( i* s! ?' u4 {1 n8 C
- $next_pos = mb_strpos($content, '# ', $start);$ q4 i1 \& V5 f+ B
- if ($next_pos !== false) {, o+ c+ s# R/ f, \+ J) e. q& p% ~
- $result = mb_substr($content, $start, $next_pos - $start);
4 ]) a* D6 ?! L' w - } else {: U8 N: r- u* n1 R/ j' H
- $result = mb_substr($content, $start);
* p- l% F8 s# U, ^; c6 r1 _ - }
' m/ x' V0 ~' W" F, a - }
+ n0 }; }3 T4 m; M% i( s - ! }: J( O7 J7 E
- $result = mb_convert_encoding($result, 'utf-8');; z6 D, o8 _2 S* ?1 S: v8 x
- echo $result;& z8 A/ Q( e% [
- + u! B# X- k h! C k, U
- ?>
复制代码 7 ]! p! M9 w. E2 p& b) t7 e/ V7 A! [8 S+ V
/ H- e: O5 V( _8 i
把上面的 php 代码复制粘贴存成 gd-note.php 文件
2 w6 E. L5 C% \* z6 F- T9 A- }* R: V( T$ \7 C$ c" n+ m7 Z& d m0 A& C5 r
GD 里的设置如下:
J9 a/ z2 _; ?1 u7 ?0 n2 d5 a2 C$ d5 ~ K
! \ Y$ j3 A$ c+ d* B; ^% f
命令行处写的是:php E:\Develop\Git\gd-note\gd-note.php %GDWORD%* f: c+ L- K# `, D
中间的文件地址换成刚才保存的 php 文件的地址。" U5 Q% V2 r o: h1 i% k
, }/ ~; @* ~+ ?( G m1 I, A9 ?
所有文件都要存成 gb2312 格式,否则乱码。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?免费注册
x
评分
-
2
查看全部评分
-
|