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- # 立つ #
: p, \* g( ^* D9 I9 g* E4 q - 出发,离开
4 S3 x- }9 m9 Z; J' X" Q& y. D
1 X9 _ P$ E- |" M& ~. A% |- U- # 努める #
; u5 q# [( F7 f& y# t# |6 K - 努力. 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- <?php / X5 G' p1 Z* T; [; S. ]4 F, W
* y% d2 ?2 R$ x, y+ _0 ~- D u/ K' m- // 因为 Windows 默认编码是 GB2312,所以本项目全部转换成此编码,包括 php 内部编码、本文件以及 note 文件保存的编码。% Q- G! C5 p1 {4 K/ B- d
- // 最后输出时给 GoldenDict 时,不是很懂 GD 的编码机制,反正试验结果是:外部程序类型选纯文本时,必须输出 gb 格式;类型选 html 时,必须转换成 utf-8 输出给它……尝试全部使用 utf-8,但怎么试都是乱码,所以只好过程用 gb,最后一步转成 utf-8 给它。, M/ L' k2 }+ T& W# x
- mb_internal_encoding('GB2312');" N# `* U @# x6 J$ Y
- / R6 y6 e6 J+ A% j9 n
- // 从传过来的参数中获取查询词
0 U$ U" Z, T& | - $word = $argv[1];. u/ I% f( q% b: C' y1 y3 C
1 f2 ^8 c; [4 a n: s- h: G5 n- // 读取 note 记录文件,从中寻找该查询词
$ [4 ?& P' O$ D: u4 i: R - $filename = 'E:\mynotes.txt'; //这里换成你的笔记文件地址$ D0 v" q. ]" c D# j# p- N
- $content = file_get_contents($filename);
, |) T2 ~* J& F( B$ v3 V8 z
+ G+ L8 V8 o, X* i" i% y- $pos = mb_strpos($content, '# '.$word.' #');
/ T6 M [3 m1 [+ Z - $result = '';+ Y' Z, v8 D& X8 z# G
4 R; [- H3 u! M) [( |- // 如果找到,则提取出对应 note5 K3 a8 ~* C2 [8 G7 i
- if ($pos !== false) {5 R+ |5 u# {5 W2 Q6 z i0 [) u
- // 起始处是下一行1 E7 O2 y( v7 c
- $start = $pos + 4 + mb_strlen($word);! s7 ]4 e; @ {/ F
- // 结束处是下一个 '# ' 之前,或文件末尾
7 L+ B3 s% {9 n+ B4 A0 { - $next_pos = mb_strpos($content, '# ', $start);
* r+ r1 e" S ^/ F; ~ - if ($next_pos !== false) {
9 d2 B$ w8 E S* l - $result = mb_substr($content, $start, $next_pos - $start);5 {( C: J: B4 b0 u+ \2 F$ q' ~& o+ f
- } else {
: u2 Q9 N9 M5 O+ J - $result = mb_substr($content, $start);* n6 |2 X: b; |/ h' W6 y
- }, S; x3 o, {! `3 a, l" `( s1 B
- }
0 v& F. b) p) ], ^! @
^: _: @1 |5 U1 C- `! `7 h- $result = mb_convert_encoding($result, 'utf-8');
2 s* M' A+ x% i( e+ B - echo $result;
6 n2 |; n R1 ?8 X
4 u5 T! R) j# m% O- ?>
复制代码
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
查看全部评分
-
|