Markdown Parsing
12345678910111213141516171819202122232425262728293031docstring = """ **This** is a **bold** text. *This* is an *italic* text. *`This`* is a *`code`* snippet. List: - 123 - 123 Numbered List: 1. Item 1.; 2. Item 2 """ docstring = docstring.strip() import re def format_docstring(docstring): docstring = re.sub(r'\*\*(.*?)\*\*', r'<b>\1</b>', docstring) # ΠΠ°ΠΌΡΠ½Π° '**' Π½Π° <b> Ρ </b> docstring = re.sub(r'\*(.*?)\*', r'<i>\1</i>', docstring) # ΠΠ°ΠΌΡΠ½Π° '*' Π½Π° <i> Ρ </i> docstring = re.sub(r'`(.*?)`', r'<code>\1</code>', docstring) # ΠΠ°ΠΌΡΠ½Π° '*`' Π½Π° <code> Ρ </code> # ΠΠ°ΡΡΠΈΠ½Π³ ΡΠΏΠΈΡΠΊΡ ΠΌΠ°ΡΠΊΠ΄Π°ΡΠ½ Π· Π½ΡΠΌΠ΅ΡΠ°ΡΡΡΡ docstring = re.sub(r'^\d+\. (.*)$', r'<li>\1</li>', docstring, flags=re.M) # ΠΠ°ΡΡΠΈΠ½Π³ ΡΠΏΠΈΡΠΊΡ ΡΠ΅ΡΠ΅Π· "-" docstring = re.sub(r'\n- (.*)', r'\n<li>\1</li>', docstring) # ΠΠ°ΡΡΠΈΠ½Π³ Π²ΡΠ΄ΡΡΡΠΏΡΠ² docstring = docstring.split("\n") docstring = "<br>\n".join(docstring) docstring = docstring.replace("</li><br>", "</li>") return docstring print(format_docstring(docstring) + "\n")
Note
ΠΠΎ ΡΠΏΠΈΡΠΊΡΠ² ΡΡΠ΅Π±Π° Π΄ΠΎΠ΄Π°Π²Π°ΡΠΈ ΡΠ΅Π³ΠΈ
<ul> </ul>(unordered list) Π°Π±ΠΎ<ol> </ol>(ordered list) Π΄Π»Ρ ΡΡΠ²ΠΎΡΠ΅Π½Π½Ρ Π·Π²ΠΈΡΠ°ΠΉΠ½ΠΎΠ³ΠΎ (ul), ΡΠ° Π½ΡΠΌΠ΅ΡΠΎΠ²Π°Π½ΠΎΠ³ΠΎ (ol) ΡΠΏΠΈΡΠΊΡΠ².
Reversed Parsing
12345678910111213141516171819202122232425262728docstring = """ <b>This</b> is a <b>bold</b> text. <i>This</i> is an <i>italic</i> text.<br> <i><code>This</code></i> is a <i><code>code</code></i> snippet.<br> <br> List:<br> <ol> <li>123</li> <li>123</li> </ol> <br> Numbered List:<br> <ul> <ul><li>Item 1.;</li> <li>Item 2</li> </ul> """ docstring = docstring.replace("<br>", "") docstring = docstring.replace("<code>", "`").replace("</code>", "`") docstring = docstring.replace("<b>", "**").replace("</b>", "**") docstring = docstring.replace("<i>", "*").replace("</i>", "*") docstring = docstring.replace("<li>", "- ").replace("</li>", "") docstring = docstring.replace("<ul>\n", "").replace("</ul>\n", "") docstring = docstring.replace("<ol>\n", "").replace("</ol>\n", "") docstring = docstring.replace("<ul>", "").replace("</ul>", "") docstring = docstring.replace("<ol>", "").replace("</ol>", "") print(docstring)
Thanks for your feedback!
Ask AI
Ask AI
Ask anything or try one of the suggested questions to begin our chat
Can you explain how to add the `<ul>` and `<ol>` tags in the first code sample?
What changes are needed to correctly parse both unordered and ordered lists?
Can you show an example of the expected output after fixing the list parsing?
Awesome!
Completion rate improved to 1.19
Markdown Parsing
Swipe to show menu
12345678910111213141516171819202122232425262728293031docstring = """ **This** is a **bold** text. *This* is an *italic* text. *`This`* is a *`code`* snippet. List: - 123 - 123 Numbered List: 1. Item 1.; 2. Item 2 """ docstring = docstring.strip() import re def format_docstring(docstring): docstring = re.sub(r'\*\*(.*?)\*\*', r'<b>\1</b>', docstring) # ΠΠ°ΠΌΡΠ½Π° '**' Π½Π° <b> Ρ </b> docstring = re.sub(r'\*(.*?)\*', r'<i>\1</i>', docstring) # ΠΠ°ΠΌΡΠ½Π° '*' Π½Π° <i> Ρ </i> docstring = re.sub(r'`(.*?)`', r'<code>\1</code>', docstring) # ΠΠ°ΠΌΡΠ½Π° '*`' Π½Π° <code> Ρ </code> # ΠΠ°ΡΡΠΈΠ½Π³ ΡΠΏΠΈΡΠΊΡ ΠΌΠ°ΡΠΊΠ΄Π°ΡΠ½ Π· Π½ΡΠΌΠ΅ΡΠ°ΡΡΡΡ docstring = re.sub(r'^\d+\. (.*)$', r'<li>\1</li>', docstring, flags=re.M) # ΠΠ°ΡΡΠΈΠ½Π³ ΡΠΏΠΈΡΠΊΡ ΡΠ΅ΡΠ΅Π· "-" docstring = re.sub(r'\n- (.*)', r'\n<li>\1</li>', docstring) # ΠΠ°ΡΡΠΈΠ½Π³ Π²ΡΠ΄ΡΡΡΠΏΡΠ² docstring = docstring.split("\n") docstring = "<br>\n".join(docstring) docstring = docstring.replace("</li><br>", "</li>") return docstring print(format_docstring(docstring) + "\n")
Note
ΠΠΎ ΡΠΏΠΈΡΠΊΡΠ² ΡΡΠ΅Π±Π° Π΄ΠΎΠ΄Π°Π²Π°ΡΠΈ ΡΠ΅Π³ΠΈ
<ul> </ul>(unordered list) Π°Π±ΠΎ<ol> </ol>(ordered list) Π΄Π»Ρ ΡΡΠ²ΠΎΡΠ΅Π½Π½Ρ Π·Π²ΠΈΡΠ°ΠΉΠ½ΠΎΠ³ΠΎ (ul), ΡΠ° Π½ΡΠΌΠ΅ΡΠΎΠ²Π°Π½ΠΎΠ³ΠΎ (ol) ΡΠΏΠΈΡΠΊΡΠ².
Reversed Parsing
12345678910111213141516171819202122232425262728docstring = """ <b>This</b> is a <b>bold</b> text. <i>This</i> is an <i>italic</i> text.<br> <i><code>This</code></i> is a <i><code>code</code></i> snippet.<br> <br> List:<br> <ol> <li>123</li> <li>123</li> </ol> <br> Numbered List:<br> <ul> <ul><li>Item 1.;</li> <li>Item 2</li> </ul> """ docstring = docstring.replace("<br>", "") docstring = docstring.replace("<code>", "`").replace("</code>", "`") docstring = docstring.replace("<b>", "**").replace("</b>", "**") docstring = docstring.replace("<i>", "*").replace("</i>", "*") docstring = docstring.replace("<li>", "- ").replace("</li>", "") docstring = docstring.replace("<ul>\n", "").replace("</ul>\n", "") docstring = docstring.replace("<ol>\n", "").replace("</ol>\n", "") docstring = docstring.replace("<ul>", "").replace("</ul>", "") docstring = docstring.replace("<ol>", "").replace("</ol>", "") print(docstring)
Thanks for your feedback!