简书自动上传工具出现多余空行的问题及解决方案

362 阅读1分钟

症状:每次使用工具之后,末尾会出现很多空行,因此在发布简书文章之前,要手动删除这些多余的空行,影响了工作效率。

通过分析发现,简书文章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的原创文章,尽在:“汪子熙”: