Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
kityminder-core
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
吴志俊
kityminder-core
Commits
e4083e3a
Commit
e4083e3a
authored
Feb 12, 2014
by
techird
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
导入导出文档
parent
596e8191
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
95 additions
and
0 deletions
+95
-0
Import Export.md
doc/Import Export.md
+95
-0
No files found.
doc/Import Export.md
0 → 100644
View file @
e4083e3a
# 导入导出功能设计
## 名词
*
本地格式
指一种公开的脑图编码格式,如 XMind、FreeMind、MinderManager、PDF等。下文代码中,local 表示本地格式字符串或二进制流(Blob)。
*
Json格式
指 KityMinder 自身使用的 JS 内存对象,是带数据的树结构。数据结构如下:
```
js
// A <MinderNode> is:
{
"data"
:
{...},
"children"
:
[
<
MinderNode
>
,
<
MinderNode
>
,
...]
}
```
下文代码中,json 表示 json 格式字符串。
*
编码
把 Json 格式转换为一种本地格式的过程
*
解码
把一种本地格式解析回 Json 格式的过程
*
协议
协议包含名称(作为标识)、编码方法(encode)、解码方法(decode)、识别判断(recognize)。解码方法是可选项,因为对于某些协议可以只支持导出而不需支持导入(如 PDF )。识别判断也是可选的,识别判断用于快速判断一个字符串或 Blob 是否改协议的本地数据,这个方法用于自动识别未知格式的协议。如果不提供这个方法,那么将不能把未知格式识别为该协议的格式,所以建议提供。
## 协议注册
使用
`KityMinder`
上的静态方法
`registerProtocal()`
来注册协议。
```
js
KityMinder
.
registerProtocal
(
"xmind"
,
function
()
{
return
{
encode
:
function
(
json
)
{
// return local;
},
decode
:
function
(
local
)
{
// return json;
},
recognize
:
function
(
local
)
{
// return bool;
}
}
});
```
## 协议使用
使用
`KityMinder`
上的静态方法
`findProtocal()`
来获取协议。
```
js
var
pXMind
=
KityMinder
.
findProtocal
(
"xmind"
);
if
(
pXMind
&&
pXMind
.
encode
)
{
local
=
pXMind
.
encode
(
json
);
}
```
## 协议枚举
使用
`KityMinder`
上的静态方法
`getSupportedProtocals()`
来获取支持的协议列表。
```
js
var
supported
=
KityMinder
.
getSupportedProtocals
();
// supported == [ 'xmind', 'txt', 'pdf', ... ]
```
## 导入导出接口
导入导出接口名称与原来架构的保持一致,只是参数有所调整。
### 导入
```
js
minder
.
importData
(
local
[,
protocalName
]
);
```
导入数据需要提供读取到的本地数据,如果指明协议,则直接用指明的协议来解析;否则尝试去识别本地数据的协议格式。
### 导出
```
js
var
exported
=
minder
.
exportData
(
[
protocalName
]
);
```
使用指定的协议来导出数据,如果不指定,则导出成 Json 格式。
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment