mirror of
				https://github.com/zulip/zulip.git
				synced 2025-10-31 20:13:46 +00:00 
			
		
		
		
	markdown-processor: Update insertion_index check for multiple classes.
Updates find_proper_insertion_index to check for the inline image classes as matching at least one of the classes in the element's attrib["class"] so that cases where an inline preview image has multiple classes, like YouTube video previews, will have the correct insertion index. Fixes #26186.
This commit is contained in:
		
				
					committed by
					
						 Alex Vandiver
						Alex Vandiver
					
				
			
			
				
	
			
			
			
						parent
						
							233b486618
						
					
				
				
					commit
					d84fd73db4
				
			| @@ -1130,15 +1130,15 @@ class InlineInterestingLinkProcessor(markdown.treeprocessors.Treeprocessor): | ||||
|                 return insertion_index | ||||
|  | ||||
|             uncle = grandparent[insertion_index] | ||||
|             inline_image_classes = [ | ||||
|             inline_image_classes = { | ||||
|                 "message_inline_image", | ||||
|                 "message_inline_ref", | ||||
|                 "inline-preview-twitter", | ||||
|             ] | ||||
|             } | ||||
|             if ( | ||||
|                 uncle.tag != "div" | ||||
|                 or "class" not in uncle.keys() | ||||
|                 or uncle.attrib["class"] not in inline_image_classes | ||||
|                 or not (set(uncle.attrib["class"].split()) & inline_image_classes) | ||||
|             ): | ||||
|                 return insertion_index | ||||
|  | ||||
|   | ||||
| @@ -933,6 +933,14 @@ class MarkdownTest(ZulipTestCase): | ||||
|             f"""<p><a href="https://www.youtube.com/watch?v=0c46YHS3RY8">https://www.youtube.com/watch?v=0c46YHS3RY8</a></p>\n<div class="youtube-video message_inline_image"><a data-id="0c46YHS3RY8" href="https://www.youtube.com/watch?v=0c46YHS3RY8"><img src="{get_camo_url("https://i.ytimg.com/vi/0c46YHS3RY8/default.jpg")}"></a></div><p>Sample text</p>\n<p><a href="https://www.youtube.com/watch?v=lXFO2ULktEI">https://www.youtube.com/watch?v=lXFO2ULktEI</a></p>\n<div class="youtube-video message_inline_image"><a data-id="lXFO2ULktEI" href="https://www.youtube.com/watch?v=lXFO2ULktEI"><img src="{get_camo_url("https://i.ytimg.com/vi/lXFO2ULktEI/default.jpg")}"></a></div>""", | ||||
|         ) | ||||
|  | ||||
|         # Test order of YouTube inline previews in same paragraph. | ||||
|         msg = "https://www.youtube.com/watch?v=0c46YHS3RY8\nhttps://www.youtube.com/watch?v=lXFO2ULktEI" | ||||
|         converted = markdown_convert_wrapper(msg) | ||||
|         self.assertEqual( | ||||
|             converted, | ||||
|             f"""<p><a href="https://www.youtube.com/watch?v=0c46YHS3RY8">https://www.youtube.com/watch?v=0c46YHS3RY8</a><br>\n<a href="https://www.youtube.com/watch?v=lXFO2ULktEI">https://www.youtube.com/watch?v=lXFO2ULktEI</a></p>\n<div class="youtube-video message_inline_image"><a data-id="0c46YHS3RY8" href="https://www.youtube.com/watch?v=0c46YHS3RY8"><img src="{get_camo_url("https://i.ytimg.com/vi/0c46YHS3RY8/default.jpg")}"></a></div><div class="youtube-video message_inline_image"><a data-id="lXFO2ULktEI" href="https://www.youtube.com/watch?v=lXFO2ULktEI"><img src="{get_camo_url("https://i.ytimg.com/vi/lXFO2ULktEI/default.jpg")}"></a></div>""", | ||||
|         ) | ||||
|  | ||||
|     def test_twitter_id_extraction(self) -> None: | ||||
|         self.assertEqual( | ||||
|             get_tweet_id("http://twitter.com/#!/VizzQuotes/status/409030735191097344"), | ||||
|   | ||||
		Reference in New Issue
	
	Block a user