TA的每日心情 | 慵懒 2021-8-25 10:07 |
---|
签到天数: 1227 天 [LV.10]以坛为家III
|
发表于 2017-11-30 14:57:57
|
显示全部楼层
本帖最后由 大橙子 于 2017-11-30 15:12 编辑
' n- f" t, Z! U; S$ h6 [5 [; B
' \' z, r1 ^+ d2 Z! r9 {按照楼主的思路,成功了 ^_^
! n2 s1 }$ S7 E8 B4 V3 ^+ P( J# Q! K2 M9 k- R' `
可以在词条下面显示针对该词条做的笔记
, D. p; A7 {+ |% }5 P. p9 H: R' F4 W, r+ x/ A9 |# o. B
* `5 E9 d4 M# S- X/ j$ ]3 q# v, N
——————————————————————————————
& e3 c' { K0 M* H* q1 [! u我习惯用 php,贴上我的设置,感兴趣的可自行继续钻研,或自行改成 python 等。
- c4 o3 _. B& c) X4 ~ ]补充 :又仔细看了一下,跟楼主说的其实差不少,我根本没用到 md,也不需要调外部 js 转 html。个人需求只要能纯文本记笔记就行了~有类似需求的可以抄,不能满足需求的也请不要喷我,谢谢……
# P! [, i, @ |& {) S
- i# s' y$ Y3 U; \, y笔记文件格式如下:/ N+ W2 K. v% l5 A& A& J
- # 立つ #7 n6 Y9 f4 ?8 U+ I
- 出发,离开
4 ]6 c. \: V5 S( J% D6 A* E: c - ' G6 u# M7 q0 C- E# I% W3 v6 e' C" U
- # 努める #
- h# t: r6 p. n. o z8 i - 努力8 T" @9 ?& v$ g; b& {! ]8 `
复制代码
+ [5 ^3 r4 q, Y2 G
7 K- l( N# R6 \& H/ qphp 代码如下:
% f+ K- r! I4 y+ i- <?php . h, z' o9 J9 q9 u
2 E. O' {, M+ M% c2 T8 t- // 因为 Windows 默认编码是 GB2312,所以本项目全部转换成此编码,包括 php 内部编码、本文件以及 note 文件保存的编码。6 G/ @' h3 r# ~( A+ q
- // 最后输出时给 GoldenDict 时,不是很懂 GD 的编码机制,反正试验结果是:外部程序类型选纯文本时,必须输出 gb 格式;类型选 html 时,必须转换成 utf-8 输出给它……尝试全部使用 utf-8,但怎么试都是乱码,所以只好过程用 gb,最后一步转成 utf-8 给它。
1 v* |+ x9 V, U, t' g - mb_internal_encoding('GB2312');
9 d: Z+ C5 o G( N! j1 [
; P( x) w8 V( ^0 E6 g8 Y1 g- // 从传过来的参数中获取查询词$ j2 S$ s8 W- h1 p
- $word = $argv[1];
( _9 L: {; c4 ]: D$ K) L R1 w - 2 B2 I7 [. G5 F1 M
- // 读取 note 记录文件,从中寻找该查询词& {& |3 |+ A) X. H! B# S! q
- $filename = 'E:\mynotes.txt'; //这里换成你的笔记文件地址8 i6 s9 B+ e( F) H0 Q% M- Z! y& B
- $content = file_get_contents($filename);
5 t6 @: I* c) q/ e - ! Q4 y: v3 {9 E( N; B
- $pos = mb_strpos($content, '# '.$word.' #');( H( z4 L: ~8 [/ l( u; H* j
- $result = '';6 p0 Q& C( M4 L+ R) Z
- 2 ~. H4 b5 d& m# t
- // 如果找到,则提取出对应 note* s2 l$ Y! ]' D, l3 U3 y$ `
- if ($pos !== false) {3 k4 ^" K5 n) b0 o5 A5 Y
- // 起始处是下一行
% X, x( ^$ m7 o. v+ C$ v - $start = $pos + 4 + mb_strlen($word);
% k0 L" t6 q3 ^6 [* E - // 结束处是下一个 '# ' 之前,或文件末尾
7 s' ~/ V B( S) W+ s, m9 G" } - $next_pos = mb_strpos($content, '# ', $start);
@+ Q* y- N3 `: q - if ($next_pos !== false) {
+ x+ s/ z2 e0 q% o - $result = mb_substr($content, $start, $next_pos - $start);' G$ z# y) B5 ^2 `$ K1 G& B
- } else {
# R- w+ a5 P8 x, [ - $result = mb_substr($content, $start);, } r) g3 k2 P! b
- }
, t% a. C. d2 ] - }
. K6 x! l/ r! e r! d - & y9 D6 P) H5 d t
- $result = mb_convert_encoding($result, 'utf-8');& @( c z- }- J& D1 |$ D" n, n2 G
- echo $result;
, b: ?6 I, s6 y4 u
# Z9 ?, h5 g: F6 z8 @- ?>
复制代码
D+ E- H' X) d( I$ Q) ~
; d6 P, V P9 [$ B* K5 u' E把上面的 php 代码复制粘贴存成 gd-note.php 文件+ d$ Y" s5 _; G& e+ i+ T c
& X5 C; T: s/ ]& {) w: E
GD 里的设置如下:
o6 s d; r+ c9 h% k6 o! R% q& T3 \
/ \9 p8 n$ |. N1 n' J" N& L+ U2 b9 B' v+ ~' ~
命令行处写的是:php E:\Develop\Git\gd-note\gd-note.php %GDWORD%! j, T" y) g% `. i. `" o
中间的文件地址换成刚才保存的 php 文件的地址。
" \" O! f: W e9 `# |/ ?5 u- A
所有文件都要存成 gb2312 格式,否则乱码。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?免费注册
x
评分
-
2
查看全部评分
-
|