Skip to content

Latest commit

 

History

History
124 lines (73 loc) · 9.9 KB

README-ZH.md

File metadata and controls

124 lines (73 loc) · 9.9 KB

Obsidian Chem

Obsidian Downloads Powered by RDKit

English | 简体中文

Chem 是一个旨在提升化学相关笔记记录体验的 Obsidian.md 插件。目前,本插件能够将您笔记中的SMILES字符串渲染为化学结构式。(基于 Smiles DrawerRDKit.js

Note

最新插件版本: 0.4.1
文档版本: 0.4.1

功能介绍

将 SMILES 字符串渲染为化学结构式

代码块渲染

如图所示,本插件能够识别语言被标记为 smiles 的代码块,并将其中的 SMILES 字符串逐行转化为化学结构式。得益于 SMILES 的纯文本特性,数据能够持久保存,该功能将得到稳定支持;此外,由于 SMILES 是一个通用标准,即使本插件换用了其他化学信息学工具包,SMILES 字符串仍能够被正确解析和渲染

渲染 SMILES 字符串

行内渲染

行内渲染功能可以在插件设置页中启用。具有特定前缀的代码行将被 Chem 插件识别、解析。默认的语法格式是 $smiles=C1=CC=CC=C1,前缀同样可以在插件设置页中调整

设置结构图像大小和样式主题

您可以在插件设置页面调整化学结构式的尺寸比例,或指定图像大小,并分别调整浅色模式/深色模式下对应的结构式颜色主题。插件设置发生更改,或浅色/深色模式切换后,图像样式会自动更新

设置大小和样式主题

复制、导出图像

复制功能位于结构图像的右键菜单。图像均以 png 格式导出,并能直接粘贴到笔记中,作为文件保存入附件文件夹,也可以以图片形式粘贴到微信、PowerPoint 等其他软件中。导出比例、透明/有背景色、颜色主题等可以灵活配置。

在代码块中调用 Dataview

在插件设置中启用解析 Dataview功能后,smiles 代码块将逐行被 Dataview 解析,解析结果用于渲染结构图像。内联 Dataview 查询式 (Queries) 和内联 DataviewJS 的启用、前缀等设置与 Dataview 插件本体保持一致。

在 SMILES 代码块中编写内联 Dataview

Warning

本功能依赖 Dataview 插件本体,若要使用本功能,请确保您已安装并启用 Dataview 插件

运行 DataviewJS 需要调用 eval() 函数,具有一定的风险。请确保您输入/粘贴的代码是受信任的

若您希望在启用 Dataview 查询式 (Queries) 时禁用 DataviewJS,请在 Dataview 插件设置中禁用 Enable JavaScript QueriesEnable Inline JavaScript Queries 选项

SMILES 介绍

SMILES 是什么?

简化分子线性输入规范,Simplified Molecular-Input Line-Entry System,简称 SMILES,是一种用线性 ASCII 字符串描述化学结构的规范。您可以参阅官方网站维基百科以了解更多内容

为什么使用 SMILES?

SMILES 使用 ASCII 字符串表示化学结构的特性与 Obsidian 的纯文本编辑器的定位十分契合。作为一种通用规范,SMILES 得到了许多专业化学工具的支持,相比于 mhchem 和 chemfig 等 LaTeX 包,使用起来更加方便;而与其他通用化学结构规范相比,SMILES 的语义明晰,可读性更强

如何生成 SMILES 字符串?

对于简单结构,您在初步学习 SMILES 知识后即可手动输入。对于复杂结构,您可以使用 ChemDraw,ChemDrawJSMarvinJSKetcher结构编辑器先行绘制,再导出 SMILES 字符串。您可以使用 Obsidian Ketcher 插件在 Obsidian 中直接绘制化学结构,并导出 SMILES 字符串。

您也可以使用 Open BabelJOELibChemical Translation Service化学语言转换工具/化学数据库,将化合物名称、CAS 号、*.mol 文件等转化为 SMILES 格式

安装步骤

Note

确保您已在设置→第三方插件中禁用安全模式

本插件可以在官方插件市场中找到。在设置→第三方插件→浏览中,搜索 Chem 插件,点击安装并启用

由于网络问题无法浏览插件市场时,请按照以下步骤手动安装

  1. 在本仓库的最新 release 页面中下载 main.jsstyle.cssmanifest.json 三个文件,或者下载压缩包后解压
  2. 将上述文件复制到您本地的笔记库的插件路径,如 [yourvault]/.obsidian/plugins/chem/。您可能需要自行新建 chem 这个文件夹
  3. 打开/重启 Obsidian 或刷新插件列表,您将看到 Chem 插件,点击启用,安装完成!

Note

若您希望使用 RDKit.js 作为渲染器,插件会访问 release 页面,尝试下载 RDKit_minimalRDKit_minimal.wasm 两个文件。若您无法连接到 GitHub,请在 release 页面中手动下载它们,并放在 [yourvault]/.obsidian/plugins/chem/rdkit/ 路径下,以供插件识别、加载

插件定位

我希望本插件能够提升化学相关笔记的记录体验。例如,您可能希望在电子实验记录中记下您今天合成的化合物的结构式,或者您想创建有机化学反应的 Anki 卡片等等。下面是一些我认为本插件可以提供的功能:

  • 显示化学式、结构式
  • 从剪切板或常用化学文件导入分子结构
  • 在分子结构旁添加化合物信息,如精确质量等,能够帮到质谱用户和化学初学者
  • 支持以内坐标表示的分子结构,优化计算化学工作流
  • 物理化学LaTeX公式模板,拯救您的物理化学课笔记
  • ......

你们的意见对这个插件的迭代、建设有着很大的帮助。本插件的首个功能——将 SMILES 字符串渲染为结构式,就是在社区用户的呼唤下开发的。我十分感谢用户们的有益讨论 (参见 acknowledgment 部分),也欢迎各位的任何反馈和建议

贡献指南

首先感谢您考虑为本项目添砖加瓦!本插件欢迎任何错误报告(bug report)、功能请求(feature request)和合并请求(pull request)。更多细节请参见贡献指南

Note

您可以直接使用中文提交内容。能力允许时,还希望您能够附上对应的英文关键词/标题,以便潜在的国际用户和开发者检索和阅读。您使用中文提交的内容将由我翻译

开发进展

本项目使用 GitHub Projects 记录开发进展

同类插件推荐

Chem 插件目前专注于将文本渲染为化学结构。如果您希望在 Obsidian 中从头绘制复杂的化学结构,Ketcher 插件集成了一个强大的结构编辑器。

Chemical Structure Renderer 与本插件功能类似。不同于本插件的本机解析、渲染,Chemical Structure Renderer 是由 KetcherIndigo 等在线服务驱动的。

致谢

本插件依赖 Smiles DrawerRDKit.js 实现 SMILES 字符串的解析以及结构式绘制的功能。Mathpix 展示了导入 Smiles Drawer 包以及使用代码块语法的实例。向这些杰出的工作表示感谢!

在整个开发过程中,官方开发者文档提供了非常详细的指引,感谢 @marcusolsson 的早期非官方文档,以及对官方开发者文档整理工作的领导!

本插件是在关于“在笔记中包含化学结构式”的论坛讨论的驱动下产生的,感谢论坛成员的启发性讨论!