38 lines
808 B
Python
38 lines
808 B
Python
import mistune
|
|
import html2markdown
|
|
|
|
class FormattedText:
|
|
html = ""
|
|
|
|
def __init__(
|
|
self,
|
|
markdown: str = None,
|
|
html: str = None
|
|
) -> None:
|
|
if html is not None:
|
|
self.html = html
|
|
elif markdown is not None:
|
|
self.html = mistune.markdown(markdown)
|
|
|
|
@property
|
|
def is_empty(self) -> bool:
|
|
return self.doc is None
|
|
|
|
def __eq__(self, other) -> False:
|
|
if type(other) != type(self):
|
|
return False
|
|
if self.is_empty and other.is_empty:
|
|
return True
|
|
|
|
return self.doc == other.doc
|
|
|
|
@property
|
|
def markdown(self) -> str:
|
|
return html2markdown.convert(self.html)
|
|
|
|
def __str__(self) -> str:
|
|
return self.markdown
|
|
|
|
plaintext = markdown
|
|
|