GoldenDict + Markdown(or 任何格式化良好的文本)
本帖最后由 Oeasy 于 2017-11-28 09:52 编辑一个想法,暂未实践。
https://github.com/evilstreak/markdown-js/
note.md
#词头1
……
#词头2
……
#词头3
……
利用外部程序,查询词头,读取 note.md ,就将词头下的词条内容(Markdown 格式),利用 markdown-js 转为 html ,呈现在 GoldenDict 中。
用处就是,用 Markdown 做单词笔记,笔记也可以在 GoldenDict 里查,而且笔记内容更新,查到的内容也即时更新。
当然,本质 note.md 可以是任何格式化良好的文本,类似于自创的词典格式。
在外部程序那里做做文章,搞搞交互,说不定可以实现在 GoldenDict 里编辑词典内容。
本帖最后由 大橙子 于 2017-11-30 15:12 编辑
按照楼主的思路,成功了 ^_^
可以在词条下面显示针对该词条做的笔记
——————————————————————————————
我习惯用 php,贴上我的设置,感兴趣的可自行继续钻研,或自行改成 python 等。
补充 :又仔细看了一下,跟楼主说的其实差不少,我根本没用到 md,也不需要调外部 js 转 html。个人需求只要能纯文本记笔记就行了~有类似需求的可以抄,不能满足需求的也请不要喷我,谢谢……
笔记文件格式如下:
# 立つ #
出发,离开
# 努める #
努力
php 代码如下:
<?php
// 因为 Windows 默认编码是 GB2312,所以本项目全部转换成此编码,包括 php 内部编码、本文件以及 note 文件保存的编码。
// 最后输出时给 GoldenDict 时,不是很懂 GD 的编码机制,反正试验结果是:外部程序类型选纯文本时,必须输出 gb 格式;类型选 html 时,必须转换成 utf-8 输出给它……尝试全部使用 utf-8,但怎么试都是乱码,所以只好过程用 gb,最后一步转成 utf-8 给它。
mb_internal_encoding('GB2312');
// 从传过来的参数中获取查询词
$word = $argv;
// 读取 note 记录文件,从中寻找该查询词
$filename = 'E:\mynotes.txt';//这里换成你的笔记文件地址
$content = file_get_contents($filename);
$pos = mb_strpos($content, '# '.$word.' #');
$result = '';
// 如果找到,则提取出对应 note
if ($pos !== false) {
// 起始处是下一行
$start = $pos + 4 + mb_strlen($word);
// 结束处是下一个 '# ' 之前,或文件末尾
$next_pos = mb_strpos($content, '# ', $start);
if ($next_pos !== false) {
$result = mb_substr($content, $start, $next_pos - $start);
} else {
$result = mb_substr($content, $start);
}
}
$result = mb_convert_encoding($result, 'utf-8');
echo $result;
?>
把上面的 php 代码复制粘贴存成 gd-note.php 文件
GD 里的设置如下:
命令行处写的是:php E:\Develop\Git\gd-note\gd-note.php %GDWORD%
中间的文件地址换成刚才保存的 php 文件的地址。
所有文件都要存成 gb2312 格式,否则乱码。 本帖最后由 henices 于 2017-11-28 10:11 编辑
想法是不错,但是就我自己而言笔记都是一大篇的,希望能够重头到尾阅读。
我自己记笔记也使用 markdown 格式,O 大的场景应该适用于短篇幅的笔记片段。
md 转 html 推荐使用 pandoc,一个非常 nb 的工具。 什么时候能实现,期待呀?就差一个能在GoldenDict或其他词典软件中编辑词条的插件了。 其实自己还可以定义一个数据格式,加密都没问题
页:
[1]