72 lines
1.4 KiB
JavaScript
72 lines
1.4 KiB
JavaScript
const parser = require('./parser');
|
|
const getRichTextNodes = require('./richtext').getRichTextNodes;
|
|
|
|
Component({
|
|
properties: {
|
|
md: {
|
|
type: String,
|
|
value: '',
|
|
observer(){
|
|
this.parseMd();
|
|
}
|
|
},
|
|
type: {
|
|
type: String,
|
|
value: 'wemark'
|
|
},
|
|
link: {
|
|
type: Boolean,
|
|
value: false
|
|
},
|
|
highlight: {
|
|
type: Boolean,
|
|
value: false
|
|
}
|
|
},
|
|
data: {
|
|
parsedData: {},
|
|
richTextNodes: []
|
|
},
|
|
methods: {
|
|
parseMd(){
|
|
if (this.data.md) {
|
|
var parsedData = parser.parse(this.data.md, {
|
|
link: this.data.link,
|
|
highlight: this.data.highlight
|
|
});
|
|
// console.log('parsedData:', parsedData);
|
|
if(this.data.type === 'wemark'){
|
|
this.setData({
|
|
parsedData
|
|
});
|
|
}else{
|
|
// var inTable = false;
|
|
var richTextNodes = getRichTextNodes(parsedData);
|
|
|
|
// console.log('richTextNodes:', richTextNodes);
|
|
|
|
this.setData({
|
|
richTextNodes
|
|
});
|
|
|
|
/* // 分批更新
|
|
var update = {};
|
|
var batchLength = 1000;
|
|
console.log(batchLength);
|
|
for(var i=0; i<richTextNodes.length; i++){
|
|
update['richTextNodes.' + i] = richTextNodes[i];
|
|
if(i%batchLength === batchLength - 1){
|
|
console.log(update);
|
|
this.setData(update);
|
|
update = {};
|
|
}
|
|
}
|
|
this.setData(update);
|
|
update = {}; */
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
});
|