TA的每日心情 | 慵懒 2021-8-25 10:07 |
---|
签到天数: 1227 天 [LV.10]以坛为家III
|
发表于 2017-11-30 14:57:57
|
显示全部楼层
本帖最后由 大橙子 于 2017-11-30 15:12 编辑
4 i7 y1 t" B$ i+ B3 s2 q( b4 S3 `/ D. V: n" K
按照楼主的思路,成功了 ^_^
3 _) o8 u' I+ C* l/ [4 Q1 Y4 O2 v2 q" s7 G
可以在词条下面显示针对该词条做的笔记: }: U e$ I1 [1 R
+ Y% w' V+ F: G9 ~' ?
5 t9 o: H- I/ ~9 {' @9 j
7 g% d* \" M* d1 \ ~2 b+ O m——————————————————————————————
9 V: l- Q1 e) {, }我习惯用 php,贴上我的设置,感兴趣的可自行继续钻研,或自行改成 python 等。" p8 x# }; }' x$ G4 Z; t
补充 :又仔细看了一下,跟楼主说的其实差不少,我根本没用到 md,也不需要调外部 js 转 html。个人需求只要能纯文本记笔记就行了~有类似需求的可以抄,不能满足需求的也请不要喷我,谢谢……1 A, `+ w5 S0 j7 s) s8 V1 R
% ?! k- k5 z! v; ~& D* Q& ?* k
笔记文件格式如下:5 m- u, u2 V' t; I( ~
- # 立つ #/ u, o- V3 A2 y
- 出发,离开) x. j( E6 n" ?
3 B3 b! t& V& h* T Q; _- # 努める #
7 w H& e$ J( i5 Z, ^1 s - 努力% Z3 @7 h; `: G1 l7 I* U v
复制代码
& b8 [* y7 A( \# R" c* k2 D* g" n5 j
php 代码如下:
' i3 b1 n- L- l# d4 F7 s- <?php 0 _6 P M" _! _. b1 q: _- x: k
- 3 T1 ?" Z5 M: p W8 \3 n# S
- // 因为 Windows 默认编码是 GB2312,所以本项目全部转换成此编码,包括 php 内部编码、本文件以及 note 文件保存的编码。
2 ^% _7 E' d: U' Y) c# s - // 最后输出时给 GoldenDict 时,不是很懂 GD 的编码机制,反正试验结果是:外部程序类型选纯文本时,必须输出 gb 格式;类型选 html 时,必须转换成 utf-8 输出给它……尝试全部使用 utf-8,但怎么试都是乱码,所以只好过程用 gb,最后一步转成 utf-8 给它。
( p# e# k1 l+ S5 y6 M5 z - mb_internal_encoding('GB2312');
+ M6 L0 M) S% H8 v
+ a- M% w1 ^) R# B8 \7 T- // 从传过来的参数中获取查询词* E& I0 P0 @2 k
- $word = $argv[1];% l8 G/ \" w+ Q5 u
- / D- n2 ~: h& M. C
- // 读取 note 记录文件,从中寻找该查询词
% f- Z$ O( j9 y1 t - $filename = 'E:\mynotes.txt'; //这里换成你的笔记文件地址" N2 I1 H7 a# m5 G$ D
- $content = file_get_contents($filename);$ f# _6 S( x' w0 q1 r! H+ O; _
- & N4 \1 W% P* o
- $pos = mb_strpos($content, '# '.$word.' #');- [; v0 z# F$ z
- $result = '';
2 k* L4 M+ L2 E - & ]. {( e4 r5 S- f/ S& D
- // 如果找到,则提取出对应 note
' T# ?% k" k5 Y# _1 J! V - if ($pos !== false) {
& }3 O; C" Q5 u: W9 I1 Q - // 起始处是下一行
D' e9 b# {9 t2 S3 R% C5 R V# @ - $start = $pos + 4 + mb_strlen($word);
. I6 G E1 i( m0 `9 S - // 结束处是下一个 '# ' 之前,或文件末尾$ P( `& C# Q7 Q; [5 S9 M
- $next_pos = mb_strpos($content, '# ', $start);; T9 ?$ }) t3 h* b2 d
- if ($next_pos !== false) {
/ X( Z) S/ ~& D7 i - $result = mb_substr($content, $start, $next_pos - $start);
' B. C2 Q& t: g* y! |* T - } else {% m2 Z! _# e. R7 y# ^( m1 j
- $result = mb_substr($content, $start);3 a! r9 V" E$ k1 G% h6 N6 z
- }) w: j/ Q; L" n1 H
- }% j0 H" ~8 Z# d3 g- I+ c6 j
- & _- E( ^4 f8 z6 `, k
- $result = mb_convert_encoding($result, 'utf-8');) }8 l+ ~' [: x8 _" ~) q. D
- echo $result;
7 x. ?" [9 S/ a/ e: K- e - * @ v. E& B7 Q3 X5 h' G# {
- ?>
复制代码
: w6 x& D. K4 }1 Y; Y' g% j4 j
7 _0 K, Y; m1 s G; e( h4 q3 T把上面的 php 代码复制粘贴存成 gd-note.php 文件3 L! v+ h( D, }$ }
% z2 q K# d: v7 l6 R: c! v
GD 里的设置如下:
% `* e. l E& W) m: h u9 y! D {$ `' w/ i
' m4 P# g7 Y3 S1 c; @9 ^
命令行处写的是:php E:\Develop\Git\gd-note\gd-note.php %GDWORD% f7 z+ D; C# P) D6 @. H9 n' M; U
中间的文件地址换成刚才保存的 php 文件的地址。9 o9 ? i) C* v/ T8 `
' V9 A& S A8 g2 k( G- D
所有文件都要存成 gb2312 格式,否则乱码。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?免费注册
x
评分
-
2
查看全部评分
-
|