Skip to content
New issue

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

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

存在しない画像を参照したときのエラーメッセージがとてもわかりにくい #954

Closed
kauplan opened this issue Feb 25, 2018 · 5 comments

Comments

@kauplan
Copy link

kauplan commented Feb 25, 2018

概要

「@{}」を使って画像を参照したときに、画像ファイルが存在しなかったときのエラーメッセージがとてもわかりにくい。

再現手順

ファイル chap01.re

#@# -*- coding: utf-8 -*-
= テスト1

//image[cover][サンプル画像1]

@<img>{cover2} ← 存在しない画像を参照している

画像 images/cover.jpg は存在するが、images/cover2.* は存在しない。

$ ls images
cover.jpg

このような状態で rake pdf を実行すると、「not found key 'cover2' for ReVIEW::Book::IndepImageIndex」という分かりにくいエラーメッセージが出る。

$ rake pdf
review-pdfmaker config.yml
compiling chap01.tex
W, [2018-02-25T23:59:25.667990 #61833]  WARN -- : review-pdfmaker: compile error in chap01.tex (ReVIEW::ApplicationError)
W, [2018-02-25T23:59:25.668085 #61833]  WARN -- : review-pdfmaker: chap01.re:6: error: not found key 'cover2' for ReVIEW::Book::IndepImageIndex
E, [2018-02-25T23:59:25.668170 #61833] ERROR -- : review-pdfmaker: compile error, No PDF file output.
rake aborted!
Command failed with status (1): [review-pdfmaker config.yml...]
/private/tmp/kwatch/testbook/Rakefile:59:in `block in <top (required)>'
Tasks: TOP => pdf => book.pdf
(See full trace by running task with --trace)

なお rake pdf --trace を実行すると、もっとよくわからないエラーになる。

要望

参照先の画像がない場合は、そうだとわかるようなエラーメッセージを出してほしい。

環境

  • Re:VIEW 2.4
  • Ruby: 2.5
  • OS: macOS 10.12.6 (Sierra)
@kmuto
Copy link
Owner

kmuto commented Feb 25, 2018

  • FileNotFoundを返す(が、今のロジックでうまくできるかな…)
  • 単にe.classじゃないのを含める(keyエラーを起こしそうなクラスメソッドで専用の文字列を持つ?)

あたりですかねぇ…。

@kdmsnr
Copy link
Collaborator

kdmsnr commented Feb 26, 2018

builder.rb(やhtmlbuilder.rb)ではrescueで処理していたので、それと同じにするとかでしょうか。

    def inline_img(id)
      "#{I18n.t('image')}#{@chapter.image(id).number}"
    rescue KeyError
      error "unknown image: #{id}"
      nofunc_text("[UnknownImage:#{id}]")
    end

@kmuto
Copy link
Owner

kmuto commented Feb 26, 2018

その手法でいくことにします。しかしerrorだともうそれで終わるので、nofunc_textは意味ないですね…消しとこう。

@kmuto
Copy link
Owner

kmuto commented Feb 26, 2018

#961 にて対応

@kauplan
Copy link
Author

kauplan commented Feb 26, 2018

対応ありがとうございます。
技術書典4のサークル参加者が増える中、Re:VIEWに苦労している初心者が多いので、このような細かい改善が役に立つでしょう。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants