frostming / marko

A markdown parser with high extensibility.

Home Page:https://marko-py.readthedocs.io/en/latest/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

'BlankLine' object has no attribute 'children' when parsing a text with gfm

sulunemre opened this issue · comments

I am not sure if this is the expected behaviour.

from marko.ext.gfm import gfm
text = '## The problem\r\n\r\nwhenever we are launching the website. The site asks for permission to send notifications but unfortunately, we are unable to handle it. Have tried passing the capabilities.\r\n\r\n## Environment\r\n\r\n* Appium version (or git revision) that exhibits the issue: 1.7.2\r\n* Mobile platform/version under test: Android \r\n* Real device or emulator/simulator:One Plus 2 V6.0.1\r\n\r\n## Details\r\n\r\nCapabilities tired: \r\nChromeOptions options = new ChromeOptions();\r\noptions.addArguments("--disable-notifications");\r\ncap.setCapability(ChromeOptions.CAPABILITY, options);\r\ncap.setCapability("autoAcceptAlerts", true);\r\ncap.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, "UnexpectedAlertBehaviour.ACCEPT");\r\ncap.setCapability("autoDismissAlerts", true);\r\ncap.setCapability(AndroidMobileCapabilityType.AUTO_GRANT_PERMISSIONS, true);\r\n\r\n## Link to Appium logs\r\n\r\nhttps://gist.github.com/Rakeshsp05/0f9c6c868c18590097393f59ac5988fe\r\n\r\n\r\n![Uploading Screen Sh\r\n<img width="390" alt="screen shot 2018-02-27 at 1 03 36 pm" src="https://user-images.githubusercontent.com/32235525/36716113-1ab12c3e-1bbf-11e8-9e56-a8c3d278d58a.png">\r\not 2018-02-27 at 1.03.36 PM.png…]()\r\n\r\n'
gfm(text)

Error: AttributeError: 'BlankLine' object has no attribute 'children'

A BlankLine shouldn't have children I guess, but gfm parser tries to parse its children.

Can you show a bit more tracebacks?


---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In [9], line 1
----> 1 gfm(text)

File XXX\.venv\lib\site-packages\marko\__init__.py:112, in Markdown.__call__(self, text)
    111 def __call__(self, text: str) -> str:
--> 112     return self.convert(text)

File XXX\.venv\lib\site-packages\marko\__init__.py:109, in Markdown.convert(self, text)
    107 def convert(self, text: str) -> str:
    108     """Parse and render the given text."""
--> 109     return self.render(self.parse(text))

File XXX\.venv\lib\site-packages\marko\__init__.py:129, in Markdown.render(self, parsed)
    127 self.renderer.root_node = parsed
    128 with self.renderer as r:
--> 129     return r.render(parsed)

File XXX\.venv\lib\site-packages\marko\html_renderer.py:90, in HTMLRenderer.render_plain_text(self, element)
     88 if isinstance(element.children, str):
     89     return self.escape_html(element.children)
---> 90 return self.render_children(element)

File XXX\.venv\lib\site-packages\marko\renderer.py:83, in Renderer.render_children(self, element)
     71 def render_children(self, element: Any) -> Any:
     72     """
     73     Recursively renders child elements. Joins the rendered
     74     strings with no space in between.
   (...)
     81     :param element: a branch node who has children attribute.
     82     """
---> 83     rendered = [self.render(child) for child in element.children]  # type: ignore
     84     return "".join(rendered)

File XXX\.venv\lib\site-packages\marko\renderer.py:83, in <listcomp>(.0)
     71 def render_children(self, element: Any) -> Any:
     72     """
     73     Recursively renders child elements. Joins the rendered
     74     strings with no space in between.
   (...)
     81     :param element: a branch node who has children attribute.
     82     """
---> 83     rendered = [self.render(child) for child in element.children]  # type: ignore
     84     return "".join(rendered)

File XXX\.venv\lib\site-packages\marko\html_renderer.py:88, in HTMLRenderer.render_plain_text(self, element)
     87 def render_plain_text(self, element: Any) -> str:
---> 88     if isinstance(element.children, str):
     89         return self.escape_html(element.children)
     90     return self.render_children(element)

AttributeError: 'BlankLine' object has no attribute 'children'