perf(code): 修改代码块中代码行选中方式
This commit is contained in:
		
							parent
							
								
									e03cbe4e83
								
							
						
					
					
						commit
						9d5bc74ff6
					
				| @ -9,11 +9,11 @@ const postContext = { | |||||||
|       let clazz = $(this).attr('class') |       let clazz = $(this).attr('class') | ||||||
|       // 通过class初始化代码块标题和是否默认关闭
 |       // 通过class初始化代码块标题和是否默认关闭
 | ||||||
|       let title = '' |       let title = '' | ||||||
|       let lines = [0, 0] |       let lines = false | ||||||
|       let isClose = false |       let isClose = false | ||||||
|       if (clazz != null) { |       if (clazz != null) { | ||||||
|         let str1 = clazz.match(/[|<](.*)$/) |         let str1 = clazz.match(/[|<](.*)$/) | ||||||
|         let str2 = clazz.match(/:(\d+)-(\d+)/) |         let str2 = clazz.match(/:select/) | ||||||
|         if (str1 || str2) { |         if (str1 || str2) { | ||||||
|           let num = 0 |           let num = 0 | ||||||
|           if (str2) { |           if (str2) { | ||||||
| @ -25,8 +25,7 @@ const postContext = { | |||||||
|             } else { |             } else { | ||||||
|               title = clazz.substring(9, str2.index) |               title = clazz.substring(9, str2.index) | ||||||
|             } |             } | ||||||
|             lines[0] = Number(str2[1]) |             lines = true | ||||||
|             lines[1] = Number(str2[2]) |  | ||||||
|           } |           } | ||||||
|           if (str1) { |           if (str1) { | ||||||
|             num = str1.index < num ? str1.index : num |             num = str1.index < num ? str1.index : num | ||||||
| @ -41,12 +40,16 @@ const postContext = { | |||||||
|         } |         } | ||||||
|       } |       } | ||||||
|       // 生成行号
 |       // 生成行号
 | ||||||
|       let nums = $(this).text().split('\n').length - 1 || 1 |       let codes = $(this).text().split('\n') || [] | ||||||
|  |       let nums = codes.length - 1 | ||||||
|       let lineDigit = String(nums).length |       let lineDigit = String(nums).length | ||||||
|       if (lineDigit === 1) lineDigit = 2 |       if (lineDigit === 1) lineDigit = 2 | ||||||
|       let lis = '' |       let lis = '' | ||||||
|       for (var i = 1; i <= nums; i++) { |       for (var i = 0; i < nums; i++) { | ||||||
|         lis += `<li ${i >= lines[0] && i <= lines[1]? 'class="code-select"' : ''}>${String(i).padStart(lineDigit, 0)}</li>` |         lis += `<li ${(lines && /^\s*\|\+\s+/.test(codes[i]))? 'class="code-select"' : ''}>${String(i + 1).padStart(lineDigit, 0)}</li>` | ||||||
|  |       } | ||||||
|  |       if (lines) { | ||||||
|  |         $(this).text($(this).text().replace(/(^\s*)\|\+\s/gm,'$1')) | ||||||
|       } |       } | ||||||
|       // 代码块的id,用于代码块复制和折叠
 |       // 代码块的id,用于代码块复制和折叠
 | ||||||
|       let id = `codeBlock${index}-${new Date().getTime()}` |       let id = `codeBlock${index}-${new Date().getTime()}` | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user