You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
882 B
37 lines
882 B
WMarkDown = function(input){
|
|
|
|
const self = this;
|
|
let started = false;
|
|
|
|
let converter = this.converter;
|
|
|
|
const construct = () => {
|
|
|
|
WMarkDown.Converter && (converter = self.converter = new WMarkDown.Converter(self, input));
|
|
|
|
};
|
|
|
|
this.start = callback => {
|
|
|
|
const end = status => typeof callback == "function" && callback(status)
|
|
|
|
if(started){
|
|
end(false);
|
|
return false;
|
|
};
|
|
started = true;
|
|
|
|
end(true);
|
|
|
|
self.launch(["converter"], () => end(true));
|
|
|
|
return true;
|
|
};
|
|
|
|
this.launch = (blocks, callback, i) => self[blocks[i || (i = 0)]] && self[blocks[i]].start ? self[blocks[i]].start(() => launch(blocks, callback, i + 1)) : launch(blocks, callback, i + 1);
|
|
|
|
this.convert = wmd_code => self.converter ? self.converter.process(wmd_code) : null
|
|
|
|
construct();
|
|
|
|
}; |