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.
63 lines
1.2 KiB
63 lines
1.2 KiB
WMarkDown.converter = function(wmd, input){
|
|
|
|
const self = this,
|
|
cache = [];
|
|
let started = false;
|
|
|
|
let modules = this.modules;
|
|
|
|
const construct = () => {
|
|
|
|
WMarkDown.Converter.Modules && (modules = self.modules = new WMarkDown.Converter.Modules(wmd, input));
|
|
|
|
};
|
|
|
|
this.start = callback => {
|
|
|
|
const end = status => typeof callback == "function" && callback(status)
|
|
|
|
if(started){
|
|
end(false);
|
|
return false;
|
|
};
|
|
started = true;
|
|
|
|
end(true);
|
|
|
|
return true;
|
|
};
|
|
|
|
this.process = wmd_script => {
|
|
|
|
let i = 0,
|
|
html = ``;
|
|
const l = cache.length,
|
|
indexes = {},
|
|
modules_keys = modules.get_keys();
|
|
|
|
for(; i < l; i ++)
|
|
if(cache[i] === null)
|
|
break;
|
|
cache[i] = {};
|
|
|
|
while(modules_keys.length){
|
|
|
|
const clean_i = [];
|
|
|
|
modules_keys.forEach((key, i) => {
|
|
if(!indexes[key] || indexes[key].index < 0){
|
|
};
|
|
});
|
|
|
|
clean_i.reverse().forEach(i => {
|
|
delete indexes[modules_keys[i]];
|
|
modules_keys.splice(i, 1);
|
|
});
|
|
|
|
};
|
|
|
|
};
|
|
|
|
construct();
|
|
|
|
}; |