TA的每日心情 | 慵懒 2021-8-25 10:07 |
|---|
签到天数: 1227 天 [LV.10]以坛为家III
|
发表于 2017-11-30 14:57:57
|
显示全部楼层
本帖最后由 大橙子 于 2017-11-30 15:12 编辑
8 n q8 ]7 L) \. Z7 t5 A! R* B4 c1 H9 w+ `1 N8 B) j
按照楼主的思路,成功了 ^_^ G2 d9 t5 R# Z
0 S& \9 }% n9 D( v: D$ `+ G
可以在词条下面显示针对该词条做的笔记4 o. q, o' ?! O5 v- P3 \ x q5 {
0 B, C/ {' k0 ?* ^$ z0 s
7 n- e: ^: G" J: e+ Q
8 b8 D7 F7 }8 T0 E1 Z——————————————————————————————; V+ U/ j& ?9 F/ A% D2 y% R
我习惯用 php,贴上我的设置,感兴趣的可自行继续钻研,或自行改成 python 等。, O9 L* Z6 d/ c
补充 :又仔细看了一下,跟楼主说的其实差不少,我根本没用到 md,也不需要调外部 js 转 html。个人需求只要能纯文本记笔记就行了~有类似需求的可以抄,不能满足需求的也请不要喷我,谢谢……: h- K4 u5 z0 D* V, L+ g, N/ @
! [/ _" o. C5 n4 [, h7 v笔记文件格式如下:' @! H9 Z4 I- F: D/ E+ | c
- # 立つ #' S# \+ a* }4 j( c, l
- 出发,离开5 |# O6 r4 n! ^2 l5 g' W1 z
- ! M2 W- ?/ c) k1 U [! p9 g
- # 努める #) X! \3 M$ T$ n; \; a4 @% d5 e
- 努力* [, g$ k; `& N' V
复制代码
" {1 X/ x4 i& Y# M
- Z3 B1 m( @' s3 ~php 代码如下:/ p6 d# \2 z7 H
- <?php * V7 I" |; N' J, K: E2 m" x- L
8 s- d0 m5 E& ~+ j5 @6 j4 x- // 因为 Windows 默认编码是 GB2312,所以本项目全部转换成此编码,包括 php 内部编码、本文件以及 note 文件保存的编码。7 a5 b5 U" Z* @- }9 d$ _
- // 最后输出时给 GoldenDict 时,不是很懂 GD 的编码机制,反正试验结果是:外部程序类型选纯文本时,必须输出 gb 格式;类型选 html 时,必须转换成 utf-8 输出给它……尝试全部使用 utf-8,但怎么试都是乱码,所以只好过程用 gb,最后一步转成 utf-8 给它。- {) U! a- Q; Z
- mb_internal_encoding('GB2312');
3 L; I5 l0 Q3 i' w9 x! t, m) Q
b" g T! \2 S/ G. k: V+ ~- // 从传过来的参数中获取查询词
5 j0 {. r$ |* P$ g+ O U - $word = $argv[1];- E( _6 o8 {) h. Y3 s- d
% s- J1 F4 U2 q4 v; i- // 读取 note 记录文件,从中寻找该查询词
7 G1 x7 q9 B$ S) [ p3 L - $filename = 'E:\mynotes.txt'; //这里换成你的笔记文件地址5 v( a+ l6 d; _/ c
- $content = file_get_contents($filename);
4 o" x2 _4 f0 T& B - 9 H h) F' B* {6 e2 t) l! y
- $pos = mb_strpos($content, '# '.$word.' #');: k: b" U. p& I6 J
- $result = '';
r7 |9 S ?% h) c
g0 B d6 }7 A/ f" y* I8 t" i1 j- // 如果找到,则提取出对应 note
+ P2 [6 |1 U2 y. |; l - if ($pos !== false) {
. F; v' d9 G- _$ t. ^4 Z - // 起始处是下一行
- F h9 e! E1 Q1 q6 d - $start = $pos + 4 + mb_strlen($word);
1 d" ?8 [- ]: D7 b3 k' {8 f$ k! g - // 结束处是下一个 '# ' 之前,或文件末尾9 V2 }5 L/ u$ V5 I
- $next_pos = mb_strpos($content, '# ', $start);
% n; ]# D: e( ` - if ($next_pos !== false) {
+ ?6 A* }! t& p s - $result = mb_substr($content, $start, $next_pos - $start);
, c6 d% _( Q6 K+ t' D - } else {- }# [, d$ ^, Q7 w( h
- $result = mb_substr($content, $start);$ K( S- ~( t9 C+ o, D
- }
7 T9 H+ ^8 J1 C( e3 J j$ q - }
# l5 V. ]" l0 ~- Y6 I
# |4 ~6 N" G; c6 H- $result = mb_convert_encoding($result, 'utf-8');0 o2 _+ |, k9 @; i5 V& @
- echo $result;1 x( a7 `0 j$ Q+ h* I
9 w% f$ X# ?% j# s( t: W+ Y- ?>
复制代码
( X1 L( o6 Y" ~
+ _2 Z/ t5 h' S0 \. J把上面的 php 代码复制粘贴存成 gd-note.php 文件' C" y" r; l8 h- F) F; j# g
$ Q3 \' {2 p6 _1 u, vGD 里的设置如下:
' n1 l4 N. A. F! K w
1 n2 F; b4 c/ g9 V0 w
3 m! t+ L+ H" K命令行处写的是:php E:\Develop\Git\gd-note\gd-note.php %GDWORD%6 U' D8 T( T: v9 C
中间的文件地址换成刚才保存的 php 文件的地址。
. r5 x' c- i/ Y6 F/ t4 v
) J; b' D& ~4 c+ o+ a+ d4 ?1 z1 }所有文件都要存成 gb2312 格式,否则乱码。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?免费注册
x
评分
-
2
查看全部评分
-
|