リンクを新しいウィンドウで開く Nanoc の link_to ヘルパーを作る

nanoc にはリンクを生成してくれる link_to というヘルパーがあります。

link_to ヘルパーで生成するリンクを新しいウィンドウ(タブ)で開くためには、3 つ目の引数に target オプションを指定する必要があります。

link_to "Google", "http://google.com", target: "_blank"

しかし、新しいウィンドウで開きたいリンクが多い場合に、target オプションをいちいち書くのは面倒です。というわけで、デフォルトで target オプションが指定されている link_to_new_window というヘルパーを書いてみました。

lib/helpers/link_to.rb:

module LinkTo
  def link_to_new_window(text, target, attributes = {})
    attributes.merge! target: "_blank"
    Nanoc::Helpers::LinkTo.link_to(text, target, attributes)
  end
end

lib/default.rb:

include LinkTo

テンプレート(Haml)では以下のように使用します:

= link_to_new_window 'Google', 'http://google.com'

HTML は以下のように出力されます:

<a target="_blank" href="http://google.com">Google</a>

楽チンになりました :)

© 2023 暇人じゃない. All rights reserved.