Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

transliterated-header-ids error #70

Closed
lydell opened this Issue Aug 5, 2013 · 4 comments

Comments

Projects
None yet
3 participants
Contributor

lydell commented Aug 5, 2013

$ ruby --version && kramdown --version && gem list | grep stringex && kramdown --transliterated-header-ids
ruby 2.0.0p247 (2013-06-27) [x64-mingw32]
1.1.0
stringex (2.0.8)
Hello
=====
^Z
c:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/stringex-2.0.8/lib/stringex/unidecoder.rb:70:in `<module:Stringex>': uninitialized const
ant Stringex::StringExtensions (NameError)
        from c:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/stringex-2.0.8/lib/stringex/unidecoder.rb:69:in `<top (required)>'
        from c:/Ruby200-x64/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:110:in `require'
        from c:/Ruby200-x64/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:110:in `rescue in require'
        from c:/Ruby200-x64/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:35:in `require'
        from c:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/kramdown-1.1.0/lib/kramdown/utils/unidecoder.rb:24:in `<module:Unidecoder>'

        from c:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/kramdown-1.1.0/lib/kramdown/utils/unidecoder.rb:16:in `<module:Utils>'
        from c:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/kramdown-1.1.0/lib/kramdown/utils/unidecoder.rb:13:in `<module:Kramdown>'
        from c:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/kramdown-1.1.0/lib/kramdown/utils/unidecoder.rb:12:in `<top (required)>'
        from c:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/kramdown-1.1.0/lib/kramdown/converter/base.rb:156:in `generate_id'
        from c:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/kramdown-1.1.0/lib/kramdown/converter/html.rb:137:in `convert_header'
        from c:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/kramdown-1.1.0/lib/kramdown/converter/html.rb:78:in `block in inner'
        from c:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/kramdown-1.1.0/lib/kramdown/converter/html.rb:77:in `each'
        from c:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/kramdown-1.1.0/lib/kramdown/converter/html.rb:77:in `inner'
        from c:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/kramdown-1.1.0/lib/kramdown/converter/html.rb:332:in `convert_root'
        from c:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/kramdown-1.1.0/lib/kramdown/converter/html.rb:65:in `convert'
        from c:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/kramdown-1.1.0/lib/kramdown/converter/base.rb:79:in `convert'
        from c:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/kramdown-1.1.0/lib/kramdown/document.rb:120:in `method_missing'
        from c:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/kramdown-1.1.0/bin/kramdown:61:in `block in <top (required)>'
        from c:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/kramdown-1.1.0/bin/kramdown:61:in `each'
        from c:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/kramdown-1.1.0/bin/kramdown:61:in `<top (required)>'
        from c:/Ruby200-x64/bin/kramdown:23:in `load'

Windows 7 x64.

Owner

gettalong commented Aug 5, 2013

Try a stringex version below 2.0.0, 1.5.1 should work.

@gettalong gettalong was assigned Aug 5, 2013

svnpenn commented Aug 5, 2013

If it helps, running this code

foo=(
  2.0.8 2.0.7 2.0.6 2.0.5
  2.0.4 2.0.3 2.0.2 2.0.1
  2.0.0 1.5.1 1.5.0 1.3.2
  1.3.1 1.2.0 1.1.0 1.0.2
  1.0.0
)

bar='
Hello
=====
'

for baz in ${foo[*]}
do
  gem uninstall -I stringex
  gem install -v $baz stringex
  if kramdown --transliterated-header-ids <<< "$bar" 2>/dev/null
  then
    printf '\e[1;32m%s\e[m\n' "$baz GOOD"
  else
    printf '\e[1;31m%s\e[m\n' "$baz BAD"
  fi
done

Yields this

2.0.8 BAD
2.0.7 BAD
2.0.6 BAD
2.0.5 BAD
2.0.4 BAD
2.0.3 BAD
2.0.2 BAD
2.0.1 BAD
2.0.0 BAD
1.5.1 GOOD
1.5.0 BAD
1.3.2 GOOD
1.3.1 BAD
1.2.0 BAD
1.1.0 BAD
1.0.2 BAD
1.0.0 BAD
Owner

gettalong commented Aug 6, 2013

Thanks @svnpenn! Good to know!

They changed quite a bit between the 1.5.1 and the 2.0.0 version. The things kramdown uses have been changed to be more complicated and now depend on some static confguration which is not good for a library in most cases.

I didn't want to duplicate the translation files because it would just blow up the size of kramdown but I should probably have a look at the 2.0.x versions to see how to make them usable with kramdown.

Owner

gettalong commented Aug 31, 2013

I have fixed this issue by loading the necessary data files myself instead of relying on the stringex library to do it.

@gettalong gettalong closed this Aug 31, 2013

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