1

みんな。このrubyスクリプトを使用して、BloggerXMLファイルをOctopressにインポートしています。最初のインポートは正常に機能し、XMLが解析され、HTMLファイルが./_posts/(適切な命名規則で)生成されます。./source/_posts/Jekyllがサイトで使用するためにそれらを解析できるように、これらをに移動しました。を使用しようとするとrake -t generate、次のエラーが発生します。

samurailink3@Manacotti:~/Dropbox/Important Backups/Git Repos/samurailink3.com$ rake -t generate
** Invoke generate (first_time)
** Execute generate
## Generating Site with Jekyll
unchanged sass/screen.scss
Configuration from /home/samurailink3/Dropbox/Important Backups/Git Repos/samurailink3.com/_config.yml
Building site: source -> public
/usr/lib/ruby/1.9.1/uri/common.rb:304:in `escape': undefined method `gsub' for 3:Fixnum (NoMethodError)
    from /usr/lib/ruby/1.9.1/uri/common.rb:623:in `escape'
    from /var/lib/gems/1.9.1/gems/jekyll-0.12.0/lib/jekyll/post.rb:140:in `block in url'
    from /var/lib/gems/1.9.1/gems/jekyll-0.12.0/lib/jekyll/post.rb:140:in `map'
    from /var/lib/gems/1.9.1/gems/jekyll-0.12.0/lib/jekyll/post.rb:140:in `url'
    from /home/samurailink3/Dropbox/Important Backups/Git Repos/samurailink3.com/plugins/sitemap_generator.rb:69:in `location_on_server'
    from /home/samurailink3/Dropbox/Important Backups/Git Repos/samurailink3.com/plugins/sitemap_generator.rb:219:in `fill_location'
    from /home/samurailink3/Dropbox/Important Backups/Git Repos/samurailink3.com/plugins/sitemap_generator.rb:181:in `fill_url'
    from /home/samurailink3/Dropbox/Important Backups/Git Repos/samurailink3.com/plugins/sitemap_generator.rb:146:in `block in fill_posts'
    from /home/samurailink3/Dropbox/Important Backups/Git Repos/samurailink3.com/plugins/sitemap_generator.rb:144:in `each'
    from /home/samurailink3/Dropbox/Important Backups/Git Repos/samurailink3.com/plugins/sitemap_generator.rb:144:in `fill_posts'
    from /home/samurailink3/Dropbox/Important Backups/Git Repos/samurailink3.com/plugins/sitemap_generator.rb:120:in `generate'
    from /var/lib/gems/1.9.1/gems/jekyll-0.12.0/lib/jekyll/site.rb:190:in `block in generate'
    from /var/lib/gems/1.9.1/gems/jekyll-0.12.0/lib/jekyll/site.rb:189:in `each'
    from /var/lib/gems/1.9.1/gems/jekyll-0.12.0/lib/jekyll/site.rb:189:in `generate'
    from /var/lib/gems/1.9.1/gems/jekyll-0.12.0/lib/jekyll/site.rb:40:in `process'
    from /var/lib/gems/1.9.1/gems/jekyll-0.12.0/bin/jekyll:264:in `<top (required)>'
    from /usr/local/bin/jekyll:23:in `load'
    from /usr/local/bin/jekyll:23:in `<main>'

何か案は?インポートを試みるまで、すべてが完全に機能していました。

また、ご覧になりたい場合のコードは次のとおりです。私はsourceブランチで働いています。

4

1 に答える 1

2

自動翻訳を行う場合、この種のエラーはかなり一般的であり、毎回独自のトリックとターンがあると思います。jekyll にインポートしたとき、閉じられていない iframe HTML タグ (埋め込みビデオ用) で詰まりました。それらは有効でしたが、パーサーはそれらを気に入りませんでした。似たようなことが起こっているかもしれません。

この行:

/usr/lib/ruby/1.9.1/uri/common.rb:304:in `escape': undefined method `gsub' for 3:Fixnum (NoMethodError)

どこから始めるべきかの最初の手がかりを与えてくれます。何かが「gsub」を呼び出そうとしています。私の最初のステップは、出力ファイルでその文字列を検索することです。見つかった場合は、一時的に ./source/_posts/ ディレクトリ内の他のすべてのファイルを削除してください。これにより、問題セットのサイズが縮小され、何が起こっているのかを正確に把握するためにより多くの実験を行うことができます。ファイルが機能するようになるまで、そのファイルのハッキングを開始します。

更新:「gsub」が見つからない場合 (そして、文字列として見つからないと思わせる、それへの参照をさらにいくつか見ました)。./source/_posts/ ディレクトリに一度に 1 つのファイルのみを保持して、何が起こっているのかを正確に絞り込むことは、トラブルシューティングの良いアプローチです。

于 2013-02-01T14:56:18.787 に答える