Skip to content

FrozenError when processing backticks in tables #571

Closed

Description

@mvz

With kramdown 2.0, I get a FrozenError when processing tables that have backticks in them. The following demonstrates this error:

require 'kramdown'

string = <<END

Foo   | Bar | Baz
------|-----|------
`foo` | bar | baz

END

Kramdown::Document.new(string)

Running this code raises a FrozenError:

Traceback (most recent call last):
	15: from foo.rb:11:in `<main>'
	14: from foo.rb:11:in `new'
	13: from /home/matijs/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/kramdown-2.0.0/lib/kramdown/document.rb:102:in `initialize'
	12: from /home/matijs/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/kramdown-2.0.0/lib/kramdown/parser/base.rb:69:in `parse'
	11: from /home/matijs/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/kramdown-2.0.0/lib/kramdown/parser/kramdown.rb:88:in `parse'
	10: from /home/matijs/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/kramdown-2.0.0/lib/kramdown/parser/kramdown.rb:143:in `parse_blocks'
	 9: from /home/matijs/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/kramdown-2.0.0/lib/kramdown/parser/kramdown.rb:143:in `catch'
	 8: from /home/matijs/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/kramdown-2.0.0/lib/kramdown/parser/kramdown.rb:145:in `block in parse_blocks'
	 7: from /home/matijs/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/kramdown-2.0.0/lib/kramdown/parser/kramdown.rb:145:in `any?'
	 6: from /home/matijs/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/kramdown-2.0.0/lib/kramdown/parser/kramdown.rb:147:in `block (2 levels) in parse_blocks'
	 5: from /home/matijs/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/kramdown-2.0.0/lib/kramdown/parser/kramdown/table.rb:69:in `parse_table'
	 4: from /home/matijs/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/kramdown-2.0.0/lib/kramdown/parser/kramdown/table.rb:69:in `each_with_index'
	 3: from /home/matijs/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/kramdown-2.0.0/lib/kramdown/parser/kramdown/table.rb:69:in `each'
	 2: from /home/matijs/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/kramdown-2.0.0/lib/kramdown/parser/kramdown/table.rb:77:in `block in parse_table'
	 1: from /home/matijs/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/kramdown-2.0.0/lib/kramdown/parser/kramdown/table.rb:77:in `each'
/home/matijs/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/kramdown-2.0.0/lib/kramdown/parser/kramdown/table.rb:80:in `block (2 levels) in parse_table': can't modify frozen String (FrozenError)

Activity

  1. self-assigned this
    on Jan 23, 2019
  2. gettalong commented on Jan 23, 2019

    @gettalong
    Owner

    Thanks for reporting - I have fixed this with the latest commit.

  3. tammersaleh commented on Jan 27, 2019

    @tammersaleh

    Any chance you could drop a quick 2.0.1 to include this?

  4. gettalong commented on Jan 29, 2019

    @gettalong
    Owner

    @tammersaleh If you mean by quick, some time in the next 7 days, yes, probably.

  5. gettalong commented on Jan 31, 2019

    @gettalong
    Owner

    @mvz @tammersaleh New version with the fix is available.

  6. tammersaleh commented on Jan 31, 2019

    @tammersaleh

    @gettalong perfect! Thank you!

  7. mvz commented on Jan 31, 2019

    @mvz
    Author

    Thanks, @gettalong!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions