Fix MFM URL parsing
This commit is contained in:
		
							parent
							
								
									63c659bc8f
								
							
						
					
					
						commit
						285d0d13f9
					
				
					 2 changed files with 12 additions and 2 deletions
				
			
		|  | @ -164,8 +164,10 @@ export const mfmLanguage = P.createLanguage({ | |||
| 			} else | ||||
| 				url = match[0]; | ||||
| 			url = removeOrphanedBrackets(url); | ||||
| 			if (url.endsWith('.')) url = url.substr(0, url.lastIndexOf('.')); | ||||
| 			if (url.endsWith(',')) url = url.substr(0, url.lastIndexOf(',')); | ||||
| 			while (url.endsWith('.') || url.endsWith(',')) { | ||||
| 				if (url.endsWith('.')) url = url.substr(0, url.lastIndexOf('.')); | ||||
| 				if (url.endsWith(',')) url = url.substr(0, url.lastIndexOf(',')); | ||||
| 			} | ||||
| 			return P.makeSuccess(i + url.length, url); | ||||
| 		}).map(x => createLeaf('url', { url: x })); | ||||
| 	}, | ||||
|  |  | |||
|  | @ -804,6 +804,14 @@ describe('MFM', () => { | |||
| 				]); | ||||
| 			}); | ||||
| 
 | ||||
| 			it('ignore trailing periods', () => { | ||||
| 				const tokens = parse('https://example.com...'); | ||||
| 				assert.deepStrictEqual(tokens, [ | ||||
| 					leaf('url', { url: 'https://example.com' }), | ||||
| 					text('...') | ||||
| 				]); | ||||
| 			}); | ||||
| 
 | ||||
| 			it('with comma', () => { | ||||
| 				const tokens = parse('https://example.com/foo?bar=a,b'); | ||||
| 				assert.deepStrictEqual(tokens, [ | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue