ttscoff/mdless

Mdless is blocking and consuming 100% CPU

samvel1024 opened this issue · 2 comments

The following input is causing mdless to block for a long time (possibly forever)

# Hello world




  

Hello – 
  

~~~~~  
  
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vel elementum magna, sit amet volutpat augue. Vestibulum tempus, orci nec laoreet maximus, lacus nisi maximus nisi, vel posuere ligula tortor sed mi. Duis interdum at tortor eget iaculis. Vestibulum blandit lorem placerat augue hendrerit malesuada. Pellentesque aliquam bibendum libero. Etiam vel tortor nulla. Cras faucibus felis a interdum auctor. Sed imperdiet neque urna, eget pulvinar nunc varius non. Donec porttitor vitae magna at vehicula. Etiam sed enim fermentum, bibendum augue id, sagittis urna. Nullam tempus fringilla sodales. Pellentesque dictum diam sem, non elementum tortor semper eget. Donec ornare quis dui vitae tempus. Sed mauris mi, consequat at auctor quis, vehicula vel tellus.

Nam interdum velit vel metus posuere, vel hendrerit ligula lobortis. Vestibulum a nisi placerat, congue magna quis, congue nisi. Sed dapibus, nibh accumsan porta laoreet, sapien arcu ultricies odio, pulvinar maximus metus justo sit amet felis. Nam fermentum sem quis neque auctor, et fringilla nisi pretium. Vivamus ullamcorper in urna vitae porta. Curabitur eget libero varius, ornare lectus vitae, sollicitudin tellus. Vestibulum interdum nec urna sed molestie. Nulla congue tortor ac porta imperdiet. Cras in interdum urna. Nunc tincidunt lacus quam. Nam porta pharetra auctor.
  


__Budget__: $999
__Posted On__: January 26, 2021 08:35 UTC  
__Category__: Full Stack Development  
__Skills__:Database Architecture,     Custom PHP,     Database Design,     Web Application,     Database Development,     Java,     Kotlin,     JavaScript,     PHP,     Startup    
  

Have tried to cut replace/down some parts, however removing some substrings like Hello – or ~~~~~ makes the text readable by mdless, so had to post this weird piece of text 😀

Killing with ctrl+c results in:

Traceback (most recent call last):
	8: from /usr/local/bin/mdless:23:in `<main>'
	7: from /usr/local/bin/mdless:23:in `load'
	6: from /var/lib/gems/2.7.0/gems/mdless-1.0.15/bin/mdless:17:in `<top (required)>'
	5: from /var/lib/gems/2.7.0/gems/mdless-1.0.15/bin/mdless:17:in `new'
	4: from /var/lib/gems/2.7.0/gems/mdless-1.0.15/lib/mdless/converter.rb:121:in `initialize'
	3: from /var/lib/gems/2.7.0/gems/mdless-1.0.15/lib/mdless/converter.rb:121:in `each'
	2: from /var/lib/gems/2.7.0/gems/mdless-1.0.15/lib/mdless/converter.rb:134:in `block in initialize'
	1: from /var/lib/gems/2.7.0/gems/mdless-1.0.15/lib/mdless/converter.rb:578:in `convert_markdown'
/var/lib/gems/2.7.0/gems/mdless-1.0.15/lib/mdless/converter.rb:578:in `gsub!': Interrupt

It's the dash in 'Hello —'. If you change that to a regular hyphen (or a couple of them if you want an en-dash) it works properly. I'm not sure offhand where that's hanging it up, will check into it when I get a chance.