From 01f5bf4e311fe7bc0f548dd500597af694eb0c0f Mon Sep 17 00:00:00 2001 From: okxlin Date: Mon, 4 Sep 2023 01:46:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0mind-map=E5=88=B0?= =?UTF-8?q?=E5=88=97=E8=A1=A8(=E6=84=9F=E8=B0=A2=E7=BD=91=E5=8F=8B?= =?UTF-8?q?=E5=8C=85=E5=AD=90=E5=8F=94=E7=9A=84=E6=8A=95=E7=A8=BF)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/mind-map/README.md | 90 ++++++++++++++++++++++++ apps/mind-map/data.yml | 20 ++++++ apps/mind-map/latest/.env.sample | 2 + apps/mind-map/latest/data.yml | 10 +++ apps/mind-map/latest/docker-compose.yml | 16 +++++ apps/mind-map/logo.png | Bin 0 -> 4016 bytes 6 files changed, 138 insertions(+) create mode 100644 apps/mind-map/README.md create mode 100644 apps/mind-map/data.yml create mode 100644 apps/mind-map/latest/.env.sample create mode 100644 apps/mind-map/latest/data.yml create mode 100644 apps/mind-map/latest/docker-compose.yml create mode 100644 apps/mind-map/logo.png diff --git a/apps/mind-map/README.md b/apps/mind-map/README.md new file mode 100644 index 00000000..90d12f3e --- /dev/null +++ b/apps/mind-map/README.md @@ -0,0 +1,90 @@ +

Simple mind map

+ +[![npm-version](https://img.shields.io/npm/v/simple-mind-map)](https://www.npmjs.com/package/simple-mind-map) +![npm download](https://img.shields.io/npm/dm/simple-mind-map) +[![GitHub stars](https://img.shields.io/github/stars/wanglin2/mind-map)](https://github.com/wanglin2/mind-map/stargazers) +[![GitHub issues](https://img.shields.io/github/issues/wanglin2/mind-map)](https://github.com/wanglin2/mind-map/issues) +[![GitHub forks](https://img.shields.io/github/forks/wanglin2/mind-map)](https://github.com/wanglin2/mind-map/network/members) +![license](https://img.shields.io/npm/l/express.svg) + +> 一个简单&强大的Web思维导图 + +本项目包含两部分: + +1.一个 js 思维导图库,不依赖任何框架,你可以使用它来快速完成 Web 思维导图产品的开发。 + +开发文档:[https://wanglin2.github.io/mind-map/#/doc/zh/](https://wanglin2.github.io/mind-map/#/doc/zh/)。 + +2.一个 Web 思维导图,基于思维导图库、Vue2.x、ElementUI 开发,可以操作电脑本地文件,所以你可以直接把它当做一个在线版思维导图应用使用,如果觉得 github 的响应速度慢,你也可以部署到你的服务器上。 + +在线地址:[https://wanglin2.github.io/mind-map/](https://wanglin2.github.io/mind-map/)。 + +另外也提供了客户端可供下载使用,支持`Windows`、`Mac`及`Linux`,下载地址: + +Github:[releases](https://github.com/wanglin2/mind-map/releases)。 + +百度云盘:[地址](https://pan.baidu.com/s/1huasEbKsGNH2Af68dvWiOg?pwd=3bp3)。 + +# 特性 + +- [x] 插件化架构,除核心功能外,其他功能作为插件提供,按需使用,减小打包体积 +- [x] 支持逻辑结构图、思维导图、组织结构图、目录组织图、时间轴(横向、竖向)、鱼骨图等结构 +- [x] 内置多种主题,允许高度自定义样式,支持注册新主题 +- [x] 节点内容支持文本(普通文本、富文本)、图片、图标、超链接、备注、标签、概要 +- [x] 节点支持拖拽(拖拽移动、自由调整)、多种节点形状,支持使用 DDM 完全自定义节点内容 +- [x] 支持画布拖动、缩放 +- [x] 支持鼠标按键拖动选择和Ctrl+左键两种多选节点方式 +- [x] 支持导出为`json`、`png`、`svg`、`pdf`、`markdown`、`xmind`,支持从`json`、`xmind`、`markdown`导入 +- [x] 支持快捷键、前进后退、关联线、搜索替换、小地图、水印 +- [x] 提供丰富的配置,满足各种场景各种使用习惯 + +# 安装 + +```bash +npm i simple-mind-map +``` + +# 使用 + +提供一个宽高不为0的容器元素: + +```html +
+``` + +另外再设置一下`css`样式: + +```css +#mindMapContainer * { + margin: 0; + padding: 0; +} +``` + +然后创建一个实例: + +```js +import MindMap from "simple-mind-map"; + +const mindMap = new MindMap({ + el: document.getElementById('mindMapContainer'), + data: { + "data": { + "text": "根节点" + }, + "children": [] + } +}); +``` + +即可得到一个思维导图。 + +想要实现更多功能?可以查看[开发文档](https://wanglin2.github.io/mind-map/#/doc/zh/)。 + +# License + +[MIT](https://github.com/wanglin2/mind-map/blob/main/LICENSE) + +# 微信交流群 + +群聊人数较多,无法通过二维码入群,可以微信添加`wanglinguanfang`拉你入群。 diff --git a/apps/mind-map/data.yml b/apps/mind-map/data.yml new file mode 100644 index 00000000..fa78cc77 --- /dev/null +++ b/apps/mind-map/data.yml @@ -0,0 +1,20 @@ +name: Simple mind map +tags: + - 工具 +title: 一个还算强大的 Web 思维导图 +type: 工具 +description: 一个还算强大的 Web 思维导图 +additionalProperties: + key: mind-map + name: Simple mind map + tags: + - Tool + shortDescZh: 一个还算强大的 Web 思维导图 + shortDescEn: A relatively powerful web mind map + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://wanglin2.github.io/mind-map + github: https://github.com/wanglin2/mind-map + document: https://wanglin2.github.io/mind-map/#/doc/zh/ diff --git a/apps/mind-map/latest/.env.sample b/apps/mind-map/latest/.env.sample new file mode 100644 index 00000000..47c36e36 --- /dev/null +++ b/apps/mind-map/latest/.env.sample @@ -0,0 +1,2 @@ +CONTAINER_NAME="mind-map" +PANEL_APP_PORT_HTTP="40147" diff --git a/apps/mind-map/latest/data.yml b/apps/mind-map/latest/data.yml new file mode 100644 index 00000000..438c363b --- /dev/null +++ b/apps/mind-map/latest/data.yml @@ -0,0 +1,10 @@ +additionalProperties: + formFields: + - default: 40147 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number diff --git a/apps/mind-map/latest/docker-compose.yml b/apps/mind-map/latest/docker-compose.yml new file mode 100644 index 00000000..aa0da738 --- /dev/null +++ b/apps/mind-map/latest/docker-compose.yml @@ -0,0 +1,16 @@ +version: '3' +services: + mind-map: + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:80" + image: liwangsheng/mind-map:latest + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/mind-map/logo.png b/apps/mind-map/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..64bee6d26fadbc38fa5916e1e098676794399a40 GIT binary patch literal 4016 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 AtpET3 literal 0 HcmV?d00001