# GoldenDict-ng 自编程序分享（添加笔记、记录查询信息）

**URL:** <https://forum.freemdict.com/t/topic/34974>\
**Category:** 技术交流与词典编修\
**Tags:** goldendict\
**Created:** [2024 年12 月 18 日 21:52 UTC](https://forum.freemdict.com/t/topic/34974 "2024-12-18T21:52:48Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

作者： ![格蕾特](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/%E6%A0%BC%E8%95%BE%E7%89%B9/32/69955_2.png) [@格蕾特](https://forum.freemdict.com/u/%E6%A0%BC%E8%95%BE%E7%89%B9)\
发布日期： [2024 年12 月 22 日 15:04 UTC](https://forum.freemdict.com/t/topic/34974/21 "2024-12-22T15:04:03Z")

</div>

> [@Hazuki](#):
>
> 现在这个软件已经经过很多次的迭代，在欧路上的效果如图：
> 
> ![Screenshot 2024-12-07 at 12.56.01](https://forumcdn.freemdict.com/uploads/default/original/3X/2/c/2cf1b0a1b50230a4f1b87f45f7fd65e665bff42b.jpeg)

如果点“学习笔记”右边的“编辑”，界面是怎样的呢？能够可视化吗？

---

<div class="post-metadata">

作者： ![Hazuki](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/hazuki/32/82206_2.png) [@Hazuki](https://forum.freemdict.com/u/Hazuki)\
发布日期： [2024 年12 月 22 日 15:14 UTC](https://forum.freemdict.com/t/topic/34974/22 "2024-12-22T15:14:05Z")

</div>

欧路的软件我当然不可能去改写，编辑是自带的界面，所以我才需要另外制作一个笔记软件，去生成笔记数据。欧路不行，但 GoldenDict-ng 完全是可以的，可以做到把整套集成在一起。

 ![Screenshot 2024-12-22 at 23.11.36](https://forumcdn.freemdict.com/uploads/default/original/3X/9/3/93d503e4446747823f94c4202acfc03229ff987e.jpeg)

 ![Screenshot 2024-12-22 at 23.13.19](https://forumcdn.freemdict.com/uploads/default/original/3X/4/4/44d281dfd0b5346726da5292b63074878078923b.jpeg)

---

<div class="post-metadata">

作者： ![Hazuki](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/hazuki/32/82206_2.png) [@Hazuki](https://forum.freemdict.com/u/Hazuki)\
发布日期： [2024 年12 月 22 日 15:21 UTC](https://forum.freemdict.com/t/topic/34974/23 "2024-12-22T15:21:08Z")

</div>

原理的话，可以看到和 Anki 的模板很像，笔记软件上有多个字段让用户去填写，而其中 Original Text 和 Notes 是支持 Markdown 的（可以无视 Notes 中与词典数据相关的东西），所以编辑起来就很容易。

最后会生成 JSON 格式的数据，直接粘贴到欧路的笔记里，上传到云端。上传的数据可以调用 JavaScript 去生成笔记，目前我的方法是 JavaScript 在其中一本词典里，有同样的代码就能在多个设备都看到相同的效果。

---

<div class="post-metadata">

作者： ![格蕾特](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/%E6%A0%BC%E8%95%BE%E7%89%B9/32/69955_2.png) [@格蕾特](https://forum.freemdict.com/u/%E6%A0%BC%E8%95%BE%E7%89%B9)\
发布日期： [2024 年12 月 22 日 15:27 UTC](https://forum.freemdict.com/t/topic/34974/24 "2024-12-22T15:27:35Z")

</div>

> [@Hazuki](#):
>
> 欧路的软件我当然不可能去改写，编辑是自带的界面，所以我才需要另外制作一个笔记软件，去生成笔记数据。

貌似有些超出我的能力了 🤣 大神可以整套集成一下造福坛友

---

<div class="post-metadata">

作者： ![Hazuki](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/hazuki/32/82206_2.png) [@Hazuki](https://forum.freemdict.com/u/Hazuki)\
发布日期： [2024 年12 月 22 日 15:34 UTC](https://forum.freemdict.com/t/topic/34974/25 "2024-12-22T15:34:10Z")

</div>

好吧，那我就抛砖引玉一下好了。目前这个软件只是我个人使用，是用 Swift 写的，暂时只能在 macOS 上跑。如果论坛里有词典软件的开发者有兴趣，可以参考实现思路，也可以私信我，我会提供代码。

---

<div class="post-metadata">

作者： ![格蕾特](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/%E6%A0%BC%E8%95%BE%E7%89%B9/32/69955_2.png) [@格蕾特](https://forum.freemdict.com/u/%E6%A0%BC%E8%95%BE%E7%89%B9)\
发布日期： [2024 年12 月 22 日 15:40 UTC](https://forum.freemdict.com/t/topic/34974/26 "2024-12-22T15:40:08Z")

</div>

> [@Hazuki](#):
>
> 好吧，那我就抛砖引玉一下好了。目前这个软件只是我个人使用，并且是用 Swift 写的，只能在 macOS 上跑。如果论坛里有词典软件的开发者有兴趣，可以参考。

如果有详细代码的话，我可以试试转成 python

---

<div class="post-metadata">

作者： ![Hazuki](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/hazuki/32/82206_2.png) [@Hazuki](https://forum.freemdict.com/u/Hazuki)\
发布日期： [2024 年12 月 22 日 15:44 UTC](https://forum.freemdict.com/t/topic/34974/27 "2024-12-22T15:44:35Z")

</div>

看私信。核心部分是 JavaScript 代码，Swift 的部分其实不多，主要是 UI 界面，其他的很多都是附加功能。

---

<div class="post-metadata">

作者： ![格蕾特](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/%E6%A0%BC%E8%95%BE%E7%89%B9/32/69955_2.png) [@格蕾特](https://forum.freemdict.com/u/%E6%A0%BC%E8%95%BE%E7%89%B9)\
发布日期： [2024 年12 月 22 日 15:53 UTC](https://forum.freemdict.com/t/topic/34974/28 "2024-12-22T15:53:01Z")

</div>

> [@Hazuki](#):
>
> 看私信。不过核心主要是 JavaScript 代码，Swift 的部分不多，很多是附加功能。

好的，我研究一下，感觉最重要的还是 Shared NoteData Preview 那一块。

> [@Hazuki](#):
>
> ![Screenshot 2024-12-22 at 23.11.36](https://forumcdn.freemdict.com/uploads/default/original/3X/9/3/93d503e4446747823f94c4202acfc03229ff987e.jpeg)

---

<div class="post-metadata">

作者： ![格蕾特](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/%E6%A0%BC%E8%95%BE%E7%89%B9/32/69955_2.png) [@格蕾特](https://forum.freemdict.com/u/%E6%A0%BC%E8%95%BE%E7%89%B9)\
发布日期： [2024 年12 月 22 日 15:56 UTC](https://forum.freemdict.com/t/topic/34974/29 "2024-12-22T15:56:40Z")

</div>

> [@格蕾特](#):
>
> 好的，我研究一下，感觉最重要的还是 Shared NoteData Preview 那一块。

如果有坛友感兴趣欢迎联系，我能力有限未必搞得定 🥹

---

<div class="post-metadata">

作者： ![格蕾特](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/%E6%A0%BC%E8%95%BE%E7%89%B9/32/69955_2.png) [@格蕾特](https://forum.freemdict.com/u/%E6%A0%BC%E8%95%BE%E7%89%B9)\
发布日期： [2024 年12 月 22 日 22:03 UTC](https://forum.freemdict.com/t/topic/34974/30 "2024-12-22T22:03:00Z")

</div>

> [@格蕾特](#):
>
> 好的，我研究一下，感觉最重要的还是 Shared NoteData Preview 那一块。

我研究了搞不定 🤣 现在使用的是 Tkinter，换成 PyQt 可以实现可视化编辑的功能，但仅限于加粗、倾斜等基础语句（欧路词典目前也能实现），稍微复杂一些就渲染不了了。我暂时没找到能够实现相关功能的 python 库。

---

<div class="post-metadata">

作者： ![Shiro](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/shiro/32/75339_2.png) [@Shiro](https://forum.freemdict.com/u/Shiro)\
发布日期： [2024 年12 月 23 日 03:01 UTC](https://forum.freemdict.com/t/topic/34974/31 "2024-12-23T03:01:11Z")

</div>

欧路的学习笔记还能做成这样？如果是自带的话就算是付费功能感觉都能接受 🥹

目前只支持粗体斜体下划线，也太简陋了

---

<div class="post-metadata">

作者： ![Shiro](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/shiro/32/75339_2.png) [@Shiro](https://forum.freemdict.com/u/Shiro)\
发布日期： [2024 年12 月 23 日 03:10 UTC](https://forum.freemdict.com/t/topic/34974/32 "2024-12-23T03:10:22Z")

</div>

这个功能个人感觉还是相当实用的，论坛里的需求怎么样？说不定可以集思广益，定义一个通用的数据格式。然后就能实现像生词本导入一样的简单操作，借助云存储还能实现多端同步

目前论坛里GoldenDict-ng是只有电脑端，DictTango的话有Windows和安卓，合作一下能覆盖不少用户群体

@xiaoyifang @glacierlee

欧路本身是有跨平台和云端同步的，但凡能做出一套更实用的学习工具，也不至于现在在论坛里风评不好

---

<div class="post-metadata">

作者： ![Hazuki](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/hazuki/32/82206_2.png) [@Hazuki](https://forum.freemdict.com/u/Hazuki)\
发布日期： [2024 年12 月 23 日 05:10 UTC](https://forum.freemdict.com/t/topic/34974/33 "2024-12-23T05:10:58Z")

</div>

没有你想的那么复杂，并不需要做到 Live Preview。

笔记软件上的 Preview，只是简单的输入整个 HTML，然后渲染而已，Webkit 都能做到。

而这个 HTML 包含了生成的 JSON 数据以及 webpack 打包的 JavaScript 和 CSS 代码，然后用 JavaScript 读取 JSON 生成笔记，用的是 [markdown-it](https://www.npmjs.com/package/markdown-it) 及其若干个插件。

---

<div class="post-metadata">

作者： ![Hazuki](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/hazuki/32/82206_2.png) [@Hazuki](https://forum.freemdict.com/u/Hazuki)\
发布日期： [2024 年12 月 23 日 05:20 UTC](https://forum.freemdict.com/t/topic/34974/34 "2024-12-23T05:20:56Z")

</div>

欧路原本能做的更好，跨平台和云端同步都实现了，甚至还有公开笔记，就是这个笔记本身不是很好用。

这个功能最理想的使用场景，还是搭配生词本，或者说个人词库（之前有坛友分享的），也根本不需要 mdx，直接用数据库。

---

<div class="post-metadata">

作者： ![last\_idol](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/last_idol/32/2205_2.png) [@last\_idol](https://forum.freemdict.com/u/last_idol)\
发布日期： [2024 年12 月 23 日 05:33 UTC](https://forum.freemdict.com/t/topic/34974/35 "2024-12-23T05:33:08Z")

</div>

笔记这个需求比较尴尬，词典软件附带笔记，笔记不会是重点。笔记软件附带词典，能集成好 mdx 词典的几乎没有，都是用的开源库，本身就很多问题，开发者自己都没用就上线了。

---

<div class="post-metadata">

作者： ![Hazuki](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/hazuki/32/82206_2.png) [@Hazuki](https://forum.freemdict.com/u/Hazuki)\
发布日期： [2024 年12 月 23 日 06:15 UTC](https://forum.freemdict.com/t/topic/34974/36 "2024-12-23T06:15:36Z")

</div>

词典软件本身能做的已经不多了，基本的查词功能实现，剩下的都是扩展功能。目前好像都是往 AI 方向发展，毕竟也确实比较通用，语言更是 LLM 的看家本领，而记笔记的需求就因人而异了。

笔记软件想要配合 mdx，问题是 mdx 本质上就是 HTML，处理起来着实麻烦，没有可以替代词典软件的优势。

像是要实现如图所示的效果，也就是摘出 mdx 里感兴趣的信息，主要是释义，需要为每本词典单独写 JavaScript 代码，但是提取出来的只能是 HTML 格式的，想要单独拿出来用，得另外微调 CSS 做适配。

当然这一套比较复杂，也并非必要，可以自己组织笔记内容，不需要非得保持 HTML 的形式。

---

<div class="post-metadata">

作者： ![Howie](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/h/9fc29f/32.png) [@Howie](https://forum.freemdict.com/u/Howie)\
发布日期： [2024 年12 月 23 日 09:25 UTC](https://forum.freemdict.com/t/topic/34974/37 "2024-12-23T09:25:40Z")

</div>

![image](https://forumcdn.freemdict.com/uploads/default/original/3X/1/5/15863f5066a502e69e492ef74ec63c9b06b910b7.png)  
报错什么原因

---

<div class="post-metadata">

作者： ![格蕾特](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/%E6%A0%BC%E8%95%BE%E7%89%B9/32/69955_2.png) [@格蕾特](https://forum.freemdict.com/u/%E6%A0%BC%E8%95%BE%E7%89%B9)\
发布日期： [2024 年12 月 23 日 13:46 UTC](https://forum.freemdict.com/t/topic/34974/38 "2024-12-23T13:46:06Z")

</div>

> [@Howie](#):
>
> ![image](https://forumcdn.freemdict.com/uploads/default/original/3X/1/5/15863f5066a502e69e492ef74ec63c9b06b910b7.png)
> 
> 报错什么原因

看一下路径有没有填写对，GoldenDict 软件里“命令行”下的路径，以及 GoldenDict-MyNote.py 程序里“# 文件路径配置”下的路径。

---

<div class="post-metadata">

作者： ![格蕾特](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/%E6%A0%BC%E8%95%BE%E7%89%B9/32/69955_2.png) [@格蕾特](https://forum.freemdict.com/u/%E6%A0%BC%E8%95%BE%E7%89%B9)\
发布日期： [2024 年12 月 23 日 13:51 UTC](https://forum.freemdict.com/t/topic/34974/39 "2024-12-23T13:51:31Z")

</div>

> [@Hazuki](#):
>
> 没有你想的那么复杂，并不需要做到 Live Preview。

我想了一下，如果不做到如下可视化编辑词条的功能，

> [@zhu1234](#):
>
> 太强了，要是能可视化编辑词条就好了🥲

那预览渲染也没有特别大的必要，因为现在的程序选择“Save”保存，就可以在词条里查看渲染效果了，不满意的话再回头编辑。这样一来，“Save”近似于预览的功能。

---

<div class="post-metadata">

作者： ![Howie](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/h/9fc29f/32.png) [@Howie](https://forum.freemdict.com/u/Howie)\
发布日期： [2024 年12 月 23 日 14:19 UTC](https://forum.freemdict.com/t/topic/34974/40 "2024-12-23T14:19:44Z")

</div>

[![](https://forumcdn.freemdict.com/uploads/default/original/3X/1/5/15863f5066a502e69e492ef74ec63c9b06b910b7.png) ](https://forumcdn.freemdict.com/uploads/default/original/3X/1/5/15863f5066a502e69e492ef74ec63c9b06b910b7.png)  
这个报错是python3.12，库已经安装过了。改成python3就报错提示没有安装库，但是我看macOS终端已经安装了，见鬼🌚

 ![image](https://forumcdn.freemdict.com/uploads/default/original/3X/3/d/3dd6d8e684868d93019e00c77da37a8ffc4a972a.jpeg)

[上一页](https://forum.freemdict.com/t/topic/34974.md?page=1)

[下一页](https://forum.freemdict.com/t/topic/34974.md?page=3)
