remove custom markdown rendering (#24538)
	
		
	
				
					
				
			* remove custom markdown rendering * remove from releasepull/214/head
							parent
							
								
									ab75c53792
								
							
						
					
					
						commit
						222c7cd60d
					
				
				 4 changed files with 2 additions and 77 deletions
			
			
		| @ -1,48 +0,0 @@ | |||||||
| from typing import List |  | ||||||
| 
 |  | ||||||
| HTML_REPLACEMENTS = [ |  | ||||||
|   (r'&', r'&'), |  | ||||||
|   (r'"', r'"'), |  | ||||||
| ] |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| def parse_markdown(text: str, tab_length: int = 2) -> str: |  | ||||||
|   lines = text.split("\n") |  | ||||||
|   output: List[str] = [] |  | ||||||
|   list_level = 0 |  | ||||||
| 
 |  | ||||||
|   def end_outstanding_lists(level: int, end_level: int) -> int: |  | ||||||
|     while level > end_level: |  | ||||||
|       level -= 1 |  | ||||||
|       output.append("</ul>") |  | ||||||
|       if level > 0: |  | ||||||
|         output.append("</li>") |  | ||||||
|     return end_level |  | ||||||
| 
 |  | ||||||
|   for i, line in enumerate(lines): |  | ||||||
|     if i + 1 < len(lines) and lines[i + 1].startswith("==="):  # heading |  | ||||||
|       output.append(f"<h1>{line}</h1>") |  | ||||||
|     elif line.startswith("==="): |  | ||||||
|       pass |  | ||||||
|     elif line.lstrip().startswith("* "):  # list |  | ||||||
|       line_level = 1 + line.count(" " * tab_length, 0, line.index("*")) |  | ||||||
|       if list_level >= line_level: |  | ||||||
|         list_level = end_outstanding_lists(list_level, line_level) |  | ||||||
|       else: |  | ||||||
|         list_level += 1 |  | ||||||
|         if list_level > 1: |  | ||||||
|           output[-1] = output[-1].replace("</li>", "") |  | ||||||
|         output.append("<ul>") |  | ||||||
|       output.append(f"<li>{line.replace('*', '', 1).lstrip()}</li>") |  | ||||||
|     else: |  | ||||||
|       list_level = end_outstanding_lists(list_level, 0) |  | ||||||
|       if len(line) > 0: |  | ||||||
|         output.append(line) |  | ||||||
| 
 |  | ||||||
|   end_outstanding_lists(list_level, 0) |  | ||||||
|   output_str = "\n".join(output) + "\n" |  | ||||||
| 
 |  | ||||||
|   for (fr, to) in HTML_REPLACEMENTS: |  | ||||||
|     output_str = output_str.replace(fr, to) |  | ||||||
| 
 |  | ||||||
|   return output_str |  | ||||||
| @ -1,26 +0,0 @@ | |||||||
| #!/usr/bin/env python3 |  | ||||||
| from markdown_it import MarkdownIt |  | ||||||
| import os |  | ||||||
| import unittest |  | ||||||
| 
 |  | ||||||
| from common.basedir import BASEDIR |  | ||||||
| from common.markdown import parse_markdown |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| class TestMarkdown(unittest.TestCase): |  | ||||||
|   # validate that our simple markdown parser produces the same output as `markdown_it` from pip |  | ||||||
|   def test_current_release_notes(self): |  | ||||||
|     self.maxDiff = None |  | ||||||
| 
 |  | ||||||
|     with open(os.path.join(BASEDIR, "RELEASES.md")) as f: |  | ||||||
|       for r in f.read().split("\n\n"): |  | ||||||
| 
 |  | ||||||
|         # No hyperlink support is ok |  | ||||||
|         if '[' in r: |  | ||||||
|           continue |  | ||||||
| 
 |  | ||||||
|         self.assertEqual(MarkdownIt().render(r), parse_markdown(r)) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| if __name__ == "__main__": |  | ||||||
|   unittest.main() |  | ||||||
					Loading…
					
					
				
		Reference in new issue