TA的每日心情 | 慵懒 2021-8-25 10:07 |
---|
签到天数: 1227 天 [LV.10]以坛为家III
|
发表于 2017-11-30 14:57:57
|
显示全部楼层
本帖最后由 大橙子 于 2017-11-30 15:12 编辑
9 p! [/ w0 c- y; s e/ L( e/ K8 Q Q- ]/ r. \/ K# I6 i# Z
按照楼主的思路,成功了 ^_^9 O5 |2 F; s& D
6 G- p6 ^+ L. J( J5 u# t: K* [可以在词条下面显示针对该词条做的笔记/ C3 ]7 q5 e i9 Q$ ?
$ _; B3 R! `9 `% q. e
4 H7 u1 n9 a- Q" p
, W! \* g) v* o——————————————————————————————
& F* _3 m! x e& [我习惯用 php,贴上我的设置,感兴趣的可自行继续钻研,或自行改成 python 等。3 a1 _3 A# m0 p% ~2 x' `
补充 :又仔细看了一下,跟楼主说的其实差不少,我根本没用到 md,也不需要调外部 js 转 html。个人需求只要能纯文本记笔记就行了~有类似需求的可以抄,不能满足需求的也请不要喷我,谢谢……
O; d P g4 v" E( @1 j8 S; s# ?/ [ Q
笔记文件格式如下:
+ E2 D. P$ d& C2 h' c7 u2 L- # 立つ #
( M& A o3 ~ [" S! U$ n - 出发,离开) }2 {+ _ h* M# n* C
2 n9 a2 Z0 \& c- # 努める #
# i; w3 b: D7 b/ d+ B1 ] - 努力
4 L8 X- L7 j& i6 E( J
复制代码 2 E1 x3 d9 e5 w
# N4 B P& W; C
php 代码如下:7 @% D* Q, z& Y7 {: }- P/ [" r
- <?php
9 o; G! W2 q, d6 Y) O& Y; ~, D e - + C$ G. v# e/ O
- // 因为 Windows 默认编码是 GB2312,所以本项目全部转换成此编码,包括 php 内部编码、本文件以及 note 文件保存的编码。0 D7 M3 M. \# @* X7 s' W! m" e
- // 最后输出时给 GoldenDict 时,不是很懂 GD 的编码机制,反正试验结果是:外部程序类型选纯文本时,必须输出 gb 格式;类型选 html 时,必须转换成 utf-8 输出给它……尝试全部使用 utf-8,但怎么试都是乱码,所以只好过程用 gb,最后一步转成 utf-8 给它。% v/ u% ^1 o4 Z. u
- mb_internal_encoding('GB2312');+ f- a! N6 x+ C! M5 f% i: c
( h6 u; g) G0 i- // 从传过来的参数中获取查询词( k! x' @+ e# \' g. t3 l7 n$ S
- $word = $argv[1];+ D0 r% f5 t! Z0 _ t
- $ [/ B) c$ ]. G# l
- // 读取 note 记录文件,从中寻找该查询词* a- ^, d- ^* `6 [$ ?2 g2 [: ]
- $filename = 'E:\mynotes.txt'; //这里换成你的笔记文件地址
% w$ x, W! _; k$ t- z; M - $content = file_get_contents($filename);
8 a9 l9 d1 C# Y! [+ H5 {0 O& h& P
7 S/ h% ?# O( k4 P2 ?: ^8 {4 G( l- $pos = mb_strpos($content, '# '.$word.' #');
\1 D& R6 d9 S8 L, k - $result = '';- P5 u& d6 ?" h% E* X& p! Y( @
* G, _; _4 M8 p- k- // 如果找到,则提取出对应 note6 Z/ z. A2 \4 e9 c/ H; B6 t
- if ($pos !== false) {
4 o" `! [7 O# c/ v" h1 ~' |9 a - // 起始处是下一行
0 R$ Y% r e7 k( e: ?% s5 T) ]) X - $start = $pos + 4 + mb_strlen($word);
! K. }* p6 P3 b+ S; ?& R9 @/ N2 | - // 结束处是下一个 '# ' 之前,或文件末尾
0 t7 H# ^8 r9 m - $next_pos = mb_strpos($content, '# ', $start);6 W0 @6 S+ S/ G% ?' u9 U* X# f0 ~
- if ($next_pos !== false) {- Z& T) E$ n& Z% w, [0 \: E4 U
- $result = mb_substr($content, $start, $next_pos - $start);- L8 Z! X6 }5 [' r4 d f6 u
- } else {1 Q( l$ N1 }& H" X. ~2 d; v! Y( }- F
- $result = mb_substr($content, $start);& q9 D M. K) Y) n: p9 r# F& b: B1 R
- }
( v; m0 {4 g$ ? - }9 A! k( P6 u" }6 K( S, m- C9 a" L
- ; Y2 u) L6 R/ m# k- A# z* j
- $result = mb_convert_encoding($result, 'utf-8');
- t4 _0 D3 o+ [: i - echo $result;
4 f9 Z' [ |, y7 A6 [
4 n4 r% J+ r0 y- ?>
复制代码
$ e, O, `* G% o8 q2 r
7 D! v# B, d4 c/ v" y) ?+ b. s# F把上面的 php 代码复制粘贴存成 gd-note.php 文件
/ W" H* k) |* q( W, Q6 _8 I
6 w+ z( k+ a5 i" O" YGD 里的设置如下:
$ g4 o$ }6 u, Y3 r1 S, y: {! D$ B! O; D# V7 a
5 _( y. T, h0 L/ L* v% x2 N: L命令行处写的是:php E:\Develop\Git\gd-note\gd-note.php %GDWORD%
7 q. k* n) n$ K2 ~# y4 X& g中间的文件地址换成刚才保存的 php 文件的地址。 B" t; Y6 Q2 |; {5 C
6 z$ S6 `* G5 ^- i所有文件都要存成 gb2312 格式,否则乱码。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?免费注册
x
评分
-
2
查看全部评分
-
|