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
- # 立つ #
" j4 I9 F/ t/ J* i4 V- h - 出发,离开
/ z% b' ?8 E3 J9 x
% D0 \/ P" X8 h9 y8 O6 C7 L" ^- # 努める #
4 y4 w0 M; [$ y) b( d - 努力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
- <?php
8 @0 ~+ P0 y, V; y, ~0 k
% U; e9 _7 |( W. G) l( r- // 因为 Windows 默认编码是 GB2312,所以本项目全部转换成此编码,包括 php 内部编码、本文件以及 note 文件保存的编码。
; ~- a' \. C% k9 b" @ - // 最后输出时给 GoldenDict 时,不是很懂 GD 的编码机制,反正试验结果是:外部程序类型选纯文本时,必须输出 gb 格式;类型选 html 时,必须转换成 utf-8 输出给它……尝试全部使用 utf-8,但怎么试都是乱码,所以只好过程用 gb,最后一步转成 utf-8 给它。
: F( h5 ^4 R% F" A) b - mb_internal_encoding('GB2312');
B8 B( h! W- [' P7 U
* X) `- p& n& M7 @6 z& M- // 从传过来的参数中获取查询词
' X$ u6 x( w- E - $word = $argv[1];
0 W; O- y& [, o - : p. T1 T3 |* }/ a& ?" @
- // 读取 note 记录文件,从中寻找该查询词
q/ w. @- X/ z; n* ?% I& V6 [ - $filename = 'E:\mynotes.txt'; //这里换成你的笔记文件地址
2 w# R; r D) ]3 |- W/ x) P8 { - $content = file_get_contents($filename);
4 N+ P2 B0 g9 m2 f* v' M4 N% i# r! V - ( ~- p9 o/ t1 ]' U- i4 l8 g0 [) A) h
- $pos = mb_strpos($content, '# '.$word.' #');
" O( N2 T' P! S7 y( C - $result = '';
" p( F) i9 ~/ X1 k' ?$ \
* a5 S* n$ z7 h* `$ t: q/ h- // 如果找到,则提取出对应 note4 b) y2 c' N0 I, y7 K
- if ($pos !== false) {) q2 Q- L# Y5 m1 x5 p N( B
- // 起始处是下一行5 ~4 r% z+ Q' _& R; s
- $start = $pos + 4 + mb_strlen($word);" V; f9 y0 U C4 I& F
- // 结束处是下一个 '# ' 之前,或文件末尾0 L/ u1 c, r2 L2 z; Z
- $next_pos = mb_strpos($content, '# ', $start);
/ q2 C3 C6 ^- F+ m6 E - if ($next_pos !== false) {
2 q) v; D+ o" e0 b4 C! Z - $result = mb_substr($content, $start, $next_pos - $start);' }! A+ |' F0 X5 q1 L
- } else {
6 b3 X( m% E8 E& G0 |. ]9 s& m - $result = mb_substr($content, $start);
, D ?" D. ^$ \) k - }
) o: [# L7 U9 J K- h+ ? - }, e' }9 s y- v9 q2 {
+ h4 t+ Z$ s) U- $result = mb_convert_encoding($result, 'utf-8');+ O9 N* e9 T% T. r3 G& i
- echo $result;( [7 C4 F, G$ o8 `/ q
. d6 ~ u! U8 K( ^" H- ?>
复制代码 ! 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
查看全部评分
-
|