mirror of
https://github.com/wanglin2/mind-map.git
synced 2026-02-22 19:07:45 +08:00
50 lines
1.2 KiB
JavaScript
50 lines
1.2 KiB
JavaScript
import { walk, nodeRichTextToTextWithWrap } from '../utils'
|
|
|
|
const getNodeText = data => {
|
|
return data.richText ? nodeRichTextToTextWithWrap(data.text) : data.text
|
|
}
|
|
|
|
const getTitleMark = level => {
|
|
return new Array(level).fill('#').join('')
|
|
}
|
|
|
|
const getIndentMark = level => {
|
|
return new Array(level - 6).fill(' ').join('') + '*'
|
|
}
|
|
|
|
// 转换成markdown格式
|
|
export const transformToMarkdown = root => {
|
|
let content = ''
|
|
walk(
|
|
root,
|
|
null,
|
|
(node, parent, isRoot, layerIndex) => {
|
|
const level = layerIndex + 1
|
|
if (level <= 6) {
|
|
content += getTitleMark(level)
|
|
} else {
|
|
content += getIndentMark(level)
|
|
}
|
|
content += ' ' + getNodeText(node.data)
|
|
// 概要
|
|
const generalization = node.data.generalization
|
|
if (Array.isArray(generalization)) {
|
|
content += generalization.map(item => {
|
|
return ` [${getNodeText(item)}]`
|
|
})
|
|
} else if (generalization && generalization.text) {
|
|
const generalizationText = getNodeText(generalization)
|
|
content += ` [${generalizationText}]`
|
|
}
|
|
content += '\n\n'
|
|
// 备注
|
|
if (node.data.note) {
|
|
content += node.data.note + '\n\n'
|
|
}
|
|
},
|
|
() => {},
|
|
true
|
|
)
|
|
return content
|
|
}
|