症状:每次使用工具之后,末尾会出现很多空行,因此在发布简书文章之前,要手动删除这些多余的空行,影响了工作效率。
通过分析发现,简书文章markdown编辑器里的原始源代码,是不包含多余空行的:
查看rawItem数组,发现了大量的"""", 随后这些""尾部都会被附上换行符号/n:
如果简单地采取忽略""的处理方式:
则最后转换成的简书源代码,没有多余的换行符,视觉效果很不好:
最终的解决方案:
function extractImage(source,raw,imagePool){
var splitted = source.split("\n");
var first_space = true;
for( var i = 0; i < splitted.length; i++){
var trimed = splitted[i]; //Jerry 2019-1-19 11:25AM don't trim, or code
// format will be destroyed .trim();
if( trimed.indexOf("pboard") > 0 ) {
var result = IMAGE_PATTERN.exec(trimed);
// result 0 : whole image markdown
// result 1 : "board1"
if( result.length != 2){
continue;
}
var imageName = IMAGE_NAME.exec(result[1]);
if( imageName.length != 2) {
continue;
}
var index = parseInt(imageName[1]);
var urls = IMAGE_URL.exec(result[0]);
if( urls.length != 2){
alert("something bad happends :(");
}
var url = "![]" + urls[1];
var storedImage = new SortedImage(index, url);
imagePool.push(storedImage);
}
else if ( trimed === "" ){
if( first_space === true ){
// still add space, and prevent subsequent continous space
raw.push(trimed);
first_space = false;
}
else{
continue;
}
}
else {
raw.push(trimed);
first_space = true;
}
}
imagePool.sort(sortByIndex);
}
更多Jerry的原创文章,尽在:“汪子熙”: