Skip to content

安装与初始化

Molio 以 Vue 3 npm package 的形式发布。宿主应用需要安装 package、导入样式,并让 RDKit wasm 可以被浏览器访问。

安装

bash
pnpm add @shangchien/molio

最小接入

vue
<script setup lang="ts">
import { ref } from 'vue'
import {
  MolEditor,
  PRESET_TOOLS,
  configureRDKit,
  type DocumentSnapshot,
} from '@shangchien/molio'
import '@shangchien/molio/style.css'

configureRDKit({
  wasmUrl: new URL('@shangchien/molio/RDKit_minimal.wasm', import.meta.url).href,
})

const documentSnapshot = ref<DocumentSnapshot | null>(null)
const fullscreen = ref(false)
</script>

<template>
  <MolEditor
    v-model:document-snapshot="documentSnapshot"
    v-model:fullscreen="fullscreen"
    :options="{
      width: 960,
      height: 640,
      readonly: false,
      defaultTool: PRESET_TOOLS.select,
      viewport: {
        initial: { scale: 1.2 },
        autoFitOnInit: false,
        autoFitOnLoad: true,
      },
    }"
  />
</template>

RDKit wasm 定位

默认 runtime 会按应用的 base URL 查找 wasm。生产应用通常更推荐显式配置:

ts
import { configureRDKit } from '@shangchien/molio'

configureRDKit({ wasmUrl: '/assets/RDKit_minimal.wasm' })

如果你的构建工具支持 package asset URL,也可以使用:

ts
configureRDKit({
  wasmUrl: new URL('@shangchien/molio/RDKit_minimal.wasm', import.meta.url).href,
})

组件尺寸

options.widthoptions.height 是非全屏状态下的画布尺寸。宿主如果要做响应式布局,可以在父组件监听容器尺寸变化后调用:

ts
editorRef.value?.resize(width, height)
editorRef.value?.setViewport({ scale: 1 })
editorRef.value?.autofit()

在线 demo 的非全屏尺寸使用 90vw x 90vh,然后把真实像素值传给 MolEditor.options

导入样式

必须导入组件样式,否则 toolbar、dock、overlay 和内置面板不会得到正确布局:

ts
import '@shangchien/molio/style.css'

下一步

Released under GPL-3.0-only.