mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 11:28:24 +00:00 
			
		
		
		
	Replace linkRegex with xurls library (#6261)
* Replace linkRegex with xurls library Rather than maintaining a complicated regex to match URLs for autolinking, gitea can use this existing go library that takes care of the matching with very little code change to gitea itself. After spending a while trying to find the perfect regex for all cases this library still works better as it is more flexible than a single regex ever will be. This will also fix the following issues: #5844 #3095 #3381 This passes all our current tests and I've added new ones mentioned in those issues as well. * Use xurls.StrictMatchingScheme instead of xurls.Strict This is much faster and we only care about https? links to preserve existing behavior.
This commit is contained in:
		
				
					committed by
					
						 techknowlogick
						techknowlogick
					
				
			
			
				
	
			
			
			
						parent
						
							01bd1fcd33
						
					
				
				
					commit
					f2de5dc8c8
				
			
							
								
								
									
										299
									
								
								vendor/github.com/mvdan/xurls/schemes.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										299
									
								
								vendor/github.com/mvdan/xurls/schemes.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,299 @@ | ||||
| // Generated by schemesgen | ||||
|  | ||||
| package xurls | ||||
|  | ||||
| // Schemes is a sorted list of all IANA assigned schemes. | ||||
| // | ||||
| // Source: | ||||
| //   https://www.iana.org/assignments/uri-schemes/uri-schemes-1.csv | ||||
| var Schemes = []string{ | ||||
| 	`aaa`, | ||||
| 	`aaas`, | ||||
| 	`about`, | ||||
| 	`acap`, | ||||
| 	`acct`, | ||||
| 	`acr`, | ||||
| 	`adiumxtra`, | ||||
| 	`afp`, | ||||
| 	`afs`, | ||||
| 	`aim`, | ||||
| 	`appdata`, | ||||
| 	`apt`, | ||||
| 	`attachment`, | ||||
| 	`aw`, | ||||
| 	`barion`, | ||||
| 	`beshare`, | ||||
| 	`bitcoin`, | ||||
| 	`bitcoincash`, | ||||
| 	`blob`, | ||||
| 	`bolo`, | ||||
| 	`browserext`, | ||||
| 	`callto`, | ||||
| 	`cap`, | ||||
| 	`chrome`, | ||||
| 	`chrome-extension`, | ||||
| 	`cid`, | ||||
| 	`coap`, | ||||
| 	`coap+tcp`, | ||||
| 	`coap+ws`, | ||||
| 	`coaps`, | ||||
| 	`coaps+tcp`, | ||||
| 	`coaps+ws`, | ||||
| 	`com-eventbrite-attendee`, | ||||
| 	`content`, | ||||
| 	`conti`, | ||||
| 	`crid`, | ||||
| 	`cvs`, | ||||
| 	`data`, | ||||
| 	`dav`, | ||||
| 	`diaspora`, | ||||
| 	`dict`, | ||||
| 	`did`, | ||||
| 	`dis`, | ||||
| 	`dlna-playcontainer`, | ||||
| 	`dlna-playsingle`, | ||||
| 	`dns`, | ||||
| 	`dntp`, | ||||
| 	`dtn`, | ||||
| 	`dvb`, | ||||
| 	`ed2k`, | ||||
| 	`elsi`, | ||||
| 	`example`, | ||||
| 	`facetime`, | ||||
| 	`fax`, | ||||
| 	`feed`, | ||||
| 	`feedready`, | ||||
| 	`file`, | ||||
| 	`filesystem`, | ||||
| 	`finger`, | ||||
| 	`fish`, | ||||
| 	`ftp`, | ||||
| 	`geo`, | ||||
| 	`gg`, | ||||
| 	`git`, | ||||
| 	`gizmoproject`, | ||||
| 	`go`, | ||||
| 	`gopher`, | ||||
| 	`graph`, | ||||
| 	`gtalk`, | ||||
| 	`h323`, | ||||
| 	`ham`, | ||||
| 	`hcap`, | ||||
| 	`hcp`, | ||||
| 	`http`, | ||||
| 	`https`, | ||||
| 	`hxxp`, | ||||
| 	`hxxps`, | ||||
| 	`hydrazone`, | ||||
| 	`iax`, | ||||
| 	`icap`, | ||||
| 	`icon`, | ||||
| 	`im`, | ||||
| 	`imap`, | ||||
| 	`info`, | ||||
| 	`iotdisco`, | ||||
| 	`ipn`, | ||||
| 	`ipp`, | ||||
| 	`ipps`, | ||||
| 	`irc`, | ||||
| 	`irc6`, | ||||
| 	`ircs`, | ||||
| 	`iris`, | ||||
| 	`iris.beep`, | ||||
| 	`iris.lwz`, | ||||
| 	`iris.xpc`, | ||||
| 	`iris.xpcs`, | ||||
| 	`isostore`, | ||||
| 	`itms`, | ||||
| 	`jabber`, | ||||
| 	`jar`, | ||||
| 	`jms`, | ||||
| 	`keyparc`, | ||||
| 	`lastfm`, | ||||
| 	`ldap`, | ||||
| 	`ldaps`, | ||||
| 	`lvlt`, | ||||
| 	`magnet`, | ||||
| 	`mailserver`, | ||||
| 	`mailto`, | ||||
| 	`maps`, | ||||
| 	`market`, | ||||
| 	`message`, | ||||
| 	`microsoft.windows.camera`, | ||||
| 	`microsoft.windows.camera.multipicker`, | ||||
| 	`microsoft.windows.camera.picker`, | ||||
| 	`mid`, | ||||
| 	`mms`, | ||||
| 	`modem`, | ||||
| 	`mongodb`, | ||||
| 	`moz`, | ||||
| 	`ms-access`, | ||||
| 	`ms-browser-extension`, | ||||
| 	`ms-drive-to`, | ||||
| 	`ms-enrollment`, | ||||
| 	`ms-excel`, | ||||
| 	`ms-gamebarservices`, | ||||
| 	`ms-gamingoverlay`, | ||||
| 	`ms-getoffice`, | ||||
| 	`ms-help`, | ||||
| 	`ms-infopath`, | ||||
| 	`ms-inputapp`, | ||||
| 	`ms-lockscreencomponent-config`, | ||||
| 	`ms-media-stream-id`, | ||||
| 	`ms-mixedrealitycapture`, | ||||
| 	`ms-officeapp`, | ||||
| 	`ms-people`, | ||||
| 	`ms-project`, | ||||
| 	`ms-powerpoint`, | ||||
| 	`ms-publisher`, | ||||
| 	`ms-restoretabcompanion`, | ||||
| 	`ms-screenclip`, | ||||
| 	`ms-screensketch`, | ||||
| 	`ms-search`, | ||||
| 	`ms-search-repair`, | ||||
| 	`ms-secondary-screen-controller`, | ||||
| 	`ms-secondary-screen-setup`, | ||||
| 	`ms-settings`, | ||||
| 	`ms-settings-airplanemode`, | ||||
| 	`ms-settings-bluetooth`, | ||||
| 	`ms-settings-camera`, | ||||
| 	`ms-settings-cellular`, | ||||
| 	`ms-settings-cloudstorage`, | ||||
| 	`ms-settings-connectabledevices`, | ||||
| 	`ms-settings-displays-topology`, | ||||
| 	`ms-settings-emailandaccounts`, | ||||
| 	`ms-settings-language`, | ||||
| 	`ms-settings-location`, | ||||
| 	`ms-settings-lock`, | ||||
| 	`ms-settings-nfctransactions`, | ||||
| 	`ms-settings-notifications`, | ||||
| 	`ms-settings-power`, | ||||
| 	`ms-settings-privacy`, | ||||
| 	`ms-settings-proximity`, | ||||
| 	`ms-settings-screenrotation`, | ||||
| 	`ms-settings-wifi`, | ||||
| 	`ms-settings-workplace`, | ||||
| 	`ms-spd`, | ||||
| 	`ms-sttoverlay`, | ||||
| 	`ms-transit-to`, | ||||
| 	`ms-useractivityset`, | ||||
| 	`ms-virtualtouchpad`, | ||||
| 	`ms-visio`, | ||||
| 	`ms-walk-to`, | ||||
| 	`ms-whiteboard`, | ||||
| 	`ms-whiteboard-cmd`, | ||||
| 	`ms-word`, | ||||
| 	`msnim`, | ||||
| 	`msrp`, | ||||
| 	`msrps`, | ||||
| 	`mtqp`, | ||||
| 	`mumble`, | ||||
| 	`mupdate`, | ||||
| 	`mvn`, | ||||
| 	`news`, | ||||
| 	`nfs`, | ||||
| 	`ni`, | ||||
| 	`nih`, | ||||
| 	`nntp`, | ||||
| 	`notes`, | ||||
| 	`ocf`, | ||||
| 	`oid`, | ||||
| 	`onenote`, | ||||
| 	`onenote-cmd`, | ||||
| 	`opaquelocktoken`, | ||||
| 	`openpgp4fpr`, | ||||
| 	`pack`, | ||||
| 	`palm`, | ||||
| 	`paparazzi`, | ||||
| 	`pkcs11`, | ||||
| 	`platform`, | ||||
| 	`pop`, | ||||
| 	`pres`, | ||||
| 	`prospero`, | ||||
| 	`proxy`, | ||||
| 	`pwid`, | ||||
| 	`psyc`, | ||||
| 	`qb`, | ||||
| 	`query`, | ||||
| 	`redis`, | ||||
| 	`rediss`, | ||||
| 	`reload`, | ||||
| 	`res`, | ||||
| 	`resource`, | ||||
| 	`rmi`, | ||||
| 	`rsync`, | ||||
| 	`rtmfp`, | ||||
| 	`rtmp`, | ||||
| 	`rtsp`, | ||||
| 	`rtsps`, | ||||
| 	`rtspu`, | ||||
| 	`secondlife`, | ||||
| 	`service`, | ||||
| 	`session`, | ||||
| 	`sftp`, | ||||
| 	`sgn`, | ||||
| 	`shttp`, | ||||
| 	`sieve`, | ||||
| 	`simpleledger`, | ||||
| 	`sip`, | ||||
| 	`sips`, | ||||
| 	`skype`, | ||||
| 	`smb`, | ||||
| 	`sms`, | ||||
| 	`smtp`, | ||||
| 	`snews`, | ||||
| 	`snmp`, | ||||
| 	`soap.beep`, | ||||
| 	`soap.beeps`, | ||||
| 	`soldat`, | ||||
| 	`spiffe`, | ||||
| 	`spotify`, | ||||
| 	`ssh`, | ||||
| 	`steam`, | ||||
| 	`stun`, | ||||
| 	`stuns`, | ||||
| 	`submit`, | ||||
| 	`svn`, | ||||
| 	`tag`, | ||||
| 	`teamspeak`, | ||||
| 	`tel`, | ||||
| 	`teliaeid`, | ||||
| 	`telnet`, | ||||
| 	`tftp`, | ||||
| 	`things`, | ||||
| 	`thismessage`, | ||||
| 	`tip`, | ||||
| 	`tn3270`, | ||||
| 	`tool`, | ||||
| 	`turn`, | ||||
| 	`turns`, | ||||
| 	`tv`, | ||||
| 	`udp`, | ||||
| 	`unreal`, | ||||
| 	`urn`, | ||||
| 	`ut2004`, | ||||
| 	`v-event`, | ||||
| 	`vemmi`, | ||||
| 	`ventrilo`, | ||||
| 	`videotex`, | ||||
| 	`vnc`, | ||||
| 	`view-source`, | ||||
| 	`wais`, | ||||
| 	`webcal`, | ||||
| 	`wpid`, | ||||
| 	`ws`, | ||||
| 	`wss`, | ||||
| 	`wtai`, | ||||
| 	`wyciwyg`, | ||||
| 	`xcon`, | ||||
| 	`xcon-userid`, | ||||
| 	`xfire`, | ||||
| 	`xmlrpc.beep`, | ||||
| 	`xmlrpc.beeps`, | ||||
| 	`xmpp`, | ||||
| 	`xri`, | ||||
| 	`ymsgr`, | ||||
| 	`z39.50`, | ||||
| 	`z39.50r`, | ||||
| 	`z39.50s`, | ||||
| } | ||||
		Reference in New Issue
	
	Block a user