mirror of
				https://github.com/flynx/pWiki.git
				synced 2025-10-31 02:50:08 +00:00 
			
		
		
		
	better id generation...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									812c32d073
								
							
						
					
					
						commit
						29650ba7c9
					
				| @ -614,6 +614,24 @@ var toc = { | |||||||
| 					depth++ } | 					depth++ } | ||||||
| 				parent = parent.parentElement } | 				parent = parent.parentElement } | ||||||
| 			return depth } | 			return depth } | ||||||
|  | 		// XXX revise...
 | ||||||
|  | 		var seen = new Set() | ||||||
|  | 		var makeID = function(text){ | ||||||
|  | 			var id = encodeURI( | ||||||
|  | 				text | ||||||
|  | 					.trim() | ||||||
|  | 					.replace(/[#?$%:;.,]/g, '') | ||||||
|  | 					.replace(/\s+/g, '-')) | ||||||
|  | 			if(seen.has(id) | ||||||
|  | 					|| document.getElementById(id)){ | ||||||
|  | 				var i = 1 | ||||||
|  | 				var candidate = id +'-'+ i | ||||||
|  | 				while(seen.has(candidate) | ||||||
|  | 						|| document.getElementById(candidate)){ | ||||||
|  | 					candidate = id +'-'+ i++ } | ||||||
|  | 				id = id +'-'+ i } | ||||||
|  | 			seen.add(id) | ||||||
|  | 			return id } | ||||||
| 		var makeTOC = function(root=outline){ | 		var makeTOC = function(root=outline){ | ||||||
| 			var index = 0 | 			var index = 0 | ||||||
| 			var lst = document.createElement('ul') | 			var lst = document.createElement('ul') | ||||||
| @ -639,7 +657,8 @@ var toc = { | |||||||
| 				var elem = document.createElement('li') | 				var elem = document.createElement('li') | ||||||
| 				var id = block.id == '' ? | 				var id = block.id == '' ? | ||||||
| 					// XXX do a better default...
 | 					// XXX do a better default...
 | ||||||
| 					'__'+ index++ | 					//'__'+ index++
 | ||||||
|  | 					makeID(e.innerText) | ||||||
| 					: block.id | 					: block.id | ||||||
| 				block.id = id | 				block.id = id | ||||||
| 				elem.innerHTML = `<a href="#${id}">${e.innerHTML.trim()}</a>` | 				elem.innerHTML = `<a href="#${id}">${e.innerHTML.trim()}</a>` | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user