Method: ReVIEW::LATEXBuilder#index

Defined in:
lib/review/latexbuilder.rb

#index(str) ⇒ Object



1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
# File 'lib/review/latexbuilder.rb', line 1405

def index(str)
  # XXX: mendex/upmendex specific
  sa = str.split('<<>>')

  sa.map! do |item|
    if @index_db[item]
      escape_mendex_key(escape_index(@index_db[item])) + '@' + escape_mendex_display(escape_index(escape(item)))
    elsif item =~ /\A[[:ascii:]]+\Z/ || @index_mecab.nil?
      esc_item = escape_mendex_display(escape_index(escape(item)))
      if esc_item == item
        esc_item
      else
        "#{escape_mendex_key(escape_index(item))}@#{esc_item}"
      end
    else
      yomi = NKF.nkf('-w --hiragana', @index_mecab.parse(item).force_encoding('UTF-8').chomp)
      escape_mendex_key(escape_index(yomi)) + '@' + escape_mendex_display(escape_index(escape(item)))
    end
  end

  "\\index{#{sa.join('!')}}"
end